Class: Chef::Knife::NodeRunListAdd

Inherits:
Chef::Knife show all
Defined in:
lib/chef/knife/node_run_list_add.rb

Constant Summary

Constants inherited from Chef::Knife

CHEF_ORGANIZATION_MANAGEMENT, OFFICIAL_PLUGINS, OPSCODE_HOSTED_CHEF_ACCESS_CONTROL

Instance Attribute Summary

Attributes inherited from Chef::Knife

#name_args, #ui

Instance Method Summary collapse

Methods inherited from Chef::Knife

#api_key, #apply_computed_config, category, chef_config_dir, #cli_keys, common_name, #config_file_settings, config_loader, #config_source, #configure_chef, #create_object, #delete_object, dependency_loaders, deps, #format_rest_error, guess_category, #humanize_exception, #humanize_http_exception, inherited, #initialize, list_commands, load_commands, load_config, load_deps, #maybe_setup_fips, #merge_configs, msg, #noauth_rest, #parse_options, reset_config_loader!, reset_subcommands!, #rest, run, #run_with_pretty_exceptions, #server_url, #show_usage, snake_case_name, subcommand_category, subcommand_class_from, subcommand_files, subcommand_loader, subcommands, subcommands_by_category, #test_mandatory_field, ui, unnamed?, use_separate_defaults?, #username

Methods included from Mixin::ConvertToClassName

#constantize, #convert_to_class_name, #convert_to_snake_case, #filename_to_qualified_string, #normalize_snake_case_name, #snake_case_basename

Constructor Details

This class inherits a constructor from Chef::Knife

Instance Method Details

#runObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/chef/knife/node_run_list_add.rb', line 42

def run
  node = Chef::Node.load(@name_args[0])
  if @name_args.size > 2
    # Check for nested lists and create a single plain one
    entries = @name_args[1..-1].map do |entry|
      entry.split(",").map(&:strip)
    end.flatten
  else
    # Convert to array and remove the extra spaces
    entries = @name_args[1].split(",").map(&:strip)
  end

  if config[:after] && config[:before]
    ui.fatal("You cannot specify both --before and --after!")
    exit 1
  end

  if config[:after]
    add_to_run_list_after(node, entries, config[:after])
  elsif config[:before]
    add_to_run_list_before(node, entries, config[:before])
  else
    add_to_run_list_after(node, entries)
  end

  node.save

  config[:run_list] = true

  output(format_for_display(node))
end