opennebula-cli 4.14.0 → 4.14.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f021e0f83f6580d56e6587d61c28fa12898a45e1
4
- data.tar.gz: e21a399eed3bf9d059b9c3444db074a9a1e9766b
3
+ metadata.gz: 8c8b0d34aa27f09011a52b0ac589242fdbc8c497
4
+ data.tar.gz: e798b9a08d35fa05ebf9637a35fa0ccfff817be2
5
5
  SHA512:
6
- metadata.gz: df381c3007c1dec4232f22bbe3cbac85b0f18791a0d554bdc4d76c9dee5b0da3981531cbf4a97098bf83a208b7157891fb0f630f2f7d57c7a4284a7b829c3c9d
7
- data.tar.gz: a10e321ef6ae24a8822801245408214b36007d2e2575738218a54cedcc87b2320a0637f4dee1a135e125f8d27acbbd0b1d70f128da6233f5090ac787b1b685c8
6
+ metadata.gz: 38bf76e873ef7b2722e4bbcaaa5cca317a14010aac0f1eba7345c3cc2d644a80377d419b5d45ba9adce8c4b70520551c63339d62dd6c8dcb001a4625c2c8486b
7
+ data.tar.gz: 9983b5712e6a5c975b32b4b9e8db3a68c30699afa6336e4b191c7f3a2289ce1181cc181ad317c47a4f41ddce2c627c4730aea0f4192f214683c9f91675b7f612
data/bin/onevcenter CHANGED
@@ -273,6 +273,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
273
273
  " - Name : #{n[:name]}\n"\
274
274
  " - Type : #{n[:type]}\n"
275
275
  print_str += " - VLAN ID : #{n[:vlan]}\n" if n[:vlan]
276
+ print_str += " - Cluster : #{n[:cluster]}\n"
276
277
  print_str += " Import this Network [y/n]? "
277
278
 
278
279
  STDOUT.print print_str
data/bin/onevm CHANGED
@@ -127,6 +127,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
127
127
  :description => "ID of the Snapshot to save."
128
128
  }
129
129
 
130
+ PERSISTENT={
131
+ :name => "persistent",
132
+ :large => "--persistent",
133
+ :description => "Make the new images persistent"
134
+ }
135
+
130
136
  ########################################################################
131
137
  # Global Options
132
138
  ########################################################################
@@ -916,9 +922,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
916
922
  States: POWEROFF
917
923
  EOT
918
924
 
919
- command :save, save_desc, :vmid, :name do
925
+ command :save, save_desc, :vmid, :name, :options=>[PERSISTENT] do
920
926
  helper.perform_action(args[0],options,"Saving VM") do |vm|
921
- res = vm.save_as_template(args[1])
927
+ res = vm.save_as_template(args[1], options[:persistent] )
922
928
 
923
929
  if !OpenNebula.is_error?(res)
924
930
  puts "Template ID: #{res}"
data/lib/one_helper.rb CHANGED
@@ -828,39 +828,46 @@ EOT
828
828
  end
829
829
 
830
830
  def OpenNebulaHelper.update_template_helper(append, id, resource, path, xpath, update=true)
831
- unless path
832
- require 'tempfile'
831
+ if path
832
+ return File.read(path)
833
+ elsif append
834
+ return editor_input()
835
+ else
836
+ if update
837
+ rc = resource.info
833
838
 
834
- tmp = Tempfile.new(id.to_s)
835
- path = tmp.path
839
+ if OpenNebula.is_error?(rc)
840
+ puts rc.message
841
+ exit -1
842
+ end
843
+ end
836
844
 
837
- if !append
838
- if update
839
- rc = resource.info
845
+ return editor_input(resource.template_like_str(xpath))
846
+ end
847
+ end
840
848
 
841
- if OpenNebula.is_error?(rc)
842
- puts rc.message
843
- exit -1
844
- end
845
- end
849
+ def OpenNebulaHelper.editor_input(contents=nil)
850
+ require 'tempfile'
846
851
 
