Class: Chef::Knife::ProxmoxServerList

Inherits:
Chef::Knife show all
Includes:
ProxmoxBase
Defined in:
lib/chef/knife/proxmox_server_list.rb

Instance Method Summary collapse

Methods included from ProxmoxBase

#action_response, #check_config_parameter, #check_global_parameter, #connection, #destroy_item, included, #locate_config_value, #new_vmid, #server_create, #server_destroy, #server_get_data, #server_name_to_vmid, #server_start, #server_stop, #template_number_to_name, #vmid_to_node, #waitfor

Instance Method Details

#runObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/chef/knife/proxmox_server_list.rb', line 12

def run
  # Needed
  connection
  
  server_list = [
    ui.color('Id'  , :bold),
    ui.color('Node', :bold),
    ui.color('Name', :bold),
    ui.color('Type', :bold),
    ui.color('Status',:bold),
    ui.color('IP Address',:bold)

  ]
  @connection['cluster/resources?type=vm'].get @auth_params do |response, request, result, &block|
    JSON.parse(response.body)['data'].each {|entry|
      vm_id = entry['vmid']
      type  = entry['type']
      server_list << vm_id.to_s
      server_list << entry['node']
      server_list << entry['name']
      server_list << type
      status = (entry['uptime'] == 0)?'down':'up'
      server_list << status
      ipaddress = (type.to_s.match('openvz'))?server_get_data(vm_id,'ip'):"Not Available"
      server_list << ipaddress
    }
  end
  puts ui.list(server_list, :uneven_columns_across, 6)
end