Sha256: c080b7530100b6eebcd68e8f1b4a5eb05dfcd75b0b073acb443af49a0f872736

Contents?: true

Size: 1.78 KB

Versions: 14

Compression:

Stored size: 1.78 KB

Contents

#!/usr/bin/env ruby
# These types are not public and so may change between releases. Do not
# use them directly.

public_vmodl_filename = ARGV[0] or abort "public vmodl filename required"
internal_vmodl_filename = ARGV[1] or abort "internal vmodl filename required"
output_vmodl_filename = ARGV[2] or abort "output vmodl filename required"

TYPES = %w(
DVSKeyedOpaqueData
DVSOpaqueDataConfigSpec
DVPortgroupSelection
DVPortSelection
DVSSelection
DynamicTypeEnumTypeInfo
DynamicTypeMgrAllTypeInfo
DynamicTypeMgrAnnotation
DynamicTypeMgrDataTypeInfo
DynamicTypeMgrFilterSpec
DynamicTypeMgrManagedTypeInfo
DynamicTypeMgrMethodTypeInfo
DynamicTypeMgrMethodTypeInfoAnnotationType
DynamicTypeMgrMoFilterSpec
DynamicTypeMgrMoInstance
DynamicTypeMgrParamTypeInfo
DynamicTypeMgrParamTypeInfoAnnotationType
DynamicTypeMgrPropertyTypeInfo
DynamicTypeMgrPropertyTypeInfoAnnotationType
DynamicTypeMgrTypeFilterSpec
InternalDynamicTypeManager
ReflectManagedMethodExecuter
ReflectManagedMethodExecuterSoapArgument
ReflectManagedMethodExecuterSoapFault
ReflectManagedMethodExecuterSoapResult
SelectionSet
)

METHODS = %w(
DistributedVirtualSwitchManager.UpdateDvsOpaqueData_Task
HostSystem.RetrieveDynamicTypeManager
HostSystem.RetrieveManagedMethodExecuter
)

public_vmodl = File.open(public_vmodl_filename, 'r') { |io| Marshal.load io }
internal_vmodl = File.open(internal_vmodl_filename, 'r') { |io| Marshal.load io }

TYPES.each do |k|
  puts "Merging in #{k}"
  fail "Couldn't find type #{k} in internal VMODL" unless internal_vmodl.member? k
  public_vmodl[k] = internal_vmodl[k]
end

METHODS.each do |x|
  puts "Merging in #{x}"
  type, method = x.split '.'
  public_vmodl[type]['methods'][method] = internal_vmodl[type]['methods'][method] or fail
end

File.open(output_vmodl_filename, 'w') { |io| Marshal.dump public_vmodl, io }

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
rbvmomi-1.8.5 devel/merge-internal-vmodl.rb
rbvmomi-1.8.4 devel/merge-internal-vmodl.rb
rbvmomi-1.8.3 devel/merge-internal-vmodl.rb
rbvmomi-1.9.4 devel/merge-internal-vmodl.rb
rbvmomi-1.9.3 devel/merge-internal-vmodl.rb
rbvmomi-1.9.2 devel/merge-internal-vmodl.rb
rbvmomi-1.9.1 devel/merge-internal-vmodl.rb
rbvmomi-1.9.0 devel/merge-internal-vmodl.rb
rbvmomi-1.8.2 devel/merge-internal-vmodl.rb
rbvmomi-1.8.2.pre devel/merge-internal-vmodl.rb
mkuzmin-rbvmomi-1.8.2.1 devel/merge-internal-vmodl.rb
vagrant-rbvmomi-1.8.1 devel/merge-internal-vmodl.rb
rbvmomi-1.8.1 devel/merge-internal-vmodl.rb
rbvmomi-1.8.0 devel/merge-internal-vmodl.rb