Class: Chef::Knife::XapiVifList

Inherits:
Chef::Knife show all
Includes:
XapiBase
Defined in:
lib/chef/knife/xapi_vif_list.rb

Instance Attribute Summary

Attributes included from XapiBase

#defaults

Instance Method Summary collapse

Methods included from XapiBase

#add_vif_by_name, #cleanup, #clear_vm_vifs, #color_kv, #create_vbd, #create_vdi, defaults, #destroy_vdi, #detach_vdi, #fail, #find_default_sr, #find_template, #generate_mac, #get_all_vdis, get_default, #get_guest_ip, #get_host_ref, #get_sr_by_name, #get_task_ref, #get_template, #get_vbd_by_uuid, #get_vbds_from_vdi, #get_vdi_by_name_label, #get_vdi_by_uuid, #h, included, #input_to_bytes, #locate_config_value, #print_record, #print_vdi_info, set_defaults, #start, #stop, #user_select, #wait_on_task, #xapi, #yes_no?

Instance Method Details

#runObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/chef/knife/xapi_vif_list.rb', line 37

def run 
  # Get all vifs known to the system
  name = @name_args[0]

  # if we were passed a guest name find its vdi's 
  # otherwise do it for everything
  vifs = Array.new
  if name.nil? or name.empty?
    vifs = xapi.VIF.getAllRecords

  elsif config[:vif_name]
    vdis = xapi.VIF.get_by_name_label( name )

  else
    ref = xapi.VM.get_by_name_label( name ) 
    vm = xapi.VM.get_record( ref.first )

    vm["VIFs"].each do |vif|
      vdis << xapi.VIF.get_record( vif )["VIF"]
    end
  end

  vifs.each do |vif| 
    print_vif_info vif
  end

end