summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-04-15 13:58:13 -0400
committerScott Moser <smoser@ubuntu.com>2016-04-15 13:58:13 -0400
commit53f035122dffd5b821e29fe9af9a72276d9728b4 (patch)
tree7322e5b0a164774170e8b1d60eae8d07c99efd8f
parentf7d6eaef7311ac2484d48e67ec69e915b31e16e2 (diff)
parent53931ee132f0d236e3ed1b7fd6e0e0b519f40bda (diff)
downloadvyos-cloud-init-53f035122dffd5b821e29fe9af9a72276d9728b4.tar.gz
vyos-cloud-init-53f035122dffd5b821e29fe9af9a72276d9728b4.zip
apply networking less often
Do not apply networking configuration whenever a previous datasource has been loaded from disk and found to be valid (via positive return 'check_instance_id' or user configuration of manual_cache_clean). This effectively means that we apply fallback networking only once per instance rather than every boot on any datasource with 'check_instance_id' implemented. LP: #1571004
-rwxr-xr-xbin/cloud-init7
-rw-r--r--cloudinit/stages.py4
2 files changed, 10 insertions, 1 deletions
diff --git a/bin/cloud-init b/bin/cloud-init
index 715be4b5..5857af32 100755
--- a/bin/cloud-init
+++ b/bin/cloud-init
@@ -266,7 +266,12 @@ def main_init(name, args):
return (None, ["No instance datasource found."])
if args.local:
- init.apply_network_config()
+ if not init.ds_restored:
+ # if local mode and the datasource was not restored from cache
+ # (this is not first boot) then apply networking.
+ init.apply_network_config()
+ else:
+ LOG.debug("skipping networking config from restored datasource.")
# Stage 6
iid = init.instancify()
diff --git a/cloudinit/stages.py b/cloudinit/stages.py
index 3fbb4443..ffb15165 100644
--- a/cloudinit/stages.py
+++ b/cloudinit/stages.py
@@ -66,6 +66,7 @@ class Init(object):
self._distro = None
# Changed only when a fetch occurs
self.datasource = NULL_DATA_SOURCE
+ self.ds_restored = False
if reporter is None:
reporter = events.ReportEventStack(
@@ -80,6 +81,7 @@ class Init(object):
self._distro = None
if reset_ds:
self.datasource = NULL_DATA_SOURCE
+ self.ds_restored = False
@property
def distro(self):
@@ -231,6 +233,8 @@ class Init(object):
ds = None
else:
myrep.description = "no cache found"
+
+ self.ds_restored = bool(ds)
LOG.debug(myrep.description)
if not ds: