Sha256: 529d249e124fac0452d6e61e5543546357f62dbf632f505050d812032d3d536c

Contents?: true

Size: 1.87 KB

Versions: 16

Compression:

Stored size: 1.87 KB

Contents

#!/usr/bin/env ruby

# Copyright (c) 2011-2017 VMware, Inc.  All Rights Reserved.
# SPDX-License-Identifier: MIT

# 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

16 entries across 14 versions & 2 rubygems

Version Path
rbvmomi-2.0.0 devel/merge-internal-vmodl.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/rbvmomi-1.13.0/devel/merge-internal-vmodl.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/rbvmomi-1.13.0/devel/merge-internal-vmodl.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/rbvmomi-1.13.0/devel/merge-internal-vmodl.rb
rbvmomi-1.13.0 devel/merge-internal-vmodl.rb
rbvmomi-1.12.0 devel/merge-internal-vmodl.rb
rbvmomi-1.11.7 devel/merge-internal-vmodl.rb
rbvmomi-1.11.6 devel/merge-internal-vmodl.rb
rbvmomi-1.11.5 devel/merge-internal-vmodl.rb
rbvmomi-1.11.4 devel/merge-internal-vmodl.rb
rbvmomi-1.11.3 devel/merge-internal-vmodl.rb
rbvmomi-1.11.2 devel/merge-internal-vmodl.rb
rbvmomi-1.11.1 devel/merge-internal-vmodl.rb
rbvmomi-1.11.0 devel/merge-internal-vmodl.rb
rbvmomi-1.10.0 devel/merge-internal-vmodl.rb
rbvmomi-1.9.5 devel/merge-internal-vmodl.rb