mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-23 21:57:43 +03:00
feature #378: Small fixes in econe CLI
This commit is contained in:
parent
0e5aac62d5
commit
6e862acbe6
@ -114,7 +114,10 @@ if CloudClient::is_error?(rc)
|
||||
exit -1
|
||||
end
|
||||
|
||||
addresses = rc['addressesSet']['item']
|
||||
addresses = []
|
||||
if rc['addressesSet']
|
||||
addresses = rc['addressesSet']['item']
|
||||
end
|
||||
|
||||
fmt = "%-12s %s"
|
||||
|
||||
@ -123,11 +126,9 @@ if headers
|
||||
puts "------------------------------------------------------------------------------"
|
||||
end
|
||||
|
||||
if addresses
|
||||
addresses.each { |addr|
|
||||
puts fmt % [addr['publicIp'],addr['instanceId']]
|
||||
}
|
||||
end
|
||||
addresses.each { |addr|
|
||||
puts fmt % [addr['publicIp'],addr['instanceId']]
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
||||
|
@ -51,7 +51,7 @@ Options:
|
||||
|
||||
--headers, -H
|
||||
Display column headers
|
||||
|
||||
|
||||
EOT
|
||||
|
||||
require 'econe/EC2QueryClient'
|
||||
@ -97,7 +97,7 @@ begin
|
||||
end
|
||||
rescue Exception => e
|
||||
exit -1
|
||||
end
|
||||
end
|
||||
|
||||
auth = "#{access}:#{secret}" if secret && access
|
||||
|
||||
@ -115,25 +115,26 @@ if CloudClient::is_error?(rc)
|
||||
exit -1
|
||||
end
|
||||
|
||||
images = rc['imagesSet']['item']
|
||||
images = []
|
||||
if rc['imagesSet']
|
||||
images = rc['imagesSet']['item']
|
||||
end
|
||||
|
||||
fmt = "%-12s %-13s %-14s %-12s %s"
|
||||
fmt = "%-12s %-13s %-14s %-12s %s"
|
||||
|
||||
if headers
|
||||
puts fmt % ["Owner", "ImageId", "Status", "Visibility", "Location"]
|
||||
puts "------------------------------------------------------------------------------"
|
||||
puts "------------------------------------------------------------------------------"
|
||||
end
|
||||
|
||||
if images
|
||||
images.each { |img|
|
||||
if img['isPublic'] == 'true'
|
||||
visibility = "public"
|
||||
elsif img['isPublic'] == 'false'
|
||||
visibility = "private"
|
||||
end
|
||||
puts fmt % [img['imageOwnerId'],img['imageId'], img['imageState'], visibility,img['imageLocation']]
|
||||
}
|
||||
end
|
||||
images.each { |img|
|
||||
if img['isPublic'] == 'true'
|
||||
visibility = "public"
|
||||
elsif img['isPublic'] == 'false'
|
||||
visibility = "private"
|
||||
end
|
||||
puts fmt % [img['imageOwnerId'],img['imageId'], img['imageState'], visibility,img['imageLocation']]
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
||||
|
@ -113,7 +113,11 @@ if CloudClient::is_error?(rc)
|
||||
exit -1
|
||||
end
|
||||
|
||||
instances = rc['reservationSet']['item'][0]['instancesSet']['item']
|
||||
instances = []
|
||||
if rc['reservationSet']['item'][0]['instancesSet']
|
||||
instances = rc['reservationSet']['item'][0]['instancesSet']['item']
|
||||
end
|
||||
|
||||
owner = rc['reservationSet']['item'][0]['ownerId']
|
||||
|
||||
fmt = "%-10s %-11s %-13s %-11s %-15s %-10s"
|
||||
@ -123,9 +127,9 @@ if headers
|
||||
puts "-----------------------------------------------------------------------------------"
|
||||
end
|
||||
|
||||
if instances
|
||||
instances.each { |img|
|
||||
puts fmt % [owner, img['instanceId'],img['imageId'],img['instanceState']['name'],img['dnsName'],img['instanceType']]
|
||||
}
|
||||
end
|
||||
|
||||
instances.each { |img|
|
||||
puts fmt % [owner, img['instanceId'],img['imageId'],img['instanceState']['name'],img['dnsName'],img['instanceType']]
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
@ -114,7 +114,10 @@ if CloudClient::is_error?(rc)
|
||||
exit -1
|
||||
end
|
||||
|
||||
volumes = rc['volumeSet']['item']
|
||||
volumes = []
|
||||
if rc['volumeSet']
|
||||
volumes = rc['volumeSet']['item']
|
||||
end
|
||||
|
||||
fmt = "%-15s %-10s %s"
|
||||
|
||||
@ -123,18 +126,16 @@ if headers
|
||||
puts "------------------------------------------------------------------------------"
|
||||
end
|
||||
|
||||
if volumes
|
||||
volumes.each { |vol|
|
||||
instances = ""
|
||||
if vol['attachmentSet'] && vol['attachmentSet']['item']
|
||||
instances = vol['attachmentSet']['item'].collect{ |item|
|
||||
item['instanceId']
|
||||
}.join(',')
|
||||
end
|
||||
volumes.each { |vol|
|
||||
instances = ""
|
||||
if vol['attachmentSet'] && vol['attachmentSet']['item']
|
||||
instances = vol['attachmentSet']['item'].collect{ |item|
|
||||
item['instanceId']
|
||||
}.join(',')
|
||||
end
|
||||
|
||||
puts fmt % [vol['volumeId'], vol['size'], instances]
|
||||
}
|
||||
end
|
||||
puts fmt % [vol['volumeId'], vol['size'], instances]
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
||||
|
@ -123,11 +123,6 @@ if !volume_id
|
||||
exit -1
|
||||
end
|
||||
|
||||
if !instance
|
||||
puts "#{cmd_name}: missing --instance option"
|
||||
exit -1
|
||||
end
|
||||
|
||||
auth = "#{access}:#{secret}" if secret && access
|
||||
|
||||
begin
|
||||
|
@ -24,15 +24,15 @@ module EBS
|
||||
vm_id_ec2 = image["TEMPLATE/EBS/INSTANCE_ID"]
|
||||
end
|
||||
|
||||
vm_id = vm_id_ec2.split('-')[1] if vm_id_ec2[0]==?i
|
||||
|
||||
if vm_id.nil?
|
||||
if vm_id_ec2.nil?
|
||||
rc = OpenNebula::Error.new("The volume #{params['VolumeId']} is\
|
||||
not attached to any instance")
|
||||
logger.error {rc.message}
|
||||
return rc
|
||||
end
|
||||
|
||||
vm_id = vm_id_ec2.split('-')[1] if vm_id_ec2[0]==?i
|
||||
|
||||
# Detach
|
||||
|
||||
vm = VirtualMachine.new(VirtualMachine.build_xml(vm_id), @client)
|
||||
|
@ -2,7 +2,7 @@
|
||||
<AttachVolumeResponse xmlns="http://ec2.amazonaws.com/doc/<%=erb_version%>/">
|
||||
<requestId/>
|
||||
<volumeId>vol-<%= sprintf('%08i', image_id) %></volumeId>
|
||||
<instanceId>i-<%= sprintf('%08i', vm_id) %></instanceId>
|
||||
<%= render_instance_id(vm) %>
|
||||
<device>/dev/<%= vm["TEMPLATE/DISK[IMAGE_ID=#{image_id.to_i}]/TARGET"] %></device>
|
||||
<status>attaching</status>
|
||||
<attachTime><%= Time.at(attach_time).xmlschema %></attachTime>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<DetachVolumeResponse xmlns="http://ec2.amazonaws.com/doc/<%=erb_version%>/">
|
||||
<requestId/>
|
||||
<volumeId>vol-<%= sprintf('%08i', image_id) %></volumeId>
|
||||
<instanceId>i-<%= sprintf('%08i', vm_id) %></instanceId>
|
||||
<%= render_instance_id(vm) %>
|
||||
<device><%= target %></device>
|
||||
<status>detaching</status>
|
||||
<attachTime/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user