diff options
author | Scott Moser <smoser@ubuntu.com> | 2016-04-15 12:16:14 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2016-04-15 12:16:14 -0400 |
commit | 79b59658dfdc0172818c54e3c7149e6ed914a93b (patch) | |
tree | fc18874ab52399537f062aaf5c174d4c54de2a4a | |
parent | f7d6eaef7311ac2484d48e67ec69e915b31e16e2 (diff) | |
download | vyos-cloud-init-79b59658dfdc0172818c54e3c7149e6ed914a93b.tar.gz vyos-cloud-init-79b59658dfdc0172818c54e3c7149e6ed914a93b.zip |
only apply networking once per instance
This attempts to only apply the networking once per instance
by doing so only if the datasource was restored from disk.
This will work by default for datasources with a functioning
check_instance_id or if the user has set manual_cache_clean to true.
-rwxr-xr-x | bin/cloud-init | 4 | ||||
-rw-r--r-- | cloudinit/stages.py | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/bin/cloud-init b/bin/cloud-init index 715be4b5..b449ac95 100755 --- a/bin/cloud-init +++ b/bin/cloud-init @@ -265,7 +265,9 @@ def main_init(name, args): else: return (None, ["No instance datasource found."]) - if args.local: + if args.local and 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() # Stage 6 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: |