class Chef::Knife::Cloud::OvirtServerDelete

Public Instance Methods

execute_command() click to toggle source
# File lib/chef/knife/ovirt_server_delete.rb, line 22
def execute_command
  @name_args.each do |server_name|
    service.delete_server(map_name(server_name))
    delete_from_chef(server_name)
  end
end
map_name(server_name) click to toggle source

map vm names to ID's so they get deleted

# File lib/chef/knife/ovirt_server_delete.rb, line 30
def map_name(server_name)
  servers = @service.list_servers
  snames = servers.map(&:name)
  names = []
  @name_args.each do |name|
    if snames.include? name
      servers.each do |server|
        names << server.id if server.name == name
      end
    else
      names << name
    end
  end
  if names.length != 1
    raise CloudExceptions::ServerDeleteError, "Too many ID's for #{server_name} => #{names}"
  end
  names[0]
end