summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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: