opennebula-cli 5.7.85.pre → 5.7.90.pre
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.
- checksums.yaml +4 -4
- data/lib/one_helper/onedatastore_helper.rb +4 -4
- data/lib/one_helper/onehost_helper.rb +6 -2
- data/lib/one_helper/oneprovision_helper.rb +258 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 140ee7b9d1fe1f1f0398855476b9725fa3504d83
|
4
|
+
data.tar.gz: f8e03bfed912972e084abcc72d133474b8aedc52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b838c7dbba2a7edc7277630fa870ab72fc9fa140b8e6378cb62afe6c4a1984f95f0679d7560c961216e24b274f6ebb6323c84e79bc5b7862b093055a7467a36e
|
7
|
+
data.tar.gz: c81ef184f9e28f34f1c1e86dfb621edcbfa41d6e2d3044759cdbac5f5c08b38feacd91a202a58a4b453c111da966b10868a8422ef19a3aae0f33c22645b8a251
|
@@ -88,8 +88,8 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper
|
|
88
88
|
end
|
89
89
|
|
90
90
|
column :TYPE, "Datastore type", :left, :size=>4 do |d|
|
91
|
-
type = Datastore::DATASTORE_TYPES[d["TYPE"].to_i]
|
92
|
-
Datastore::SHORT_DATASTORE_TYPES[type]
|
91
|
+
type = OpenNebula::Datastore::DATASTORE_TYPES[d["TYPE"].to_i]
|
92
|
+
OpenNebula::Datastore::SHORT_DATASTORE_TYPES[type]
|
93
93
|
end
|
94
94
|
|
95
95
|
column :DS, "Datastore driver", :left, :size=>7 do |d|
|
@@ -101,8 +101,8 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper
|
|
101
101
|
end
|
102
102
|
|
103
103
|
column :STAT, "State of the Datastore", :left, :size=>3 do |d|
|
104
|
-
state = Datastore::DATASTORE_STATES[d["STATE"].to_i]
|
105
|
-
Datastore::SHORT_DATASTORE_STATES[state]
|
104
|
+
state = OpenNebula::Datastore::DATASTORE_STATES[d["STATE"].to_i]
|
105
|
+
OpenNebula::Datastore::SHORT_DATASTORE_STATES[state]
|
106
106
|
end
|
107
107
|
|
108
108
|
default :ID, :USER, :GROUP, :NAME, :SIZE, :AVAIL, :CLUSTERS, :IMAGES,
|
@@ -24,7 +24,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
|
|
24
24
|
TEMPLATE_XPATH = '//HOST/TEMPLATE'
|
25
25
|
HYBRID = {
|
26
26
|
:ec2 => {
|
27
|
-
:help => <<-EOT.unindent
|
27
|
+
:help => <<-EOT.unindent
|
28
28
|
#-----------------------------------------------------------------------
|
29
29
|
# Supported EC2 AUTH ATTRIBUTTES:
|
30
30
|
#
|
@@ -46,7 +46,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
|
|
46
46
|
EOT
|
47
47
|
},
|
48
48
|
:az => {
|
49
|
-
:help => <<-EOT.unindent
|
49
|
+
:help => <<-EOT.unindent
|
50
50
|
#-----------------------------------------------------------------------
|
51
51
|
# Supported AZURE AUTH ATTRIBUTTES:
|
52
52
|
#
|
@@ -212,6 +212,10 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
|
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
215
|
+
column :PROVIDER, 'Host provider', :left, :size => 6 do |d|
|
216
|
+
d['TEMPLATE']['PM_MAD'].nil? ? '-' : d['TEMPLATE']['PM_MAD']
|
217
|
+
end
|
218
|
+
|
215
219
|
column :STAT, 'Host status', :left, :size => 6 do |d|
|
216
220
|
OneHostHelper.state_to_str(d['STATE'])
|
217
221
|
end
|
@@ -0,0 +1,258 @@
|
|
1
|
+
# -------------------------------------------------------------------------- #
|
2
|
+
# Copyright 2002-2019, OpenNebula Project, OpenNebula Systems #
|
3
|
+
# #
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
5
|
+
# not use this file except in compliance with the License. You may obtain #
|
6
|
+
# a copy of the License at #
|
7
|
+
# #
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0 #
|
9
|
+
# #
|
10
|
+
# Unless required by applicable law or agreed to in writing, software #
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, #
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
|
13
|
+
# See the License for the specific language governing permissions and #
|
14
|
+
# limitations under the License. #
|
15
|
+
#--------------------------------------------------------------------------- #
|
16
|
+
|
17
|
+
require 'securerandom'
|
18
|
+
|
19
|
+
# OneProvision Helper
|
20
|
+
class OneProvisionHelper < OpenNebulaHelper::OneHelper
|
21
|
+
|
22
|
+
def self.rname
|
23
|
+
'PROVISION'
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.conf_file
|
27
|
+
'oneprovision.yaml'
|
28
|
+
end
|
29
|
+
|
30
|
+
def parse_options(options)
|
31
|
+
OneProvision::OneProvisionLogger.get_logger(options)
|
32
|
+
OneProvision::Mode.get_run_mode(options)
|
33
|
+
OneProvision::Options.get_run_options(options)
|
34
|
+
end
|
35
|
+
|
36
|
+
def format_pool
|
37
|
+
config_file = self.class.table_conf
|
38
|
+
|
39
|
+
table = CLIHelper::ShowTable.new(config_file, self) do
|
40
|
+
column :ID, 'Identifier for the Provision', :size => 36 do |p|
|
41
|
+
p['ID']
|
42
|
+
end
|
43
|
+
|
44
|
+
column :NAME, 'Name of the Provision', :left, :size => 25 do |p|
|
45
|
+
p['NAME']
|
46
|
+
end
|
47
|
+
|
48
|
+
column :CLUSTERS, 'Number of Clusters', :size => 8 do |p|
|
49
|
+
p['CLUSTERS']['ID'].size
|
50
|
+
end
|
51
|
+
|
52
|
+
column :HOSTS, 'Number of Hosts', :size => 5 do |p|
|
53
|
+
p['HOSTS']['ID'].size
|
54
|
+
end
|
55
|
+
|
56
|
+
column :VNETS, 'Number of Networks', :size => 5 do |p|
|
57
|
+
p['VNETS']['ID'].size
|
58
|
+
end
|
59
|
+
|
60
|
+
column :DATASTORES, 'Number of Datastores', :size => 10 do |p|
|
61
|
+
p['DATASTORES']['ID'].size
|
62
|
+
end
|
63
|
+
|
64
|
+
column :STAT, 'Status of the Provision', :left, :size => 15 do |p|
|
65
|
+
p['STATUS']
|
66
|
+
end
|
67
|
+
|
68
|
+
default :ID, :NAME, :CLUSTERS, :HOSTS, :VNETS, :DATASTORES, :STAT
|
69
|
+
end
|
70
|
+
|
71
|
+
table
|
72
|
+
end
|
73
|
+
|
74
|
+
#######################################################################
|
75
|
+
# Helper provision functions
|
76
|
+
#######################################################################
|
77
|
+
|
78
|
+
def create(config)
|
79
|
+
msg = 'OpenNebula is not running'
|
80
|
+
|
81
|
+
OneProvision::Utils.fail(msg) if OneProvision::Utils.one_running?
|
82
|
+
|
83
|
+
provision = OneProvision::Provision.new(SecureRandom.uuid)
|
84
|
+
|
85
|
+
provision.create(config)
|
86
|
+
end
|
87
|
+
|
88
|
+
def configure(provision_id, options)
|
89
|
+
provision = OneProvision::Provision.new(provision_id)
|
90
|
+
|
91
|
+
provision.refresh
|
92
|
+
|
93
|
+
provision.configure((options.key? :force))
|
94
|
+
end
|
95
|
+
|
96
|
+
def delete(provision_id)
|
97
|
+
provision = OneProvision::Provision.new(provision_id)
|
98
|
+
|
99
|
+
provision.refresh
|
100
|
+
|
101
|
+
provision.delete
|
102
|
+
end
|
103
|
+
|
104
|
+
#######################################################################
|
105
|
+
# Helper host functions
|
106
|
+
#######################################################################
|
107
|
+
|
108
|
+
def hosts_operation(hosts, operation, options)
|
109
|
+
parse_options(options)
|
110
|
+
|
111
|
+
host_helper = OneHostHelper.new
|
112
|
+
host_helper.set_client(options)
|
113
|
+
host_helper.perform_actions(hosts,
|
114
|
+
options,
|
115
|
+
operation[:message]) do |host|
|
116
|
+
host = OneProvision::Host.new(host['ID'])
|
117
|
+
|
118
|
+
case operation[:operation]
|
119
|
+
when 'resume'
|
120
|
+
host.resume
|
121
|
+
when 'poweroff'
|
122
|
+
host.poweroff
|
123
|
+
when 'reboot'
|
124
|
+
host.reboot((options.key? :hard))
|
125
|
+
when 'delete'
|
126
|
+
host.delete
|
127
|
+
when 'configure'
|
128
|
+
host.configure((options.key? :force))
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
#######################################################################
|
134
|
+
# Utils functions
|
135
|
+
#######################################################################
|
136
|
+
|
137
|
+
def provision_ids
|
138
|
+
clusters = OneProvision::Cluster.new.pool
|
139
|
+
rc = clusters.info
|
140
|
+
|
141
|
+
if OpenNebula.is_error?(rc)
|
142
|
+
OneProvision::Utils.fail(rc.message)
|
143
|
+
end
|
144
|
+
|
145
|
+
clusters = clusters.reject do |x|
|
146
|
+
x['TEMPLATE/PROVISION/PROVISION_ID'].nil?
|
147
|
+
end
|
148
|
+
|
149
|
+
clusters = clusters.uniq do |x|
|
150
|
+
x['TEMPLATE/PROVISION/PROVISION_ID']
|
151
|
+
end
|
152
|
+
|
153
|
+
ids = []
|
154
|
+
|
155
|
+
clusters.each {|c| ids << c['TEMPLATE/PROVISION/PROVISION_ID'] }
|
156
|
+
|
157
|
+
ids
|
158
|
+
end
|
159
|
+
|
160
|
+
def get_list(columns, provision_list)
|
161
|
+
ret = []
|
162
|
+
ids = provision_ids
|
163
|
+
|
164
|
+
ids.each do |i|
|
165
|
+
provision = OneProvision::Provision.new(i)
|
166
|
+
provision.refresh
|
167
|
+
|
168
|
+
element = {}
|
169
|
+
|
170
|
+
element['ID'] = i if provision_list
|
171
|
+
element['ID'] = provision.clusters[0]['ID'] unless provision_list
|
172
|
+
|
173
|
+
element['NAME'] = provision.name
|
174
|
+
element['STATUS'] = provision.status
|
175
|
+
|
176
|
+
columns.each do |c|
|
177
|
+
element[c.to_s.upcase] = { 'ID' => [] }
|
178
|
+
|
179
|
+
provision.instance_variable_get("@#{c}").each do |v|
|
180
|
+
element[c.to_s.upcase]['ID'] << v['ID']
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
ret << element
|
185
|
+
end
|
186
|
+
|
187
|
+
ret
|
188
|
+
end
|
189
|
+
|
190
|
+
def list(options)
|
191
|
+
columns = %w[clusters hosts vnets datastores]
|
192
|
+
|
193
|
+
format_pool.show(get_list(columns, true), options)
|
194
|
+
|
195
|
+
0
|
196
|
+
end
|
197
|
+
|
198
|
+
def show(provision_id)
|
199
|
+
provision = OneProvision::Provision.new(provision_id)
|
200
|
+
|
201
|
+
provision.refresh
|
202
|
+
|
203
|
+
OneProvision::Utils.fail('Provision not found.') unless provision.exists
|
204
|
+
|
205
|
+
ret = {}
|
206
|
+
ret['id'] = provision_id
|
207
|
+
ret['name'] = provision.name
|
208
|
+
ret['status'] = provision.status
|
209
|
+
|
210
|
+
%w[clusters datastores hosts vnets].each do |r|
|
211
|
+
ret["@#{r}_ids"] = []
|
212
|
+
|
213
|
+
provision.instance_variable_get("@#{r}").each do |x|
|
214
|
+
ret["@#{r}_ids"] << (x['ID'])
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
format_resource(ret)
|
219
|
+
|
220
|
+
0
|
221
|
+
end
|
222
|
+
|
223
|
+
def format_resource(provision)
|
224
|
+
str_h1 = '%-80s'
|
225
|
+
status = provision['status']
|
226
|
+
id = provision['id']
|
227
|
+
|
228
|
+
CLIHelper.print_header(str_h1 % "PROVISION #{id} INFORMATION")
|
229
|
+
puts format('ID : %<s>s', :s => id)
|
230
|
+
puts format('NAME : %<s>s', :s => provision['name'])
|
231
|
+
puts format('STATUS : %<s>s', :s => CLIHelper.color_state(status))
|
232
|
+
|
233
|
+
puts
|
234
|
+
CLIHelper.print_header(format('%<s>s', :s => 'CLUSTERS'))
|
235
|
+
provision['@clusters_ids'].each do |i|
|
236
|
+
puts format('%<s>s', :s => i)
|
237
|
+
end
|
238
|
+
|
239
|
+
puts
|
240
|
+
CLIHelper.print_header(format('%<s>s', :s => 'HOSTS'))
|
241
|
+
provision['@hosts_ids'].each do |i|
|
242
|
+
puts format('%<s>s', :s => i)
|
243
|
+
end
|
244
|
+
|
245
|
+
puts
|
246
|
+
CLIHelper.print_header(format('%<s>s', :s => 'VNETS'))
|
247
|
+
provision['@vnets_ids'].each do |i|
|
248
|
+
puts format('%<s>s', :s => i)
|
249
|
+
end
|
250
|
+
|
251
|
+
puts
|
252
|
+
CLIHelper.print_header(format('%<s>s', :s => 'DATASTORES'))
|
253
|
+
provision['@datastores_ids'].each do |i|
|
254
|
+
puts format('%<s>s', :s => i)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opennebula-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.7.
|
4
|
+
version: 5.7.90.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenNebula
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opennebula
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.7.
|
19
|
+
version: 5.7.90.pre
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5.7.
|
26
|
+
version: 5.7.90.pre
|
27
27
|
description: Commands used to talk to OpenNebula
|
28
28
|
email: contact@opennebula.org
|
29
29
|
executables:
|
@@ -88,6 +88,7 @@ files:
|
|
88
88
|
- lib/one_helper/oneimage_helper.rb
|
89
89
|
- lib/one_helper/onemarket_helper.rb
|
90
90
|
- lib/one_helper/onemarketapp_helper.rb
|
91
|
+
- lib/one_helper/oneprovision_helper.rb
|
91
92
|
- lib/one_helper/onequota_helper.rb
|
92
93
|
- lib/one_helper/onesecgroup_helper.rb
|
93
94
|
- lib/one_helper/onetemplate_helper.rb
|