Created
December 23, 2013 16:51
-
-
Save erik-megarad/8100461 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[5] pry(#<RbVmomi::NewDeserializer>)> e | |
=> #<RuntimeError: unknown VMODL type AnyType> | |
[6] pry(#<RbVmomi::NewDeserializer>)> e.backtrace | |
=> ["/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/type_loader.rb:103:in `make_type'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/type_loader.rb:65:in `block in get'", | |
"/Users/epeterson/.rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/type_loader.rb:63:in `get'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:79:in `deserialize'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:121:in `block in traverse_data'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:103:in `each'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:103:in `traverse_data'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:86:in `deserialize'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:116:in `block in traverse_data'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:103:in `each'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:103:in `traverse_data'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb:86:in `deserialize'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/connection.rb:68:in `block in parse_response'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/connection.rb:68:in `map'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/connection.rb:68:in `parse_response'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/connection.rb:90:in `call'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/basic_types.rb:205:in `_call'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/basic_types.rb:74:in `block (2 levels) in init'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/basic_types.rb:183:in `_get_property'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/basic_types.rb:35:in `block (2 levels) in init'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-cavalry-1.1/lib/cavalry/vmware_box.rb:75:in `virtual_machines'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-cavalry-1.1/lib/cavalry/vmware_box.rb:130:in `virtual_machine'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-cavalry-1.1/lib/cavalry/vmware_box.rb:106:in `snapshots'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-cavalry-1.1/lib/cavalry/vmware_box.rb:99:in `revert_to_snapshot'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-cavalry-1.1/lib/cavalry/vmware_box.rb:93:in `destroy'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-smokey-1.1.0/lib/tasks.rb:45:in `destroy'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-smokey-1.1.0/lib/tasks.rb:31:in `smoketest'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/thor-0.18.1/lib/thor/command.rb:27:in `run'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/thor-0.18.1/lib/thor/base.rb:439:in `start'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-smokey-1.1.0/lib/tasks.rb:138:in `<top (required)>'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-smokey-1.1.0/bin/smokey:3:in `require_relative'", | |
"/Users/epeterson/.gem/ruby/1.9.3/gems/damballa-smokey-1.1.0/bin/smokey:3:in `<top (required)>'", | |
"/Users/epeterson/.gem/ruby/1.9.3/bin/smokey:23:in `load'", | |
"/Users/epeterson/.gem/ruby/1.9.3/bin/smokey:23:in `<main>'"] | |
[7] pry(#<RbVmomi::NewDeserializer>)> type | |
=> "anyType" | |
[8] pry(#<RbVmomi::NewDeserializer>)> node | |
=> #(Element:0x3fcbb988d76c { | |
name = "val", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb992d3d4 { | |
name = "type", | |
namespace = #(Namespace:0x3fcbb98e3c20 { | |
prefix = "xsi", | |
href = "http://www.w3.org/2001/XMLSchema-instance" | |
}), | |
value = "ServiceContent" | |
})], | |
children = [ | |
#(Element:0x3fcbb98f88dc { | |
name = "rootFolder", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb98f79b4 { name = "type", value = "Folder" })], | |
children = [ #(Text "group-d1")] | |
}), | |
#(Element:0x3fcbb9cb2734 { | |
name = "propertyCollector", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9c5b63c { name = "type", value = "PropertyCollector" })], | |
children = [ #(Text "propertyCollector")] | |
}), | |
#(Element:0x3fcbb9c1cb08 { | |
name = "viewManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9c1f380 { name = "type", value = "ViewManager" })], | |
children = [ #(Text "ViewManager")] | |
}), | |
#(Element:0x3fcbb9c6ba14 { | |
name = "about", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ | |
#(Element:0x3fcbb9c3499c { | |
name = "name", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "VMware vCenter Server")] | |
}), | |
#(Element:0x3fcbb9d0d1d4 { | |
name = "fullName", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "VMware vCenter Server 4.1.0 build-925676")] | |
}), | |
#(Element:0x3fcbb9d13304 { | |
name = "vendor", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "VMware, Inc.")] | |
}), | |
#(Element:0x3fcbb9d1c33c { | |
name = "version", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "4.1.0")] | |
}), | |
#(Element:0x3fcbb9d21508 { | |
name = "build", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "925676")] | |
}), | |
#(Element:0x3fcbb9d301e8 { | |
name = "localeVersion", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "INTL")] | |
}), | |
#(Element:0x3fcbb9d380f0 { | |
name = "localeBuild", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "000")] | |
}), | |
#(Element:0x3fcbb9d3d9c4 { | |
name = "osType", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "win32-x86")] | |
}), | |
#(Element:0x3fcbb9d47028 { | |
name = "productLineId", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "vpx")] | |
}), | |
#(Element:0x3fcbb9d4f0ac { | |
name = "apiType", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "VirtualCenter")] | |
}), | |
#(Element:0x3fcbb9d4f930 { | |
name = "apiVersion", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "4.1")] | |
}), | |
#(Element:0x3fcbb9d592f0 { | |
name = "instanceUuid", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "88E32B02-91D8-43C7-887A-D991329FBAC0")] | |
}), | |
#(Element:0x3fcbb9d5d274 { | |
name = "licenseProductName", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "VMware VirtualCenter Server")] | |
}), | |
#(Element:0x3fcbb9d615cc { | |
name = "licenseProductVersion", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
children = [ #(Text "4.0")] | |
})] | |
}), | |
#(Element:0x3fcbb9d6db60 { | |
name = "setting", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9d702c0 { name = "type", value = "OptionManager" })], | |
children = [ #(Text "VpxSettings")] | |
}), | |
#(Element:0x3fcbb9d8236c { | |
name = "userDirectory", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9d83aa0 { name = "type", value = "UserDirectory" })], | |
children = [ #(Text "UserDirectory")] | |
}), | |
#(Element:0x3fcbb9d90110 { | |
name = "sessionManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9d91948 { name = "type", value = "SessionManager" })], | |
children = [ #(Text "SessionManager")] | |
}), | |
#(Element:0x3fcbb9d9e56c { | |
name = "authorizationManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9da02b8 { | |
name = "type", | |
value = "AuthorizationManager" | |
})], | |
children = [ #(Text "AuthorizationManager")] | |
}), | |
#(Element:0x3fcbb9dae174 { | |
name = "perfManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9dad42c { | |
name = "type", | |
value = "PerformanceManager" | |
})], | |
children = [ #(Text "PerfMgr")] | |
}), | |
#(Element:0x3fcbb9dba708 { | |
name = "scheduledTaskManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9dbcb84 { | |
name = "type", | |
value = "ScheduledTaskManager" | |
})], | |
children = [ #(Text "ScheduledTaskManager")] | |
}), | |
#(Element:0x3fcbb9dc8650 { | |
name = "alarmManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9dca6a8 { name = "type", value = "AlarmManager" })], | |
children = [ #(Text "AlarmManager")] | |
}), | |
#(Element:0x3fcbb9dd60fc { | |
name = "eventManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9dd8d70 { name = "type", value = "EventManager" })], | |
children = [ #(Text "EventManager")] | |
}), | |
#(Element:0x3fcbb9cf28e8 { | |
name = "taskManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9cf5a20 { name = "type", value = "TaskManager" })], | |
children = [ #(Text "TaskManager")] | |
}), | |
#(Element:0x3fcbb9cfafac { | |
name = "extensionManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9cfdc98 { name = "type", value = "ExtensionManager" })], | |
children = [ #(Text "ExtensionManager")] | |
}), | |
#(Element:0x3fcbb9c95ddc { | |
name = "customizationSpecManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9cb603c { | |
name = "type", | |
value = "CustomizationSpecManager" | |
})], | |
children = [ #(Text "CustomizationSpecManager")] | |
}), | |
#(Element:0x3fcbb9cc7da0 { | |
name = "customFieldsManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9ccb39c { | |
name = "type", | |
value = "CustomFieldsManager" | |
})], | |
children = [ #(Text "CustomFieldsManager")] | |
}), | |
#(Element:0x3fcbb9cd2354 { | |
name = "diagnosticManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9cd55cc { name = "type", value = "DiagnosticManager" })], | |
children = [ #(Text "DiagMgr")] | |
}), | |
#(Element:0x3fcbb9c4b458 { | |
name = "licenseManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbba4e5c30 { name = "type", value = "LicenseManager" })], | |
children = [ #(Text "LicenseManager")] | |
}), | |
#(Element:0x3fcbba5572cc { | |
name = "searchIndex", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbba55682c { name = "type", value = "SearchIndex" })], | |
children = [ #(Text "SearchIndex")] | |
}), | |
#(Element:0x3fcbb9854124 { | |
name = "fileManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9856a28 { name = "type", value = "FileManager" })], | |
children = [ #(Text "FileManager")] | |
}), | |
#(Element:0x3fcbb98b5aa0 { | |
name = "virtualDiskManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb98b4e5c { | |
name = "type", | |
value = "VirtualDiskManager" | |
})], | |
children = [ #(Text "VirtualDiskManager")] | |
}), | |
#(Element:0x3fcbb988b638 { | |
name = "snmpSystem", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb988dd48 { name = "type", value = "HostSnmpSystem" })], | |
children = [ #(Text "SnmpSystem")] | |
}), | |
#(Element:0x3fcbb98eda04 { | |
name = "vmProvisioningChecker", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb98ec960 { | |
name = "type", | |
value = "VirtualMachineProvisioningChecker" | |
})], | |
children = [ #(Text "ProvChecker")] | |
}), | |
#(Element:0x3fcbb9900dac { | |
name = "vmCompatibilityChecker", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9900474 { | |
name = "type", | |
value = "VirtualMachineCompatibilityChecker" | |
})], | |
children = [ #(Text "CompatChecker")] | |
}), | |
#(Element:0x3fcbb99067e8 { | |
name = "ovfManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb9906040 { name = "type", value = "OvfManager" })], | |
children = [ #(Text "OvfManager")] | |
}), | |
#(Element:0x3fcbb983ec70 { | |
name = "ipPoolManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb983e504 { name = "type", value = "IpPoolManager" })], | |
children = [ #(Text "IpPoolManager")] | |
}), | |
#(Element:0x3fcbb98a3e2c { | |
name = "dvSwitchManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb98a31fc { | |
name = "type", | |
value = "DistributedVirtualSwitchManager" | |
})], | |
children = [ #(Text "DVSManager")] | |
}), | |
#(Element:0x3fcbb98a9034 { | |
name = "hostProfileManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb98a83b4 { | |
name = "type", | |
value = "HostProfileManager" | |
})], | |
children = [ #(Text "HostProfileManager")] | |
}), | |
#(Element:0x3fcbb99a562c { | |
name = "clusterProfileManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb99a8c78 { | |
name = "type", | |
value = "ClusterProfileManager" | |
})], | |
children = [ #(Text "ClusterProfileManager")] | |
}), | |
#(Element:0x3fcbb99ae894 { | |
name = "complianceManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb99adfc0 { | |
name = "type", | |
value = "ProfileComplianceManager" | |
})], | |
children = [ #(Text "MoComplianceManager")] | |
}), | |
#(Element:0x3fcbb99b4820 { | |
name = "localizationManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb99b3d08 { | |
name = "type", | |
value = "LocalizationManager" | |
})], | |
children = [ #(Text "LocalizationManager")] | |
}), | |
#(Element:0x3fcbb998fa5c { | |
name = "storageResourceManager", | |
namespace = #(Namespace:0x3fcbb992d500 { href = "urn:vim25" }), | |
attributes = [ | |
#(Attr:0x3fcbb998f00c { | |
name = "type", | |
value = "StorageResourceManager" | |
})], | |
children = [ #(Text "StorageResourceManager")] | |
})] | |
}) | |
[11] pry(#<RbVmomi::NewDeserializer>)> whereami | |
From: /Users/epeterson/.gem/ruby/1.9.3/gems/rbvmomi-1.8.0/lib/rbvmomi/deserialization.rb @ line 82 RbVmomi::NewDeserializer#deserialize: | |
77: | |
78: begin | |
79: klass = @loader.get(type) or fail "no such type '#{type}'" | |
80: rescue Exception => e | |
81: require 'pry' | |
=> 82: binding.pry | |
83: end | |
84: case klass.kind | |
85: when :data | |
86: traverse_data node, klass | |
87: when :enum |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Weird!
The method starts with:
type_attr = node['type']
type = type_attr if type_attr
So based on the output, I would have expected node['type'] to be set to "ServiceContent". But instead, it appears to be nil, so anyType is not overwritten with anything and hence the issue later down in the method. Can you confirm that? Which version of Nokogiri are you running?