rbvmomi icon indicating copy to clipboard operation
rbvmomi copied to clipboard

Update vmodl.db for vSphere 7.0U2

Open agrare opened this issue 3 years ago • 0 comments

Use the public vSphere 7.0U2 vsphere-ws wsdl from (https://code.vmware.com/web/sdk/7.0/vsphere-management) to build the new Data types added in 7.0 U1 and U2

I used a modified version of my https://github.com/vmware/rbvmomi/blob/master/devel/verify-vim-wsdl.rb script to build the new data types from the vimService.xml wsdl file.

~~It isn't "production ready" yet as I had to make small modifications by had but I hope to enhance it to fully build the data types defined in it automatically in the future.~~ I was able to get the auto-generated vmodl.db to be equal to my manual edits and so I've pushed those changes to the verify-vim-wsdl script.

Dump the master vmodl.db marshal to yaml:

adam@desktop:~/src/vmware/rbvmomi$ git checkout master 
Switched to branch 'master'
Your branch is up to date with 'upstream/master'.
adam@desktop:~/src/vmware/rbvmomi$ irb
>> require 'yaml'
>> File.write('vmodl-master.yml', Marshal.load(File.read('vmodl.db')).to_yaml)
=> 1766672

Dump the vmodl.db marshal from this branch to yaml:

adam@desktop:~/src/vmware/rbvmomi$ git checkout update_vmodl_db_7_0_U2 
Switched to branch 'update_vmodl_db_7_0_U2'
Your branch is up to date with 'agrare/update_vmodl_db_7_0_U2'.
adam@desktop:~/src/vmware/rbvmomi$ irb
>> require 'yaml'
>> File.write('vmodl-70U2.yml', Marshal.load(File.read('vmodl.db')).to_yaml)
=> 1771020

Diff the two:

$ diff vmodl-master.yml vmodl-70U2.yml 
74748a74749,74948
>   - ClusterComputeResourceVcsSlots
>   - DesiredSoftwareSpecComponentSpec
>   - FeatureEVCMode
>   - HttpNfcLeaseProbeResult
>   - VirtualMachineConnection
>   - VirtualMachineMksConnection
>   - VMwareDvsMtuCapability
>   - VsanDatastoreInfo
>   - HostSevInfo
>   - HostTpmNvTagEventDetails
>   - HostTrustAuthorityAttestationInfo
>   - GuestInfoCustomizationInfo
>   - vslmVClockInfo
> ClusterComputeResourceVcsSlots:
>   kind: data
>   props:
>   - name: host
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: ManagedObject
>   - name: totalSlots
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:int
>   wsdl_base: DynamicData
> DesiredSoftwareSpecComponentSpec:
>   kind: data
>   props:
>   - name: name
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: version
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   wsdl_base: DynamicData
> FeatureEVCMode:
>   kind: data
>   props:
>   - name: mask
>     is-optional: true
>     is-array: true
>     version-id-ref:
>     wsdl_type: HostFeatureMask
>   - name: capability
>     is-optional: true
>     is-array: true
>     version-id-ref:
>     wsdl_type: HostFeatureCapability
>   - name: requirement
>     is-optional: true
>     is-array: true
>     version-id-ref:
>     wsdl_type: VirtualMachineFeatureRequirement
>   wsdl_base: ElementDescription
> HttpNfcLeaseProbeResult:
>   kind: data
>   props:
>   - name: serverAccessible
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:boolean
>   wsdl_base: DynamicData
> VirtualMachineConnection:
>   kind: data
>   props:
>   - name: label
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: client
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: userName
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   wsdl_base: DynamicData
> VirtualMachineMksConnection:
>   kind: data
>   props: []
>   wsdl_base: VirtualMachineConnection
> VMwareDvsMtuCapability:
>   kind: data
>   props:
>   - name: minMtuSupported
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:int
>   - name: maxMtuSupported
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:int
>   wsdl_base: DynamicData
> VsanDatastoreInfo:
>   kind: data
>   props:
>   - name: membershipUuid
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: accessGenNo
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:int
>   wsdl_base: DatastoreInfo
> HostSevInfo:
>   kind: data
>   props:
>   - name: sevState
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: maxSevEsGuests
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:long
>   wsdl_base: DynamicData
> HostTpmNvTagEventDetails:
>   kind: data
>   props: []
>   wsdl_base: HostTpmBootSecurityOptionEventDetails
> HostTrustAuthorityAttestationInfo:
>   kind: data
>   props:
>   - name: attestationStatus
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: serviceId
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: attestedAt
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:dateTime
>   - name: attestedUntil
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:dateTime
>   - name: messages
>     is-optional: true
>     is-array: true
>     version-id-ref:
>     wsdl_type: LocalizableMessage
>   wsdl_base: DynamicData
> GuestInfoCustomizationInfo:
>   kind: data
>   props:
>   - name: customizationStatus
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   - name: startTime
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:dateTime
>   - name: endTime
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:dateTime
>   - name: errorMsg
>     is-optional: true
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:string
>   wsdl_base: DynamicData
> vslmVClockInfo:
>   kind: data
>   props:
>   - name: vClockTime
>     is-optional: false
>     is-array: false
>     version-id-ref:
>     wsdl_type: xsd:long
>   wsdl_base: DynamicData

Fixes https://github.com/vmware/rbvmomi/issues/208

agrare avatar Jun 15 '21 15:06 agrare