opennebula-cli 3.9.0.beta → 3.9.80.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NOTICE +1 -2
- data/bin/oneacct +5 -4
- data/bin/oneacl +1 -1
- data/bin/onecluster +3 -2
- data/bin/onedatastore +5 -3
- data/bin/onegroup +5 -4
- data/bin/onehost +3 -2
- data/bin/oneimage +3 -2
- data/bin/onetemplate +37 -9
- data/bin/oneuser +36 -2
- data/bin/onevm +301 -122
- data/bin/onevnet +1 -1
- data/lib/cli_helper.rb +4 -1
- data/lib/command_parser.rb +34 -4
- data/lib/one_helper.rb +32 -15
- data/lib/one_helper/oneacct_helper.rb +5 -4
- data/lib/one_helper/oneacl_helper.rb +1 -1
- data/lib/one_helper/onecluster_helper.rb +4 -3
- data/lib/one_helper/onedatastore_helper.rb +3 -2
- data/lib/one_helper/onegroup_helper.rb +15 -17
- data/lib/one_helper/onehost_helper.rb +2 -2
- data/lib/one_helper/oneimage_helper.rb +23 -6
- data/lib/one_helper/onequota_helper.rb +1 -1
- data/lib/one_helper/onetemplate_helper.rb +3 -3
- data/lib/one_helper/oneuser_helper.rb +17 -18
- data/lib/one_helper/onevm_helper.rb +319 -8
- data/lib/one_helper/onevnet_helper.rb +21 -4
- metadata +35 -56
data/bin/onevnet
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
4
|
-
# Copyright 2002-
|
4
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
5
5
|
# #
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
data/lib/cli_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -252,6 +252,9 @@ module CLIHelper
|
|
252
252
|
if @columns[field]
|
253
253
|
minus=( @columns[field][:left] ? "-" : "" )
|
254
254
|
size=@columns[field][:size]
|
255
|
+
if @columns[field][:donottruncate]
|
256
|
+
return "%#{minus}#{size}s" % [ data.to_s ]
|
257
|
+
end
|
255
258
|
return "%#{minus}#{size}.#{size}s" % [ data.to_s ]
|
256
259
|
else
|
257
260
|
exit -1, "Column #{field} not defined."
|
data/lib/command_parser.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -635,14 +635,20 @@ module CommandParser
|
|
635
635
|
end
|
636
636
|
|
637
637
|
def print_option(o)
|
638
|
-
opt_format = "#{' '*5}%-25s
|
638
|
+
opt_format = "#{' '*5}%-25s"
|
639
639
|
|
640
640
|
str = ""
|
641
641
|
str << o[:short].split(' ').first << ', ' if o[:short]
|
642
642
|
str << o[:large]
|
643
643
|
|
644
|
-
|
645
|
-
|
644
|
+
params=sprintf(opt_format, str)
|
645
|
+
|
646
|
+
first_line=80-params.length
|
647
|
+
|
648
|
+
description=word_wrap(80-32, o[:description], first_line).
|
649
|
+
join(("\n"+" "*31))
|
650
|
+
|
651
|
+
puts "#{params} #{description}"
|
646
652
|
end
|
647
653
|
|
648
654
|
def print_commands
|
@@ -707,6 +713,30 @@ module CommandParser
|
|
707
713
|
}
|
708
714
|
end
|
709
715
|
|
716
|
+
def word_wrap(size, text, first_size=nil)
|
717
|
+
output=[]
|
718
|
+
line=""
|
719
|
+
if first_size
|
720
|
+
line_size=first_size
|
721
|
+
else
|
722
|
+
line_size=size
|
723
|
+
end
|
724
|
+
|
725
|
+
text.scan(/[^\s]+/) do |word|
|
726
|
+
if line.length+word.length+1<=line_size
|
727
|
+
line+=" #{word}"
|
728
|
+
else
|
729
|
+
output<<line
|
730
|
+
line=word
|
731
|
+
line_size=size
|
732
|
+
end
|
733
|
+
end
|
734
|
+
|
735
|
+
output<<line
|
736
|
+
output[0].strip!
|
737
|
+
output
|
738
|
+
end
|
739
|
+
|
710
740
|
########################################################################
|
711
741
|
# Default Formatters for arguments
|
712
742
|
########################################################################
|
data/lib/one_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -22,7 +22,7 @@ include OpenNebula
|
|
22
22
|
module OpenNebulaHelper
|
23
23
|
ONE_VERSION=<<-EOT
|
24
24
|
OpenNebula #{OpenNebula::VERSION}
|
25
|
-
Copyright 2002-
|
25
|
+
Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs
|
26
26
|
|
27
27
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
28
28
|
not use this file except in compliance with the License. You may obtain
|
@@ -103,6 +103,7 @@ EOT
|
|
103
103
|
}
|
104
104
|
]
|
105
105
|
|
106
|
+
#NOTE: Other options defined using this array, add new options at the end
|
106
107
|
TEMPLATE_OPTIONS=[
|
107
108
|
{
|
108
109
|
:name => 'cpu',
|
@@ -152,16 +153,16 @@ EOT
|
|
152
153
|
},
|
153
154
|
{
|
154
155
|
:name => 'disk',
|
155
|
-
:large => '--disk
|
156
|
-
:description => "Disks to attach. To use
|
157
|
-
"
|
156
|
+
:large => '--disk image0,image1',
|
157
|
+
:description => "Disks to attach. To use an image owned by"<<
|
158
|
+
" other user use user[disk]",
|
158
159
|
:format => Array
|
159
160
|
},
|
160
161
|
{
|
161
|
-
:name => '
|
162
|
-
:large => '--
|
163
|
-
:description => "Networks to attach. To use a network owned by
|
164
|
-
"
|
162
|
+
:name => 'nic',
|
163
|
+
:large => '--nic network0,network1',
|
164
|
+
:description => "Networks to attach. To use a network owned by"<<
|
165
|
+
" other user use user[network]",
|
165
166
|
:format => Array
|
166
167
|
},
|
167
168
|
{
|
@@ -212,6 +213,8 @@ EOT
|
|
212
213
|
|
213
214
|
TEMPLATE_OPTIONS_VM=[TEMPLATE_NAME_VM]+TEMPLATE_OPTIONS+[DRY]
|
214
215
|
|
216
|
+
CAPACITY_OPTIONS_VM=[TEMPLATE_OPTIONS[0],TEMPLATE_OPTIONS[1],TEMPLATE_OPTIONS[3]]
|
217
|
+
|
215
218
|
OPTIONS = XML, NUMERIC, KILOBYTES
|
216
219
|
|
217
220
|
class OneHelper
|
@@ -315,7 +318,15 @@ EOT
|
|
315
318
|
pool_to_array(pool)
|
316
319
|
}
|
317
320
|
else
|
318
|
-
|
321
|
+
array=pool_to_array(pool)
|
322
|
+
|
323
|
+
if options[:ids]
|
324
|
+
array=array.select do |element|
|
325
|
+
options[:ids].include? element['ID'].to_i
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
table.show(array, options)
|
319
330
|
end
|
320
331
|
|
321
332
|
return 0
|
@@ -331,7 +342,7 @@ EOT
|
|
331
342
|
if options[:xml]
|
332
343
|
return 0, resource.to_xml(true)
|
333
344
|
else
|
334
|
-
format_resource(resource)
|
345
|
+
format_resource(resource, options)
|
335
346
|
return 0
|
336
347
|
end
|
337
348
|
end
|
@@ -569,13 +580,19 @@ EOT
|
|
569
580
|
end
|
570
581
|
end
|
571
582
|
|
572
|
-
def OpenNebulaHelper.time_to_str(time)
|
583
|
+
def OpenNebulaHelper.time_to_str(time, print_seconds=true)
|
573
584
|
value=time.to_i
|
574
585
|
if value==0
|
575
586
|
value='-'
|
576
587
|
else
|
577
|
-
|
588
|
+
if print_seconds
|
589
|
+
value=Time.at(value).strftime("%m/%d %H:%M:%S")
|
590
|
+
else
|
591
|
+
value=Time.at(value).strftime("%m/%d %H:%M")
|
592
|
+
end
|
578
593
|
end
|
594
|
+
|
595
|
+
return value
|
579
596
|
end
|
580
597
|
|
581
598
|
def OpenNebulaHelper.period_to_str(time, print_seconds=true)
|
@@ -623,7 +640,7 @@ EOT
|
|
623
640
|
end
|
624
641
|
end
|
625
642
|
|
626
|
-
def OpenNebulaHelper.update_template(id, resource, path=nil)
|
643
|
+
def OpenNebulaHelper.update_template(id, resource, path=nil, xpath='TEMPLATE')
|
627
644
|
unless path
|
628
645
|
require 'tempfile'
|
629
646
|
|
@@ -637,7 +654,7 @@ EOT
|
|
637
654
|
exit -1
|
638
655
|
end
|
639
656
|
|
640
|
-
tmp << resource.
|
657
|
+
tmp << resource.template_like_str(xpath)
|
641
658
|
tmp.flush
|
642
659
|
|
643
660
|
editor_path = ENV["EDITOR"] ? ENV["EDITOR"] : EDITOR_PATH
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -15,6 +15,7 @@
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
16
16
|
|
17
17
|
require 'one_helper'
|
18
|
+
require 'optparse/time'
|
18
19
|
|
19
20
|
class AcctHelper < OpenNebulaHelper::OneHelper
|
20
21
|
START_TIME = {
|
@@ -22,7 +23,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper
|
|
22
23
|
:short => "-s TIME",
|
23
24
|
:large => "--start TIME" ,
|
24
25
|
:description => "Start date and time to take into account",
|
25
|
-
:format =>
|
26
|
+
:format => Time
|
26
27
|
}
|
27
28
|
|
28
29
|
END_TIME = {
|
@@ -30,7 +31,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper
|
|
30
31
|
:short => "-e TIME",
|
31
32
|
:large => "--end TIME" ,
|
32
33
|
:description => "End date and time",
|
33
|
-
:format =>
|
34
|
+
:format => Time
|
34
35
|
}
|
35
36
|
|
36
37
|
USERFILTER = {
|
@@ -144,7 +145,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper
|
|
144
145
|
default :VID, :HOSTNAME, :REASON, :START_TIME, :END_TIME, :MEMORY, :CPU, :NET_RX, :NET_TX
|
145
146
|
end
|
146
147
|
|
147
|
-
def self.
|
148
|
+
def self.print_start_end_time_header(start_time, end_time)
|
148
149
|
print "Showing active history records from "
|
149
150
|
|
150
151
|
CLIHelper.scr_bold
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -95,13 +95,14 @@ class OneClusterHelper < OpenNebulaHelper::OneHelper
|
|
95
95
|
OpenNebula::ClusterPool.new(@client)
|
96
96
|
end
|
97
97
|
|
98
|
-
def format_resource(cluster)
|
99
|
-
str="%-
|
98
|
+
def format_resource(cluster, options = {})
|
99
|
+
str="%-18s: %-20s"
|
100
100
|
str_h1="%-80s"
|
101
101
|
|
102
102
|
CLIHelper.print_header(str_h1 % "CLUSTER #{cluster['ID']} INFORMATION")
|
103
103
|
puts str % ["ID", cluster.id.to_s]
|
104
104
|
puts str % ["NAME", cluster.name]
|
105
|
+
puts str % ["SYSTEM DS", cluster['SYSTEM_DS']]
|
105
106
|
puts
|
106
107
|
|
107
108
|
CLIHelper.print_header(str_h1 % "CLUSTER TEMPLATE", false)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -95,7 +95,7 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper
|
|
95
95
|
OpenNebula::DatastorePool.new(@client)
|
96
96
|
end
|
97
97
|
|
98
|
-
def format_resource(datastore)
|
98
|
+
def format_resource(datastore, options = {})
|
99
99
|
str="%-15s: %-20s"
|
100
100
|
str_h1="%-80s"
|
101
101
|
|
@@ -110,6 +110,7 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper
|
|
110
110
|
puts str % ["DS_MAD", datastore['DS_MAD']]
|
111
111
|
puts str % ["TM_MAD", datastore['TM_MAD']]
|
112
112
|
puts str % ["BASE PATH",datastore['BASE_PATH']]
|
113
|
+
puts str % ["DISK_TYPE",Image::DISK_TYPES[datastore['DISK_TYPE'].to_i]]
|
113
114
|
puts
|
114
115
|
|
115
116
|
CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -48,12 +48,8 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
48
48
|
def format_pool(options)
|
49
49
|
config_file = self.class.table_conf
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
if OpenNebula::is_error?(default_quotas)
|
55
|
-
raise "Error retrieving the default group quotas: #{default_quotas.message}"
|
56
|
-
end
|
51
|
+
prefix = '/GROUP_POOL/DEFAULT_GROUP_QUOTAS/'
|
52
|
+
group_pool = @group_pool
|
57
53
|
|
58
54
|
table = CLIHelper::ShowTable.new(config_file, self) do
|
59
55
|
column :ID, "ONE identifier for the Group", :size=>4 do |d|
|
@@ -77,7 +73,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
77
73
|
limit = d['VM_QUOTA']['VM']["VMS"]
|
78
74
|
|
79
75
|
if limit == "-1"
|
80
|
-
limit =
|
76
|
+
limit = group_pool["#{prefix}VM_QUOTA/VM/VMS"]
|
81
77
|
limit = "0" if limit.nil? || limit == ""
|
82
78
|
end
|
83
79
|
|
@@ -92,7 +88,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
92
88
|
limit = d['VM_QUOTA']['VM']["MEMORY"]
|
93
89
|
|
94
90
|
if limit == "-1"
|
95
|
-
limit =
|
91
|
+
limit = group_pool["#{prefix}VM_QUOTA/VM/MEMORY"]
|
96
92
|
limit = "0" if limit.nil? || limit == ""
|
97
93
|
end
|
98
94
|
|
@@ -109,7 +105,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
109
105
|
limit = d['VM_QUOTA']['VM']["CPU"]
|
110
106
|
|
111
107
|
if limit == "-1"
|
112
|
-
limit =
|
108
|
+
limit = group_pool["#{prefix}VM_QUOTA/VM/CPU"]
|
113
109
|
limit = "0" if limit.nil? || limit == ""
|
114
110
|
end
|
115
111
|
|
@@ -138,16 +134,12 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
138
134
|
|
139
135
|
def factory_pool(user_flag=-2)
|
140
136
|
#TBD OpenNebula::UserPool.new(@client, user_flag)
|
141
|
-
OpenNebula::GroupPool.new(@client)
|
137
|
+
@group_pool = OpenNebula::GroupPool.new(@client)
|
138
|
+
return @group_pool
|
142
139
|
end
|
143
140
|
|
144
|
-
def format_resource(group)
|
141
|
+
def format_resource(group, options = {})
|
145
142
|
system = System.new(@client)
|
146
|
-
default_quotas = system.get_group_quotas()
|
147
|
-
|
148
|
-
if OpenNebula::is_error?(default_quotas)
|
149
|
-
raise "Error retrieving the default group quotas: #{default_quotas.message}"
|
150
|
-
end
|
151
143
|
|
152
144
|
str="%-15s: %-20s"
|
153
145
|
str_h1="%-80s"
|
@@ -165,6 +157,12 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
165
157
|
|
166
158
|
group_hash = group.to_hash
|
167
159
|
|
160
|
+
default_quotas = nil
|
161
|
+
|
162
|
+
group.each('/GROUP/DEFAULT_GROUP_QUOTAS') { |elem|
|
163
|
+
default_quotas = elem
|
164
|
+
}
|
165
|
+
|
168
166
|
helper = OneQuotaHelper.new
|
169
167
|
helper.format_quota(group_hash['GROUP'], default_quotas)
|
170
168
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -162,7 +162,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
|
|
162
162
|
OpenNebula::HostPool.new(@client)
|
163
163
|
end
|
164
164
|
|
165
|
-
def format_resource(host)
|
165
|
+
def format_resource(host, options = {})
|
166
166
|
str = "%-22s: %-20s"
|
167
167
|
str_h1 = "%-80s"
|
168
168
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
|
3
3
|
# #
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
5
|
# not use this file except in compliance with the License. You may obtain #
|
@@ -15,6 +15,7 @@
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
16
16
|
|
17
17
|
require 'one_helper'
|
18
|
+
require 'one_helper/onevm_helper'
|
18
19
|
|
19
20
|
class OneImageHelper < OpenNebulaHelper::OneHelper
|
20
21
|
TEMPLATE_OPTIONS=[
|
@@ -101,14 +102,14 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
101
102
|
{
|
102
103
|
:name => "disk_type",
|
103
104
|
:large => "--disk_type disk_type",
|
104
|
-
:description => "Type of the image (BLOCK, CDROM or FILE)",
|
105
|
+
:description => "Type of the image (BLOCK, CDROM, RBD or FILE)",
|
105
106
|
:format => String,
|
106
107
|
:proc => lambda do |o, options|
|
107
108
|
type=o.strip.upcase
|
108
|
-
if %w{BLOCK CDROM FILE}.include? type
|
109
|
+
if %w{BLOCK CDROM FILE RBD}.include? type
|
109
110
|
[0, type]
|
110
111
|
else
|
111
|
-
[-1, "Disk type must be BLOCK, CDROM or FILE"]
|
112
|
+
[-1, "Disk type must be BLOCK, CDROM, RBD or FILE"]
|
112
113
|
end
|
113
114
|
end
|
114
115
|
},
|
@@ -261,7 +262,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
261
262
|
OpenNebula::ImagePool.new(@client, user_flag)
|
262
263
|
end
|
263
264
|
|
264
|
-
def format_resource(image)
|
265
|
+
def format_resource(image, options = {})
|
265
266
|
str="%-15s: %-20s"
|
266
267
|
str_h1="%-80s"
|
267
268
|
|
@@ -298,6 +299,19 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
298
299
|
|
299
300
|
CLIHelper.print_header(str_h1 % "IMAGE TEMPLATE",false)
|
300
301
|
puts image.template_str
|
302
|
+
|
303
|
+
puts
|
304
|
+
CLIHelper.print_header("VIRTUAL MACHINES", false)
|
305
|
+
puts
|
306
|
+
|
307
|
+
vms=image.retrieve_elements("VMS/ID")
|
308
|
+
|
309
|
+
if vms
|
310
|
+
vms.map!{|e| e.to_i }
|
311
|
+
onevm_helper=OneVMHelper.new
|
312
|
+
onevm_helper.client=@client
|
313
|
+
onevm_helper.list_pool({:ids=>vms}, false)
|
314
|
+
end
|
301
315
|
end
|
302
316
|
|
303
317
|
def self.create_image_variables(options, name)
|
@@ -323,9 +337,12 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
323
337
|
end
|
324
338
|
|
325
339
|
template=create_image_variables(
|
326
|
-
options, template_options-[:persistent, :dry])
|
340
|
+
options, template_options-[:persistent, :dry, :prefix])
|
327
341
|
|
328
342
|
template<<"PERSISTENT=YES\n" if options[:persistent]
|
343
|
+
if options[:prefix]
|
344
|
+
template<<"DEV_PREFIX=\"#{options[:prefix]}\"\n"
|
345
|
+
end
|
329
346
|
|
330
347
|
[0, template]
|
331
348
|
end
|