opennebula-cli 5.4.15 → 5.5.80.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/NOTICE +1 -1
  3. data/bin/oneacct +3 -3
  4. data/bin/oneacl +2 -2
  5. data/bin/onecluster +1 -1
  6. data/bin/onedatastore +1 -1
  7. data/bin/oneflow +1 -1
  8. data/bin/oneflow-template +1 -1
  9. data/bin/onegroup +1 -1
  10. data/bin/onehost +1 -1
  11. data/bin/oneimage +64 -1
  12. data/bin/onemarket +1 -1
  13. data/bin/onemarketapp +65 -2
  14. data/bin/onesecgroup +1 -1
  15. data/bin/oneshowback +2 -2
  16. data/bin/onetemplate +66 -3
  17. data/bin/oneuser +3 -3
  18. data/bin/onevcenter +95 -86
  19. data/bin/onevdc +1 -1
  20. data/bin/onevm +75 -11
  21. data/bin/onevmgroup +64 -1
  22. data/bin/onevnet +64 -1
  23. data/bin/onevrouter +64 -1
  24. data/bin/onezone +1 -1
  25. data/lib/cli_helper.rb +1 -1
  26. data/lib/command_parser.rb +9 -1
  27. data/lib/one_helper/oneacct_helper.rb +22 -18
  28. data/lib/one_helper/oneacl_helper.rb +1 -1
  29. data/lib/one_helper/onecluster_helper.rb +1 -1
  30. data/lib/one_helper/onedatastore_helper.rb +1 -1
  31. data/lib/one_helper/onegroup_helper.rb +1 -1
  32. data/lib/one_helper/onehost_helper.rb +32 -6
  33. data/lib/one_helper/oneimage_helper.rb +2 -1
  34. data/lib/one_helper/onemarket_helper.rb +1 -1
  35. data/lib/one_helper/onemarketapp_helper.rb +2 -1
  36. data/lib/one_helper/onequota_helper.rb +1 -1
  37. data/lib/one_helper/onesecgroup_helper.rb +1 -1
  38. data/lib/one_helper/onetemplate_helper.rb +2 -1
  39. data/lib/one_helper/oneuser_helper.rb +13 -1
  40. data/lib/one_helper/onevcenter_helper.rb +425 -0
  41. data/lib/one_helper/onevdc_helper.rb +5 -5
  42. data/lib/one_helper/onevm_helper.rb +100 -2
  43. data/lib/one_helper/onevmgroup_helper.rb +14 -9
  44. data/lib/one_helper/onevnet_helper.rb +7 -3
  45. data/lib/one_helper/onevrouter_helper.rb +2 -1
  46. data/lib/one_helper/onezone_helper.rb +22 -39
  47. data/lib/one_helper.rb +64 -8
  48. metadata +7 -6
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2017, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2018, OpenNebula Project, OpenNebula Systems #
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 #
@@ -109,6 +109,7 @@ class OneVirtualRouterHelper < OpenNebulaHelper::OneHelper
109
109
  puts str % ["NAME", obj.name]
110
110
  puts str % ["USER", obj['UNAME']]
111
111
  puts str % ["GROUP", obj['GNAME']]
112
+ puts str % ["LOCK", OpenNebulaHelper.level_lock_to_str(obj['LOCK/LOCKED'])]
112
113
  puts
113
114
 
114
115
  CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2017, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2018, OpenNebula Project, OpenNebula Systems #
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 #
@@ -34,6 +34,20 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
34
34
  :description => "Zone server RPC endpoint"
35
35
  }
36
36
 
37
+ def show_resource(id, options)
38
+ resource = retrieve_resource(id)
39
+
40
+ rc = resource.info_extended
41
+ return -1, rc.message if OpenNebula.is_error?(rc)
42
+
43
+ if options[:xml]
44
+ return 0, resource.to_xml(true)
45
+ else
46
+ format_resource(resource, options)
47
+ return 0
48
+ end
49
+ end
50
+
37
51
  def self.rname
38
52
  "ZONE"
39
53
  end
@@ -117,44 +131,6 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
117
131
  zone_hash=zone.to_hash
118
132
 
119
133
  if zone.has_elements?("/ZONE/SERVER_POOL/SERVER")
