Beispiel #1
0
    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