Class: Chef::Knife::UserInviteRescind

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

Constant Summary

Constants inherited from Chef::Knife

CHEF_ORGANIZATION_MANAGEMENT, KNIFE_ROOT, OFFICIAL_PLUGINS, OPSCODE_HOSTED_CHEF_ACCESS_CONTROL, VERSION

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, common_name, #config_file_defaults, #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, #root_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

Constructor Details

This class inherits a constructor from Chef::Knife

Instance Method Details

#runObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/chef/knife/user_invite_rescind.rb', line 32

def run
  if (name_args.length < 1) && ! config.key?(:all)
    show_usage
    ui.fatal("You must specify a username.")
    exit 1
  end

  # To rescind we need to send a DELETE to association_requests/INVITE_ID
  # For user friendliness we look up the invite ID based on username.
  @invites = {}
  usernames = name_args
  rest.get_rest("association_requests").each { |i| @invites[i["username"]] = i["id"] }
  if config[:all]
    ui.confirm("Are you sure you want to rescind all association requests")
    @invites.each do |u, i|
      rest.delete_rest("association_requests/#{i}")
    end
  else
    ui.confirm("Are you sure you want to rescind the association requests for: #{usernames.join(", ")}")
    usernames.each do |u|
      if @invites.key?(u)
        rest.delete_rest("association_requests/#{@invites[u]}")
      else
        ui.fatal("No association request for #{u}.")
        exit 1
      end
    end
  end
end