From: Stéphane Graber Date: Thu, 18 Apr 2013 20:20:53 +0000 (+0200) Subject: python: Various fixes to the python scripts X-Git-Tag: lxc-1.0.0.alpha1~1^2~281 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c5db2af1f706e8f21f2a5f074bada96e9011052;p=thirdparty%2Flxc.git python: Various fixes to the python scripts This fixes a few issues uncovered by the recent C module fix. In lxc-start-ephemeral, the hwaddr code wasn't actually working. Replace by code that properly iterates through the network interfaces and sets a new MAC address for each entry. In the python overlay, catch the newly emitted KeyError when in set_config_item (or setting any previously unset variable would fail). Signed-off-by: Stéphane Graber Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/lxc-start-ephemeral.in b/src/lxc/lxc-start-ephemeral.in index bed86e6d2..b5cad9a4e 100644 --- a/src/lxc/lxc-start-ephemeral.in +++ b/src/lxc/lxc-start-ephemeral.in @@ -134,7 +134,9 @@ dest = lxc.Container(os.path.basename(dest_path), args.lxcpath) dest.load_config(orig.config_file_name) dest.set_config_item("lxc.utsname", dest.name) dest.set_config_item("lxc.rootfs", os.path.join(dest_path, "rootfs")) -dest.set_config_item("lxc.network.hwaddr", randomMAC()) +for nic in dest.network: + if hasattr(nic, 'hwaddr'): + nic.hwaddr = randomMAC() overlay_dirs = [(orig.get_config_item("lxc.rootfs"), "%s/rootfs/" % dest_path)] diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py index 118a08125..e3ce8ebf0 100644 --- a/src/python-lxc/lxc/__init__.py +++ b/src/python-lxc/lxc/__init__.py @@ -412,7 +412,10 @@ class Container(_lxc.Container): Set a config key to a provided value. The value can be a list for the keys supporting multiple values. """ - old_value = self.get_config_item(key) + try: + old_value = self.get_config_item(key) + except KeyError: + old_value = None # Check if it's a list def set_key(key, value):