Class: Chef::Knife::AzurermServerDelete
- Inherits:
-
Chef::Knife
- Object
- Chef::Knife
- Chef::Knife::AzurermServerDelete
- Includes:
- AzurermBase
- Defined in:
- lib/chef/knife/azurerm_server_delete.rb
Constant Summary
Constants included from Azure::ARM::ReadCred
Azure::ARM::ReadCred::CRED_TYPE_DOMAIN_CERTIFICATE, Azure::ARM::ReadCred::CRED_TYPE_DOMAIN_PASSWORD, Azure::ARM::ReadCred::CRED_TYPE_DOMAIN_VISIBLE_PASSWORD, Azure::ARM::ReadCred::CRED_TYPE_GENERIC
Instance Method Summary collapse
- #delete_resource_group ⇒ Object
-
#destroy_item(klass, name, type_name) ⇒ Object
Extracted from Chef::Knife.delete_object, because it has a confirmation step built in…
- #purge_node ⇒ Object
- #run ⇒ Object
Methods included from AzurermBase
#authentication_details, #azure_authentication, #check_token_validity, #find_file, #get_azure_cli_version, included, #is_token_valid?, #locate_config_value, #msg_server_summary, #parse_publish_settings_file, #refresh_token, #service, #token_details_for_linux, #token_details_for_windows, #token_details_from_accessToken_file, #validate_arm_keys!, #validate_azure_login, #validate_params!
Methods included from Azure::ARM::WindowsCredentials
#latest_credential_target, #target_name, #token_details_from_WCM
Instance Method Details
#delete_resource_group ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/chef/knife/azurerm_server_delete.rb', line 89 def delete_resource_group resource_group_name = locate_config_value(: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(locate_config_value(: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(locate_config_value(:azure_resource_group_name)) ui.warn "Deleted resource_group_name #{resource_group_name} and #{@vm_name}" end |
#destroy_item(klass, name, type_name) ⇒ Object
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.
59 60 61 62 63 64 65 |
# File 'lib/chef/knife/azurerm_server_delete.rb', line 59 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 ⇒ Object
105 106 107 108 109 110 111 112 113 |
# File 'lib/chef/knife/azurerm_server_delete.rb', line 105 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 ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/chef/knife/azurerm_server_delete.rb', line 67 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 locate_config_value(:delete_resource_group) delete_resource_group else service.delete_server(locate_config_value(: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 |