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):  | 
