4 # -----------------------------------------------------------------------
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 # ------------------------------------------------------------------------
20 # Author: Todd Gaunt, toddgaunt@iol.unh.edu or toddgaunt@gmail.com
21 # License: Apache v2.0
22 # Description: Script for setting up initial network interfaces
23 # it activates dhcp on all interfaces in order to at least get the admin
30 def generate_interfaces_file(ifaces, os_network_file):
31 """Takes a list of interfaces and a location to save a network
35 n = "auto " + str(i) + "\n" \
36 + "iface " + str(i) + " inet dhcp\n"
40 def set_interfaces_up(ifaces):
41 """Uses ifup command to put network devices up according to
50 with open(os.devnull, 'w') as fn:
51 status = subprocess.Popen(ifdowncmd, stdout=fn, stderr=fn).wait()
52 status = subprocess.Popen(ifupcmd, stdout=fn, stderr=fn).wait()
53 print(str(iface) + " " + str(status))
56 os_network_file="/etc/network/interfaces"
57 ifaces = netifaces.interfaces()
58 interfaces = generate_interfaces_file(ifaces, os_network_file)
59 with open(os_network_file, 'w') as fd:
61 set_interfaces_up(ifaces)
63 if __name__ == "__main__":