Class: Chef::Knife::HmcServerDelete
- Inherits:
-
Chef::Knife
- Object
- Chef::Knife
- Chef::Knife::HmcServerDelete
- Includes:
- HmcBase
- Defined in:
- lib/chef/knife/hmc_server_delete.rb
Instance Method Summary collapse
-
#destroy_chef_node(objectClass, name, type) ⇒ Object
Extracted from Chef::Knife.delete_object.
- #run ⇒ Object
Methods included from HmcBase
#get_config, included, #tcp_ssh_alive, #validate, #validate!
Instance Method Details
#destroy_chef_node(objectClass, name, type) ⇒ Object
Extracted from Chef::Knife.delete_object. That function requires an extra confirmation before proceeding, which seems overly cautious of an operation that will destroy the server that the node represents.
59 60 61 62 63 |
# File 'lib/chef/knife/hmc_server_delete.rb', line 59 def destroy_chef_node(objectClass,name,type) object = objectClass.load(name) object.destroy puts "Deleted #{type} #{name}" end |
#run ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/chef/knife/hmc_server_delete.rb', line 65 def run Chef::Log.debug("Deleting server...") validate!([:frame_name,:lpar_name]) hmc = Hmc.new(get_config(:hmc_host), get_config(:hmc_username) , {:password => get_config(:hmc_password)}) hmc.connect lpar_hash = hmc.(get_config(:frame_name),get_config(:lpar_name)) lpar = Lpar.new(lpar_hash) if get_config(:vio1_name).nil? and get_config(:vio2_name).nil? lpar.delete() puts "#{get_config(:lpar_name)} destroyed" else validate!([:vio1_name, :vio2_name]) vio1 = Vio.new(hmc, get_config(:frame_name), get_config(:vio1_name)) vio2 = Vio.new(hmc, get_config(:frame_name), get_config(:vio2_name)) lpar.delete([vio1,vio2]) puts "#{get_config(:lpar_name)} destroyed" end Chef::Log.debug("Server #{lpar.name} has been deleted.") #If :purge option was specified, delete the Chef node that #represents the LPAR we just deleted if get_config(:purge) Chef::Log.debug("Removing Chef node for #{lpar.name}") node_name = get_config(:chef_node_name) || lpar.name puts "Removing Chef node for #{lpar.name}" destroy_chef_node(Chef::Node, node_name, "node") destroy_chef_node(Chef::ApiClient, node_name, "client") end hmc.disconnect end |