class Chef::Knife::ClientBulkDelete
Public Instance Methods
check_and_delete_clients(clients)
click to toggle source
# File lib/chef/knife/client_bulk_delete.rb, line 81 def check_and_delete_clients(clients) unless clients.empty? ui.msg("The following clients will be deleted:") print_clients(clients) ui.confirm("Are you sure you want to delete these clients") destroy_clients(clients) end end
check_and_delete_validators(validators)
click to toggle source
# File lib/chef/knife/client_bulk_delete.rb, line 65 def check_and_delete_validators(validators) unless validators.empty? unless config[:delete_validators] ui.msg("The following clients are validators and will not be deleted:") print_clients(validators) ui.msg("You must specify --delete-validators to delete the validator clients") else ui.msg("The following validators will be deleted:") print_clients(validators) if ui.confirm_without_exit("Are you sure you want to delete these validators") destroy_clients(validators) end end end end
destroy_clients(clients)
click to toggle source
# File lib/chef/knife/client_bulk_delete.rb, line 90 def destroy_clients(clients) clients.sort.each do |name, client| client.destroy ui.msg("Deleted client #{name}") end end
print_clients(clients)
click to toggle source
# File lib/chef/knife/client_bulk_delete.rb, line 97 def print_clients(clients) ui.msg("") ui.msg(ui.list(clients.keys.sort, :columns_down)) ui.msg("") end
run()
click to toggle source
# File lib/chef/knife/client_bulk_delete.rb, line 36 def run if name_args.length < 1 ui.fatal("You must supply a regular expression to match the results against") exit 42 end all_clients = Chef::ApiClientV1.list(true) matcher = /#{name_args[0]}/ clients_to_delete = {} validators_to_delete = {} all_clients.each do |name, client| next unless name&.match?(matcher) if client.validator validators_to_delete[client.name] = client else clients_to_delete[client.name] = client end end if clients_to_delete.empty? && validators_to_delete.empty? ui.info "No clients match the expression /#{name_args[0]}/" exit 0 end check_and_delete_validators(validators_to_delete) check_and_delete_clients(clients_to_delete) end