120
- servers = zone_hash["ZONE"]["SERVER_POOL"]["SERVER"]
121
-
122
- [servers].flatten.each { |s|
123
- endpoint = s["ENDPOINT"]
124
-
125
- next if endpoint.nil?
126
-
127
- options[:timeout] = 5 #5 sec
128
- client = OpenNebula::Client.new(nil, endpoint, options)
129
-
130
- xml_doc = client.call("zone.raftstatus")
131
-
132
- if OpenNebula::is_error?(xml_doc)
133
- s["STATE"] = "error"
134
- s["TERM"] = "-"
135
- s["VOTEDFOR"] = "-"
136
- s["COMMIT" ] = "-"
137
- s["LOG_INDEX"] = "-"
138
-
139
- next
140
- end
141
-
142
- xml_doc = Nokogiri::XML(xml_doc)
143
-
144
- s["STATE"] = case xml_doc.root.at_xpath("STATE").text
145
- when "0" then "solo"
146
- when "1" then "candidate"
147
- when "2" then "follower"
148
- when "3" then "leader"
149
- else "-"
150
- end
151
- s["TERM"] = xml_doc.root.at_xpath("TERM").text
152
- s["VOTEDFOR"] = xml_doc.root.at_xpath("VOTEDFOR").text
153
- s["COMMIT"] = xml_doc.root.at_xpath("COMMIT").text
154
-
155
- s["LOG_INDEX"] = xml_doc.root.at_xpath("LOG_INDEX").text
156
- s["FEDLOG_INDEX"] = xml_doc.root.at_xpath("FEDLOG_INDEX").text
157
- }
158
134
 
159
135
  puts
160
136
  CLIHelper.print_header(str_h1 % "ZONE SERVERS",false)
@@ -188,6 +164,13 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
188
164
  end
189
165
 
190
166
  column :"STATE", "", :left, :size=>10 do |d|
167
+ d["STATE"] = case d["STATE"]
168
+ when "0" then "solo"
169
+ when "1" then "candidate"
170
+ when "2" then "follower"
171
+ when "3" then "leader"
172
+ else "error"
173
+ end
191
174
  d["STATE"] if !d.nil?
192
175
  end
193
176
 
data/lib/one_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2017, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2018, OpenNebula Project, OpenNebula Systems #
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 #
@@ -28,7 +28,7 @@ include OpenNebula
28
28
  module OpenNebulaHelper
29
29
  ONE_VERSION=<<-EOT
30
30
  OpenNebula #{OpenNebula::VERSION}
31
- Copyright 2002-2017, OpenNebula Project, OpenNebula Systems
31
+ Copyright 2002-2018, OpenNebula Project, OpenNebula Systems
32
32
 
33
33
  Licensed under the Apache License, Version 2.0 (the "License"); you may
34
34
  not use this file except in compliance with the License. You may obtain
@@ -38,9 +38,11 @@ EOT
38
38
  if ONE_LOCATION
39
39
  TABLE_CONF_PATH=ONE_LOCATION+"/etc/cli"
40
40
  VAR_LOCATION=ONE_LOCATION+"/var" if !defined?(VAR_LOCATION)
41
+ CLI_ADDONS_LOCATION=ONE_LOCATION+"/lib/ruby/cli/addons"
41
42
  else
42
43
  TABLE_CONF_PATH="/etc/one/cli"
43
44
  VAR_LOCATION="/var/lib/one" if !defined?(VAR_LOCATION)
45
+ CLI_ADDONS_LOCATION="/usr/lib/one/ruby/cli/addons"
44
46
  end
45
47
 
46
48
  EDITOR_PATH='/usr/bin/vi'
@@ -361,6 +363,18 @@ EOT
361
363
  :format => String,
362
364
  :description => "In a vCenter environment sets the the VMs and Template folder where the VM will be placed in." \
363
365
  " The path uses slashes to separate folders. For example: --vcenter_vm_folder \"/Management/VMs\""
366
+ },
367
+ {
368
+ :name => 'as_uid',
369
+ :large => '--as_uid uid',
370
+ :format => Integer,
371
+ :description => 'The User ID to instantiate the VM'
372
+ },
373
+ {
374
+ :name => 'as_gid',
375
+ :large => '--as_gid gid',
376
+ :format => Integer,
377
+ :description => 'The Group ID to instantiate the VM'
364
378
  }
365
379
  ]
366
380
 
@@ -745,8 +759,12 @@ EOT
745
759
 
746
760
  rc = pool.info
747
761
  if OpenNebula.is_error?(rc)
748
- return -1, "OpenNebula #{self.class.rname} name not " <<
762
+ if rc.message.empty?
763
+ return -1, "OpenNebula #{self.class.rname} name not " <<
749
764
  "found, use the ID instead"
765
+ else
766
+ return -1,rc.message
767
+ end
750
768
  end
751
769
 
752
770
  return 0, pool
@@ -782,13 +800,15 @@ EOT
782
800
  end
