summaryrefslogtreecommitdiff
path: root/cloudinit/sources/DataSourceSmartOS.py
diff options
context:
space:
mode:
authorMike Gerdts <mike.gerdts@joyent.com>2019-10-31 19:45:29 +0000
committerServer Team CI Bot <josh.powers+server-team-bot@canonical.com>2019-10-31 19:45:29 +0000
commite81389592a67bb54b889512928dcdf65f87ad436 (patch)
tree4f4c0a3ac5b18c40899624c7ad05a390fece7d36 /cloudinit/sources/DataSourceSmartOS.py
parent45ea695f9b4fce180c662ab4211575d64912634e (diff)
downloadvyos-cloud-init-e81389592a67bb54b889512928dcdf65f87ad436.tar.gz
vyos-cloud-init-e81389592a67bb54b889512928dcdf65f87ad436.zip
DataSourceSmartOS: reconfigure network on each boot
In typical cases, SmartOS does not use DHCP for network configuration. As such, if the network configuration changes that is reflected in metadata and will be picked up during the next boot. LP: #1765801 Joyent: OS-6902 reconfigure network on each boot
Diffstat (limited to 'cloudinit/sources/DataSourceSmartOS.py')
-rw-r--r--cloudinit/sources/DataSourceSmartOS.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/cloudinit/sources/DataSourceSmartOS.py b/cloudinit/sources/DataSourceSmartOS.py
index 32b57cdd..cf676504 100644
--- a/cloudinit/sources/DataSourceSmartOS.py
+++ b/cloudinit/sources/DataSourceSmartOS.py
@@ -1,5 +1,5 @@
# Copyright (C) 2013 Canonical Ltd.
-# Copyright (c) 2018, Joyent, Inc.
+# Copyright 2019 Joyent, Inc.
#
# Author: Ben Howard <ben.howard@canonical.com>
#
@@ -34,6 +34,7 @@ from cloudinit import log as logging
from cloudinit import serial
from cloudinit import sources
from cloudinit import util
+from cloudinit.event import EventType
LOG = logging.getLogger(__name__)
@@ -178,6 +179,7 @@ class DataSourceSmartOS(sources.DataSource):
self.metadata = {}
self.network_data = None
self._network_config = None
+ self.update_events['network'].add(EventType.BOOT)
self.script_base_d = os.path.join(self.paths.get_cpath("scripts"))
@@ -319,6 +321,10 @@ class DataSourceSmartOS(sources.DataSource):
@property
def network_config(self):
+ # sources.clear_cached_data() may set _network_config to '_unset'.
+ if self._network_config == sources.UNSET:
+ self._network_config = None
+
if self._network_config is None:
if self.network_data is not None:
self._network_config = (