847
- tmp << resource.template_like_str(xpath)
848
- tmp.flush
849
- end
852
+ tmp = Tempfile.new("one_cli")
850
853
 
851
- editor_path = ENV["EDITOR"] ? ENV["EDITOR"] : EDITOR_PATH
852
- system("#{editor_path} #{path}")
854
+ if contents
855
+ tmp << contents
856
+ tmp.flush
857
+ end
853
858
 
854
- unless $?.exitstatus == 0
855
- puts "Editor not defined"
856
- exit -1
857
- end
859
+ editor_path = ENV["EDITOR"] ? ENV["EDITOR"] : EDITOR_PATH
860
+ system("#{editor_path} #{tmp.path}")
858
861
 
859
- tmp.close
862
+ unless $?.exitstatus == 0
863
+ puts "Editor not defined"
864
+ exit -1
860
865
  end
861
866
 
862
- str = File.read(path)
863
- str
867
+ tmp.close
868
+
869
+ str = File.read(tmp.path)
870
+ return str
864
871
  end
865
872
 
866
873
  def self.parse_user_object(user_object)
@@ -433,7 +433,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
433
433
  CLIHelper.print_header("WILD VIRTUAL MACHINES", false)
434
434
  puts
435
435
 
436
- format = "%30s %36s %4s %10s"
436
+ format = "%-30.30s %36s %4s %10s"
437
437
  CLIHelper.print_header(format % ["NAME", "IMPORT_ID", "CPU", "MEMORY"],
438
438
  true)
439
439
 
@@ -15,6 +15,7 @@
15
15
  #--------------------------------------------------------------------------- #
16
16
 
17
17
  require 'one_helper'
18
+ require 'base64'
18
19
 
19
20
  class OneTemplateHelper < OpenNebulaHelper::OneHelper
20
21
  VM_NAME={
@@ -117,7 +118,7 @@ EOT
117
118
 
118
119
  answers = ""
119
120
 
120
- puts "There are some parameters that require user input."
121
+ puts "There are some parameters that require user input. Use the string <<EDITOR>> to launch an editor (e.g. for multi-line inputs)"
121
122
 
122
123
  user_inputs.each do |key, val|
123
124
  input_cfg = val.split('|')
@@ -136,8 +137,16 @@ EOT
136
137
  print " * (#{key}) #{description}: "
137
138
 
138
139
  case type
139
- when 'text'
140
+ when 'text', 'text64'
140
141
  answer = STDIN.readline.chop
142
+
143
+ if answer == "<<EDITOR>>"
144
+ answer = OpenNebulaHelper.editor_input()
145
+ end
146
+
147
+ if type == 'text64'
148
+ answer = Base64::encode64(answer).strip.delete("\n")
149
+ end
141
150
  when 'password'
142
151
  answer = OpenNebulaHelper::OneHelper.get_password
143
152
  else
@@ -701,7 +701,23 @@ in the frontend machine.
701
701
  end
702
702
  end
703
703
 
704
- if vm.has_elements?("/VM/TEMPLATE/NIC") and !isHybrid
704
+ # This variable holds the extra IP's got from monitoring. Right
705
+ # now it adds GUEST_IP and GUEST_IP_ADDRESSES from vcenter
706
+ # monitoring. If other variables hold IPs just add them to this
707
+ # array. Duplicate IPs are not shown.
708
+ extra_ips = []
709
+
710
+ if val=vm["/VM/MONITORING/GUEST_IP"]
711
+ extra_ips << val if val && !val.empty?
712
+ end
713
+
714
+ if val=vm["/VM/MONITORING/GUEST_IP_ADDRESSES"]
715
+ extra_ips += val.split(',') if val && !val.empty?
716
+ end
717
+
718
+ extra_ips.uniq!
719
+
720
+ if vm.has_elements?("/VM/TEMPLATE/NIC") || !extra_ips.empty?
705
721
  puts
706
722
  CLIHelper.print_header(str_h1 % "VM NICS",false)
707
723
 
@@ -711,13 +727,17 @@ in the frontend machine.
711
727
  "VLAN"=>"no",
712
728
  "BRIDGE"=>"-"}
