rbvmomi 1.11.3 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +2 -2
  3. data/exe/rbvmomish +5 -5
  4. data/lib/rbvmomi/connection.rb +13 -13
  5. data/lib/rbvmomi/deserialization.rb +1 -2
  6. data/lib/rbvmomi/{trollop.rb → optimist.rb} +7 -7
  7. data/lib/rbvmomi/pbm.rb +1 -1
  8. data/lib/rbvmomi/sms.rb +1 -1
  9. data/lib/rbvmomi/sso.rb +313 -0
  10. data/lib/rbvmomi/trivial_soap.rb +8 -5
  11. data/lib/rbvmomi/type_loader.rb +1 -1
  12. data/lib/rbvmomi/utils/deploy.rb +1 -1
  13. data/lib/rbvmomi/version.rb +2 -2
  14. data/lib/rbvmomi/vim/Folder.rb +1 -1
  15. data/lib/rbvmomi/vim/HostSystem.rb +2 -2
  16. data/lib/rbvmomi/vim/ManagedObject.rb +1 -1
  17. data/lib/rbvmomi/vim/OvfManager.rb +1 -1
  18. data/lib/rbvmomi/vim/VirtualMachine.rb +9 -11
  19. data/lib/rbvmomi/vim.rb +9 -10
  20. data/lib/rbvmomi.rb +11 -9
  21. data/vmodl.db +0 -0
  22. metadata +45 -61
  23. data/.gitignore +0 -13
  24. data/.travis.yml +0 -11
  25. data/.yardopts +0 -6
  26. data/CONTRIBUTORS.md +0 -42
  27. data/Gemfile +0 -10
  28. data/Rakefile +0 -16
  29. data/devel/analyze-vim-declarations.rb +0 -217
  30. data/devel/analyze-xml.rb +0 -49
  31. data/devel/benchmark.rb +0 -121
  32. data/devel/collisions.rb +0 -22
  33. data/devel/merge-internal-vmodl.rb +0 -63
  34. data/devel/merge-manual-vmodl.rb +0 -36
  35. data/examples/annotate.rb +0 -57
  36. data/examples/cached_ovf_deploy.rb +0 -124
  37. data/examples/clone_vm.rb +0 -88
  38. data/examples/create_vm-1.9.rb +0 -97
  39. data/examples/create_vm.rb +0 -97
  40. data/examples/extraConfig.rb +0 -57
  41. data/examples/lease_tool.rb +0 -106
  42. data/examples/logbundle.rb +0 -66
  43. data/examples/logtail.rb +0 -63
  44. data/examples/nfs_datastore.rb +0 -99
  45. data/examples/power.rb +0 -62
  46. data/examples/readme-1.rb +0 -38
  47. data/examples/readme-2.rb +0 -54
  48. data/examples/run.sh +0 -41
  49. data/examples/screenshot.rb +0 -51
  50. data/examples/vdf.rb +0 -84
  51. data/examples/vm_drs_behavior.rb +0 -80
  52. data/rbvmomi.gemspec +0 -33