783
801
 
784
802
  def OpenNebulaHelper.size_in_mb(size)
785
- m = size.match(/^(\d+(?:\.\d+)?)(m|mb|g|gb)?$/i)
803
+ m = size.match(/^(\d+(?:\.\d+)?)(t|tb|m|mb|g|gb)?$/i)
786
804
 
787
805
  if !m
788
806
  # return OpenNebula::Error.new('Size value malformed')
789
807
  return -1, 'Size value malformed'
790
808
  else
791
809
  multiplier=case m[2]
810
+ when /(t|tb)/i
811
+ 1024*1024
792
812
  when /(g|gb)/i
793
813
  1024
794
814
  else
@@ -814,15 +834,31 @@ EOT
814
834
  end
815
835
  end
816
836
 
817
- def OpenNebulaHelper.time_to_str(time, print_seconds=true)
837
+ def OpenNebulaHelper.time_to_str(time, print_seconds=true, print_hours=true, print_years=false)
818
838
  value=time.to_i
819
839
  if value==0
820
840
  value='-'
821
841
  else
822
- if print_seconds
823
- value=Time.at(value).strftime("%m/%d %H:%M:%S")
842
+ if print_hours
843
+ if print_seconds
844
+ if print_years
845
+ value=Time.at(value).strftime("%m/%d/%y %H:%M:%S")
846
+ else
847
+ value=Time.at(value).strftime("%m/%d %H:%M:%S")
848
+ end
849
+ else
850
+ if print_years
851
+ value=Time.at(value).strftime("%m/%d/%y %H:%M")
852
+ else
853
+ value=Time.at(value).strftime("%m/%d %H:%M")
854
+ end
855
+ end
824
856
  else
825
- value=Time.at(value).strftime("%m/%d %H:%M")
857
+ if print_years
858
+ value=Time.at(value).strftime("%m/%d/%y")
859
+ else
860
+ value=Time.at(value).strftime("%m/%d")
861
+ end
826
862
  end
827
863
  end
828
864
 
@@ -1098,6 +1134,9 @@ EOT
1098
1134
  template<<"MEMORY=#{options[:memory]}\n" if options[:memory]
1099
1135
  template<<"#{options[:raw]}\n" if options[:raw]
1100
1136
 
1137
+ template<<"AS_UID=#{options[:as_uid]}\n" if options[:as_uid]
1138
+ template<<"AS_GID=#{options[:as_gid]}\n" if options[:as_gid]
1139
+
1101
1140
  if options[:disk]
1102
1141
  res=create_disk_net(options[:disk], 'DISK', 'IMAGE')
1103
1142
  return res if res.first!=0
@@ -1267,4 +1306,21 @@ EOT
1267
1306
  return OpenNebula::Error.new("Remote server error: #{error_message}")
1268
1307
  end
1269
1308
  end
1309
+
1310
+ def OpenNebulaHelper.level_lock_to_str(str)
1311
+ level = str.to_i
1312
+ if level == 0
1313
+ "None"
1314
+ elsif level == 1
1315
+ "Use"
1316
+ elsif level == 2
1317
+ "Manage"
1318
+ elsif level == 3
1319
+ "Admin"
1320
+ elsif level == 4
1321
+ "All"
1322
+ else
1323
+ "-"
1324
+ end
1325
+ end
1270
1326
  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.4.15
4
+ version: 5.5.80.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenNebula
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-18 00:00:00.000000000 Z
11
+ date: 2018-06-03 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.4.15
19
+ version: 5.5.80.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.4.15
26
+ version: 5.5.80.pre
27
27
  description: Commands used to talk to OpenNebula
28
28
  email: contact@opennebula.org
29
29
  executables:
@@ -90,6 +90,7 @@ files:
90
90
  - lib/one_helper/onesecgroup_helper.rb
91
91
  - lib/one_helper/onetemplate_helper.rb
92
92
  - lib/one_helper/oneuser_helper.rb
93
+ - lib/one_helper/onevcenter_helper.rb
93
94
  - lib/one_helper/onevdc_helper.rb
94
95
  - lib/one_helper/onevm_helper.rb
95
96
  - lib/one_helper/onevmgroup_helper.rb
@@ -113,9 +114,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
114
  version: '0'
114
115
  required_rubygems_version: !ruby/object:Gem::Requirement
115
116
  requirements:
116
- - - '>='
117
+ - - '>'
117
118
  - !ruby/object:Gem::Version
118
- version: '0'
119
+ version: 1.3.1
119
120
  requirements: []
120
121
  rubyforge_project:
121
122
  rubygems_version: 2.0.14.1