class Chef::Knife::HmcServerDelete
Public Instance Methods
destroy_chef_node(objectClass,name,type)
click to toggle source
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.
# 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()
click to toggle source
# 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_lpar_options(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