713
729
 
730
+ shown_ips = []
731
+
714
732
  array_id = 0
715
- vm_nics = [vm.to_hash['VM']['TEMPLATE']['NIC']].flatten
733
+ vm_nics = [vm.to_hash['VM']['TEMPLATE']['NIC']].flatten.compact
716
734
  vm_nics.each {|nic|
717
735
 
718
736
  next if nic.has_key?("CLI_DONE")
719
737
 
720
738
  if nic.has_key?("IP6_LINK")
739
+ shown_ips << nic["IP6_LINK"]
740
+
721
741
  ip6_link = {"IP" => nic.delete("IP6_LINK"),
722
742
  "CLI_DONE" => true,
723
743
  "DOUBLE_ENTRY" => true}
@@ -727,6 +747,8 @@ in the frontend machine.
727
747
  end
728
748
 
729
749
  if nic.has_key?("IP6_ULA")
750
+ shown_ips << nic["IP6_ULA"]
751
+
730
752
  ip6_link = {"IP" => nic.delete("IP6_ULA"),
731
753
  "CLI_DONE" => true,
732
754
  "DOUBLE_ENTRY" => true}
@@ -736,6 +758,8 @@ in the frontend machine.
736
758
  end
737
759
 
738
760
  if nic.has_key?("IP6_GLOBAL")
761
+ shown_ips << nic["IP6_GLOBAL"]
762
+
739
763
  ip6_link = {"IP" => nic.delete("IP6_GLOBAL"),
740
764
  "CLI_DONE" => true,
741
765
  "DOUBLE_ENTRY" => true}
@@ -744,10 +768,25 @@ in the frontend machine.
744
768
  array_id += 1
745
769
  end
746
770
 
771
+ shown_ips << nic["IP"] if nic.has_key?("IP")
772
+
747
773
  nic.merge!(nic_default) {|k,v1,v2| v1}
748
774
  array_id += 1
749
775
  }
750
776
 
777
+ extra_ips -= shown_ips
778
+
779
+ # Add extra IPs to the VM NICS table
780
+ extra_ips.each do |ip|
781
+ vm_nics << {
782
+ "NIC_ID" => "-",
783
+ "IP" => ip,
784
+ "NETWORK" => "Additional IP",
785
+ "BRIDGE" => "-",
786
+ "VLAN" => "-"
787
+ }
788
+ end
789
+
751
790
  CLIHelper::ShowTable.new(nil, self) do
752
791
  column :ID, "", :size=>3 do |d|
753
792
  if d["DOUBLE_ENTRY"]
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: 4.14.0
4
+ version: 4.14.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenNebula
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-28 00:00:00.000000000 Z
11
+ date: 2015-11-25 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: 4.14.0
19
+ version: 4.14.2
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: 4.14.0
26
+ version: 4.14.2
27
27
  description: Commands used to talk to OpenNebula
28
28
  email: contact@opennebula.org
29
29
  executables:
@@ -34,17 +34,17 @@ executables:
34
34
  - oneflow
35
35
  - oneflow-template
36
36
  - onegroup
37
- - onehost
38
37
  - oneimage
39
38
  - onesecgroup
40
39
  - oneshowback
41
40
  - onetemplate
42
41
  - oneuser
43
- - onevcenter
44
42
  - onevdc
45
- - onevm
46
43
  - onevnet
47
44
  - onezone
45
+ - onevcenter
46
+ - onevm
47
+ - onehost
48
48
  extensions: []
49
49
  extra_rdoc_files: []
50
50
  files: