diff options
Diffstat (limited to 'cloudinit')
| -rw-r--r-- | cloudinit/config/cc_chef.py | 36 | 
1 files changed, 20 insertions, 16 deletions
| diff --git a/cloudinit/config/cc_chef.py b/cloudinit/config/cc_chef.py index ff08050d..f501f1f7 100644 --- a/cloudinit/config/cc_chef.py +++ b/cloudinit/config/cc_chef.py @@ -167,22 +167,26 @@ def handle(name, cfg, cloud, log, _args):      if not is_installed() or force_install:          run_after = install_chef(cloud, chef_cfg, log)          if run_after: -            log.debug('Running chef-client') -            cmd = [CHEF_EXEC_PATH] -            if 'exec_arguments' in chef_cfg: -                cmd_args = chef_cfg['exec_arguments'] -                if isinstance(cmd_args, (list, tuple)): -                    cmd.extend(cmd_args) -                elif isinstance(cmd_args, (str, basestring)): -                    cmd.append(cmd_args) -                else: -                    log.warn("Unknown type %s provided for chef" -                             " 'exec_arguments' expected list, tuple," -                             " or string", type(cmd_args)) -                    cmd.extend(CHEF_EXEC_DEF_ARGS) -            else: -                cmd.extend(CHEF_EXEC_DEF_ARGS) -            util.subp(cmd, capture=False) +            run_chef(chef_cfg, log) + + +def run_chef(chef_cfg, log): +    log.debug('Running chef-client') +    cmd = [CHEF_EXEC_PATH] +    if 'exec_arguments' in chef_cfg: +        cmd_args = chef_cfg['exec_arguments'] +        if isinstance(cmd_args, (list, tuple)): +            cmd.extend(cmd_args) +        elif isinstance(cmd_args, (str, basestring)): +            cmd.append(cmd_args) +        else: +            log.warn("Unknown type %s provided for chef" +                     " 'exec_arguments' expected list, tuple," +                     " or string", type(cmd_args)) +            cmd.extend(CHEF_EXEC_DEF_ARGS) +    else: +        cmd.extend(CHEF_EXEC_DEF_ARGS) +    util.subp(cmd, capture=False)  def install_chef(cloud, chef_cfg, log): | 
