rbvmomi 1.1.8 → 1.2.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.
data/Rakefile CHANGED
@@ -14,9 +14,8 @@ begin
14
14
  gem.add_dependency 'nokogiri', '>= 1.4.1'
15
15
  gem.add_dependency 'builder'
16
16
  gem.add_dependency 'trollop'
17
- gem.add_dependency 'cdb-full'
18
17
  gem.required_ruby_version = '>= 1.8.7'
19
- gem.files.include 'vmodl.cdb'
18
+ gem.files.include 'vmodl.db'
20
19
  gem.files.include '.yardopts'
21
20
  end
22
21
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.8
1
+ 1.2.0
@@ -4,14 +4,13 @@ require 'rbvmomi'
4
4
  require 'rbvmomi/trollop'
5
5
 
6
6
  VIM = RbVmomi::VIM
7
- N = 2
8
7
 
9
8
  opts = Trollop.options do
10
9
  banner <<-EOS
11
- Create and destroy a couple of VMs.
10
+ Create a VM.
12
11
 
13
12
  Usage:
14
- create_vm.rb [options]
13
+ create_vm-1.9.rb [options]
15
14
 
16
15
  VIM connection options:
17
16
  EOS
@@ -7,6 +7,8 @@ require 'rbvmomi/type_loader'
7
7
 
8
8
  module RbVmomi
9
9
 
10
+ IS_JRUBY = RUBY_PLATFORM == 'java'
11
+
10
12
  class DeserializationFailed < Exception; end
11
13
 
12
14
  class Connection < TrivialSoap
@@ -78,7 +80,14 @@ class Connection < TrivialSoap
78
80
  end
79
81
 
80
82
  def xml2obj xml, typename
81
- typename = (xml.attribute_with_ns('type', NS_XSI) || typename).to_s
83
+ if IS_JRUBY
84
+ type_attr = xml.attribute_nodes.find { |a| a.name == 'type' &&
85
+ a.namespace &&
86
+ a.namespace.prefix == 'xsi' }
87
+ else
88
+ type_attr = xml.attribute_with_ns('type', NS_XSI)
89
+ end
90
+ typename = (type_attr || typename).to_s
82
91
 
83
92
  if typename =~ /^ArrayOf/
84
93
  typename = demangle_array_type $'
@@ -56,7 +56,7 @@ class Parser
56
56
  # !!!plain
57
57
  # computer: -R --computer RBVMOMI_COMPUTER
58
58
  def rbvmomi_computer_opt
59
- opt :computer, "Compute resource", :type => :string, :short => "R", :default => ENV['RBVMOMI_COMPUTER']
59
+ opt :computer, "Compute resource", :type => :string, :short => "R", :default => (ENV['RBVMOMI_COMPUTER']||'ha-compute-res')
60
60
  end
61
61
 
62
62
  # Select a datastore
@@ -1,21 +1,30 @@
1
1
  # Copyright (c) 2010 VMware, Inc. All Rights Reserved.
2
- require 'cdb'
3
2
  require 'set'
4
3
 
5
4
  module RbVmomi
6
5
 
6
+ class TypeStore
7
+ def initialize fn
8
+ File.open(fn, 'r') do |io|
9
+ @db = Marshal.load io
10
+ end
11
+ end
12
+
13
+ def [](k)
14
+ @db[k]
15
+ end
16
+ end
17
+
7
18
  class TypeLoader
8
19
  attr_reader :typenames
9
20
 
10
21
  def initialize target, fn
11
22
  @target = target
12
- @fn = fn
23
+ @db = TypeStore.new fn
13
24
  end
14
25
 
15
26
  def init
16
- @db = CDB.new @fn
17
- @vmodl = Hash.new { |h,k| if e = @db[k] then h[k] = Marshal.load(e) end }
18
- @typenames = Set.new(Marshal.load(@db['_typenames']) + BasicTypes::BUILTIN)
27
+ @typenames = Set.new(@db['_typenames'] + BasicTypes::BUILTIN)
19
28
  @target.constants.select { |x| has_type? x.to_s }.each { |x| load_type x.to_s }
