opennebula-cli 3.9.0.beta → 3.9.80.beta
Sign up to get free protection for your applications and to get access to all the features.
- 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
|