class Chef::Knife::AzurermServerDelete
Public Instance Methods
delete_resource_group()
click to toggle source
# File lib/chef/knife/azurerm_server_delete.rb, line 92 def delete_resource_group resource_group_name = config[:azure_resource_group_name] ui.warn "Deleting resource group will delete all the virtual_machines inside it." begin ui.confirm("Do you really want to delete resource group") rescue SystemExit # Need to handle this as confirming with N/n raises SystemExit exception server = nil # Cleanup is implicitly performed in other cloud plugins ui.warn "Resource group not deleted. Proceeding for server delete ..." service.delete_server(config[:azure_resource_group_name], @vm_name) exit end ui.info "Deleting Resource Group " + resource_group_name + " and Virtual Machine " + @vm_name + " .." service.delete_resource_group(config[:azure_resource_group_name]) ui.warn "Deleted resource_group_name #{resource_group_name} and #{@vm_name}" end
destroy_item(klass, name, type_name)
click to toggle source
Extracted from Chef::Knife.delete_object, because it has a confirmation step built in… By specifying the '–purge' flag (and also explicitly confirming the server destruction!) the user is already making their intent known. It is not necessary to make them confirm two more times.
# File lib/chef/knife/azurerm_server_delete.rb, line 62 def destroy_item(klass, name, type_name) object = klass.load(name) object.destroy ui.warn("Deleted #{type_name} #{name}") rescue Net::HTTPServerException ui.warn("Could not find a #{type_name} named #{name} to delete!") end
purge_node()
click to toggle source
# File lib/chef/knife/azurerm_server_delete.rb, line 108 def purge_node node_to_delete = config[:chef_node_name] || @vm_name if node_to_delete destroy_item(Chef::Node, node_to_delete, "node") destroy_item(Chef::ApiClient, node_to_delete, "client") else ui.warn("Node name to purge not provided. Corresponding client node will remain on Chef Server.") end end
run()
click to toggle source
# File lib/chef/knife/azurerm_server_delete.rb, line 70 def run $stdout.sync = true # check azure cli version due to azure changed `azure` to `az` in azure-cli2.0 get_azure_cli_version validate_arm_keys!(:azure_resource_group_name) @vm_name = @name_args[0] if config[:delete_resource_group] delete_resource_group else service.delete_server(config[:azure_resource_group_name], @vm_name) end if config[:purge] purge_node else ui.warn("Corresponding node and client for the #{@vm_name} server were not deleted and remain registered with the Chef Server") end rescue => error service.common_arm_rescue_block(error) end