RbVviews 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/RbVviews.rb +127 -0
- metadata +45 -0
data/lib/RbVviews.rb
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'rbvmomi'
|
2
|
+
|
3
|
+
class RbVviews
|
4
|
+
def initialize (host,user,password)
|
5
|
+
@host, @user, @password = host, user, password
|
6
|
+
end
|
7
|
+
|
8
|
+
def connect
|
9
|
+
@vim = RbVmomi::VIM.connect host: @host, user: @user, password: @password, insecure: true
|
10
|
+
@vim.instance_variable_set(:@serviceContent,@vim.serviceInstance.RetrieveServiceContent)
|
11
|
+
vcenter_current_time = @vim.serviceInstance.CurrentTime()
|
12
|
+
puts "vCenter server time is currently #{vcenter_current_time}"
|
13
|
+
puts "Connected to vCenter at #{@host}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def close
|
17
|
+
@vim.serviceContent.sessionManager.Logout rescue RbVmomi::Fault
|
18
|
+
puts "Disconnected from vCenter at #{@host}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_view (type,field,value)
|
22
|
+
propSet = [
|
23
|
+
{ :type => type, :pathSet => ['name',field], :all => false }
|
24
|
+
]
|
25
|
+
|
26
|
+
filterSpec = RbVmomi::VIM.PropertyFilterSpec(
|
27
|
+
:objectSet => [
|
28
|
+
:obj => @vim.rootFolder,
|
29
|
+
:skip => false,
|
30
|
+
:selectSet => [
|
31
|
+
RbVmomi::VIM.TraversalSpec(
|
32
|
+
:name => 'folderTraversalSpec',
|
33
|
+
:type => 'Folder',
|
34
|
+
:path => 'childEntity',
|
35
|
+
:skip => false,
|
36
|
+
:selectSet => [
|
37
|
+
RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec'),
|
38
|
+
RbVmomi::VIM.SelectionSpec(:name => 'datacenterVmTraversalSpec'),
|
39
|
+
RbVmomi::VIM.SelectionSpec(:name => 'datacenterHostTraversalSpec'),
|
40
|
+
RbVmomi::VIM.SelectionSpec(:name => 'computeResourceHostTraversalSpec'),
|
41
|
+
RbVmomi::VIM.SelectionSpec(:name => 'computeResourceRpTraversalSpec'),
|
42
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolTraversalSpec'),
|
43
|
+
RbVmomi::VIM.SelectionSpec(:name => 'hostVmTraversalSpec'),
|
44
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolVmTraversalSpec'),
|
45
|
+
RbVmomi::VIM.SelectionSpec(:name => 'datacenterDatastoreTraversalSpec'),
|
46
|
+
RbVmomi::VIM.SelectionSpec(:name => 'datacenterNetworkTraversalSpec')
|
47
|
+
]
|
48
|
+
),
|
49
|
+
RbVmomi::VIM.TraversalSpec(
|
50
|
+
:name => 'datacenterVmTraversalSpec',
|
51
|
+
:type => 'Datacenter',
|
52
|
+
:path => 'vmFolder',
|
53
|
+
:skip => false,
|
54
|
+
:selectSet => [ RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec') ]
|
55
|
+
),
|
56
|
+
RbVmomi::VIM.TraversalSpec(
|
57
|
+
:name => 'datacenterHostTraversalSpec',
|
58
|
+
:type => 'Datacenter',
|
59
|
+
:path => 'hostFolder',
|
60
|
+
:skip => false,
|
61
|
+
:selectSet => [ RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec') ]
|
62
|
+
),
|
63
|
+
RbVmomi::VIM.TraversalSpec(
|
64
|
+
:name => 'computeResourceHostTraversalSpec',
|
65
|
+
:type => 'ComputeResource',
|
66
|
+
:path => 'host',
|
67
|
+
:skip => false
|
68
|
+
),
|
69
|
+
RbVmomi::VIM.TraversalSpec(
|
70
|
+
:name => 'computeResourceRpTraversalSpec',
|
71
|
+
:type => 'ComputeResource',
|
72
|
+
:path => 'resourcePool',
|
73
|
+
:skip => false,
|
74
|
+
:selectSet => [
|
75
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolTraversalSpec'),
|
76
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolVmTraversalSpec')
|
77
|
+
]
|
78
|
+
),
|
79
|
+
RbVmomi::VIM.TraversalSpec(
|
80
|
+
:name => 'resourcePoolTraversalSpec',
|
81
|
+
:type => 'ResourcePool',
|
82
|
+
:path => 'resourcePool',
|
83
|
+
:skip => false,
|
84
|
+
:selectSet => [
|
85
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolTraversalSpec'),
|
86
|
+
RbVmomi::VIM.SelectionSpec(:name => 'resourcePoolVmTraversalSpec')
|
87
|
+
]
|
88
|
+
),
|
89
|
+
RbVmomi::VIM.TraversalSpec(
|
90
|
+
:name => 'hostVmTraversalSpec',
|
91
|
+
:type => 'HostSystem',
|
92
|
+
:path => 'vm',
|
93
|
+
:skip => false,
|
94
|
+
:selectSet => [ RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec') ]
|
95
|
+
),
|
96
|
+
RbVmomi::VIM.TraversalSpec(
|
97
|
+
:name => 'resourcePoolVmTraversalSpec',
|
98
|
+
:type => 'ResourcePool',
|
99
|
+
:path => 'vm',
|
100
|
+
:skip => false,
|
101
|
+
),
|
102
|
+
RbVmomi::VIM.TraversalSpec(
|
103
|
+
:name => 'datacenterDatastoreTraversalSpec',
|
104
|
+
:type => 'Datacenter',
|
105
|
+
:path => 'datastoreFolder',
|
106
|
+
:skip => false,
|
107
|
+
:selectSet => [ RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec') ]
|
108
|
+
),
|
109
|
+
RbVmomi::VIM.TraversalSpec(
|
110
|
+
:name => 'datacenterNetworkTraversalSpec',
|
111
|
+
:type => 'Datacenter',
|
112
|
+
:path => 'networkFolder',
|
113
|
+
:skip => false,
|
114
|
+
:selectSet => [ RbVmomi::VIM.SelectionSpec(:name => 'folderTraversalSpec') ]
|
115
|
+
)
|
116
|
+
]
|
117
|
+
],
|
118
|
+
:propSet => propSet
|
119
|
+
)
|
120
|
+
|
121
|
+
results = @vim.propertyCollector.RetrieveProperties(:specSet => [filterSpec])
|
122
|
+
|
123
|
+
result = results.select {|x| x.obj[field] == value || value == nil || value == ''}
|
124
|
+
return result
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: RbVviews
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Clinton Kitson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-07-05 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: ''
|
15
|
+
email: clinton.kitson@emc.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/RbVviews.rb
|
21
|
+
homepage: http://rubygems.org/gems/RbVviews
|
22
|
+
licenses: []
|
23
|
+
post_install_message:
|
24
|
+
rdoc_options: []
|
25
|
+
require_paths:
|
26
|
+
- lib
|
27
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 1.8.23
|
42
|
+
signing_key:
|
43
|
+
specification_version: 3
|
44
|
+
summary: Retrieve detailed vCenter views
|
45
|
+
test_files: []
|