20
29
  BasicTypes::BUILTIN.each do |x|
21
30
  @target.const_set x, BasicTypes.const_get(x)
@@ -50,7 +59,7 @@ class TypeLoader
50
59
  def make_type name
51
60
  name = name.to_s
52
61
  fail if BasicTypes::BUILTIN.member? name
53
- desc = @vmodl[name] or fail "unknown VMODL type #{name}"
62
+ desc = @db[name] or fail "unknown VMODL type #{name}"
54
63
  case desc['kind']
55
64
  when 'data' then make_data_type name, desc
56
65
  when 'managed' then make_managed_type name, desc
data/lib/rbvmomi/vim.rb CHANGED
@@ -74,7 +74,7 @@ class VIM < Connection
74
74
  @extension_dirs
75
75
  end
76
76
 
77
- load_vmodl(ENV['VMODL'] || File.join(File.dirname(__FILE__), "../../vmodl.cdb"))
77
+ load_vmodl(ENV['VMODL'] || File.join(File.dirname(__FILE__), "../../vmodl.db"))
78
78
  end
79
79
 
80
80
  end
@@ -118,8 +118,8 @@ def test_empty_array
118
118
  :linkUp => true,
119
119
  :blocked => false,
120
120
  :vlanIds => [],
121
- vmDirectPathGen2InactiveReasonNetwork: [],
122
- vmDirectPathGen2InactiveReasonOther: []
121
+ :vmDirectPathGen2InactiveReasonNetwork => [],
122
+ :vmDirectPathGen2InactiveReasonOther => []
123
123
  )
124
124
 
125
125
  check <<-EOS, obj, 'DVPortStatus'
Binary file
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbvmomi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 1
8
- - 1
9
- - 8
10
- version: 1.1.8
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Rich Lane
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-03-15 00:00:00 -07:00
17
+ date: 2011-03-17 00:00:00 -07:00
19
18
  default_executable: rbvmomish
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 5
30
28
  segments:
31
29
  - 1
32
30
  - 4
@@ -42,7 +40,6 @@ dependencies:
42
40
  requirements:
43
41
  - - ">="
44
42
  - !ruby/object:Gem::Version
45
- hash: 3
46
43
  segments:
47
44
  - 0
48
45
  version: "0"
@@ -56,26 +53,11 @@ dependencies:
56
53
  requirements:
57
54
  - - ">="
58
55
  - !ruby/object:Gem::Version
59
- hash: 3
60
56
  segments:
61
57
  - 0
62
58
  version: "0"
63
59
  type: :runtime
64
60
  version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: cdb-full
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
77
- type: :runtime
78
- version_requirements: *id004
79
61
  description:
80
62
  email: rlane@vmware.com
81
63
  executables:
@@ -133,7 +115,7 @@ files:
133
115
  - test/test_misc.rb
134
116
  - test/test_parse_response.rb
135
117
  - test/test_serialization.rb
136
- - vmodl.cdb
118
+ - vmodl.db
137
119
  - README.html
138
120
  has_rdoc: true
139
121
  homepage: https://github.com/rlane/rbvmomi
@@ -149,7 +131,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
131
  requirements:
150
132
  - - ">="
151
133
  - !ruby/object:Gem::Version
152
- hash: 57
153
134
  segments:
154
135
  - 1
155
136
  - 8
@@ -160,14 +141,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
141
  requirements:
161
142
  - - ">="
162
143
  - !ruby/object:Gem::Version
163
- hash: 3
164
144
  segments:
165
145
  - 0
166
146
  version: "0"
167
147
  requirements: []
168
148
 
169
149
  rubyforge_project:
170
- rubygems_version: 1.4.1
150
+ rubygems_version: 1.3.7
171
151
  signing_key:
172
152
  specification_version: 3
173
153
  summary: Ruby interface to the VMware vSphere API