def test_manipulation(self): temp_dir = tempfile.mkdtemp() os.mkdir(join(temp_dir, 'interfaces.d')) f1 = InterfacesFile(self.interfaces_filename) new_filename = join(temp_dir, 'interfaces') h1 = hash(f1) f1.save(recursive=True, filename=new_filename) f2 = self.checkup_interfaces_file(new_filename) h2 = hash(f2) self.assertEqual(h1, h2) eth0 = f2.get_iface('eth0') eth0.address = '192.168.11.2' self.assertEqual(eth0.address, '192.168.11.2') eth0.script = '/etc/network/if-up.d/eth0-up' self.assertEqual(eth0.script, '/etc/network/if-up.d/eth0-up') del eth0.netmask f2.save(new_filename, validate=False) f3 = InterfacesFile(new_filename) eth0 = f3.get_iface('eth0') self.assertEqual(eth0.address, '192.168.11.2') self.assertEqual(eth0.script, '/etc/network/if-up.d/eth0-up') self.assertRaises(AttributeError, lambda: self.netmask)
def test_manipulation(self): temp_dir = tempfile.mkdtemp() os.mkdir(join(temp_dir, 'interfaces.d')) f1 = InterfacesFile(self.interfaces_filename) new_filename = join(temp_dir, 'interfaces') h1 = hash(f1) f1.save(recursive=True, filename=new_filename) f2 = self.checkup_interfaces_file(new_filename) h2 = hash(f2) self.assertEqual(h1, h2) eth0 = f2.get_iface('eth0') eth0.address = '192.168.11.2' self.assertEqual(eth0.address, '192.168.11.2') eth0.script = '/etc/network/if-up.d/eth0-up' self.assertEqual(eth0.script, '/etc/network/if-up.d/eth0-up') del eth0.netmask f2.save(new_filename, validate=False) f3 = InterfacesFile(new_filename) eth0 = f3.get_iface('eth0') self.assertEqual(eth0.address, '192.168.11.2') self.assertEqual(eth0.script, '/etc/network/if-up.d/eth0-up') self.assertRaises(AttributeError, lambda: self.netmask)
def set_network(iface_name, iface_info, dns_info): """ Set network info. """ if is_changed_network(iface_name, iface_info, dns_info) == False: print "Network is not changed." return 0 # 1. Update /etc/network/interfaces cfg_file = InterfacesFile(CONFIG_FILE_NETWORK_INTERFACE) iface = cfg_file.get_iface(iface_name) if iface_info["dhcp"] == "1": iface.method = "dhcp" delattr(iface, "address") delattr(iface, "netmask") delattr(iface, "gateway") else: iface.method = "static" if iface_info["ip"]: iface.address = iface_info["ip"] if iface_info["netmask"]: iface.netmask = iface_info["netmask"] if iface_info["gateway"]: iface.gateway = iface_info["gateway"] cfg_file.save() # 2. Update /etc/resolv.conf if dns_info["dns"]: lines = "nameserver " + dns_info["dns"] + "\n" file = open(CONFIG_FILE_NETWORK_DNS, "w") try: file.writelines(lines) finally: file.close() #3. Iface down wlan0 and iface up wlan0 execute_cmd("/bin/bash", [ "-c", COMMAND_SUDO + " " + COMMAND_NETWORK_IFACE_DOWN + " " + iface_name + ";" + COMMAND_SUDO + " " + COMMAND_NETWORK_IFACE_UP + " " + iface_name + ";" ]) return 0