diff options
author | Scott Moser <smoser@ubuntu.com> | 2013-07-26 14:05:52 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2013-07-26 14:05:52 -0400 |
commit | 9da084bda820d0ab8500ea6ee13a014f46d3bfab (patch) | |
tree | be83f6368882df37c59e8db075f872b00d88acb6 | |
parent | f8114e58dbbd84ec91a6fb8a8adec9be3bfbab52 (diff) | |
download | vyos-cloud-init-9da084bda820d0ab8500ea6ee13a014f46d3bfab.tar.gz vyos-cloud-init-9da084bda820d0ab8500ea6ee13a014f46d3bfab.zip |
azure: fix bouncing of interface
the environment that was set up to include 'interface' was not actually
being passed on to 'subp', so when the command ran it wasn't available.
-rw-r--r-- | cloudinit/sources/DataSourceAzure.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py index d4863429..9503b045 100644 --- a/cloudinit/sources/DataSourceAzure.py +++ b/cloudinit/sources/DataSourceAzure.py @@ -31,8 +31,9 @@ LOG = logging.getLogger(__name__) DS_NAME = 'Azure' DEFAULT_METADATA = {"instance-id": "iid-AZURE-NODE"} AGENT_START = ['service', 'walinuxagent', 'start'] -BOUNCE_COMMAND = ("i=$interface; x=0; ifdown $i || x=$?; " - "ifup $i || x=$?; exit $x") +BOUNCE_COMMAND = ['sh', '-xc', + "i=$interface; x=0; ifdown $i || x=$?; ifup $i || x=$?; exit $x"] + BUILTIN_DS_CONFIG = { 'agent_command': AGENT_START, 'data_dir': "/var/lib/waagent", @@ -185,19 +186,29 @@ def apply_hostname_bounce(hostname, policy, interface, command, util.subp([hostname_command, hostname]) + msg = ("phostname=%s hostname=%s policy=%s interface=%s" % + (prev_hostname, hostname, policy, interface)) + if util.is_false(policy): + LOG.debug("pubhname: policy false, skipping [%s]", msg) return if prev_hostname == hostname and policy != "force": + LOG.debug("pubhname: no change, policy != force. skipping. [%s]", msg) return env = os.environ.copy() env['interface'] = interface + env['hostname'] = hostname + env['old_hostname'] = prev_hostname if command == "builtin": command = BOUNCE_COMMAND - util.subp(command, shell=(not isinstance(command, list)), capture=True) + LOG.debug("pubhname: publishing hostname [%s]", msg) + shell = not isinstance(command, (list, tuple)) + (output, err) = util.subp(command, shell=shell, capture=True, env=env) + LOG.debug("output: %s. err: %s", output, err) def crtfile_to_pubkey(fname): |