knife-xapi 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
data/lib/chef/knife/xapi_base.rb
CHANGED
@@ -86,7 +86,7 @@ class Chef::Knife
|
|
86
86
|
|
87
87
|
def locate_config_value(key)
|
88
88
|
key = key.to_sym
|
89
|
-
Chef::Config[:knife][key]
|
89
|
+
config[key] || Chef::Config[:knife][key]
|
90
90
|
end
|
91
91
|
|
92
92
|
# get template by name_label
|
@@ -295,5 +295,18 @@ class Chef::Knife
|
|
295
295
|
vbd_ref = get_task_ref(task)
|
296
296
|
end
|
297
297
|
|
298
|
+
# try to get a guest ip and return it
|
299
|
+
def get_guest_ip(vm_ref)
|
300
|
+
guest_ip = "unknown"
|
301
|
+
vgm = xapi.VM.get_guest_metrics(vm_ref)
|
302
|
+
unless "OpaqueRef:NULL" == vgm
|
303
|
+
networks = xapi.VM_guest_metrics.get_networks(vgm)
|
304
|
+
if networks.has_key?("0/ip")
|
305
|
+
guest_ip = networks["0/ip"]
|
306
|
+
end
|
307
|
+
end
|
308
|
+
return guest_ip
|
309
|
+
end
|
310
|
+
|
298
311
|
end
|
299
312
|
end
|
@@ -165,7 +165,7 @@ class Chef
|
|
165
165
|
tcp_socket && tcp_socket.close
|
166
166
|
end
|
167
167
|
|
168
|
-
def
|
168
|
+
def wait_for_guest_ip(vm_ref)
|
169
169
|
begin
|
170
170
|
timeout(480) do
|
171
171
|
ui.msg "Waiting for guest ip address"
|
@@ -308,7 +308,7 @@ class Chef
|
|
308
308
|
exit 0
|
309
309
|
end
|
310
310
|
|
311
|
-
guest_addr =
|
311
|
+
guest_addr = wait_for_guest_ip(vm_ref)
|
312
312
|
if guest_addr.nil? or guest_addr.empty?
|
313
313
|
ui.msg("ip seems wrong using host+domain name instead")
|
314
314
|
guest_addr = "#{host_name}.#{domainname}"
|
@@ -27,15 +27,31 @@ class Chef
|
|
27
27
|
|
28
28
|
banner "knife xapi guest list"
|
29
29
|
|
30
|
+
option :id,
|
31
|
+
:short => "-i",
|
32
|
+
:long => "--show-id",
|
33
|
+
:description => "Enable printing of UUID and OpaqueRefs for vm"
|
34
|
+
|
35
|
+
|
30
36
|
def run
|
31
37
|
vms = xapi.VM.get_all
|
32
|
-
|
38
|
+
if locate_config_value(:id)
|
39
|
+
printf "%-25s %-12s %-16s %-46s %-36s \n", "Name Label", "State", "IP Address", "Ref", "UUID"
|
40
|
+
else
|
41
|
+
printf "%-25s %-12s %-16s\n", "Name Label", "State", "IP Address"
|
42
|
+
end
|
43
|
+
|
33
44
|
vms.each do |vm|
|
34
45
|
record = xapi.VM.get_record(vm)
|
46
|
+
ip_address = get_guest_ip(vm)
|
35
47
|
# make sure you can't do bad things to these VM's
|
36
48
|
next if record['is_a_template']
|
37
49
|
next if record['name_label'] =~ /control domain/i
|
38
|
-
|
50
|
+
if locate_config_value(:id)
|
51
|
+
printf "%-25s %-12s %-16s %46s %36s \n", record['name_label'], record['power_state'], ip_address, vm, record['uuid']
|
52
|
+
else
|
53
|
+
printf "%-25s %-12s %-16s\n", record['name_label'], record['power_state'], ip_address
|
54
|
+
end
|
39
55
|
end
|
40
56
|
end
|
41
57
|
|
data/lib/knife-xapi/version.rb
CHANGED