data/examples/power.rb DELETED
@@ -1,62 +0,0 @@
1
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- require 'trollop'
5
- require 'rbvmomi'
6
- require 'rbvmomi/trollop'
7
-
8
- VIM = RbVmomi::VIM
9
- CMDS = %w(on off reset suspend destroy)
10
-
11
- opts = Trollop.options do
12
- banner <<-EOS
13
- Perform VM power operations.
14
-
15
- Usage:
16
- power.rb [options] cmd VM
17
-
18
- Commands: #{CMDS * ' '}
19
-
20
- VIM connection options:
21
- EOS
22
-
23
- rbvmomi_connection_opts
24
-
25
- text <<-EOS
26
-
27
- VM location options:
28
- EOS
29
-
30
- rbvmomi_datacenter_opt
31
-
32
- text <<-EOS
33
-
34
- Other options:
35
- EOS
36
-
37
- stop_on CMDS
38
- end
39
-
40
- cmd = ARGV[0] or Trollop.die("no command given")
41
- vm_name = ARGV[1] or Trollop.die("no VM name given")
42
- Trollop.die("must specify host") unless opts[:host]
43
-
44
- vim = VIM.connect opts
45
-
46
- dc = vim.serviceInstance.content.rootFolder.traverse(opts[:datacenter], VIM::Datacenter) or abort "datacenter not found"
47
- vm = dc.vmFolder.traverse(vm_name, VIM::VirtualMachine) or abort "VM not found"
48
-
49
- case cmd
50
- when 'on'
51
- vm.PowerOnVM_Task.wait_for_completion
52
- when 'off'
53
- vm.PowerOffVM_Task.wait_for_completion
54
- when 'reset'
55
- vm.ResetVM_Task.wait_for_completion
56
- when 'suspend'
57
- vm.SuspendVM_Task.wait_for_completion
58
- when 'destroy'
59
- vm.Destroy_Task.wait_for_completion
60
- else
61
- abort "invalid command"
62
- end
data/examples/readme-1.rb DELETED
@@ -1,38 +0,0 @@
1
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- require 'rbvmomi'
5
- require 'rbvmomi/trollop'
6
-
7
- opts = Trollop.options do
8
- banner <<-EOS
9
- Example 1 from the README: Power on a VM.
10
-
11
- Usage:
12
- readme-1.rb [options] VM name
13
-
14
- VIM connection options:
15
- EOS
16
-
17
- rbvmomi_connection_opts
18
-
19
- text <<-EOS
20
-
21
- VM location options:
22
- EOS
23
-
24
- rbvmomi_datacenter_opt
25
-
26
- text <<-EOS
27
-
28
- Other options:
29
- EOS
30
- end
31
-
32
- Trollop.die("must specify host") unless opts[:host]
33
- vm_name = ARGV[0] or abort "must specify VM name"
34
-
35
- vim = RbVmomi::VIM.connect opts
36
- dc = vim.serviceInstance.find_datacenter(opts[:datacenter]) or fail "datacenter not found"
37
- vm = dc.find_vm(vm_name) or fail "VM not found"
38
- vm.PowerOnVM_Task.wait_for_completion
data/examples/readme-2.rb DELETED
@@ -1,54 +0,0 @@
1
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- require 'rbvmomi'
5
- require 'rbvmomi/trollop'
6
-
7
- opts = Trollop.options do
8
- banner <<-EOS
9
- Example 2 from the README: Power on a VM the hard way.
10
-
11
- Usage:
12
- readme-2.rb [options] VM name
13
-
14
- VIM connection options:
15
- EOS
16
-
17
- rbvmomi_connection_opts
18
-
19
- text <<-EOS
20
-
21
- VM location options:
22
- EOS
23
-
24
- rbvmomi_datacenter_opt
25
-
26
- text <<-EOS
27
-
28
- Other options:
29
- EOS
30
- end
31
-
32
- Trollop.die("must specify host") unless opts[:host]
33
- vm_name = ARGV[0] or abort "must specify VM name"
34
-
35
- vim = RbVmomi::VIM.connect opts
36
- rootFolder = vim.serviceInstance.content.rootFolder
37
- dc = rootFolder.childEntity.grep(RbVmomi::VIM::Datacenter).find { |x| x.name == opts[:datacenter] } or fail "datacenter not found"
38
- vm = dc.vmFolder.childEntity.grep(RbVmomi::VIM::VirtualMachine).find { |x| x.name == vm_name } or fail "VM not found"
39
- task = vm.PowerOnVM_Task
40
- filter = vim.propertyCollector.CreateFilter(
41
- :spec => {
42
- :propSet => [{ :type => 'Task', :all => false, :pathSet => ['info.state']}],
43
- :objectSet => [{ :obj => task }]
44
- },
45
- :partialUpdates => false
46
- )
47
- ver = ''
48
- while true
49
- result = vim.propertyCollector.WaitForUpdates(:version => ver)
50
- ver = result.version
51
- break if ['success', 'error'].member? task.info.state
52
- end
53
- filter.DestroyPropertyFilter
54
- raise task.info.error if task.info.state == 'error'
data/examples/run.sh DELETED
@@ -1,41 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
-
4
- if [ -z "$RBVMOMI_HOST" ]
5
- then
6
- echo "export at least RBVMOMI_HOST"
7
- exit 1
8
- fi
9
-
10
- EXAMPLES="$(dirname $(which $0))"
11
- export RUBYOPT="-I$EXAMPLES/../lib -rubygems"
12
-
13
- source "$HOME/.rvm/scripts/rvm"
14
- rvm use 1.8.7
15
- ruby -v
16
- RUBY=ruby
17
-
18
- echo Creating VM
19
- $RUBY $EXAMPLES/create_vm.rb foo
20
- echo Powering on VM
21
- $RUBY $EXAMPLES/power.rb on foo
22
- echo Resetting VM
23
- $RUBY $EXAMPLES/power.rb reset foo
24
- echo Powering off VM
25
- $RUBY $EXAMPLES/power.rb off foo
26
- echo "Powering on VM (1)"
27
- $RUBY $EXAMPLES/readme-1.rb foo
28
- echo Powering off VM
29
- $RUBY $EXAMPLES/power.rb off foo
30
- echo "Powering on VM (2)"
31
- $RUBY $EXAMPLES/readme-2.rb foo
32
- echo "Setting extraConfig"
33
- $RUBY $EXAMPLES/extraConfig.rb foo set guestinfo.bar=baz
34
- echo "Listing extraConfig"
35
- $RUBY $EXAMPLES/extraConfig.rb foo list | grep guestinfo.bar
36
- echo Powering off VM
37
- $RUBY $EXAMPLES/power.rb off foo
38
- echo Querying datastore utilization
39
- $RUBY $EXAMPLES/vdf.rb
40
- echo Destroying VM
41
- $RUBY $EXAMPLES/power.rb destroy foo
@@ -1,51 +0,0 @@
1
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- # Based on takeVMScreenshot.pl by William Lam
5
- require 'trollop'
6
- require 'rbvmomi'
7
- require 'rbvmomi/trollop'
8
-
9
- VIM = RbVmomi::VIM
10
-
11
- opts = Trollop.options do
12
- banner <<-EOS
13
- Take a screenshot.
14
-
15
- Usage:
16
- screenshot.rb [options] vm filename
17
-
18
- A PNG image will be saved to the given filename.
19
-
20
- VIM connection options:
21
- EOS
22
-
23
- rbvmomi_connection_opts
24
-
25
- text <<-EOS
26
-
27
- VM location options:
28
- EOS
29
-
30
- rbvmomi_datacenter_opt
31
-
32
- text <<-EOS
33
-
34
- Other options:
35
- EOS
36
- end
37
-
38
- Trollop.die("must specify host") unless opts[:host]
39
- vm_name = ARGV[0] or abort("must specify VM name")
40
- output_path = ARGV[1] or abort("must specify output filename")
41
-
42
- vim = VIM.connect opts
43
- dc = vim.serviceInstance.find_datacenter(opts[:datacenter])
44
- vm = dc.find_vm vm_name
45
- abort "VM must be running" unless vm.runtime.powerState == 'poweredOn'
46
- remote_path = vm.CreateScreenshot_Task.wait_for_completion
47
- remote_path =~ /^(\/vmfs\/volumes\/[^\/]+)\// or fail
48
- datastore_prefix = $1
49
- datastore_path = $'
50
- datastore = vm.datastore.find { |ds| ds.info.url == datastore_prefix }
51
- datastore.download datastore_path, output_path
data/examples/vdf.rb DELETED
@@ -1,84 +0,0 @@
1
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- # Translation of vGhetto vdf, originally by William Lam
5
- require 'trollop'
6
- require 'rbvmomi'
7
- require 'rbvmomi/trollop'
8
-
9
- VIM = RbVmomi::VIM
10
-
11
- opts = Trollop.options do
12
- banner <<-EOS
13
- Display utilization of each datastore in the datacenter.
14
-
15
- Usage:
16
- vdf.rb [options]
17
-
18
- VIM connection options:
19
- EOS
20
-
21
- rbvmomi_connection_opts
22
-
23
- text <<-EOS
24
-
25
- Datacenter selection:
26
- EOS
27
-
28
- rbvmomi_datacenter_opt
29
-
30
- text <<-EOS
31
-
32
- Other options:
33
- EOS
34
- end
35
-
36
- Trollop.die("must specify host") unless opts[:host]
37
-
38
- vim = VIM.connect opts
39
-
40
- dc = vim.serviceInstance.find_datacenter(opts[:datacenter]) or abort "datacenter not found"
41
-
42
- def si n
43
- ['', 'K', 'M', 'G', 'T', 'P'].each_with_index do |x,i|
44
- v = n.to_f/(1000**i)
45
- return v,x if v < 1000 or x == 'P'
46
- end
47
- end
48
-
49
- def unit n, u, p
50
- "%.*g%s%s" % [p, si(n), u].flatten
51
- end
52
-
53
- def b n
54
- unit(n,'B',3)
55
- end
56
-
57
- puts "Filesystem#{' '*53}Size Used Avail Use% Mounted on"
58
- fmt = "%-62s %-8s %-8s %-8s %-8s %s"
59
-
60
- if false
61
- # simple version
62
- dc.datastore.sort_by { |ds| ds.info.url }.each do |ds|
63
- s = ds.summary
64
- next unless s.accessible
65
- size = s.capacity
66
- free = s.freeSpace
67
- used = size - free
68
- pct_used = used*100.0/size
69
- puts(fmt % [ds.info.url, b(size), b(used), b(free), unit(pct_used,'%',3), ds.name])
70
- end
71
- else
72
- # fast version
73
- paths = %w(name info.url summary.accessible summary.capacity summary.freeSpace)
74
- propSet = [{ :type => 'Datastore', :pathSet => paths }]
75
- filterSpec = { :objectSet => dc.datastore.map { |ds| { :obj => ds } }, :propSet => propSet }
76
- data = vim.propertyCollector.RetrieveProperties(:specSet => [filterSpec])
77
- data.select { |d| d['summary.accessible'] }.sort_by { |d| d['info.url'] }.each do |d|
78
- size = d['summary.capacity']
79
- free = d['summary.freeSpace']
80
- used = size - free
81
- pct_used = used*100.0/size
82
- puts(fmt % [d['info.url'], b(size), b(used), b(free), unit(pct_used,'%',3), d['name']])
83
- end
84
- end
@@ -1,80 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Copyright (c) 2011-2017 VMware, Inc. All Rights Reserved.
4
- # SPDX-License-Identifier: MIT
5
-
6
- require 'trollop'
7
- require 'rbvmomi'
8
- require 'rbvmomi/trollop'
9
-
10
- VIM = RbVmomi::VIM
11
- CMDS = %w(get set)
12
- BEHAVIOR = %w(fullyAutomated manual partiallyAutomated default)
13
-
14
- opts = Trollop.options do
15
- banner <<-EOS
16
- Configure VM DRS behavior.
17
-
18
- Usage:
19
- vm_drs_behavior.rb [options] VM get
20
- vm_drs_behavior.rb [options] VM set #{BEHAVIOR.join('|')}
21
-
22
- Commands: #{CMDS * ' '}
23
-
24
- VIM connection options:
25
- EOS
26
-
27
- rbvmomi_connection_opts
28
-
29
- text <<-EOS
30
-
31
- VM location options:
32
- EOS
33
-
34
- rbvmomi_datacenter_opt
35
-
36
- text <<-EOS
37
-
38
- Other options:
39
- EOS
40
-
41
- stop_on CMDS
42
- end
43
-
44
- Trollop.die("must specify host") unless opts[:host]
45
-
46
- vm_name = ARGV[0] or Trollop.die("no VM name given")
47
- cmd = ARGV[1] or Trollop.die("no command given")
48
- abort "invalid command" unless CMDS.member? cmd
49
-
50
- vim = VIM.connect opts
51
- dc = vim.serviceInstance.find_datacenter(opts[:datacenter]) or abort "datacenter not found"
52
- vm = dc.find_vm(vm_name) or abort "VM not found"
53
-
54
- cluster = vm.runtime.host.parent
55
- config = cluster.configurationEx.drsVmConfig.select {|c| c.key.name == vm.name }.first
56
- default = cluster.configurationEx.drsConfig.defaultVmBehavior
57
-
58
- case cmd
59
- when 'get'
60
- if config
61
- behavior = config.behavior
62
- else
63
- behavior = "#{default} (default)"
64
- end
65
- puts "#{vm.name} is #{behavior}"
66
- when 'set'
67
- behavior = ARGV[2] or Trollop.die("no behavior given")
68
- abort "invalid behavior" unless BEHAVIOR.member? behavior
69
-
70
- if behavior == "default"
71
- behavior = default
72
- end
73
- vm_spec =
74
- VIM.ClusterDrsVmConfigSpec(:operation => VIM.ArrayUpdateOperation(config ? "edit" : "add"),
75
- :info => VIM.ClusterDrsVmConfigInfo(:key => vm,
76
- :behavior => VIM.DrsBehavior(behavior)))
77
- spec = VIM.ClusterConfigSpecEx(:drsVmConfigSpec => [vm_spec])
78
- cluster.ReconfigureComputeResource_Task(:spec => spec, :modify => true).wait_for_completion
79
- end
80
-
data/rbvmomi.gemspec DELETED
@@ -1,33 +0,0 @@
1
- # Copyright (c) 2016-2017 VMware, Inc. All Rights Reserved.
2
- # SPDX-License-Identifier: MIT
3
-
4
- $LOAD_PATH.unshift(File.expand_path('../lib', __FILE__))
5
-
6
- require 'rbvmomi/version'
7
-
8
- Gem::Specification.new do |spec|
9
- spec.name = 'rbvmomi'
10
- spec.summary = 'Ruby interface to the VMware vSphere API'
11
- spec.version = RbVmomi::VERSION
12
-
13
- spec.authors = ['Rich Lane', 'Christian Dickmann']
14
- spec.email = 'jrg@vmware.com'
15
- spec.homepage = 'https://github.com/vmware/rbvmomi'
16
- spec.license = 'MIT'
17
-
18
- spec.bindir = 'exe'
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(/^test\//) }
20
- spec.executables << 'rbvmomish'
21
-
22
- spec.add_runtime_dependency('builder', '~> 3.0')
23
- spec.add_runtime_dependency('json', '>= 1.8')
24
- spec.add_runtime_dependency('nokogiri', '~> 1.5')
25
- spec.add_runtime_dependency('trollop', '~> 2.1')
26
-
27
- spec.add_development_dependency('rake', '~> 10.5')
28
- spec.add_development_dependency('simplecov', '~> 0.12.0')
29
- spec.add_development_dependency('yard', '~> 0.9.5')
30
- spec.add_development_dependency('test-unit', '>= 2.5')
31
-
32
- spec.required_ruby_version = '>= 1.8.7'
33
- end