rbvmomi 1.11.3 → 3.0.0

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 (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