From 9562e715aa5a352a97a879d807ef4ae7a86874ca Mon Sep 17 00:00:00 2001 From: Joseph Callen Date: Thu, 14 Jan 2021 10:57:07 -0500 Subject: [PATCH 01/26] Update govmomi to 0.23.1 --- go.mod | 4 +- go.sum | 5 + vendor/github.com/vmware/govmomi/.gitignore | 3 + .../github.com/vmware/govmomi/.goreleaser.yml | 127 +- vendor/github.com/vmware/govmomi/.mailmap | 21 +- vendor/github.com/vmware/govmomi/.travis.yml | 8 +- vendor/github.com/vmware/govmomi/CHANGELOG.md | 84 +- .../github.com/vmware/govmomi/CONTRIBUTING.md | 3 + vendor/github.com/vmware/govmomi/CONTRIBUTORS | 62 +- .../govmomi/{Dockerfile => Dockerfile.govc} | 0 .../vmware/govmomi/Dockerfile.vcsim | 4 + vendor/github.com/vmware/govmomi/Makefile | 12 +- vendor/github.com/vmware/govmomi/README.md | 20 +- .../github.com/vmware/govmomi/find/finder.go | 16 +- vendor/github.com/vmware/govmomi/go.mod | 15 + vendor/github.com/vmware/govmomi/go.sum | 13 + .../github.com/vmware/govmomi/list/lister.go | 65 + .../vmware/govmomi/lookup/client.go | 17 +- vendor/github.com/vmware/govmomi/nfc/lease.go | 5 - .../vmware/govmomi/nfc/lease_updater.go | 4 +- .../object/cluster_compute_resource.go | 14 + .../vmware/govmomi/object/common.go | 24 +- .../object/customization_spec_manager.go | 7 + .../vmware/govmomi/object/datastore.go | 5 + .../vmware/govmomi/object/datastore_file.go | 6 +- .../vmware/govmomi/object/datastore_path.go | 2 +- .../govmomi/object/diagnostic_manager.go | 6 +- .../object/distributed_virtual_portgroup.go | 12 +- .../object/distributed_virtual_switch.go | 26 +- .../govmomi/object/host_config_manager.go | 151 +- .../govmomi/object/host_datastore_system.go | 16 + .../govmomi/object/host_network_system.go | 8 +- .../govmomi/object/host_storage_system.go | 26 + .../vmware/govmomi/object/host_system.go | 17 +- .../vmware/govmomi/object/network.go | 14 +- .../govmomi/object/network_reference.go | 2 +- .../vmware/govmomi/object/opaque_network.go | 31 +- .../vmware/govmomi/object/resource_pool.go | 13 + .../vmware/govmomi/object/search_index.go | 85 + .../github.com/vmware/govmomi/object/task.go | 42 +- .../govmomi/object/virtual_device_list.go | 4 +- .../vmware/govmomi/object/virtual_machine.go | 95 +- .../vmware_distributed_virtual_switch.go | 4 + .../github.com/vmware/govmomi/pbm/client.go | 40 + .../github.com/vmware/govmomi/pbm/pbm_util.go | 2 + .../vmware/govmomi/pbm/types/enum.go | 14 + vendor/github.com/vmware/govmomi/program.mk | 2 +- .../vmware/govmomi/property/collector.go | 4 +- .../vmware/govmomi/property/filter.go | 9 +- .../vmware/govmomi/property/wait.go | 24 +- .../vmware/govmomi/session/keep_alive.go | 106 +- .../govmomi/session/keepalive/handler.go | 204 ++ .../vmware/govmomi/session/manager.go | 20 +- .../github.com/vmware/govmomi/sts/client.go | 2 +- .../vmware/govmomi/sts/internal/types.go | 6 +- .../github.com/vmware/govmomi/sts/signer.go | 4 +- vendor/github.com/vmware/govmomi/task/wait.go | 15 +- .../vmware/govmomi/vapi/internal/internal.go | 96 +- .../vmware/govmomi/vapi/rest/client.go | 176 +- .../vmware/govmomi/vapi/rest/resource.go | 89 + .../vmware/govmomi/vapi/tags/categories.go | 10 +- .../govmomi/vapi/tags/tag_association.go | 168 +- .../vmware/govmomi/vapi/tags/tags.go | 18 +- .../vmware/govmomi/view/container_view.go | 2 +- .../github.com/vmware/govmomi/vim25/client.go | 51 +- .../vmware/govmomi/vim25/debug/debug.go | 31 +- .../vmware/govmomi/vim25/debug/file.go | 68 + .../vmware/govmomi/vim25/debug/log.go | 49 + .../vmware/govmomi/vim25/methods/methods.go | 2732 +++++++++++------ .../github.com/vmware/govmomi/vim25/mo/mo.go | 81 +- .../vmware/govmomi/vim25/mo/retrieve.go | 81 +- .../vmware/govmomi/vim25/mo/type_info.go | 2 +- .../vmware/govmomi/vim25/progress/reader.go | 2 +- .../github.com/vmware/govmomi/vim25/retry.go | 20 +- .../vmware/govmomi/vim25/soap/client.go | 71 +- .../vmware/govmomi/vim25/soap/debug.go | 25 +- .../vmware/govmomi/vim25/types/enum.go | 334 +- .../vmware/govmomi/vim25/types/if.go | 44 + .../vmware/govmomi/vim25/types/types.go | 2682 +++++++++++++++- .../vmware/govmomi/vim25/xml/LICENSE | 2 +- .../vmware/govmomi/vim25/xml/marshal.go | 319 +- .../vmware/govmomi/vim25/xml/read.go | 244 +- .../vmware/govmomi/vim25/xml/typeinfo.go | 49 +- .../vmware/govmomi/vim25/xml/xml.go | 282 +- .../golang.org/x/sync/semaphore/semaphore.go | 136 - vendor/modules.txt | 4 +- 86 files changed, 7423 insertions(+), 1995 deletions(-) rename vendor/github.com/vmware/govmomi/{Dockerfile => Dockerfile.govc} (100%) create mode 100644 vendor/github.com/vmware/govmomi/Dockerfile.vcsim create mode 100644 vendor/github.com/vmware/govmomi/go.mod create mode 100644 vendor/github.com/vmware/govmomi/go.sum create mode 100644 vendor/github.com/vmware/govmomi/session/keepalive/handler.go create mode 100644 vendor/github.com/vmware/govmomi/vapi/rest/resource.go create mode 100644 vendor/github.com/vmware/govmomi/vim25/debug/file.go create mode 100644 vendor/github.com/vmware/govmomi/vim25/debug/log.go delete mode 100644 vendor/golang.org/x/sync/semaphore/semaphore.go diff --git a/go.mod b/go.mod index 1490c523..06f6b48d 100644 --- a/go.mod +++ b/go.mod @@ -19,14 +19,14 @@ require ( github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.6.1 // indirect - github.com/vmware/govmomi v0.20.3 + github.com/vmware/govmomi v0.23.1 go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.16.0 // indirect golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 // indirect golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect - golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 + golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect golang.org/x/sys v0.0.0-20201112073958-5cba982894dd // indirect golang.org/x/text v0.3.4 // indirect golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect diff --git a/go.sum b/go.sum index f42d6bed..f6409e5c 100644 --- a/go.sum +++ b/go.sum @@ -93,6 +93,7 @@ github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -247,6 +248,7 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -460,6 +462,9 @@ github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJ github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vmware/govmomi v0.20.3 h1:gpw/0Ku+6RgF3jsi7fnCLmlcikBHfKBCUcu1qgc16OU= github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= +github.com/vmware/govmomi v0.23.1 h1:vU09hxnNR/I7e+4zCJvW+5vHu5dO64Aoe2Lw7Yi/KRg= +github.com/vmware/govmomi v0.23.1/go.mod h1:Y+Wq4lst78L85Ge/F8+ORXIWiKYqaro1vhAulACy9Lc= +github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= diff --git a/vendor/github.com/vmware/govmomi/.gitignore b/vendor/github.com/vmware/govmomi/.gitignore index 9099ba34..71b0b842 100644 --- a/vendor/github.com/vmware/govmomi/.gitignore +++ b/vendor/github.com/vmware/govmomi/.gitignore @@ -1,3 +1,6 @@ secrets.yml dist/ .idea/ + +# Ignore editor temp files +*~ diff --git a/vendor/github.com/vmware/govmomi/.goreleaser.yml b/vendor/github.com/vmware/govmomi/.goreleaser.yml index a15c5d7d..6a374cd9 100644 --- a/vendor/github.com/vmware/govmomi/.goreleaser.yml +++ b/vendor/github.com/vmware/govmomi/.goreleaser.yml @@ -1,23 +1,52 @@ --- -project_name: govc +project_name: govmomi builds: -- goos: - - linux - - darwin - - windows - - freebsd +- id: govc + goos: + - linux + - darwin + - windows + - freebsd goarch: - - amd64 - - 386 + - amd64 + - 386 + - arm64 env: - - CGO_ENABLED=0 + - CGO_ENABLED=0 main: ./govc/main.go binary: govc flags: -compiler gc ldflags: -X github.com/vmware/govmomi/govc/flags.GitVersion={{.Version}} -archive: - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}' - format: tar.gz +- id: vcsim + goos: + - linux + - darwin + - windows + - freebsd + goarch: + - amd64 + - 386 + - arm64 + env: + - CGO_ENABLED=0 + main: ./vcsim/main.go + binary: vcsim + flags: -compiler gc + ldflags: -X github.com/vmware/govmomi/vcsim/flags.GitVersion={{.Version}} +archives: +- id: govcbuild + builds: ['govc'] + name_template: 'govc_{{ .Os }}_{{ .Arch }}' + format: gz + format_overrides: + - goos: windows + format: zip + files: + - none* +- id: vcsimbuild + builds: ['vcsim'] + name_template: 'vcsim_{{ .Os }}_{{ .Arch }}' + format: gz format_overrides: - goos: windows format: zip @@ -33,25 +62,57 @@ changelog: - '^test:' - Merge pull request - Merge branch -brew: - github: - owner: govmomi - name: homebrew-tap - commit_author: - name: Alfred the Narwhal - email: cna-alfred@vmware.com - folder: Formula - homepage: "https://github.com/vmware/govmomi/blob/master/govc/README.md" - description: "govc is a vSphere CLI built on top of govmomi." - test: | - system "#{bin}/govc version" +brews: + - name: govc + ids: + - govc + github: + owner: govmomi + name: homebrew-tap + commit_author: + name: Alfred the Narwhal + email: cna-alfred@vmware.com + folder: Formula + homepage: "https://github.com/vmware/govmomi/blob/master/govc/README.md" + description: "govc is a vSphere CLI built on top of govmomi." + test: | + system "#{bin}/govc version" + install: | + bin.install "govc" + - name: vcsim + ids: + - vcsim + github: + owner: govmomi + name: homebrew-tap + commit_author: + name: Alfred the Narwhal + email: cna-alfred@vmware.com + folder: Formula + homepage: "https://github.com/vmware/govmomi/blob/master/vcsim/README.md" + description: "vcsim is a vSphere API simulator built on top of govmomi." + test: | + system "#{bin}/vcsim -h" + install: | + bin.install "vcsim" dockers: - - image: vmware/govc - goos: linux - goarch: amd64 - binary: govc - tag_templates: - - "{{ .Tag }}" - - "v{{ .Major }}" - - "v{{ .Major }}.{{ .Minor }}" - - latest +- image_templates: + - "vmware/govc:{{ .Tag }}" + - "vmware/govc:v{{ .Major }}" + - "vmware/govc:v{{ .Major }}.{{ .Minor }}" + - "vmware/govc:latest" + goos: linux + goarch: amd64 + dockerfile: Dockerfile.govc + binaries: + - govc +- image_templates: + - "vmware/vcsim:{{ .Tag }}" + - "vmware/vcsim:v{{ .Major }}" + - "vmware/vcsim:v{{ .Major }}.{{ .Minor }}" + - "vmware/vcsim:latest" + goos: linux + goarch: amd64 + dockerfile: Dockerfile.vcsim + binaries: + - vcsim diff --git a/vendor/github.com/vmware/govmomi/.mailmap b/vendor/github.com/vmware/govmomi/.mailmap index b26a7247..9368b7a9 100644 --- a/vendor/github.com/vmware/govmomi/.mailmap +++ b/vendor/github.com/vmware/govmomi/.mailmap @@ -1,11 +1,16 @@ +Amanda H. L. de Andrade Amanda Hager Lopes de Andrade Katz Amanda H. L. de Andrade amandahla Amit Bathla -Andrew Kutz akutz Andrew Kutz Andrew Kutz Andrew Kutz <101085+akutz@users.noreply.github.com> +Andrew Kutz akutz +Anfernee Yongkun Gui +Anfernee Yongkun Gui Yongkun Anfernee Gui +Anna Carrigan Anna +Balu Dontu BaluDontu Bruce Downs -Bruce Downs Bruce Downs +Bruce Downs Clint Greenwood Cédric Blomart Cédric Blomart cedric @@ -13,16 +18,18 @@ David Stark Eric Gray Eric Yutao eric Fabio Rapposelli +Faiyaz Ahmed Faiyaz Ahmed +Faiyaz Ahmed Faiyaz Ahmed +Faiyaz Ahmed Faiyaz Ahmed Henrik Hodne Jeremy Canady +Jiatong Wang jiatongw +Lintong Jiang lintongj <55512168+lintongj@users.noreply.github.com> Pieter Noordhuis Takaaki Furukawa takaaki.furukawa Takaaki Furukawa tkak +Uwe Bessle Uwe Bessle +Uwe Bessle Uwe Bessle Vadim Egorov -Anfernee Yongkun Gui -Anfernee Yongkun Gui Yongkun Anfernee Gui Zach Tucker Zee Yang -Jiatong Wang jiatongw -Uwe Bessle Uwe Bessle -Uwe Bessle Uwe Bessle diff --git a/vendor/github.com/vmware/govmomi/.travis.yml b/vendor/github.com/vmware/govmomi/.travis.yml index 34777d48..1c55bc98 100644 --- a/vendor/github.com/vmware/govmomi/.travis.yml +++ b/vendor/github.com/vmware/govmomi/.travis.yml @@ -1,7 +1,7 @@ # Use the newer Travis-CI build templates based on the -# Debian Linux distribution "Trusty" release. +# Ubuntu Linux distribution "Xenial Xerus" release. os: linux -dist: trusty +dist: xenial # Disable sudo for all builds by default. This ensures all jobs use # Travis-CI's containerized build environment unless specified otherwise. @@ -12,7 +12,7 @@ services: false # Set the version of Go. language: go -go: 1.11 +go: 1.14 # Always set the project's Go import path to ensure that forked # builds get cloned to the correct location. @@ -35,7 +35,7 @@ jobs: - <<: *lint-stage env: LINTER=goimports - # The "build" stage verifies the program can be built against the + # The "build" stage verifies the program can be built against the # various GOOS and GOARCH combinations found in the Go releaser # config file, ".goreleaser.yml". - &build-stage diff --git a/vendor/github.com/vmware/govmomi/CHANGELOG.md b/vendor/github.com/vmware/govmomi/CHANGELOG.md index 97907f79..5bc96287 100644 --- a/vendor/github.com/vmware/govmomi/CHANGELOG.md +++ b/vendor/github.com/vmware/govmomi/CHANGELOG.md @@ -1,6 +1,88 @@ # changelog -### 0.20.0 (2018-02-06) +### 0.23.0 (2020-06-11) + +* Finder: support DistributedVirtualSwitch traversal + +* Update to vSphere 7 APIs + +* Avoid possible nil pointer dereference in guest TransferURL + +* Refactor govc session persistence into session/cache package + +* Add SetTaskState SetTaskDescription UpdateProgress to object package + +* Add Content Library subscriptions support + +* Add Content Library item copy support + +* Sync vim25/xml with golang 1.13 encoding/xml + +* vapi: Add cluster modules client and simulator + +* Expose soap client default transport + +### 0.22.1 (2020-01-13) + +* Fix SAML token auth using Holder-of-Key with delegated Bearer identity against 6.7 U3b+ + +### 0.22.0 (2020-01-10) + +* Add OVF properties to library.Deploy method + +* Add retry support for HTTP status codes + +* Use cs.identity service type for sts endpoint lookups + +* Add Content Library VM template APIs + +* Add SearchIndex FindAllByDnsName and FindAllByIp methods + +* Fix HostSystem.ManagementIPs to use SelectedVnic + +* Change generated ResourceReductionToToleratePercent to pointer type + +* Add DistributedVirtualSwitch.ReconfigureDVPort method + +* Add VirtualMachine.IsTemplate method + +* Add GetInventoryPath to NetworkReference interface + +* Support HoK tokens with Interactive Users + +* Replace mo.LoadRetrievePropertiesResponse with mo.LoadObjectContent + +* Add VirtualHardwareSection.StorageItem + +* Add ResourcePool.Owner method + +* Add VirtualMachine.QueryChangedDiskAreas method + +* Update generated code to vSphere 6.7u3 + +* Add option to propagate MissingSet faults in property.WaitForUpdates + +* Add content library subscription support + +* Fix deadlock for keep alive handlers that attempt log in + +* Add CNS API bindings + +* Add FetchCapabilityMetadata method to Pbm client + +* Add v4 option to VirtualMachine.WaitForIP + +* Add VirtualHardwareSection.StorageItem + +### 0.21.0 (2019-07-24) + +* Add vsan package + +* Add vslm (FCD) global catalog support + +* Add content library support + +### 0.20.0 (2019-02-06) * Add vslm package for managing First Class Disks diff --git a/vendor/github.com/vmware/govmomi/CONTRIBUTING.md b/vendor/github.com/vmware/govmomi/CONTRIBUTING.md index f6645cbf..defa3371 100644 --- a/vendor/github.com/vmware/govmomi/CONTRIBUTING.md +++ b/vendor/github.com/vmware/govmomi/CONTRIBUTING.md @@ -96,6 +96,9 @@ We follow the conventions on [How to Write a Git Commit Message](http://chris.be Be sure to include any related GitHub issue references in the commit message. +### Running CI checks and tests +You can run both `make check` and `make test` from the top level of the repository. While `make check` will catch formatting and import errors, it will not apply any fixes. The developer is expected to do that. + ## Reporting Bugs and Creating Issues When opening a new issue, try to roughly follow the commit message format conventions above. diff --git a/vendor/github.com/vmware/govmomi/CONTRIBUTORS b/vendor/github.com/vmware/govmomi/CONTRIBUTORS index 6a421d09..4d4819fe 100644 --- a/vendor/github.com/vmware/govmomi/CONTRIBUTORS +++ b/vendor/github.com/vmware/govmomi/CONTRIBUTORS @@ -6,9 +6,11 @@ Abhijeet Kasurde abrarshivani Adam Shannon +Al Biheiri Alessandro Cortiana Alex Bozhenko Alex Ellis (VMware) +Alex Alvaro Miranda Amanda H. L. de Andrade Amit Bathla @@ -16,37 +18,60 @@ amit bezalel Andrew Andrew Chin Andrew Kutz +Andrey Klimentyev Anfernee Yongkun Gui angystardust aniketGslab +Ankit Vaidya +Anna Carrigan Arran Walker +Artem Anisimov Aryeh Weinreb Austin Parker Balu Dontu bastienbc +Ben Corrie +Benjamin Davini +Benjamin Peterson Bob Killen Brad Fitzpatrick Bruce Downs Cédric Blomart +Cheng Cheng +Chethan Venkatesh Chris Marchesi Christian Höltje Clint Greenwood CuiHaozhi +Daniel Mueller +Dan Ilan Danny Lockard +Dave Gress +Dave Smith-Uchida Dave Tucker Davide Agnello +David Gress David Stark Davinder Kumar +demarey +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Deric Crago +Divyen Patel +Dnyanesh Gate Doug MacEachern Eloy Coto +Eric Edens +Eric Graham <16710890+Pheric@users.noreply.github.com> Eric Gray Eric Yutao Erik Hollensbe Ethan Kaley +Evan Chu Fabio Rapposelli -Faiyaz Ahmed +Faiyaz Ahmed +Federico Pellegatta <12744504+federico-pellegatta@users.noreply.github.com> forkbomber +François Rigault freebsdly Gavin Gray Gavrie Philipson @@ -55,26 +80,37 @@ Gerrit Renker gthombare Hasan Mahmood Henrik Hodne +hkumar +hui luo Isaac Rodman +Ivan Mikushin Ivan Porto Carrero James King Jason Kincl Jeremy Canady jeremy-clerc Jiatong Wang +jingyizPensando João Pereira Jonas Ausevicius Jorge Sevilla kayrus Kevin George leslie-qiwa +Lintong Jiang +Liping Xue Louie Jiang +Luther Monson maplain Marc Carmier +Marcus Tan Maria Ntalla Marin Atanasov Nikolov +Mario Trangoni +Mark Peek Matt Clay Matthew Cosgrove +Matt Moore Matt Moriarity Mevan Samaratunga Michal Jankowski @@ -85,24 +121,48 @@ Parham Alvani Pierre Gronlier Pieter Noordhuis prydin +rHermes Rowan Jacobs +rsikdar runner.mei +Sandeep Pissay Srinivasa Rao S.Çağlar Onur Sergey Ignatov +serokles +Shalini Bhaskara +Shawn Neal +shylasrinivas +sky-joker +Sten Feldman +Stepan Mazurov Steve Purcell +SUMIT AGRAWAL Takaaki Furukawa Tamas Eger tanishi Ted Zlatanov +Thad Craft Thibaut Ackermann +Tim McNamara +Tjeu Kayim <15987676+TjeuKayim@users.noreply.github.com> +Toomas Pelberg Trevor Dawe +tshihad Uwe Bessle Vadim Egorov Vikram Krishnamurthy +volanja Volodymyr Bobyr +Waldek Maleska +William Lam Witold Krecicki +xing-yang +yangxi Yang Yang +Yann Hodique +ykakarap Yuya Kusakabe Zacharias Taubert Zach Tucker Zee Yang +zyuxin diff --git a/vendor/github.com/vmware/govmomi/Dockerfile b/vendor/github.com/vmware/govmomi/Dockerfile.govc similarity index 100% rename from vendor/github.com/vmware/govmomi/Dockerfile rename to vendor/github.com/vmware/govmomi/Dockerfile.govc diff --git a/vendor/github.com/vmware/govmomi/Dockerfile.vcsim b/vendor/github.com/vmware/govmomi/Dockerfile.vcsim new file mode 100644 index 00000000..117e9b55 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/Dockerfile.vcsim @@ -0,0 +1,4 @@ +FROM scratch +LABEL maintainer="fabio@vmware.com" +COPY vcsim / +ENTRYPOINT [ "/vcsim" ] \ No newline at end of file diff --git a/vendor/github.com/vmware/govmomi/Makefile b/vendor/github.com/vmware/govmomi/Makefile index ee17fe58..fc0af800 100644 --- a/vendor/github.com/vmware/govmomi/Makefile +++ b/vendor/github.com/vmware/govmomi/Makefile @@ -1,4 +1,5 @@ -.PHONY: test +GO ?= go +pkgs = $(shell $(GO) list ./... | grep -v 'github.com/vmware/govmomi/vim25/xml') all: check test @@ -6,23 +7,26 @@ check: goimports govet goimports: @echo checking go imports... - @command -v goimports >/dev/null 2>&1 || go get golang.org/x/tools/cmd/goimports + @command -v goimports >/dev/null 2>&1 || $(GO) get golang.org/x/tools/cmd/goimports @! goimports -d . 2>&1 | egrep -v '^$$' + @! TERM=xterm git grep encoding/xml -- '*.go' ':!vim25/xml/*.go' govet: @echo checking go vet... - @go tool vet -structtags=false -methods=false $$(find . -mindepth 1 -maxdepth 1 -type d -not -name vendor) + @$(GO) vet -structtag=false -methods=false $(pkgs) install: $(MAKE) -C govc install $(MAKE) -C vcsim install go-test: - GORACE=history_size=5 go test -timeout 5m -count 1 -race -v $(TEST_OPTS) ./... + GORACE=history_size=5 $(GO) test -timeout 5m -count 1 -race -v $(TEST_OPTS) ./... govc-test: install + ./govc/test/images/update.sh (cd govc/test && ./vendor/github.com/sstephenson/bats/libexec/bats -t .) +.PHONY: test test: go-test govc-test doc: install diff --git a/vendor/github.com/vmware/govmomi/README.md b/vendor/github.com/vmware/govmomi/README.md index 1c31bbdd..db17cc66 100644 --- a/vendor/github.com/vmware/govmomi/README.md +++ b/vendor/github.com/vmware/govmomi/README.md @@ -15,9 +15,9 @@ In addition to the vSphere API client, this repository includes: ## Compatibility -This library is built for and tested against ESXi and vCenter 6.0, 6.5 and 6.7. +This library is built for and tested against ESXi and vCenter 6.5, 6.7 and 7.0. -It may work with versions 5.5 and 5.1, but neither are officially supported. +It may work with versions 5.1, 5.5 and 6.0, but neither are officially supported. ## Documentation @@ -28,7 +28,7 @@ The code in the `govmomi` package is a wrapper for the code that is generated fr It primarily provides convenience functions for working with the vSphere API. See [godoc.org][godoc] for documentation. -[apiref]:http://pubs.vmware.com/vsphere-6-5/index.jsp#com.vmware.wssdk.apiref.doc/right-pane.html +[apiref]:https://code.vmware.com/apis/968/vsphere [godoc]:http://godoc.org/github.com/vmware/govmomi ## Installation @@ -83,12 +83,26 @@ Refer to the [CHANGELOG](CHANGELOG.md) for version to version changes. * [Open Storage](https://github.com/libopenstorage/openstorage/tree/master/pkg/storageops/vsphere) +* [Juju](https://github.com/juju/juju) + +* [vSphere 7.0](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-vcenter-server-7-vsphere-with-kubernetes-release-notes.html) + +* [OPS](https://github.com/nanovms/ops) + ## Related projects * [rbvmomi](https://github.com/vmware/rbvmomi) * [pyvmomi](https://github.com/vmware/pyvmomi) +* [go-vmware-nsxt](https://github.com/vmware/go-vmware-nsxt) + ## License govmomi is available under the [Apache 2 license](LICENSE.txt). + +## Name + +Pronounced "go-v-mom-ie" + +Follows pyvmomi and rbvmomi: language prefix + the vSphere acronym "VM Object Management Infrastructure". diff --git a/vendor/github.com/vmware/govmomi/find/finder.go b/vendor/github.com/vmware/govmomi/find/finder.go index 03767fc3..a46c70bf 100644 --- a/vendor/github.com/vmware/govmomi/find/finder.go +++ b/vendor/github.com/vmware/govmomi/find/finder.go @@ -38,16 +38,26 @@ type Finder struct { folders *object.DatacenterFolders } -func NewFinder(client *vim25.Client, all bool) *Finder { +func NewFinder(client *vim25.Client, all ...bool) *Finder { + props := false + if len(all) == 1 { + props = all[0] + } + f := &Finder{ client: client, si: object.NewSearchIndex(client), r: recurser{ Collector: property.DefaultCollector(client), - All: all, + All: props, }, } + if len(all) == 0 { + // attempt to avoid SetDatacenter() requirement + f.dc, _ = f.DefaultDatacenter(context.Background()) + } + return f } @@ -253,7 +263,7 @@ func (f *Finder) managedObjectList(ctx context.Context, path string, tl bool, in fn = f.dcReference } - if len(path) == 0 { + if path == "" { path = "." } diff --git a/vendor/github.com/vmware/govmomi/go.mod b/vendor/github.com/vmware/govmomi/go.mod new file mode 100644 index 00000000..d1badde5 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/go.mod @@ -0,0 +1,15 @@ +module github.com/vmware/govmomi + +replace github.com/davecgh/go-xdr => github.com/rasky/go-xdr v0.0.0-20170217172119-4930550ba2e2 + +replace github.com/kr/pretty v0.1.0 => github.com/dougm/pretty v0.0.0-20171025230240-2ee9d7453c02 + +require ( + github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892 + github.com/google/uuid v0.0.0-20170306145142-6a5e28554805 + github.com/kr/pretty v0.1.0 + github.com/kr/text v0.1.0 // indirect + github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728 +) + +go 1.13 diff --git a/vendor/github.com/vmware/govmomi/go.sum b/vendor/github.com/vmware/govmomi/go.sum new file mode 100644 index 00000000..72b4a8ed --- /dev/null +++ b/vendor/github.com/vmware/govmomi/go.sum @@ -0,0 +1,13 @@ +github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892 h1:qg9VbHo1TlL0KDM0vYvBG9EY0X0Yku5WYIPoFWt8f6o= +github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE= +github.com/dougm/pretty v0.0.0-20171025230240-2ee9d7453c02 h1:tR3jsKPiO/mb6ntzk/dJlHZtm37CPfVp1C9KIo534+4= +github.com/dougm/pretty v0.0.0-20171025230240-2ee9d7453c02/go.mod h1:7NQ3kWOx2cZOSjtcveTa5nqupVr2s6/83sG+rTlI7uA= +github.com/google/uuid v0.0.0-20170306145142-6a5e28554805 h1:skl44gU1qEIcRpwKjb9bhlRwjvr96wLdvpTogCBBJe8= +github.com/google/uuid v0.0.0-20170306145142-6a5e28554805/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/rasky/go-xdr v0.0.0-20170217172119-4930550ba2e2 h1:lbe6PJ3nOQAUvpx9P3GtsQ/jyNBOHLV+cj2++uZrpa4= +github.com/rasky/go-xdr v0.0.0-20170217172119-4930550ba2e2/go.mod h1:Nfe4efndBz4TibWycNE+lqyJZiMX4ycx+QKV8Ta0f/o= +github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728 h1:sH9mEk+flyDxiUa5BuPiuhDETMbzrt9A20I2wktMvRQ= +github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk= diff --git a/vendor/github.com/vmware/govmomi/list/lister.go b/vendor/github.com/vmware/govmomi/list/lister.go index 2ee32e6b..9a4caed6 100644 --- a/vendor/github.com/vmware/govmomi/list/lister.go +++ b/vendor/github.com/vmware/govmomi/list/lister.go @@ -165,6 +165,8 @@ func (l Lister) List(ctx context.Context) ([]Element, error) { return l.ListHostSystem(ctx) case "VirtualApp": return l.ListVirtualApp(ctx) + case "VmwareDistributedVirtualSwitch", "DistributedVirtualSwitch": + return l.ListDistributedVirtualSwitch(ctx) default: return nil, fmt.Errorf("cannot traverse type " + l.Reference.Type) } @@ -497,6 +499,69 @@ func (l Lister) ListHostSystem(ctx context.Context) ([]Element, error) { return es, nil } +func (l Lister) ListDistributedVirtualSwitch(ctx context.Context) ([]Element, error) { + ospec := types.ObjectSpec{ + Obj: l.Reference, + Skip: types.NewBool(true), + } + + fields := []string{ + "portgroup", + } + + for _, f := range fields { + tspec := types.TraversalSpec{ + Path: f, + Skip: types.NewBool(false), + Type: "DistributedVirtualSwitch", + } + + ospec.SelectSet = append(ospec.SelectSet, &tspec) + } + + childTypes := []string{ + "DistributedVirtualPortgroup", + } + + var pspecs []types.PropertySpec + for _, t := range childTypes { + pspec := types.PropertySpec{ + Type: t, + } + + if l.All { + pspec.All = types.NewBool(true) + } else { + pspec.PathSet = []string{"name"} + } + + pspecs = append(pspecs, pspec) + } + + req := types.RetrieveProperties{ + SpecSet: []types.PropertyFilterSpec{ + { + ObjectSet: []types.ObjectSpec{ospec}, + PropSet: pspecs, + }, + }, + } + + var dst []interface{} + + err := l.retrieveProperties(ctx, req, &dst) + if err != nil { + return nil, err + } + + es := []Element{} + for _, v := range dst { + es = append(es, ToElement(v.(mo.Reference), l.Prefix)) + } + + return es, nil +} + func (l Lister) ListVirtualApp(ctx context.Context) ([]Element, error) { ospec := types.ObjectSpec{ Obj: l.Reference, diff --git a/vendor/github.com/vmware/govmomi/lookup/client.go b/vendor/github.com/vmware/govmomi/lookup/client.go index 896909fc..6a3fb38f 100644 --- a/vendor/github.com/vmware/govmomi/lookup/client.go +++ b/vendor/github.com/vmware/govmomi/lookup/client.go @@ -25,6 +25,7 @@ import ( "github.com/vmware/govmomi/lookup/methods" "github.com/vmware/govmomi/lookup/types" + "github.com/vmware/govmomi/object" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/soap" vim "github.com/vmware/govmomi/vim25/types" @@ -52,7 +53,21 @@ type Client struct { // NewClient returns a client targeting the SSO Lookup Service API endpoint. func NewClient(ctx context.Context, c *vim25.Client) (*Client, error) { - sc := c.Client.NewServiceClient(Path, Namespace) + // PSC may be external, attempt to derive from sts.uri + path := &url.URL{Path: Path} + if c.ServiceContent.Setting != nil { + m := object.NewOptionManager(c, *c.ServiceContent.Setting) + opts, err := m.Query(ctx, "config.vpxd.sso.sts.uri") + if err == nil && len(opts) == 1 { + u, err := url.Parse(opts[0].GetOptionValue().Value.(string)) + if err == nil { + path.Scheme = u.Scheme + path.Host = u.Host + } + } + } + + sc := c.Client.NewServiceClient(path.String(), Namespace) sc.Version = Version req := types.RetrieveServiceContent{ diff --git a/vendor/github.com/vmware/govmomi/nfc/lease.go b/vendor/github.com/vmware/govmomi/nfc/lease.go index 3fb85ee6..d6c90ac5 100644 --- a/vendor/github.com/vmware/govmomi/nfc/lease.go +++ b/vendor/github.com/vmware/govmomi/nfc/lease.go @@ -27,7 +27,6 @@ import ( "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/progress" "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" ) @@ -208,8 +207,6 @@ func (l *Lease) StartUpdater(ctx context.Context, info *LeaseInfo) *LeaseUpdater func (l *Lease) Upload(ctx context.Context, item FileItem, f io.Reader, opts soap.Upload) error { if opts.Progress == nil { opts.Progress = item - } else { - opts.Progress = progress.Tee(item, opts.Progress) } // Non-disk files (such as .iso) use the PUT method. @@ -230,8 +227,6 @@ func (l *Lease) Upload(ctx context.Context, item FileItem, f io.Reader, opts soa func (l *Lease) DownloadFile(ctx context.Context, file string, item FileItem, opts soap.Download) error { if opts.Progress == nil { opts.Progress = item - } else { - opts.Progress = progress.Tee(item, opts.Progress) } return l.c.DownloadFile(ctx, file, item.URL, &opts) diff --git a/vendor/github.com/vmware/govmomi/nfc/lease_updater.go b/vendor/github.com/vmware/govmomi/nfc/lease_updater.go index d77c3596..02ce9cf5 100644 --- a/vendor/github.com/vmware/govmomi/nfc/lease_updater.go +++ b/vendor/github.com/vmware/govmomi/nfc/lease_updater.go @@ -57,8 +57,8 @@ func (o FileItem) File() types.OvfFile { } type LeaseUpdater struct { - pos int64 // Number of bytes (keep first to ensure 64 bit aligment) - total int64 // Total number of bytes (keep first to ensure 64 bit aligment) + pos int64 // Number of bytes (keep first to ensure 64 bit alignment) + total int64 // Total number of bytes (keep first to ensure 64 bit alignment) lease *Lease diff --git a/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go b/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go index 24c34682..018372df 100644 --- a/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go +++ b/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go @@ -87,3 +87,17 @@ func (c ClusterComputeResource) MoveInto(ctx context.Context, hosts ...*HostSyst return NewTask(c.c, res.Returnval), nil } + +func (c ClusterComputeResource) PlaceVm(ctx context.Context, spec types.PlacementSpec) (*types.PlacementResult, error) { + req := types.PlaceVm{ + This: c.Reference(), + PlacementSpec: spec, + } + + res, err := methods.PlaceVm(ctx, c.c, &req) + if err != nil { + return nil, err + } + + return &res.Returnval, nil +} diff --git a/vendor/github.com/vmware/govmomi/object/common.go b/vendor/github.com/vmware/govmomi/object/common.go index abb4076c..86db4c2c 100644 --- a/vendor/github.com/vmware/govmomi/object/common.go +++ b/vendor/github.com/vmware/govmomi/object/common.go @@ -25,7 +25,6 @@ import ( "github.com/vmware/govmomi/property" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -75,29 +74,22 @@ func (c *Common) SetInventoryPath(p string) { c.InventoryPath = p } -// ObjectName returns the base name of the InventoryPath field if set, -// otherwise fetches the mo.ManagedEntity.Name field via the property collector. +// ObjectName fetches the mo.ManagedEntity.Name field via the property collector. func (c Common) ObjectName(ctx context.Context) (string, error) { - var o mo.ManagedEntity + var content []types.ObjectContent - err := c.Properties(ctx, c.Reference(), []string{"name"}, &o) + err := c.Properties(ctx, c.Reference(), []string{"name"}, &content) if err != nil { return "", err } - if o.Name != "" { - return o.Name, nil + for i := range content { + for _, prop := range content[i].PropSet { + return prop.Val.(string), nil + } } - // Network has its own "name" field... - var n mo.Network - - err = c.Properties(ctx, c.Reference(), []string{"name"}, &n) - if err != nil { - return "", err - } - - return n.Name, nil + return "", nil } // Properties is a wrapper for property.DefaultCollector().RetrieveOne() diff --git a/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go b/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go index cb8b965d..e9a3914d 100644 --- a/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go +++ b/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go @@ -21,6 +21,7 @@ import ( "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -36,6 +37,12 @@ func NewCustomizationSpecManager(c *vim25.Client) *CustomizationSpecManager { return &cs } +func (cs CustomizationSpecManager) Info(ctx context.Context) ([]types.CustomizationSpecInfo, error) { + var m mo.CustomizationSpecManager + err := cs.Properties(ctx, cs.Reference(), []string{"info"}, &m) + return m.Info, err +} + func (cs CustomizationSpecManager) DoesCustomizationSpecExist(ctx context.Context, name string) (bool, error) { req := types.DoesCustomizationSpecExist{ This: cs.Reference(), diff --git a/vendor/github.com/vmware/govmomi/object/datastore.go b/vendor/github.com/vmware/govmomi/object/datastore.go index 46a99950..65264ae1 100644 --- a/vendor/github.com/vmware/govmomi/object/datastore.go +++ b/vendor/github.com/vmware/govmomi/object/datastore.go @@ -68,6 +68,11 @@ func NewDatastore(c *vim25.Client, ref types.ManagedObjectReference) *Datastore } func (d Datastore) Path(path string) string { + var p DatastorePath + if p.FromString(path) { + return p.String() // already in "[datastore] path" format + } + return (&DatastorePath{ Datastore: d.Name(), Path: path, diff --git a/vendor/github.com/vmware/govmomi/object/datastore_file.go b/vendor/github.com/vmware/govmomi/object/datastore_file.go index bc010fc3..86d7d9c7 100644 --- a/vendor/github.com/vmware/govmomi/object/datastore_file.go +++ b/vendor/github.com/vmware/govmomi/object/datastore_file.go @@ -297,10 +297,8 @@ func (f *DatastoreFile) TailFunc(lines int, include func(line int, message strin nread = bsize + remain eof = true - } else { - if pos, err = f.Seek(offset, io.SeekEnd); err != nil { - return err - } + } else if pos, err = f.Seek(offset, io.SeekEnd); err != nil { + return err } if _, err = io.CopyN(buf, f, nread); err != nil { diff --git a/vendor/github.com/vmware/govmomi/object/datastore_path.go b/vendor/github.com/vmware/govmomi/object/datastore_path.go index 1563ee1e..104c7dfe 100644 --- a/vendor/github.com/vmware/govmomi/object/datastore_path.go +++ b/vendor/github.com/vmware/govmomi/object/datastore_path.go @@ -31,7 +31,7 @@ type DatastorePath struct { // FromString parses a datastore path. // Returns true if the path could be parsed, false otherwise. func (p *DatastorePath) FromString(s string) bool { - if len(s) == 0 { + if s == "" { return false } diff --git a/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go b/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go index 5baf1ad9..026dc1cb 100644 --- a/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go +++ b/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go @@ -71,10 +71,8 @@ func (m DiagnosticManager) GenerateLogBundles(ctx context.Context, includeDefaul IncludeDefault: includeDefault, } - if host != nil { - for _, h := range host { - req.Host = append(req.Host, h.Reference()) - } + for _, h := range host { + req.Host = append(req.Host, h.Reference()) } res, err := methods.GenerateLogBundles_Task(ctx, m.c, &req) diff --git a/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go b/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go index f8ac5512..c2abb8fa 100644 --- a/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go +++ b/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go @@ -36,6 +36,10 @@ func NewDistributedVirtualPortgroup(c *vim25.Client, ref types.ManagedObjectRefe } } +func (p DistributedVirtualPortgroup) GetInventoryPath() string { + return p.InventoryPath +} + // EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this DistributedVirtualPortgroup func (p DistributedVirtualPortgroup) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { var dvp mo.DistributedVirtualPortgroup @@ -46,9 +50,15 @@ func (p DistributedVirtualPortgroup) EthernetCardBackingInfo(ctx context.Context return nil, err } + // From the docs at https://code.vmware.com/apis/196/vsphere/doc/vim.dvs.DistributedVirtualPortgroup.ConfigInfo.html: // "This property should always be set unless the user's setting does not have System.Read privilege on the object referred to by this property." + // Note that "the object" refers to the Switch, not the PortGroup. if dvp.Config.DistributedVirtualSwitch == nil { - return nil, fmt.Errorf("no System.Read privilege on: %s.%s", p.Reference(), prop) + name := p.InventoryPath + if name == "" { + name = p.Reference().String() + } + return nil, fmt.Errorf("failed to create EthernetCardBackingInfo for %s: System.Read privilege required for %s", name, prop) } if err := p.Properties(ctx, *dvp.Config.DistributedVirtualSwitch, []string{"uuid"}, &dvs); err != nil { diff --git a/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go b/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go index 526ce4bf..cbfc4c3a 100644 --- a/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go +++ b/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go @@ -18,6 +18,7 @@ package object import ( "context" + "fmt" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" @@ -34,8 +35,17 @@ func NewDistributedVirtualSwitch(c *vim25.Client, ref types.ManagedObjectReferen } } +func (s DistributedVirtualSwitch) GetInventoryPath() string { + return s.InventoryPath +} + func (s DistributedVirtualSwitch) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - return nil, ErrNotSupported // TODO: just to satisfy NetworkReference interface for the finder + ref := s.Reference() + name := s.InventoryPath + if name == "" { + name = ref.String() + } + return nil, fmt.Errorf("type %s (%s) cannot be used for EthernetCardBackingInfo", ref.Type, name) } func (s DistributedVirtualSwitch) Reconfigure(ctx context.Context, spec types.BaseDVSConfigSpec) (*Task, error) { @@ -78,3 +88,17 @@ func (s DistributedVirtualSwitch) FetchDVPorts(ctx context.Context, criteria *ty } return res.Returnval, nil } + +func (s DistributedVirtualSwitch) ReconfigureDVPort(ctx context.Context, spec []types.DVPortConfigSpec) (*Task, error) { + req := types.ReconfigureDVPort_Task{ + This: s.Reference(), + Port: spec, + } + + res, err := methods.ReconfigureDVPort_Task(ctx, s.Client(), &req) + if err != nil { + return nil, err + } + + return NewTask(s.Client(), res.Returnval), nil +} diff --git a/vendor/github.com/vmware/govmomi/object/host_config_manager.go b/vendor/github.com/vmware/govmomi/object/host_config_manager.go index 123227ec..eac59a32 100644 --- a/vendor/github.com/vmware/govmomi/object/host_config_manager.go +++ b/vendor/github.com/vmware/govmomi/object/host_config_manager.go @@ -18,9 +18,9 @@ package object import ( "context" + "fmt" "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -34,163 +34,138 @@ func NewHostConfigManager(c *vim25.Client, ref types.ManagedObjectReference) *Ho } } -func (m HostConfigManager) DatastoreSystem(ctx context.Context) (*HostDatastoreSystem, error) { - var h mo.HostSystem +// reference returns the ManagedObjectReference for the given HostConfigManager property name. +// An error is returned if the field is nil, of type ErrNotSupported if versioned is true. +func (m HostConfigManager) reference(ctx context.Context, name string, versioned ...bool) (types.ManagedObjectReference, error) { + prop := "configManager." + name + var content []types.ObjectContent - err := m.Properties(ctx, m.Reference(), []string{"configManager.datastoreSystem"}, &h) + err := m.Properties(ctx, m.Reference(), []string{prop}, &content) if err != nil { - return nil, err + return types.ManagedObjectReference{}, err } - return NewHostDatastoreSystem(m.c, *h.ConfigManager.DatastoreSystem), nil -} + for _, c := range content { + for _, p := range c.PropSet { + if p.Name != prop { + continue + } + if ref, ok := p.Val.(types.ManagedObjectReference); ok { + return ref, nil + } + } + } -func (m HostConfigManager) NetworkSystem(ctx context.Context) (*HostNetworkSystem, error) { - var h mo.HostSystem + err = fmt.Errorf("%s %s is nil", m.Reference(), prop) + if len(versioned) == 1 && versioned[0] { + err = ErrNotSupported + } + return types.ManagedObjectReference{}, err +} - err := m.Properties(ctx, m.Reference(), []string{"configManager.networkSystem"}, &h) +func (m HostConfigManager) DatastoreSystem(ctx context.Context) (*HostDatastoreSystem, error) { + ref, err := m.reference(ctx, "datastoreSystem") if err != nil { return nil, err } + return NewHostDatastoreSystem(m.c, ref), nil +} - return NewHostNetworkSystem(m.c, *h.ConfigManager.NetworkSystem), nil +func (m HostConfigManager) NetworkSystem(ctx context.Context) (*HostNetworkSystem, error) { + ref, err := m.reference(ctx, "networkSystem") + if err != nil { + return nil, err + } + return NewHostNetworkSystem(m.c, ref), nil } func (m HostConfigManager) FirewallSystem(ctx context.Context) (*HostFirewallSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.firewallSystem"}, &h) + ref, err := m.reference(ctx, "firewallSystem") if err != nil { return nil, err } - return NewHostFirewallSystem(m.c, *h.ConfigManager.FirewallSystem), nil + return NewHostFirewallSystem(m.c, ref), nil } func (m HostConfigManager) StorageSystem(ctx context.Context) (*HostStorageSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.storageSystem"}, &h) + ref, err := m.reference(ctx, "storageSystem") if err != nil { return nil, err } - - return NewHostStorageSystem(m.c, *h.ConfigManager.StorageSystem), nil + return NewHostStorageSystem(m.c, ref), nil } func (m HostConfigManager) VirtualNicManager(ctx context.Context) (*HostVirtualNicManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.virtualNicManager"}, &h) + ref, err := m.reference(ctx, "virtualNicManager") if err != nil { return nil, err } - - return NewHostVirtualNicManager(m.c, *h.ConfigManager.VirtualNicManager, m.Reference()), nil + return NewHostVirtualNicManager(m.c, ref, m.Reference()), nil } func (m HostConfigManager) VsanSystem(ctx context.Context) (*HostVsanSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.vsanSystem"}, &h) + ref, err := m.reference(ctx, "vsanSystem", true) // Added in 5.5 if err != nil { return nil, err } - - // Added in 5.5 - if h.ConfigManager.VsanSystem == nil { - return nil, ErrNotSupported - } - - return NewHostVsanSystem(m.c, *h.ConfigManager.VsanSystem), nil + return NewHostVsanSystem(m.c, ref), nil } func (m HostConfigManager) VsanInternalSystem(ctx context.Context) (*HostVsanInternalSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.vsanInternalSystem"}, &h) + ref, err := m.reference(ctx, "vsanInternalSystem", true) // Added in 5.5 if err != nil { return nil, err } - - // Added in 5.5 - if h.ConfigManager.VsanInternalSystem == nil { - return nil, ErrNotSupported - } - - return NewHostVsanInternalSystem(m.c, *h.ConfigManager.VsanInternalSystem), nil + return NewHostVsanInternalSystem(m.c, ref), nil } func (m HostConfigManager) AccountManager(ctx context.Context) (*HostAccountManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.accountManager"}, &h) + ref, err := m.reference(ctx, "accountManager", true) // Added in 5.5 if err != nil { - return nil, err - } - - ref := h.ConfigManager.AccountManager // Added in 6.0 - if ref == nil { - // Versions < 5.5 can use the ServiceContent ref, - // but we can only use it when connected directly to ESX. - c := m.Client() - if !c.IsVC() { - ref = c.ServiceContent.AccountManager - } - - if ref == nil { - return nil, ErrNotSupported + if err == ErrNotSupported { + // Versions < 5.5 can use the ServiceContent ref, + // but only when connected directly to ESX. + if m.c.ServiceContent.AccountManager == nil { + return nil, err + } + ref = *m.c.ServiceContent.AccountManager + } else { + return nil, err } } - return NewHostAccountManager(m.c, *ref), nil + return NewHostAccountManager(m.c, ref), nil } func (m HostConfigManager) OptionManager(ctx context.Context) (*OptionManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.advancedOption"}, &h) + ref, err := m.reference(ctx, "advancedOption") if err != nil { return nil, err } - - return NewOptionManager(m.c, *h.ConfigManager.AdvancedOption), nil + return NewOptionManager(m.c, ref), nil } func (m HostConfigManager) ServiceSystem(ctx context.Context) (*HostServiceSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.serviceSystem"}, &h) + ref, err := m.reference(ctx, "serviceSystem") if err != nil { return nil, err } - - return NewHostServiceSystem(m.c, *h.ConfigManager.ServiceSystem), nil + return NewHostServiceSystem(m.c, ref), nil } func (m HostConfigManager) CertificateManager(ctx context.Context) (*HostCertificateManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.certificateManager"}, &h) + ref, err := m.reference(ctx, "certificateManager", true) // Added in 6.0 if err != nil { return nil, err } - - // Added in 6.0 - if h.ConfigManager.CertificateManager == nil { - return nil, ErrNotSupported - } - - return NewHostCertificateManager(m.c, *h.ConfigManager.CertificateManager, m.Reference()), nil + return NewHostCertificateManager(m.c, ref, m.Reference()), nil } func (m HostConfigManager) DateTimeSystem(ctx context.Context) (*HostDateTimeSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.dateTimeSystem"}, &h) + ref, err := m.reference(ctx, "dateTimeSystem") if err != nil { return nil, err } - - return NewHostDateTimeSystem(m.c, *h.ConfigManager.DateTimeSystem), nil + return NewHostDateTimeSystem(m.c, ref), nil } diff --git a/vendor/github.com/vmware/govmomi/object/host_datastore_system.go b/vendor/github.com/vmware/govmomi/object/host_datastore_system.go index 7b738e61..64f3add9 100644 --- a/vendor/github.com/vmware/govmomi/object/host_datastore_system.go +++ b/vendor/github.com/vmware/govmomi/object/host_datastore_system.go @@ -117,3 +117,19 @@ func (s HostDatastoreSystem) QueryVmfsDatastoreCreateOptions(ctx context.Context return res.Returnval, nil } + +func (s HostDatastoreSystem) ResignatureUnresolvedVmfsVolumes(ctx context.Context, devicePaths []string) (*Task, error) { + req := &types.ResignatureUnresolvedVmfsVolume_Task{ + This: s.Reference(), + ResolutionSpec: types.HostUnresolvedVmfsResignatureSpec{ + ExtentDevicePath: devicePaths, + }, + } + + res, err := methods.ResignatureUnresolvedVmfsVolume_Task(ctx, s.Client(), req) + if err != nil { + return nil, err + } + + return NewTask(s.c, res.Returnval), nil +} diff --git a/vendor/github.com/vmware/govmomi/object/host_network_system.go b/vendor/github.com/vmware/govmomi/object/host_network_system.go index c21e1ec3..340b764a 100644 --- a/vendor/github.com/vmware/govmomi/object/host_network_system.go +++ b/vendor/github.com/vmware/govmomi/object/host_network_system.go @@ -98,18 +98,18 @@ func (o HostNetworkSystem) AddVirtualSwitch(ctx context.Context, vswitchName str } // QueryNetworkHint wraps methods.QueryNetworkHint -func (o HostNetworkSystem) QueryNetworkHint(ctx context.Context, device []string) error { +func (o HostNetworkSystem) QueryNetworkHint(ctx context.Context, device []string) ([]types.PhysicalNicHintInfo, error) { req := types.QueryNetworkHint{ This: o.Reference(), Device: device, } - _, err := methods.QueryNetworkHint(ctx, o.c, &req) + res, err := methods.QueryNetworkHint(ctx, o.c, &req) if err != nil { - return err + return nil, err } - return nil + return res.Returnval, err } // RefreshNetworkSystem wraps methods.RefreshNetworkSystem diff --git a/vendor/github.com/vmware/govmomi/object/host_storage_system.go b/vendor/github.com/vmware/govmomi/object/host_storage_system.go index 5990a1d4..5c9f08ee 100644 --- a/vendor/github.com/vmware/govmomi/object/host_storage_system.go +++ b/vendor/github.com/vmware/govmomi/object/host_storage_system.go @@ -172,3 +172,29 @@ func (s HostStorageSystem) AttachScsiLun(ctx context.Context, uuid string) error return err } + +func (s HostStorageSystem) QueryUnresolvedVmfsVolumes(ctx context.Context) ([]types.HostUnresolvedVmfsVolume, error) { + req := &types.QueryUnresolvedVmfsVolume{ + This: s.Reference(), + } + + res, err := methods.QueryUnresolvedVmfsVolume(ctx, s.Client(), req) + if err != nil { + return nil, err + } + return res.Returnval, nil +} + +func (s HostStorageSystem) UnmountVmfsVolume(ctx context.Context, vmfsUuid string) error { + req := &types.UnmountVmfsVolume{ + This: s.Reference(), + VmfsUuid: vmfsUuid, + } + + _, err := methods.UnmountVmfsVolume(ctx, s.Client(), req) + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/vmware/govmomi/object/host_system.go b/vendor/github.com/vmware/govmomi/object/host_system.go index a350edfd..6cb9b7a5 100644 --- a/vendor/github.com/vmware/govmomi/object/host_system.go +++ b/vendor/github.com/vmware/govmomi/object/host_system.go @@ -83,14 +83,21 @@ func (h HostSystem) ManagementIPs(ctx context.Context) ([]net.IP, error) { var ips []net.IP for _, nc := range mh.Config.VirtualNicManagerInfo.NetConfig { - if nc.NicType == "management" && len(nc.CandidateVnic) > 0 { - ip := net.ParseIP(nc.CandidateVnic[0].Spec.Ip.IpAddress) - if ip != nil { - ips = append(ips, ip) + if nc.NicType != string(types.HostVirtualNicManagerNicTypeManagement) { + continue + } + for ix := range nc.CandidateVnic { + for _, selectedVnicKey := range nc.SelectedVnic { + if nc.CandidateVnic[ix].Key != selectedVnicKey { + continue + } + ip := net.ParseIP(nc.CandidateVnic[ix].Spec.Ip.IpAddress) + if ip != nil { + ips = append(ips, ip) + } } } } - return ips, nil } diff --git a/vendor/github.com/vmware/govmomi/object/network.go b/vendor/github.com/vmware/govmomi/object/network.go index d1dc7ce0..f209a7ac 100644 --- a/vendor/github.com/vmware/govmomi/object/network.go +++ b/vendor/github.com/vmware/govmomi/object/network.go @@ -20,7 +20,6 @@ import ( "context" "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -34,21 +33,20 @@ func NewNetwork(c *vim25.Client, ref types.ManagedObjectReference) *Network { } } +func (n Network) GetInventoryPath() string { + return n.InventoryPath +} + // EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network func (n Network) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - var e mo.Network - - // Use Network.Name rather than Common.Name as the latter does not return the complete name if it contains a '/' - // We can't use Common.ObjectName here either as we need the ManagedEntity.Name field is not set since mo.Network - // has its own Name field. - err := n.Properties(ctx, n.Reference(), []string{"name"}, &e) + name, err := n.ObjectName(ctx) if err != nil { return nil, err } backing := &types.VirtualEthernetCardNetworkBackingInfo{ VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - DeviceName: e.Name, + DeviceName: name, }, } diff --git a/vendor/github.com/vmware/govmomi/object/network_reference.go b/vendor/github.com/vmware/govmomi/object/network_reference.go index 7716bdb3..f1a41cd5 100644 --- a/vendor/github.com/vmware/govmomi/object/network_reference.go +++ b/vendor/github.com/vmware/govmomi/object/network_reference.go @@ -26,6 +26,6 @@ import ( // which can be used as the backing for a VirtualEthernetCard. type NetworkReference interface { Reference - + GetInventoryPath() string EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) } diff --git a/vendor/github.com/vmware/govmomi/object/opaque_network.go b/vendor/github.com/vmware/govmomi/object/opaque_network.go index 47ce4cef..6797d325 100644 --- a/vendor/github.com/vmware/govmomi/object/opaque_network.go +++ b/vendor/github.com/vmware/govmomi/object/opaque_network.go @@ -35,19 +35,17 @@ func NewOpaqueNetwork(c *vim25.Client, ref types.ManagedObjectReference) *Opaque } } +func (n OpaqueNetwork) GetInventoryPath() string { + return n.InventoryPath +} + // EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network func (n OpaqueNetwork) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - var net mo.OpaqueNetwork - - if err := n.Properties(ctx, n.Reference(), []string{"summary"}, &net); err != nil { + summary, err := n.Summary(ctx) + if err != nil { return nil, err } - summary, ok := net.Summary.(*types.OpaqueNetworkSummary) - if !ok { - return nil, fmt.Errorf("%s unsupported network type: %T", n, net.Summary) - } - backing := &types.VirtualEthernetCardOpaqueNetworkBackingInfo{ OpaqueNetworkId: summary.OpaqueNetworkId, OpaqueNetworkType: summary.OpaqueNetworkType, @@ -55,3 +53,20 @@ func (n OpaqueNetwork) EthernetCardBackingInfo(ctx context.Context) (types.BaseV return backing, nil } + +// Summary returns the mo.OpaqueNetwork.Summary property +func (n OpaqueNetwork) Summary(ctx context.Context) (*types.OpaqueNetworkSummary, error) { + var props mo.OpaqueNetwork + + err := n.Properties(ctx, n.Reference(), []string{"summary"}, &props) + if err != nil { + return nil, err + } + + summary, ok := props.Summary.(*types.OpaqueNetworkSummary) + if !ok { + return nil, fmt.Errorf("%s unsupported network summary type: %T", n, props.Summary) + } + + return summary, nil +} diff --git a/vendor/github.com/vmware/govmomi/object/resource_pool.go b/vendor/github.com/vmware/govmomi/object/resource_pool.go index 55c2e2b2..e510006b 100644 --- a/vendor/github.com/vmware/govmomi/object/resource_pool.go +++ b/vendor/github.com/vmware/govmomi/object/resource_pool.go @@ -22,6 +22,7 @@ import ( "github.com/vmware/govmomi/nfc" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -35,6 +36,18 @@ func NewResourcePool(c *vim25.Client, ref types.ManagedObjectReference) *Resourc } } +// Owner returns the ResourcePool owner as a ClusterComputeResource or ComputeResource. +func (p ResourcePool) Owner(ctx context.Context) (Reference, error) { + var pool mo.ResourcePool + + err := p.Properties(ctx, p.Reference(), []string{"owner"}, &pool) + if err != nil { + return nil, err + } + + return NewReference(p.Client(), pool.Owner), nil +} + func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*nfc.Lease, error) { req := types.ImportVApp{ This: p.Reference(), diff --git a/vendor/github.com/vmware/govmomi/object/search_index.go b/vendor/github.com/vmware/govmomi/object/search_index.go index 4b0a525d..bcf5e29f 100644 --- a/vendor/github.com/vmware/govmomi/object/search_index.go +++ b/vendor/github.com/vmware/govmomi/object/search_index.go @@ -161,3 +161,88 @@ func (s SearchIndex) FindChild(ctx context.Context, entity Reference, name strin } return NewReference(s.c, *res.Returnval), nil } + +// FindAllByDnsName finds all virtual machines or hosts by DNS name. +func (s SearchIndex) FindAllByDnsName(ctx context.Context, dc *Datacenter, dnsName string, vmSearch bool) ([]Reference, error) { + req := types.FindAllByDnsName{ + This: s.Reference(), + DnsName: dnsName, + VmSearch: vmSearch, + } + if dc != nil { + ref := dc.Reference() + req.Datacenter = &ref + } + + res, err := methods.FindAllByDnsName(ctx, s.c, &req) + if err != nil { + return nil, err + } + + if len(res.Returnval) == 0 { + return nil, nil + } + + var references []Reference + for _, returnval := range res.Returnval { + references = append(references, NewReference(s.c, returnval)) + } + return references, nil +} + +// FindAllByIp finds all virtual machines or hosts by IP address. +func (s SearchIndex) FindAllByIp(ctx context.Context, dc *Datacenter, ip string, vmSearch bool) ([]Reference, error) { + req := types.FindAllByIp{ + This: s.Reference(), + Ip: ip, + VmSearch: vmSearch, + } + if dc != nil { + ref := dc.Reference() + req.Datacenter = &ref + } + + res, err := methods.FindAllByIp(ctx, s.c, &req) + if err != nil { + return nil, err + } + + if len(res.Returnval) == 0 { + return nil, nil + } + + var references []Reference + for _, returnval := range res.Returnval { + references = append(references, NewReference(s.c, returnval)) + } + return references, nil +} + +// FindAllByUuid finds all virtual machines or hosts by UUID. +func (s SearchIndex) FindAllByUuid(ctx context.Context, dc *Datacenter, uuid string, vmSearch bool, instanceUuid *bool) ([]Reference, error) { + req := types.FindAllByUuid{ + This: s.Reference(), + Uuid: uuid, + VmSearch: vmSearch, + InstanceUuid: instanceUuid, + } + if dc != nil { + ref := dc.Reference() + req.Datacenter = &ref + } + + res, err := methods.FindAllByUuid(ctx, s.c, &req) + if err != nil { + return nil, err + } + + if len(res.Returnval) == 0 { + return nil, nil + } + + var references []Reference + for _, returnval := range res.Returnval { + references = append(references, NewReference(s.c, returnval)) + } + return references, nil +} diff --git a/vendor/github.com/vmware/govmomi/object/task.go b/vendor/github.com/vmware/govmomi/object/task.go index 2b66aa93..088dd7f5 100644 --- a/vendor/github.com/vmware/govmomi/object/task.go +++ b/vendor/github.com/vmware/govmomi/object/task.go @@ -48,9 +48,13 @@ func (t *Task) Wait(ctx context.Context) error { return err } -func (t *Task) WaitForResult(ctx context.Context, s progress.Sinker) (*types.TaskInfo, error) { +func (t *Task) WaitForResult(ctx context.Context, s ...progress.Sinker) (*types.TaskInfo, error) { + var pr progress.Sinker + if len(s) == 1 { + pr = s[0] + } p := property.DefaultCollector(t.c) - return task.Wait(ctx, t.Reference(), p, s) + return task.Wait(ctx, t.Reference(), p, pr) } func (t *Task) Cancel(ctx context.Context) error { @@ -60,3 +64,37 @@ func (t *Task) Cancel(ctx context.Context) error { return err } + +// SetState sets task state and optionally sets results or fault, as appropriate for state. +func (t *Task) SetState(ctx context.Context, state types.TaskInfoState, result types.AnyType, fault *types.LocalizedMethodFault) error { + req := types.SetTaskState{ + This: t.Reference(), + State: state, + Result: result, + Fault: fault, + } + _, err := methods.SetTaskState(ctx, t.Common.Client(), &req) + return err +} + +// SetDescription updates task description to describe the current phase of the task. +func (t *Task) SetDescription(ctx context.Context, description types.LocalizableMessage) error { + req := types.SetTaskDescription{ + This: t.Reference(), + Description: description, + } + _, err := methods.SetTaskDescription(ctx, t.Common.Client(), &req) + return err +} + +// UpdateProgress Sets percentage done for this task and recalculates overall percentage done. +// If a percentDone value of less than zero or greater than 100 is specified, +// a value of zero or 100 respectively is used. +func (t *Task) UpdateProgress(ctx context.Context, percentDone int) error { + req := types.UpdateProgress{ + This: t.Reference(), + PercentDone: int32(percentDone), + } + _, err := methods.UpdateProgress(ctx, t.Common.Client(), &req) + return err +} diff --git a/vendor/github.com/vmware/govmomi/object/virtual_device_list.go b/vendor/github.com/vmware/govmomi/object/virtual_device_list.go index e1c35eff..58b61f5d 100644 --- a/vendor/github.com/vmware/govmomi/object/virtual_device_list.go +++ b/vendor/github.com/vmware/govmomi/object/virtual_device_list.go @@ -229,8 +229,10 @@ func (l VirtualDeviceList) FindSCSIController(name string) (*types.VirtualSCSICo func (l VirtualDeviceList) CreateSCSIController(name string) (types.BaseVirtualDevice, error) { ctypes := SCSIControllerTypes() - if name == "scsi" || name == "" { + if name == "" || name == "scsi" { name = ctypes.Type(ctypes[0]) + } else if name == "virtualscsi" { + name = "pvscsi" // ovf VirtualSCSI mapping } found := ctypes.Select(func(device types.BaseVirtualDevice) bool { diff --git a/vendor/github.com/vmware/govmomi/object/virtual_machine.go b/vendor/github.com/vmware/govmomi/object/virtual_machine.go index ba22e554..ed86a392 100644 --- a/vendor/github.com/vmware/govmomi/object/virtual_machine.go +++ b/vendor/github.com/vmware/govmomi/object/virtual_machine.go @@ -33,6 +33,7 @@ import ( const ( PropRuntimePowerState = "summary.runtime.powerState" + PropConfigTemplate = "summary.config.template" ) type VirtualMachine struct { @@ -56,6 +57,17 @@ func (v VirtualMachine) PowerState(ctx context.Context) (types.VirtualMachinePow return o.Summary.Runtime.PowerState, nil } +func (v VirtualMachine) IsTemplate(ctx context.Context) (bool, error) { + var o mo.VirtualMachine + + err := v.Properties(ctx, v.Reference(), []string{PropConfigTemplate}, &o) + if err != nil { + return false, err + } + + return o.Summary.Config.Template, nil +} + func (v VirtualMachine) PowerOn(ctx context.Context) (*Task, error) { req := types.PowerOnVM_Task{ This: v.Reference(), @@ -221,7 +233,9 @@ func (v VirtualMachine) RefreshStorageInfo(ctx context.Context) error { return err } -func (v VirtualMachine) WaitForIP(ctx context.Context) (string, error) { +// WaitForIP waits for the VM guest.ipAddress property to report an IP address. +// Waits for an IPv4 address if the v4 param is true. +func (v VirtualMachine) WaitForIP(ctx context.Context, v4 ...bool) (string, error) { var ip string p := property.DefaultCollector(v.c) @@ -238,6 +252,11 @@ func (v VirtualMachine) WaitForIP(ctx context.Context) (string, error) { } ip = c.Val.(string) + if len(v4) == 1 && v4[0] { + if net.ParseIP(ip).To4() == nil { + return false + } + } return true } @@ -285,6 +304,10 @@ func (v VirtualMachine) WaitForNetIP(ctx context.Context, v4 bool, device ...str return true }) + if err != nil { + return nil, err + } + if len(device) != 0 { // Only wait for specific NIC(s) macs = make(map[string][]string) @@ -569,7 +592,7 @@ func (v VirtualMachine) FindSnapshot(ctx context.Context, name string) (*types.M } if o.Snapshot == nil || len(o.Snapshot.RootSnapshotList) == 0 { - return nil, errors.New("No snapshots for this VM") + return nil, errors.New("no snapshots for this VM") } m := make(snapshotMap) @@ -832,6 +855,72 @@ func (v VirtualMachine) UUID(ctx context.Context) string { if err != nil { return "" } + if o.Config != nil { + return o.Config.Uuid + } + return "" +} + +func (v VirtualMachine) QueryChangedDiskAreas(ctx context.Context, baseSnapshot, curSnapshot *types.ManagedObjectReference, disk *types.VirtualDisk, offset int64) (types.DiskChangeInfo, error) { + var noChange types.DiskChangeInfo + var err error - return o.Config.Uuid + if offset > disk.CapacityInBytes { + return noChange, fmt.Errorf("offset is greater than the disk size (%#x and %#x)", offset, disk.CapacityInBytes) + } else if offset == disk.CapacityInBytes { + return types.DiskChangeInfo{StartOffset: offset, Length: 0}, nil + } + + var b mo.VirtualMachineSnapshot + err = v.Properties(ctx, baseSnapshot.Reference(), []string{"config.hardware"}, &b) + if err != nil { + return noChange, fmt.Errorf("failed to fetch config.hardware of snapshot %s: %s", baseSnapshot, err) + } + + var changeId *string + for _, vd := range b.Config.Hardware.Device { + d := vd.GetVirtualDevice() + if d.Key != disk.Key { + continue + } + + // As per VDDK programming guide, these are the four types of disks + // that support CBT, see "Gathering Changed Block Information". + if b, ok := d.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { + changeId = &b.ChangeId + break + } + if b, ok := d.Backing.(*types.VirtualDiskSparseVer2BackingInfo); ok { + changeId = &b.ChangeId + break + } + if b, ok := d.Backing.(*types.VirtualDiskRawDiskMappingVer1BackingInfo); ok { + changeId = &b.ChangeId + break + } + if b, ok := d.Backing.(*types.VirtualDiskRawDiskVer2BackingInfo); ok { + changeId = &b.ChangeId + break + } + + return noChange, fmt.Errorf("disk %d has backing info without .ChangeId: %t", disk.Key, d.Backing) + } + if changeId == nil || *changeId == "" { + return noChange, fmt.Errorf("CBT is not enabled on disk %d", disk.Key) + } + + req := types.QueryChangedDiskAreas{ + This: v.Reference(), + Snapshot: curSnapshot, + DeviceKey: disk.Key, + StartOffset: offset, + ChangeId: *changeId, + } + + res, err := methods.QueryChangedDiskAreas(ctx, v.Client(), &req) + if err != nil { + return noChange, err + } + + return res.Returnval, nil } diff --git a/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go b/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go index f6caf987..8eccba19 100644 --- a/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go +++ b/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go @@ -19,3 +19,7 @@ package object type VmwareDistributedVirtualSwitch struct { DistributedVirtualSwitch } + +func (s VmwareDistributedVirtualSwitch) GetInventoryPath() string { + return s.InventoryPath +} diff --git a/vendor/github.com/vmware/govmomi/pbm/client.go b/vendor/github.com/vmware/govmomi/pbm/client.go index 3e799ebf..408e043a 100644 --- a/vendor/github.com/vmware/govmomi/pbm/client.go +++ b/vendor/github.com/vmware/govmomi/pbm/client.go @@ -224,3 +224,43 @@ func (c *Client) ProfileIDByName(ctx context.Context, profileName string) (strin } return "", fmt.Errorf("no pbm profile found with name: %q", profileName) } + +func (c *Client) FetchCapabilityMetadata(ctx context.Context, rtype *types.PbmProfileResourceType, vendorUuid string) ([]types.PbmCapabilityMetadataPerCategory, error) { + req := types.PbmFetchCapabilityMetadata{ + This: c.ServiceContent.ProfileManager, + ResourceType: rtype, + VendorUuid: vendorUuid, + } + + res, err := methods.PbmFetchCapabilityMetadata(ctx, c, &req) + if err != nil { + return nil, err + } + + return res.Returnval, nil +} + +// GetProfileNameByID gets storage profile name by ID +func (c *Client) GetProfileNameByID(ctx context.Context, profileID string) (string, error) { + resourceType := types.PbmProfileResourceType{ + ResourceType: string(types.PbmProfileResourceTypeEnumSTORAGE), + } + category := types.PbmProfileCategoryEnumREQUIREMENT + ids, err := c.QueryProfile(ctx, resourceType, string(category)) + if err != nil { + return "", err + } + + profiles, err := c.RetrieveContent(ctx, ids) + if err != nil { + return "", err + } + + for i := range profiles { + profile := profiles[i].GetPbmProfile() + if profile.ProfileId.UniqueId == profileID { + return profile.Name, nil + } + } + return "", fmt.Errorf("no pbm profile found with id: %q", profileID) +} diff --git a/vendor/github.com/vmware/govmomi/pbm/pbm_util.go b/vendor/github.com/vmware/govmomi/pbm/pbm_util.go index 4cc8085f..d773b8db 100644 --- a/vendor/github.com/vmware/govmomi/pbm/pbm_util.go +++ b/vendor/github.com/vmware/govmomi/pbm/pbm_util.go @@ -27,6 +27,7 @@ import ( // A struct to capture pbm create spec details. type CapabilityProfileCreateSpec struct { Name string + SubProfileName string Description string Category string CapabilityList []Capability @@ -64,6 +65,7 @@ func CreateCapabilityProfileSpec(pbmCreateSpec CapabilityProfileCreateSpec) (*ty SubProfiles: []types.PbmCapabilitySubProfile{ types.PbmCapabilitySubProfile{ Capability: capabilities, + Name: pbmCreateSpec.SubProfileName, }, }, }, diff --git a/vendor/github.com/vmware/govmomi/pbm/types/enum.go b/vendor/github.com/vmware/govmomi/pbm/types/enum.go index ddd1a5f7..8d22afa2 100644 --- a/vendor/github.com/vmware/govmomi/pbm/types/enum.go +++ b/vendor/github.com/vmware/govmomi/pbm/types/enum.go @@ -104,6 +104,19 @@ func init() { types.Add("pbm:PbmComplianceStatus", reflect.TypeOf((*PbmComplianceStatus)(nil)).Elem()) } +type PbmHealthStatusForEntity string + +const ( + PbmHealthStatusForEntityRed = PbmHealthStatusForEntity("red") + PbmHealthStatusForEntityYellow = PbmHealthStatusForEntity("yellow") + PbmHealthStatusForEntityGreen = PbmHealthStatusForEntity("green") + PbmHealthStatusForEntityUnknown = PbmHealthStatusForEntity("unknown") +) + +func init() { + types.Add("pbm:PbmHealthStatusForEntity", reflect.TypeOf((*PbmHealthStatusForEntity)(nil)).Elem()) +} + type PbmIofilterInfoFilterType string const ( @@ -145,6 +158,7 @@ const ( PbmObjectTypeVirtualDiskId = PbmObjectType("virtualDiskId") PbmObjectTypeVirtualDiskUUID = PbmObjectType("virtualDiskUUID") PbmObjectTypeDatastore = PbmObjectType("datastore") + PbmObjectTypeFileShareId = PbmObjectType("fileShareId") PbmObjectTypeUnknown = PbmObjectType("unknown") ) diff --git a/vendor/github.com/vmware/govmomi/program.mk b/vendor/github.com/vmware/govmomi/program.mk index 9c6996ae..c5f65319 100644 --- a/vendor/github.com/vmware/govmomi/program.mk +++ b/vendor/github.com/vmware/govmomi/program.mk @@ -30,7 +30,7 @@ $(PROGRAM): CGO_ENABLED=0 go build -a $(BUILD_ARGS) -o $@ install: - CGO_ENABLED=0 go install $(BUILD_ARGS) + CGO_ENABLED=0 go install -i -v $(BUILD_ARGS) ifneq (,$(strip $(BUILD_OS))) ifneq (,$(strip $(BUILD_ARCH))) diff --git a/vendor/github.com/vmware/govmomi/property/collector.go b/vendor/github.com/vmware/govmomi/property/collector.go index b77e6006..2c74bc6d 100644 --- a/vendor/github.com/vmware/govmomi/property/collector.go +++ b/vendor/github.com/vmware/govmomi/property/collector.go @@ -143,7 +143,7 @@ func (p *Collector) Retrieve(ctx context.Context, objs []types.ManagedObjectRefe spec := types.PropertySpec{ Type: obj.Type, } - if ps == nil { + if len(ps) == 0 { spec.All = types.NewBool(true) } else { spec.PathSet = ps @@ -179,7 +179,7 @@ func (p *Collector) Retrieve(ctx context.Context, objs []types.ManagedObjectRefe return nil } - return mo.LoadRetrievePropertiesResponse(res, dst) + return mo.LoadObjectContent(res.Returnval, dst) } // RetrieveWithFilter populates dst as Retrieve does, but only for entities matching the given filter. diff --git a/vendor/github.com/vmware/govmomi/property/filter.go b/vendor/github.com/vmware/govmomi/property/filter.go index a4bf16d0..b88d197c 100644 --- a/vendor/github.com/vmware/govmomi/property/filter.go +++ b/vendor/github.com/vmware/govmomi/property/filter.go @@ -42,6 +42,9 @@ func (f Filter) Keys() []string { // MatchProperty returns true if a Filter entry matches the given prop. func (f Filter) MatchProperty(prop types.DynamicProperty) bool { + if prop.Val == nil { + return false + } match, ok := f[prop.Name] if !ok { return false @@ -74,7 +77,7 @@ func (f Filter) MatchProperty(prop types.DynamicProperty) bool { } // convert if we can - switch prop.Val.(type) { + switch val := prop.Val.(type) { case bool: match, _ = strconv.ParseBool(s) case int16: @@ -91,7 +94,9 @@ func (f Filter) MatchProperty(prop types.DynamicProperty) bool { case float64: match, _ = strconv.ParseFloat(s, 64) case fmt.Stringer: - prop.Val = prop.Val.(fmt.Stringer).String() + prop.Val = val.String() + case *types.CustomFieldStringValue: + prop.Val = fmt.Sprintf("%d:%s", val.Key, val.Value) default: if ptype.Kind() != reflect.String { return false diff --git a/vendor/github.com/vmware/govmomi/property/wait.go b/vendor/github.com/vmware/govmomi/property/wait.go index f730525c..fbb68077 100644 --- a/vendor/github.com/vmware/govmomi/property/wait.go +++ b/vendor/github.com/vmware/govmomi/property/wait.go @@ -20,13 +20,16 @@ import ( "context" "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" ) // WaitFilter provides helpers to construct a types.CreateFilter for use with property.Wait type WaitFilter struct { types.CreateFilter - Options *types.WaitOptions + Options *types.WaitOptions + PropagateMissing bool + Truncated bool } // Add a new ObjectSpec and PropertySpec to the WaitFilter @@ -81,6 +84,8 @@ func Wait(ctx context.Context, c *Collector, obj types.ManagedObjectReference, p // The newly created collector is destroyed before this function returns (both // in case of success or error). // +// By default, ObjectUpdate.MissingSet faults are not propagated to the returned error, +// set WaitFilter.PropagateMissing=true to enable MissingSet fault propagation. func WaitForUpdates(ctx context.Context, c *Collector, filter *WaitFilter, f func([]types.ObjectUpdate) bool) error { p, err := c.Create(ctx) if err != nil { @@ -89,7 +94,9 @@ func WaitForUpdates(ctx context.Context, c *Collector, filter *WaitFilter, f fun // Attempt to destroy the collector using the background context, as the // specified context may have timed out or have been canceled. - defer p.Destroy(context.Background()) + defer func() { + _ = p.Destroy(context.Background()) + }() err = p.CreateFilter(ctx, filter.CreateFilter) if err != nil { @@ -121,8 +128,21 @@ func WaitForUpdates(ctx context.Context, c *Collector, filter *WaitFilter, f fun } req.Version = set.Version + filter.Truncated = false + if set.Truncated != nil { + filter.Truncated = *set.Truncated + } for _, fs := range set.FilterSet { + if filter.PropagateMissing { + for i := range fs.ObjectSet { + for _, p := range fs.ObjectSet[i].MissingSet { + // Same behavior as mo.ObjectContentToType() + return soap.WrapVimFault(p.Fault.Fault) + } + } + } + if f(fs.ObjectSet) { return nil } diff --git a/vendor/github.com/vmware/govmomi/session/keep_alive.go b/vendor/github.com/vmware/govmomi/session/keep_alive.go index 3b44f5ff..7c1bebf9 100644 --- a/vendor/github.com/vmware/govmomi/session/keep_alive.go +++ b/vendor/github.com/vmware/govmomi/session/keep_alive.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 VMware, Inc. All Rights Reserved. +Copyright (c) 2015-2020 VMware, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -17,110 +17,24 @@ limitations under the License. package session import ( - "context" - "sync" "time" - "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/session/keepalive" "github.com/vmware/govmomi/vim25/soap" ) -type keepAlive struct { - sync.Mutex - - roundTripper soap.RoundTripper - idleTime time.Duration - notifyRequest chan struct{} - notifyStop chan struct{} - notifyWaitGroup sync.WaitGroup - - // keepAlive executes a request in the background with the purpose of - // keeping the session active. The response for this request is discarded. - keepAlive func(soap.RoundTripper) error -} - -func defaultKeepAlive(roundTripper soap.RoundTripper) error { - _, _ = methods.GetCurrentTime(context.Background(), roundTripper) - return nil -} - -// KeepAlive wraps the specified soap.RoundTripper and executes a meaningless -// API request in the background after the RoundTripper has been idle for the -// specified amount of idle time. The keep alive process only starts once a -// user logs in and runs until the user logs out again. +// KeepAlive is a backward compatible wrapper around KeepAliveHandler. func KeepAlive(roundTripper soap.RoundTripper, idleTime time.Duration) soap.RoundTripper { - return KeepAliveHandler(roundTripper, idleTime, defaultKeepAlive) + return KeepAliveHandler(roundTripper, idleTime, nil) } -// KeepAliveHandler works as KeepAlive() does, but the handler param can decide how to handle errors. -// For example, if connectivity to ESX/VC is down long enough for a session to expire, a handler can choose to -// Login() on a types.NotAuthenticated error. If handler returns non-nil, the keep alive go routine will be stopped. +// KeepAliveHandler is a backward compatible wrapper around keepalive.NewHandlerSOAP. func KeepAliveHandler(roundTripper soap.RoundTripper, idleTime time.Duration, handler func(soap.RoundTripper) error) soap.RoundTripper { - k := &keepAlive{ - roundTripper: roundTripper, - idleTime: idleTime, - notifyRequest: make(chan struct{}), - } - - k.keepAlive = handler - - return k -} - -func (k *keepAlive) start() { - k.Lock() - defer k.Unlock() - - if k.notifyStop != nil { - return - } - - // This channel must be closed to terminate idle timer. - k.notifyStop = make(chan struct{}) - k.notifyWaitGroup.Add(1) - - go func() { - defer k.notifyWaitGroup.Done() - - for t := time.NewTimer(k.idleTime); ; { - select { - case <-k.notifyStop: - return - case <-k.notifyRequest: - t.Reset(k.idleTime) - case <-t.C: - if err := k.keepAlive(k.roundTripper); err != nil { - k.stop() - } - t = time.NewTimer(k.idleTime) - } + var f func() error + if handler != nil { + f = func() error { + return handler(roundTripper) } - }() -} - -func (k *keepAlive) stop() { - k.Lock() - defer k.Unlock() - - if k.notifyStop != nil { - close(k.notifyStop) - k.notifyWaitGroup.Wait() - k.notifyStop = nil - } -} - -func (k *keepAlive) RoundTrip(ctx context.Context, req, res soap.HasFault) error { - err := k.roundTripper.RoundTrip(ctx, req, res) - if err != nil { - return err - } - // Start ticker on login, stop ticker on logout. - switch req.(type) { - case *methods.LoginBody, *methods.LoginExtensionByCertificateBody, *methods.LoginByTokenBody: - k.start() - case *methods.LogoutBody: - k.stop() } - - return nil + return keepalive.NewHandlerSOAP(roundTripper, idleTime, f) } diff --git a/vendor/github.com/vmware/govmomi/session/keepalive/handler.go b/vendor/github.com/vmware/govmomi/session/keepalive/handler.go new file mode 100644 index 00000000..3ebf046a --- /dev/null +++ b/vendor/github.com/vmware/govmomi/session/keepalive/handler.go @@ -0,0 +1,204 @@ +/* +Copyright (c) 2020 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package keepalive + +import ( + "context" + "errors" + "net/http" + "sync" + "time" + + "github.com/vmware/govmomi/vapi/rest" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/soap" +) + +// handler contains the generic keep alive settings and logic +type handler struct { + mu sync.Mutex + notifyStop chan struct{} + notifyWaitGroup sync.WaitGroup + + idle time.Duration + send func() error +} + +// NewHandlerSOAP returns a soap.RoundTripper for use with a vim25.Client +// The idle time specifies the interval in between send() requests. Defaults to 10 minutes. +// The send func is used to keep a session alive. Defaults to calling vim25 GetCurrentTime(). +// The keep alive goroutine starts when a Login method is called and runs until Logout is called or send returns an error. +func NewHandlerSOAP(c soap.RoundTripper, idle time.Duration, send func() error) *HandlerSOAP { + h := &handler{ + idle: idle, + send: send, + } + + if send == nil { + h.send = func() error { + return h.keepAliveSOAP(c) + } + } + + return &HandlerSOAP{h, c} +} + +// NewHandlerREST returns an http.RoundTripper for use with a rest.Client +// The idle time specifies the interval in between send() requests. Defaults to 10 minutes. +// The send func is used to keep a session alive. Defaults to calling the rest.Client.Session() method +// The keep alive goroutine starts when a Login method is called and runs until Logout is called or send returns an error. +func NewHandlerREST(c *rest.Client, idle time.Duration, send func() error) *HandlerREST { + h := &handler{ + idle: idle, + send: send, + } + + if send == nil { + h.send = func() error { + return h.keepAliveREST(c) + } + } + + return &HandlerREST{h, c.Transport} +} + +func (h *handler) keepAliveSOAP(rt soap.RoundTripper) error { + ctx := context.Background() + _, err := methods.GetCurrentTime(ctx, rt) + return err +} + +func (h *handler) keepAliveREST(c *rest.Client) error { + ctx := context.Background() + + s, err := c.Session(ctx) + if err != nil { + return err + } + if s != nil { + return nil + } + return errors.New(http.StatusText(http.StatusUnauthorized)) +} + +// Start explicitly starts the keep alive go routine. +// For use with session cache.Client, as cached sessions may not involve Login/Logout via RoundTripper. +func (h *handler) Start() { + h.mu.Lock() + defer h.mu.Unlock() + + if h.notifyStop != nil { + return + } + + if h.idle == 0 { + h.idle = time.Minute * 10 + } + + // This channel must be closed to terminate idle timer. + h.notifyStop = make(chan struct{}) + h.notifyWaitGroup.Add(1) + + go func() { + for t := time.NewTimer(h.idle); ; { + select { + case <-h.notifyStop: + h.notifyWaitGroup.Done() + t.Stop() + return + case <-t.C: + if err := h.send(); err != nil { + h.notifyWaitGroup.Done() + h.Stop() + return + } + t.Reset(h.idle) + } + } + }() +} + +// Stop explicitly stops the keep alive go routine. +// For use with session cache.Client, as cached sessions may not involve Login/Logout via RoundTripper. +func (h *handler) Stop() { + h.mu.Lock() + defer h.mu.Unlock() + + if h.notifyStop != nil { + close(h.notifyStop) + h.notifyWaitGroup.Wait() + h.notifyStop = nil + } +} + +// HandlerSOAP is a keep alive implementation for use with vim25.Client +type HandlerSOAP struct { + *handler + + roundTripper soap.RoundTripper +} + +// RoundTrip implements soap.RoundTripper +func (h *HandlerSOAP) RoundTrip(ctx context.Context, req, res soap.HasFault) error { + // Stop ticker on logout. + switch req.(type) { + case *methods.LogoutBody: + h.Stop() + } + + err := h.roundTripper.RoundTrip(ctx, req, res) + if err != nil { + return err + } + + // Start ticker on login. + switch req.(type) { + case *methods.LoginBody, *methods.LoginExtensionByCertificateBody, *methods.LoginByTokenBody: + h.Start() + } + + return nil +} + +// HandlerREST is a keep alive implementation for use with rest.Client +type HandlerREST struct { + *handler + + roundTripper http.RoundTripper +} + +// RoundTrip implements http.RoundTripper +func (h *HandlerREST) RoundTrip(req *http.Request) (*http.Response, error) { + if req.URL.Path != "/rest/com/vmware/cis/session" { + return h.roundTripper.RoundTrip(req) + } + + if req.Method == http.MethodDelete { // Logout + h.Stop() + } + + res, err := h.roundTripper.RoundTrip(req) + if err != nil { + return res, err + } + + if req.Method == http.MethodPost { // Login + h.Start() + } + + return res, err +} diff --git a/vendor/github.com/vmware/govmomi/session/manager.go b/vendor/github.com/vmware/govmomi/session/manager.go index ad321971..24c6a2db 100644 --- a/vendor/github.com/vmware/govmomi/session/manager.go +++ b/vendor/github.com/vmware/govmomi/session/manager.go @@ -18,9 +18,10 @@ package session import ( "context" - "net/http" + "io/ioutil" "net/url" "os" + "strings" "github.com/vmware/govmomi/property" "github.com/vmware/govmomi/vim25" @@ -41,6 +42,21 @@ func init() { } } +// Secret returns the contents if a file path value is given, otherwise returns value itself. +func Secret(value string) (string, error) { + if len(value) == 0 { + return value, nil + } + contents, err := ioutil.ReadFile(value) + if err != nil { + if os.IsPermission(err) { + return "", err + } + return value, nil + } + return strings.TrimSpace(string(contents)), nil +} + type Manager struct { client *vim25.Client userSession *types.UserSession @@ -107,7 +123,7 @@ func (sm *Manager) LoginExtensionByCertificate(ctx context.Context, key string) // "Post https://sdkTunnel:8089/sdk: x509: certificate is valid for $vcenter_hostname, not sdkTunnel" // The only easy way around this is to disable verification for the call to LoginExtensionByCertificate(). // TODO: find a way to avoid disabling InsecureSkipVerify. - c.Transport.(*http.Transport).TLSClientConfig.InsecureSkipVerify = true + c.DefaultTransport().TLSClientConfig.InsecureSkipVerify = true } req := types.LoginExtensionByCertificate{ diff --git a/vendor/github.com/vmware/govmomi/sts/client.go b/vendor/github.com/vmware/govmomi/sts/client.go index 70e02de0..7a466a88 100644 --- a/vendor/github.com/vmware/govmomi/sts/client.go +++ b/vendor/github.com/vmware/govmomi/sts/client.go @@ -48,7 +48,7 @@ func NewClient(ctx context.Context, c *vim25.Client) (*Client, error) { filter := &types.LookupServiceRegistrationFilter{ ServiceType: &types.LookupServiceRegistrationServiceType{ Product: "com.vmware.cis", - Type: "sso:sts", + Type: "cs.identity", }, EndpointType: &types.LookupServiceRegistrationEndpointType{ Protocol: "wsTrust", diff --git a/vendor/github.com/vmware/govmomi/sts/internal/types.go b/vendor/github.com/vmware/govmomi/sts/internal/types.go index dc8402b0..875dbe50 100644 --- a/vendor/github.com/vmware/govmomi/sts/internal/types.go +++ b/vendor/github.com/vmware/govmomi/sts/internal/types.go @@ -473,12 +473,12 @@ func (a *AttributeStatement) C14N() string { type AttributeValue struct { XMLName xml.Name - Type string `xml:"type,attr"` + Type string `xml:"type,attr,typeattr"` Value string `xml:",innerxml"` } func (a *AttributeValue) C14N() string { - return fmt.Sprintf(`%s`, XSI, a.Value) + return fmt.Sprintf(`%s`, XSI, a.Type, a.Value) } type Attribute struct { @@ -682,7 +682,7 @@ func Marshal(val interface{}) string { // Note that the namespace is required when encoding, but the namespace prefix must not be // present when decoding as Go's decoding does not handle namespace prefix. func mkns(ns string, obj interface{}, name ...*xml.Name) string { - ns = ns + ":" + ns += ":" for i := range name { name[i].Space = "" if !strings.HasPrefix(name[i].Local, ns) { diff --git a/vendor/github.com/vmware/govmomi/sts/signer.go b/vendor/github.com/vmware/govmomi/sts/signer.go index 6a3b042b..06e92bf1 100644 --- a/vendor/github.com/vmware/govmomi/sts/signer.go +++ b/vendor/github.com/vmware/govmomi/sts/signer.go @@ -141,7 +141,9 @@ func (s *Signer) Sign(env soap.Envelope) ([]byte, error) { ID: id, Value: base64.StdEncoding.EncodeToString(s.Certificate.Certificate[0]), } - } else { + } + // When requesting HoK token for interactive user, request will have both priv. key and username/password. + if s.user.Username() != "" { header.UsernameToken = &internal.UsernameToken{ Username: s.user.Username(), } diff --git a/vendor/github.com/vmware/govmomi/task/wait.go b/vendor/github.com/vmware/govmomi/task/wait.go index 19fee538..c1c38a8b 100644 --- a/vendor/github.com/vmware/govmomi/task/wait.go +++ b/vendor/github.com/vmware/govmomi/task/wait.go @@ -68,7 +68,7 @@ func (t *taskCallback) fn(pc []types.PropertyChange) bool { t.info = &ti } - // t.info could be nil if pc can't satify the rules above + // t.info could be nil if pc can't satisfy the rules above if t.info == nil { return false } @@ -123,7 +123,18 @@ func Wait(ctx context.Context, ref types.ManagedObjectReference, pc *property.Co defer close(cb.ch) } - err := property.Wait(ctx, pc, ref, []string{"info"}, cb.fn) + filter := &property.WaitFilter{PropagateMissing: true} + filter.Add(ref, ref.Type, []string{"info"}) + + err := property.WaitForUpdates(ctx, pc, filter, func(updates []types.ObjectUpdate) bool { + for _, update := range updates { + if cb.fn(update.ChangeSet) { + return true + } + } + + return false + }) if err != nil { return nil, err } diff --git a/vendor/github.com/vmware/govmomi/vapi/internal/internal.go b/vendor/github.com/vmware/govmomi/vapi/internal/internal.go index 78129994..3203712c 100644 --- a/vendor/github.com/vmware/govmomi/vapi/internal/internal.go +++ b/vendor/github.com/vmware/govmomi/vapi/internal/internal.go @@ -17,23 +17,33 @@ limitations under the License. package internal import ( - "bytes" - "encoding/json" - "io" - "net/http" - "net/url" - "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) +// VAPI REST Paths const ( - Path = "/rest/com/vmware" - SessionPath = "/cis/session" - CategoryPath = "/cis/tagging/category" - TagPath = "/cis/tagging/tag" - AssociationPath = "/cis/tagging/tag-association" - SessionCookieName = "vmware-api-session-id" + SessionPath = "/com/vmware/cis/session" + CategoryPath = "/com/vmware/cis/tagging/category" + TagPath = "/com/vmware/cis/tagging/tag" + AssociationPath = "/com/vmware/cis/tagging/tag-association" + LibraryPath = "/com/vmware/content/library" + LibraryItemFileData = "/com/vmware/cis/data" + LibraryItemPath = "/com/vmware/content/library/item" + LibraryItemFilePath = "/com/vmware/content/library/item/file" + LibraryItemUpdateSession = "/com/vmware/content/library/item/update-session" + LibraryItemUpdateSessionFile = "/com/vmware/content/library/item/updatesession/file" + LibraryItemDownloadSession = "/com/vmware/content/library/item/download-session" + LibraryItemDownloadSessionFile = "/com/vmware/content/library/item/downloadsession/file" + LocalLibraryPath = "/com/vmware/content/local-library" + SubscribedLibraryPath = "/com/vmware/content/subscribed-library" + SubscribedLibraryItem = "/com/vmware/content/library/subscribed-item" + Subscriptions = "/com/vmware/content/library/subscriptions" + VCenterOVFLibraryItem = "/com/vmware/vcenter/ovf/library-item" + VCenterVMTXLibraryItem = "/vcenter/vm-template/library-items" + VCenterVM = "/vcenter/vm" + SessionCookieName = "vmware-api-session-id" + UseHeaderAuthn = "vmware-use-header-authn" ) // AssociatedObject is the same structure as types.ManagedObjectReference, @@ -62,63 +72,15 @@ func NewAssociation(ref mo.Reference) Association { } } -type CloneURL interface { - URL() *url.URL -} - -// Resource wraps url.URL with helpers -type Resource struct { - u *url.URL -} - -func URL(c CloneURL, path string) *Resource { - r := &Resource{u: c.URL()} - r.u.Path = Path + path - return r -} - -// WithID appends id to the URL.Path -func (r *Resource) WithID(id string) *Resource { - r.u.Path += "/id:" + id - return r -} - -// WithAction sets adds action to the URL.RawQuery -func (r *Resource) WithAction(action string) *Resource { - r.u.RawQuery = url.Values{ - "~action": []string{action}, - }.Encode() - return r -} - -// Request returns a new http.Request for the given method. -// An optional body can be provided for POST and PATCH methods. -func (r *Resource) Request(method string, body ...interface{}) *http.Request { - rdr := io.MultiReader() // empty body by default - if len(body) != 0 { - rdr = encode(body[0]) - } - req, err := http.NewRequest(method, r.u.String(), rdr) - if err != nil { - panic(err) - } - return req -} - -type errorReader struct { - e error +type SubscriptionDestination struct { + ID string `json:"subscription"` } -func (e errorReader) Read([]byte) (int, error) { - return -1, e.e +type SubscriptionDestinationSpec struct { + Subscriptions []SubscriptionDestination `json:"subscriptions,omitempty"` } -// encode body as JSON, deferring any errors until io.Reader is used. -func encode(body interface{}) io.Reader { - var b bytes.Buffer - err := json.NewEncoder(&b).Encode(body) - if err != nil { - return errorReader{err} - } - return &b +type SubscriptionItemDestinationSpec struct { + Force bool `json:"force_sync_content"` + Subscriptions []SubscriptionDestination `json:"subscriptions,omitempty"` } diff --git a/vendor/github.com/vmware/govmomi/vapi/rest/client.go b/vendor/github.com/vmware/govmomi/vapi/rest/client.go index 152928ee..0cad1fb1 100644 --- a/vendor/github.com/vmware/govmomi/vapi/rest/client.go +++ b/vendor/github.com/vmware/govmomi/vapi/rest/client.go @@ -25,6 +25,8 @@ import ( "io/ioutil" "net/http" "net/url" + "sync" + "time" "github.com/vmware/govmomi/vapi/internal" "github.com/vmware/govmomi/vim25" @@ -33,14 +35,82 @@ import ( // Client extends soap.Client to support JSON encoding, while inheriting security features, debug tracing and session persistence. type Client struct { + mu sync.Mutex + *soap.Client + sessionID string +} + +// Session information +type Session struct { + User string `json:"user"` + Created time.Time `json:"created_time"` + LastAccessed time.Time `json:"last_accessed_time"` +} + +// LocalizableMessage represents a localizable error +type LocalizableMessage struct { + Args []string `json:"args,omitempty"` + DefaultMessage string `json:"default_message,omitempty"` + ID string `json:"id,omitempty"` +} + +func (m *LocalizableMessage) Error() string { + return m.DefaultMessage } // NewClient creates a new Client instance. func NewClient(c *vim25.Client) *Client { - sc := c.Client.NewServiceClient(internal.Path, "") + sc := c.Client.NewServiceClient(Path, "") + + return &Client{Client: sc} +} + +// SessionID is set by calling Login() or optionally with the given id param +func (c *Client) SessionID(id ...string) string { + c.mu.Lock() + defer c.mu.Unlock() + if len(id) != 0 { + c.sessionID = id[0] + } + return c.sessionID +} + +type marshaledClient struct { + SoapClient *soap.Client + SessionID string +} + +func (c *Client) MarshalJSON() ([]byte, error) { + m := marshaledClient{ + SoapClient: c.Client, + SessionID: c.sessionID, + } - return &Client{sc} + return json.Marshal(m) +} + +func (c *Client) UnmarshalJSON(b []byte) error { + var m marshaledClient + + err := json.Unmarshal(b, &m) + if err != nil { + return err + } + + *c = Client{ + Client: m.SoapClient, + sessionID: m.SessionID, + } + + return nil +} + +// Resource helper for the given path. +func (c *Client) Resource(path string) *Resource { + r := &Resource{u: c.URL()} + r.u.Path = Path + path + return r } type Signer interface { @@ -53,6 +123,14 @@ func (c *Client) WithSigner(ctx context.Context, s Signer) context.Context { return context.WithValue(ctx, signerContext{}, s) } +type statusError struct { + res *http.Response +} + +func (e *statusError) Error() string { + return fmt.Sprintf("%s %s: %s", e.res.Request.Method, e.res.Request.URL, e.res.Status) +} + // Do sends the http.Request, decoding resBody if provided. func (c *Client) Do(ctx context.Context, req *http.Request, resBody interface{}) error { switch req.Method { @@ -62,6 +140,10 @@ func (c *Client) Do(ctx context.Context, req *http.Request, resBody interface{}) req.Header.Set("Accept", "application/json") + if id := c.SessionID(); id != "" { + req.Header.Set(internal.SessionCookieName, id) + } + if s, ok := ctx.Value(signerContext{}).(Signer); ok { if err := s.SignRequest(req); err != nil { return err @@ -71,6 +153,7 @@ func (c *Client) Do(ctx context.Context, req *http.Request, resBody interface{}) return c.Client.Do(ctx, req, func(res *http.Response) error { switch res.StatusCode { case http.StatusOK: + case http.StatusNoContent: case http.StatusBadRequest: // TODO: structured error types detail, err := ioutil.ReadAll(res.Body) @@ -79,7 +162,7 @@ func (c *Client) Do(ctx context.Context, req *http.Request, resBody interface{}) } return fmt.Errorf("%s: %s", res.Status, bytes.TrimSpace(detail)) default: - return fmt.Errorf("%s %s: %s", req.Method, req.URL, res.Status) + return &statusError{res} } if resBody == nil { @@ -101,9 +184,46 @@ func (c *Client) Do(ctx context.Context, req *http.Request, resBody interface{}) }) } +// authHeaders ensures the given map contains a REST auth header +func (c *Client) authHeaders(h map[string]string) map[string]string { + if _, exists := h[internal.SessionCookieName]; exists { + return h + } + if h == nil { + h = make(map[string]string) + } + + h[internal.SessionCookieName] = c.SessionID() + + return h +} + +// Download wraps soap.Client.Download, adding the REST authentication header +func (c *Client) Download(ctx context.Context, u *url.URL, param *soap.Download) (io.ReadCloser, int64, error) { + p := *param + p.Headers = c.authHeaders(p.Headers) + return c.Client.Download(ctx, u, &p) +} + +// DownloadFile wraps soap.Client.DownloadFile, adding the REST authentication header +func (c *Client) DownloadFile(ctx context.Context, file string, u *url.URL, param *soap.Download) error { + p := *param + p.Headers = c.authHeaders(p.Headers) + return c.Client.DownloadFile(ctx, file, u, &p) +} + +// Upload wraps soap.Client.Upload, adding the REST authentication header +func (c *Client) Upload(ctx context.Context, f io.Reader, u *url.URL, param *soap.Upload) error { + p := *param + p.Headers = c.authHeaders(p.Headers) + return c.Client.Upload(ctx, f, u, &p) +} + // Login creates a new session via Basic Authentication with the given url.Userinfo. func (c *Client) Login(ctx context.Context, user *url.Userinfo) error { - req := internal.URL(c, internal.SessionPath).Request(http.MethodPost) + req := c.Resource(internal.SessionPath).Request(http.MethodPost) + + req.Header.Set(internal.UseHeaderAuthn, "true") if user != nil { if password, ok := user.Password(); ok { @@ -111,15 +231,59 @@ func (c *Client) Login(ctx context.Context, user *url.Userinfo) error { } } - return c.Do(ctx, req, nil) + var id string + err := c.Do(ctx, req, &id) + if err != nil { + return err + } + + c.SessionID(id) + + return nil } func (c *Client) LoginByToken(ctx context.Context) error { return c.Login(ctx, nil) } +// Session returns the user's current session. +// Nil is returned if the session is not authenticated. +func (c *Client) Session(ctx context.Context) (*Session, error) { + var s Session + req := c.Resource(internal.SessionPath).WithAction("get").Request(http.MethodPost) + err := c.Do(ctx, req, &s) + if err != nil { + if e, ok := err.(*statusError); ok { + if e.res.StatusCode == http.StatusUnauthorized { + return nil, nil + } + } + return nil, err + } + return &s, nil +} + // Logout deletes the current session. func (c *Client) Logout(ctx context.Context) error { - req := internal.URL(c, internal.SessionPath).Request(http.MethodDelete) + req := c.Resource(internal.SessionPath).Request(http.MethodDelete) return c.Do(ctx, req, nil) } + +// Valid returns whether or not the client is valid and ready for use. +// This should be called after unmarshalling the client. +func (c *Client) Valid() bool { + if c == nil { + return false + } + + if c.Client == nil { + return false + } + + return true +} + +// Path returns rest.Path (see cache.Client) +func (c *Client) Path() string { + return Path +} diff --git a/vendor/github.com/vmware/govmomi/vapi/rest/resource.go b/vendor/github.com/vmware/govmomi/vapi/rest/resource.go new file mode 100644 index 00000000..24378963 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vapi/rest/resource.go @@ -0,0 +1,89 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package rest + +import ( + "bytes" + "encoding/json" + "io" + "net/http" + "net/url" +) + +const ( + Path = "/rest" +) + +// Resource wraps url.URL with helpers +type Resource struct { + u *url.URL +} + +func (r *Resource) String() string { + return r.u.String() +} + +// WithID appends id to the URL.Path +func (r *Resource) WithID(id string) *Resource { + r.u.Path += "/id:" + id + return r +} + +// WithAction sets adds action to the URL.RawQuery +func (r *Resource) WithAction(action string) *Resource { + return r.WithParam("~action", action) +} + +// WithParam sets adds a parameter to the URL.RawQuery +func (r *Resource) WithParam(name string, value string) *Resource { + r.u.RawQuery = url.Values{ + name: []string{value}, + }.Encode() + return r +} + +// Request returns a new http.Request for the given method. +// An optional body can be provided for POST and PATCH methods. +func (r *Resource) Request(method string, body ...interface{}) *http.Request { + rdr := io.MultiReader() // empty body by default + if len(body) != 0 { + rdr = encode(body[0]) + } + req, err := http.NewRequest(method, r.u.String(), rdr) + if err != nil { + panic(err) + } + return req +} + +type errorReader struct { + e error +} + +func (e errorReader) Read([]byte) (int, error) { + return -1, e.e +} + +// encode body as JSON, deferring any errors until io.Reader is used. +func encode(body interface{}) io.Reader { + var b bytes.Buffer + err := json.NewEncoder(&b).Encode(body) + if err != nil { + return errorReader{err} + } + return &b +} diff --git a/vendor/github.com/vmware/govmomi/vapi/tags/categories.go b/vendor/github.com/vmware/govmomi/vapi/tags/categories.go index 119b9650..3ad81820 100644 --- a/vendor/github.com/vmware/govmomi/vapi/tags/categories.go +++ b/vendor/github.com/vmware/govmomi/vapi/tags/categories.go @@ -87,7 +87,7 @@ func (c *Manager) CreateCategory(ctx context.Context, category *Category) (strin // otherwise create fails with invalid_argument spec.Category.AssociableTypes = []string{} } - url := internal.URL(c, internal.CategoryPath) + url := c.Resource(internal.CategoryPath) var res string return res, c.Do(ctx, url.Request(http.MethodPost, spec), &res) } @@ -104,13 +104,13 @@ func (c *Manager) UpdateCategory(ctx context.Context, category *Category) error Name: category.Name, }, } - url := internal.URL(c, internal.CategoryPath).WithID(category.ID) + url := c.Resource(internal.CategoryPath).WithID(category.ID) return c.Do(ctx, url.Request(http.MethodPatch, spec), nil) } // DeleteCategory deletes an existing category. func (c *Manager) DeleteCategory(ctx context.Context, category *Category) error { - url := internal.URL(c, internal.CategoryPath).WithID(category.ID) + url := c.Resource(internal.CategoryPath).WithID(category.ID) return c.Do(ctx, url.Request(http.MethodDelete), nil) } @@ -129,14 +129,14 @@ func (c *Manager) GetCategory(ctx context.Context, id string) (*Category, error) } } } - url := internal.URL(c, internal.CategoryPath).WithID(id) + url := c.Resource(internal.CategoryPath).WithID(id) var res Category return &res, c.Do(ctx, url.Request(http.MethodGet), &res) } // ListCategories returns all category IDs in the system. func (c *Manager) ListCategories(ctx context.Context) ([]string, error) { - url := internal.URL(c, internal.CategoryPath) + url := c.Resource(internal.CategoryPath) var res []string return res, c.Do(ctx, url.Request(http.MethodGet), &res) } diff --git a/vendor/github.com/vmware/govmomi/vapi/tags/tag_association.go b/vendor/github.com/vmware/govmomi/vapi/tags/tag_association.go index 1e143418..5abc3238 100644 --- a/vendor/github.com/vmware/govmomi/vapi/tags/tag_association.go +++ b/vendor/github.com/vmware/govmomi/vapi/tags/tag_association.go @@ -18,6 +18,7 @@ package tags import ( "context" + "encoding/json" "fmt" "net/http" @@ -43,7 +44,7 @@ func (c *Manager) AttachTag(ctx context.Context, tagID string, ref mo.Reference) return err } spec := internal.NewAssociation(ref) - url := internal.URL(c, internal.AssociationPath).WithID(id).WithAction("attach") + url := c.Resource(internal.AssociationPath).WithID(id).WithAction("attach") return c.Do(ctx, url.Request(http.MethodPost, spec), nil) } @@ -55,14 +56,34 @@ func (c *Manager) DetachTag(ctx context.Context, tagID string, ref mo.Reference) return err } spec := internal.NewAssociation(ref) - url := internal.URL(c, internal.AssociationPath).WithID(id).WithAction("detach") + url := c.Resource(internal.AssociationPath).WithID(id).WithAction("detach") + return c.Do(ctx, url.Request(http.MethodPost, spec), nil) +} + +// AttachTagToMultipleObjects attaches a tag ID to multiple managed objects +func (c *Manager) AttachTagToMultipleObjects(ctx context.Context, tagID string, refs []mo.Reference) error { + id, err := c.tagID(ctx, tagID) + if err != nil { + return err + } + + var ids []internal.AssociatedObject + for i := range refs { + ids = append(ids, internal.AssociatedObject(refs[i].Reference())) + } + + spec := struct { + ObjectIDs []internal.AssociatedObject `json:"object_ids"` + }{ids} + + url := c.Resource(internal.AssociationPath).WithID(id).WithAction("attach-tag-to-multiple-objects") return c.Do(ctx, url.Request(http.MethodPost, spec), nil) } // ListAttachedTags fetches the array of tag IDs attached to the given object. func (c *Manager) ListAttachedTags(ctx context.Context, ref mo.Reference) ([]string, error) { spec := internal.NewAssociation(ref) - url := internal.URL(c, internal.AssociationPath).WithAction("list-attached-tags") + url := c.Resource(internal.AssociationPath).WithAction("list-attached-tags") var res []string return res, c.Do(ctx, url.Request(http.MethodPost, spec), &res) } @@ -91,7 +112,7 @@ func (c *Manager) ListAttachedObjects(ctx context.Context, tagID string) ([]mo.R if err != nil { return nil, err } - url := internal.URL(c, internal.AssociationPath).WithID(id).WithAction("list-attached-objects") + url := c.Resource(internal.AssociationPath).WithID(id).WithAction("list-attached-objects") var res []internal.AssociatedObject if err := c.Do(ctx, url.Request(http.MethodPost, nil), &res); err != nil { return nil, err @@ -103,3 +124,142 @@ func (c *Manager) ListAttachedObjects(ctx context.Context, tagID string) ([]mo.R } return refs, nil } + +// AttachedObjects is the response type used by ListAttachedObjectsOnTags. +type AttachedObjects struct { + TagID string `json:"tag_id"` + Tag *Tag `json:"tag,omitempty"` + ObjectIDs []mo.Reference `json:"object_ids"` +} + +// UnmarshalJSON implements json.Unmarshaler. +func (t *AttachedObjects) UnmarshalJSON(b []byte) error { + var o struct { + TagID string `json:"tag_id"` + ObjectIDs []internal.AssociatedObject `json:"object_ids"` + } + err := json.Unmarshal(b, &o) + if err != nil { + return err + } + + t.TagID = o.TagID + t.ObjectIDs = make([]mo.Reference, len(o.ObjectIDs)) + for i := range o.ObjectIDs { + t.ObjectIDs[i] = o.ObjectIDs[i] + } + + return nil +} + +// ListAttachedObjectsOnTags fetches the array of attached objects for the given tag IDs. +func (c *Manager) ListAttachedObjectsOnTags(ctx context.Context, tagID []string) ([]AttachedObjects, error) { + var ids []string + for i := range tagID { + id, err := c.tagID(ctx, tagID[i]) + if err != nil { + return nil, err + } + ids = append(ids, id) + } + + spec := struct { + TagIDs []string `json:"tag_ids"` + }{ids} + + url := c.Resource(internal.AssociationPath).WithAction("list-attached-objects-on-tags") + var res []AttachedObjects + return res, c.Do(ctx, url.Request(http.MethodPost, spec), &res) +} + +// GetAttachedObjectsOnTags combines ListAttachedObjectsOnTags and populates each Tag field. +func (c *Manager) GetAttachedObjectsOnTags(ctx context.Context, tagID []string) ([]AttachedObjects, error) { + objs, err := c.ListAttachedObjectsOnTags(ctx, tagID) + if err != nil { + return nil, fmt.Errorf("list attached objects %s: %s", tagID, err) + } + + tags := make(map[string]*Tag) + + for i := range objs { + var err error + id := objs[i].TagID + tag, ok := tags[id] + if !ok { + tag, err = c.GetTag(ctx, id) + if err != nil { + return nil, fmt.Errorf("get tag %s: %s", id, err) + } + objs[i].Tag = tag + } + } + + return objs, nil +} + +// AttachedTags is the response type used by ListAttachedTagsOnObjects. +type AttachedTags struct { + ObjectID mo.Reference `json:"object_id"` + TagIDs []string `json:"tag_ids"` + Tags []Tag `json:"tags,omitempty"` +} + +// UnmarshalJSON implements json.Unmarshaler. +func (t *AttachedTags) UnmarshalJSON(b []byte) error { + var o struct { + ObjectID internal.AssociatedObject `json:"object_id"` + TagIDs []string `json:"tag_ids"` + } + err := json.Unmarshal(b, &o) + if err != nil { + return err + } + + t.ObjectID = o.ObjectID + t.TagIDs = o.TagIDs + + return nil +} + +// ListAttachedTagsOnObjects fetches the array of attached tag IDs for the given object IDs. +func (c *Manager) ListAttachedTagsOnObjects(ctx context.Context, objectID []mo.Reference) ([]AttachedTags, error) { + var ids []internal.AssociatedObject + for i := range objectID { + ids = append(ids, internal.AssociatedObject(objectID[i].Reference())) + } + + spec := struct { + ObjectIDs []internal.AssociatedObject `json:"object_ids"` + }{ids} + + url := c.Resource(internal.AssociationPath).WithAction("list-attached-tags-on-objects") + var res []AttachedTags + return res, c.Do(ctx, url.Request(http.MethodPost, spec), &res) +} + +// GetAttachedTagsOnObjects calls ListAttachedTagsOnObjects and populates each Tags field. +func (c *Manager) GetAttachedTagsOnObjects(ctx context.Context, objectID []mo.Reference) ([]AttachedTags, error) { + objs, err := c.ListAttachedTagsOnObjects(ctx, objectID) + if err != nil { + return nil, fmt.Errorf("list attached tags %s: %s", objectID, err) + } + + tags := make(map[string]*Tag) + + for i := range objs { + for _, id := range objs[i].TagIDs { + var err error + tag, ok := tags[id] + if !ok { + tag, err = c.GetTag(ctx, id) + if err != nil { + return nil, fmt.Errorf("get tag %s: %s", id, err) + } + tags[id] = tag + } + objs[i].Tags = append(objs[i].Tags, *tag) + } + } + + return objs, nil +} diff --git a/vendor/github.com/vmware/govmomi/vapi/tags/tags.go b/vendor/github.com/vmware/govmomi/vapi/tags/tags.go index 8e3c0a6c..b9024f99 100644 --- a/vendor/github.com/vmware/govmomi/vapi/tags/tags.go +++ b/vendor/github.com/vmware/govmomi/vapi/tags/tags.go @@ -90,7 +90,7 @@ func (c *Manager) CreateTag(ctx context.Context, tag *Tag) (string, error) { } spec.Tag.CategoryID = cat.ID } - url := internal.URL(c, internal.TagPath) + url := c.Resource(internal.TagPath) var res string return res, c.Do(ctx, url.Request(http.MethodPost, spec), &res) } @@ -105,13 +105,13 @@ func (c *Manager) UpdateTag(ctx context.Context, tag *Tag) error { Description: tag.Description, }, } - url := internal.URL(c, internal.TagPath).WithID(tag.ID) + url := c.Resource(internal.TagPath).WithID(tag.ID) return c.Do(ctx, url.Request(http.MethodPatch, spec), nil) } // DeleteTag deletes an existing tag. func (c *Manager) DeleteTag(ctx context.Context, tag *Tag) error { - url := internal.URL(c, internal.TagPath).WithID(tag.ID) + url := c.Resource(internal.TagPath).WithID(tag.ID) return c.Do(ctx, url.Request(http.MethodDelete), nil) } @@ -131,7 +131,7 @@ func (c *Manager) GetTag(ctx context.Context, id string) (*Tag, error) { } } - url := internal.URL(c, internal.TagPath).WithID(id) + url := c.Resource(internal.TagPath).WithID(id) var res Tag return &res, c.Do(ctx, url.Request(http.MethodGet), &res) @@ -148,10 +148,10 @@ func (c *Manager) GetTagForCategory(ctx context.Context, id, category string) (* return nil, err } - for _, id := range ids { - tag, err := c.GetTag(ctx, id) + for _, tagid := range ids { + tag, err := c.GetTag(ctx, tagid) if err != nil { - return nil, fmt.Errorf("get tag for category %s %s: %s", category, id, err) + return nil, fmt.Errorf("get tag for category %s %s: %s", category, tagid, err) } if tag.ID == id || tag.Name == id { return tag, nil @@ -163,7 +163,7 @@ func (c *Manager) GetTagForCategory(ctx context.Context, id, category string) (* // ListTags returns all tag IDs in the system. func (c *Manager) ListTags(ctx context.Context) ([]string, error) { - url := internal.URL(c, internal.TagPath) + url := c.Resource(internal.TagPath) var res []string return res, c.Do(ctx, url.Request(http.MethodGet), &res) } @@ -201,7 +201,7 @@ func (c *Manager) ListTagsForCategory(ctx context.Context, id string) ([]string, body := struct { ID string `json:"category_id"` }{id} - url := internal.URL(c, internal.TagPath).WithID(id).WithAction("list-tags-for-category") + url := c.Resource(internal.TagPath).WithID(id).WithAction("list-tags-for-category") var res []string return res, c.Do(ctx, url.Request(http.MethodPost, body), &res) } diff --git a/vendor/github.com/vmware/govmomi/view/container_view.go b/vendor/github.com/vmware/govmomi/view/container_view.go index 0e3268b8..37fa34ce 100644 --- a/vendor/github.com/vmware/govmomi/view/container_view.go +++ b/vendor/github.com/vmware/govmomi/view/container_view.go @@ -89,7 +89,7 @@ func (v ContainerView) Retrieve(ctx context.Context, kind []string, ps []string, return nil } - return mo.LoadRetrievePropertiesResponse(res, dst) + return mo.LoadObjectContent(res.Returnval, dst) } // RetrieveWithFilter populates dst as Retrieve does, but only for entities matching the given filter. diff --git a/vendor/github.com/vmware/govmomi/vim25/client.go b/vendor/github.com/vmware/govmomi/vim25/client.go index 1d26fb8b..b14cea85 100644 --- a/vendor/github.com/vmware/govmomi/vim25/client.go +++ b/vendor/github.com/vmware/govmomi/vim25/client.go @@ -19,16 +19,20 @@ package vim25 import ( "context" "encoding/json" + "fmt" + "net/http" + "path" "strings" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" + "github.com/vmware/govmomi/vim25/xml" ) const ( Namespace = "vim25" - Version = "6.7" + Version = "7.0" Path = "/sdk" ) @@ -54,7 +58,7 @@ type Client struct { RoundTripper soap.RoundTripper } -// NewClient creates and returns a new client wirh the ServiceContent field +// NewClient creates and returns a new client with the ServiceContent field // filled in. func NewClient(ctx context.Context, rt soap.RoundTripper) (*Client, error) { c := Client{ @@ -67,7 +71,7 @@ func NewClient(ctx context.Context, rt soap.RoundTripper) (*Client, error) { if c.Namespace == "" { c.Namespace = "urn:" + Namespace - } else if strings.Index(c.Namespace, ":") < 0 { + } else if !strings.Contains(c.Namespace, ":") { c.Namespace = "urn:" + c.Namespace // ensure valid URI format } if c.Version == "" { @@ -84,6 +88,42 @@ func NewClient(ctx context.Context, rt soap.RoundTripper) (*Client, error) { return &c, nil } +// UseServiceVersion sets soap.Client.Version to the current version of the service endpoint via /sdk/vimServiceVersions.xml +func (c *Client) UseServiceVersion(kind ...string) error { + ns := "vim" + if len(kind) != 0 { + ns = kind[0] + } + + u := c.URL() + u.Path = path.Join(Path, ns+"ServiceVersions.xml") + + res, err := c.Get(u.String()) + if err != nil { + return err + } + + if res.StatusCode != http.StatusOK { + return fmt.Errorf("http.Get(%s): %s", u.Path, err) + } + + v := struct { + Namespace *string `xml:"namespace>name"` + Version *string `xml:"namespace>version"` + }{ + &c.Namespace, + &c.Version, + } + + err = xml.NewDecoder(res.Body).Decode(&v) + _ = res.Body.Close() + if err != nil { + return fmt.Errorf("xml.Decode(%s): %s", u.Path, err) + } + + return nil +} + // RoundTrip dispatches to the RoundTripper field. func (c *Client) RoundTrip(ctx context.Context, req, res soap.HasFault) error { return c.RoundTripper.RoundTrip(ctx, req, res) @@ -140,6 +180,11 @@ func (c *Client) Valid() bool { return true } +// Path returns vim25.Path (see cache.Client) +func (c *Client) Path() string { + return Path +} + // IsVC returns true if we are connected to a vCenter func (c *Client) IsVC() bool { return c.ServiceContent.About.ApiType == "VirtualCenter" diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/debug.go b/vendor/github.com/vmware/govmomi/vim25/debug/debug.go index 22d54717..cc87d545 100644 --- a/vendor/github.com/vmware/govmomi/vim25/debug/debug.go +++ b/vendor/github.com/vmware/govmomi/vim25/debug/debug.go @@ -18,8 +18,7 @@ package debug import ( "io" - "os" - "path" + "regexp" ) // Provider specified the interface types must implement to be used as a @@ -31,6 +30,7 @@ type Provider interface { } var currentProvider Provider = nil +var scrubPassword = regexp.MustCompile(`(.*)`) func SetProvider(p Provider) { if currentProvider != nil { @@ -54,28 +54,9 @@ func Flush() { currentProvider.Flush() } -// FileProvider implements a debugging provider that creates a real file for -// every call to NewFile. It maintains a list of all files that it creates, -// such that it can close them when its Flush function is called. -type FileProvider struct { - Path string +func Scrub(in []byte) []byte { + out := string(in) + out = scrubPassword.ReplaceAllString(out, `********`) - files []*os.File -} - -func (fp *FileProvider) NewFile(p string) io.WriteCloser { - f, err := os.Create(path.Join(fp.Path, p)) - if err != nil { - panic(err) - } - - fp.files = append(fp.files, f) - - return f -} - -func (fp *FileProvider) Flush() { - for _, f := range fp.files { - f.Close() - } + return []byte(out) } diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/file.go b/vendor/github.com/vmware/govmomi/vim25/debug/file.go new file mode 100644 index 00000000..f04a0040 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/debug/file.go @@ -0,0 +1,68 @@ +/* +Copyright (c) 2014 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package debug + +import ( + "io" + "os" + "path" +) + +// FileProvider implements a debugging provider that creates a real file for +// every call to NewFile. It maintains a list of all files that it creates, +// such that it can close them when its Flush function is called. +type FileProvider struct { + Path string + files []*os.File +} + +func (fp *FileProvider) NewFile(p string) io.WriteCloser { + f, err := os.Create(path.Join(fp.Path, p)) + if err != nil { + panic(err) + } + + fp.files = append(fp.files, f) + + return NewFileWriterCloser(f, p) +} + +func (fp *FileProvider) Flush() { + for _, f := range fp.files { + f.Close() + } +} + +type FileWriterCloser struct { + f *os.File + p string +} + +func NewFileWriterCloser(f *os.File, p string) *FileWriterCloser { + return &FileWriterCloser{ + f, + p, + } +} + +func (fwc *FileWriterCloser) Write(p []byte) (n int, err error) { + return fwc.f.Write(Scrub(p)) +} + +func (fwc *FileWriterCloser) Close() error { + return fwc.f.Close() +} diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/log.go b/vendor/github.com/vmware/govmomi/vim25/debug/log.go new file mode 100644 index 00000000..8335acff --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/debug/log.go @@ -0,0 +1,49 @@ +/* +Copyright (c) 2014 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package debug + +import ( + "io" + "log" +) + +type LogWriterCloser struct { +} + +func NewLogWriterCloser() *LogWriterCloser { + return &LogWriterCloser{} +} + +func (lwc *LogWriterCloser) Write(p []byte) (n int, err error) { + log.Print(string(Scrub(p))) + return len(p), nil +} + +func (lwc *LogWriterCloser) Close() error { + return nil +} + +type LogProvider struct { +} + +func (s *LogProvider) NewFile(p string) io.WriteCloser { + log.Print(p) + return NewLogWriterCloser() +} + +func (s *LogProvider) Flush() { +} diff --git a/vendor/github.com/vmware/govmomi/vim25/methods/methods.go b/vendor/github.com/vmware/govmomi/vim25/methods/methods.go index c3ad23ee..8c209e60 100644 --- a/vendor/github.com/vmware/govmomi/vim25/methods/methods.go +++ b/vendor/github.com/vmware/govmomi/vim25/methods/methods.go @@ -23,9 +23,29 @@ import ( "github.com/vmware/govmomi/vim25/types" ) +type AbandonHciWorkflowBody struct { + Req *types.AbandonHciWorkflow `xml:"urn:vim25 AbandonHciWorkflow,omitempty"` + Res *types.AbandonHciWorkflowResponse `xml:"AbandonHciWorkflowResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *AbandonHciWorkflowBody) Fault() *soap.Fault { return b.Fault_ } + +func AbandonHciWorkflow(ctx context.Context, r soap.RoundTripper, req *types.AbandonHciWorkflow) (*types.AbandonHciWorkflowResponse, error) { + var reqBody, resBody AbandonHciWorkflowBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type AbdicateDomOwnershipBody struct { Req *types.AbdicateDomOwnership `xml:"urn:vim25 AbdicateDomOwnership,omitempty"` - Res *types.AbdicateDomOwnershipResponse `xml:"urn:vim25 AbdicateDomOwnershipResponse,omitempty"` + Res *types.AbdicateDomOwnershipResponse `xml:"AbdicateDomOwnershipResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -43,9 +63,29 @@ func AbdicateDomOwnership(ctx context.Context, r soap.RoundTripper, req *types.A return resBody.Res, nil } +type AbortCustomization_TaskBody struct { + Req *types.AbortCustomization_Task `xml:"urn:vim25 AbortCustomization_Task,omitempty"` + Res *types.AbortCustomization_TaskResponse `xml:"AbortCustomization_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *AbortCustomization_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func AbortCustomization_Task(ctx context.Context, r soap.RoundTripper, req *types.AbortCustomization_Task) (*types.AbortCustomization_TaskResponse, error) { + var reqBody, resBody AbortCustomization_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type AcknowledgeAlarmBody struct { Req *types.AcknowledgeAlarm `xml:"urn:vim25 AcknowledgeAlarm,omitempty"` - Res *types.AcknowledgeAlarmResponse `xml:"urn:vim25 AcknowledgeAlarmResponse,omitempty"` + Res *types.AcknowledgeAlarmResponse `xml:"AcknowledgeAlarmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -65,7 +105,7 @@ func AcknowledgeAlarm(ctx context.Context, r soap.RoundTripper, req *types.Ackno type AcquireCimServicesTicketBody struct { Req *types.AcquireCimServicesTicket `xml:"urn:vim25 AcquireCimServicesTicket,omitempty"` - Res *types.AcquireCimServicesTicketResponse `xml:"urn:vim25 AcquireCimServicesTicketResponse,omitempty"` + Res *types.AcquireCimServicesTicketResponse `xml:"AcquireCimServicesTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -85,7 +125,7 @@ func AcquireCimServicesTicket(ctx context.Context, r soap.RoundTripper, req *typ type AcquireCloneTicketBody struct { Req *types.AcquireCloneTicket `xml:"urn:vim25 AcquireCloneTicket,omitempty"` - Res *types.AcquireCloneTicketResponse `xml:"urn:vim25 AcquireCloneTicketResponse,omitempty"` + Res *types.AcquireCloneTicketResponse `xml:"AcquireCloneTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -105,7 +145,7 @@ func AcquireCloneTicket(ctx context.Context, r soap.RoundTripper, req *types.Acq type AcquireCredentialsInGuestBody struct { Req *types.AcquireCredentialsInGuest `xml:"urn:vim25 AcquireCredentialsInGuest,omitempty"` - Res *types.AcquireCredentialsInGuestResponse `xml:"urn:vim25 AcquireCredentialsInGuestResponse,omitempty"` + Res *types.AcquireCredentialsInGuestResponse `xml:"AcquireCredentialsInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -125,7 +165,7 @@ func AcquireCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *ty type AcquireGenericServiceTicketBody struct { Req *types.AcquireGenericServiceTicket `xml:"urn:vim25 AcquireGenericServiceTicket,omitempty"` - Res *types.AcquireGenericServiceTicketResponse `xml:"urn:vim25 AcquireGenericServiceTicketResponse,omitempty"` + Res *types.AcquireGenericServiceTicketResponse `xml:"AcquireGenericServiceTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -145,7 +185,7 @@ func AcquireGenericServiceTicket(ctx context.Context, r soap.RoundTripper, req * type AcquireLocalTicketBody struct { Req *types.AcquireLocalTicket `xml:"urn:vim25 AcquireLocalTicket,omitempty"` - Res *types.AcquireLocalTicketResponse `xml:"urn:vim25 AcquireLocalTicketResponse,omitempty"` + Res *types.AcquireLocalTicketResponse `xml:"AcquireLocalTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -165,7 +205,7 @@ func AcquireLocalTicket(ctx context.Context, r soap.RoundTripper, req *types.Acq type AcquireMksTicketBody struct { Req *types.AcquireMksTicket `xml:"urn:vim25 AcquireMksTicket,omitempty"` - Res *types.AcquireMksTicketResponse `xml:"urn:vim25 AcquireMksTicketResponse,omitempty"` + Res *types.AcquireMksTicketResponse `xml:"AcquireMksTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -185,7 +225,7 @@ func AcquireMksTicket(ctx context.Context, r soap.RoundTripper, req *types.Acqui type AcquireTicketBody struct { Req *types.AcquireTicket `xml:"urn:vim25 AcquireTicket,omitempty"` - Res *types.AcquireTicketResponse `xml:"urn:vim25 AcquireTicketResponse,omitempty"` + Res *types.AcquireTicketResponse `xml:"AcquireTicketResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -205,7 +245,7 @@ func AcquireTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireT type AddAuthorizationRoleBody struct { Req *types.AddAuthorizationRole `xml:"urn:vim25 AddAuthorizationRole,omitempty"` - Res *types.AddAuthorizationRoleResponse `xml:"urn:vim25 AddAuthorizationRoleResponse,omitempty"` + Res *types.AddAuthorizationRoleResponse `xml:"AddAuthorizationRoleResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -225,7 +265,7 @@ func AddAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *types.A type AddCustomFieldDefBody struct { Req *types.AddCustomFieldDef `xml:"urn:vim25 AddCustomFieldDef,omitempty"` - Res *types.AddCustomFieldDefResponse `xml:"urn:vim25 AddCustomFieldDefResponse,omitempty"` + Res *types.AddCustomFieldDefResponse `xml:"AddCustomFieldDefResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -245,7 +285,7 @@ func AddCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.AddC type AddDVPortgroup_TaskBody struct { Req *types.AddDVPortgroup_Task `xml:"urn:vim25 AddDVPortgroup_Task,omitempty"` - Res *types.AddDVPortgroup_TaskResponse `xml:"urn:vim25 AddDVPortgroup_TaskResponse,omitempty"` + Res *types.AddDVPortgroup_TaskResponse `xml:"AddDVPortgroup_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -265,7 +305,7 @@ func AddDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req *types.Ad type AddDisks_TaskBody struct { Req *types.AddDisks_Task `xml:"urn:vim25 AddDisks_Task,omitempty"` - Res *types.AddDisks_TaskResponse `xml:"urn:vim25 AddDisks_TaskResponse,omitempty"` + Res *types.AddDisks_TaskResponse `xml:"AddDisks_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -285,7 +325,7 @@ func AddDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.AddDisks type AddFilterBody struct { Req *types.AddFilter `xml:"urn:vim25 AddFilter,omitempty"` - Res *types.AddFilterResponse `xml:"urn:vim25 AddFilterResponse,omitempty"` + Res *types.AddFilterResponse `xml:"AddFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -305,7 +345,7 @@ func AddFilter(ctx context.Context, r soap.RoundTripper, req *types.AddFilter) ( type AddFilterEntitiesBody struct { Req *types.AddFilterEntities `xml:"urn:vim25 AddFilterEntities,omitempty"` - Res *types.AddFilterEntitiesResponse `xml:"urn:vim25 AddFilterEntitiesResponse,omitempty"` + Res *types.AddFilterEntitiesResponse `xml:"AddFilterEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -325,7 +365,7 @@ func AddFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.AddF type AddGuestAliasBody struct { Req *types.AddGuestAlias `xml:"urn:vim25 AddGuestAlias,omitempty"` - Res *types.AddGuestAliasResponse `xml:"urn:vim25 AddGuestAliasResponse,omitempty"` + Res *types.AddGuestAliasResponse `xml:"AddGuestAliasResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -345,7 +385,7 @@ func AddGuestAlias(ctx context.Context, r soap.RoundTripper, req *types.AddGuest type AddHost_TaskBody struct { Req *types.AddHost_Task `xml:"urn:vim25 AddHost_Task,omitempty"` - Res *types.AddHost_TaskResponse `xml:"urn:vim25 AddHost_TaskResponse,omitempty"` + Res *types.AddHost_TaskResponse `xml:"AddHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -365,7 +405,7 @@ func AddHost_Task(ctx context.Context, r soap.RoundTripper, req *types.AddHost_T type AddInternetScsiSendTargetsBody struct { Req *types.AddInternetScsiSendTargets `xml:"urn:vim25 AddInternetScsiSendTargets,omitempty"` - Res *types.AddInternetScsiSendTargetsResponse `xml:"urn:vim25 AddInternetScsiSendTargetsResponse,omitempty"` + Res *types.AddInternetScsiSendTargetsResponse `xml:"AddInternetScsiSendTargetsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -385,7 +425,7 @@ func AddInternetScsiSendTargets(ctx context.Context, r soap.RoundTripper, req *t type AddInternetScsiStaticTargetsBody struct { Req *types.AddInternetScsiStaticTargets `xml:"urn:vim25 AddInternetScsiStaticTargets,omitempty"` - Res *types.AddInternetScsiStaticTargetsResponse `xml:"urn:vim25 AddInternetScsiStaticTargetsResponse,omitempty"` + Res *types.AddInternetScsiStaticTargetsResponse `xml:"AddInternetScsiStaticTargetsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -405,7 +445,7 @@ func AddInternetScsiStaticTargets(ctx context.Context, r soap.RoundTripper, req type AddKeyBody struct { Req *types.AddKey `xml:"urn:vim25 AddKey,omitempty"` - Res *types.AddKeyResponse `xml:"urn:vim25 AddKeyResponse,omitempty"` + Res *types.AddKeyResponse `xml:"AddKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -425,7 +465,7 @@ func AddKey(ctx context.Context, r soap.RoundTripper, req *types.AddKey) (*types type AddKeysBody struct { Req *types.AddKeys `xml:"urn:vim25 AddKeys,omitempty"` - Res *types.AddKeysResponse `xml:"urn:vim25 AddKeysResponse,omitempty"` + Res *types.AddKeysResponse `xml:"AddKeysResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -445,7 +485,7 @@ func AddKeys(ctx context.Context, r soap.RoundTripper, req *types.AddKeys) (*typ type AddLicenseBody struct { Req *types.AddLicense `xml:"urn:vim25 AddLicense,omitempty"` - Res *types.AddLicenseResponse `xml:"urn:vim25 AddLicenseResponse,omitempty"` + Res *types.AddLicenseResponse `xml:"AddLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -465,7 +505,7 @@ func AddLicense(ctx context.Context, r soap.RoundTripper, req *types.AddLicense) type AddMonitoredEntitiesBody struct { Req *types.AddMonitoredEntities `xml:"urn:vim25 AddMonitoredEntities,omitempty"` - Res *types.AddMonitoredEntitiesResponse `xml:"urn:vim25 AddMonitoredEntitiesResponse,omitempty"` + Res *types.AddMonitoredEntitiesResponse `xml:"AddMonitoredEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -485,7 +525,7 @@ func AddMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *types.A type AddNetworkResourcePoolBody struct { Req *types.AddNetworkResourcePool `xml:"urn:vim25 AddNetworkResourcePool,omitempty"` - Res *types.AddNetworkResourcePoolResponse `xml:"urn:vim25 AddNetworkResourcePoolResponse,omitempty"` + Res *types.AddNetworkResourcePoolResponse `xml:"AddNetworkResourcePoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -505,7 +545,7 @@ func AddNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *types type AddPortGroupBody struct { Req *types.AddPortGroup `xml:"urn:vim25 AddPortGroup,omitempty"` - Res *types.AddPortGroupResponse `xml:"urn:vim25 AddPortGroupResponse,omitempty"` + Res *types.AddPortGroupResponse `xml:"AddPortGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -525,7 +565,7 @@ func AddPortGroup(ctx context.Context, r soap.RoundTripper, req *types.AddPortGr type AddServiceConsoleVirtualNicBody struct { Req *types.AddServiceConsoleVirtualNic `xml:"urn:vim25 AddServiceConsoleVirtualNic,omitempty"` - Res *types.AddServiceConsoleVirtualNicResponse `xml:"urn:vim25 AddServiceConsoleVirtualNicResponse,omitempty"` + Res *types.AddServiceConsoleVirtualNicResponse `xml:"AddServiceConsoleVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -545,7 +585,7 @@ func AddServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, req * type AddStandaloneHost_TaskBody struct { Req *types.AddStandaloneHost_Task `xml:"urn:vim25 AddStandaloneHost_Task,omitempty"` - Res *types.AddStandaloneHost_TaskResponse `xml:"urn:vim25 AddStandaloneHost_TaskResponse,omitempty"` + Res *types.AddStandaloneHost_TaskResponse `xml:"AddStandaloneHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -565,7 +605,7 @@ func AddStandaloneHost_Task(ctx context.Context, r soap.RoundTripper, req *types type AddVirtualNicBody struct { Req *types.AddVirtualNic `xml:"urn:vim25 AddVirtualNic,omitempty"` - Res *types.AddVirtualNicResponse `xml:"urn:vim25 AddVirtualNicResponse,omitempty"` + Res *types.AddVirtualNicResponse `xml:"AddVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -585,7 +625,7 @@ func AddVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.AddVirtu type AddVirtualSwitchBody struct { Req *types.AddVirtualSwitch `xml:"urn:vim25 AddVirtualSwitch,omitempty"` - Res *types.AddVirtualSwitchResponse `xml:"urn:vim25 AddVirtualSwitchResponse,omitempty"` + Res *types.AddVirtualSwitchResponse `xml:"AddVirtualSwitchResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -605,7 +645,7 @@ func AddVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.AddVi type AllocateIpv4AddressBody struct { Req *types.AllocateIpv4Address `xml:"urn:vim25 AllocateIpv4Address,omitempty"` - Res *types.AllocateIpv4AddressResponse `xml:"urn:vim25 AllocateIpv4AddressResponse,omitempty"` + Res *types.AllocateIpv4AddressResponse `xml:"AllocateIpv4AddressResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -625,7 +665,7 @@ func AllocateIpv4Address(ctx context.Context, r soap.RoundTripper, req *types.Al type AllocateIpv6AddressBody struct { Req *types.AllocateIpv6Address `xml:"urn:vim25 AllocateIpv6Address,omitempty"` - Res *types.AllocateIpv6AddressResponse `xml:"urn:vim25 AllocateIpv6AddressResponse,omitempty"` + Res *types.AllocateIpv6AddressResponse `xml:"AllocateIpv6AddressResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -645,7 +685,7 @@ func AllocateIpv6Address(ctx context.Context, r soap.RoundTripper, req *types.Al type AnswerVMBody struct { Req *types.AnswerVM `xml:"urn:vim25 AnswerVM,omitempty"` - Res *types.AnswerVMResponse `xml:"urn:vim25 AnswerVMResponse,omitempty"` + Res *types.AnswerVMResponse `xml:"AnswerVMResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -665,7 +705,7 @@ func AnswerVM(ctx context.Context, r soap.RoundTripper, req *types.AnswerVM) (*t type ApplyEntitiesConfig_TaskBody struct { Req *types.ApplyEntitiesConfig_Task `xml:"urn:vim25 ApplyEntitiesConfig_Task,omitempty"` - Res *types.ApplyEntitiesConfig_TaskResponse `xml:"urn:vim25 ApplyEntitiesConfig_TaskResponse,omitempty"` + Res *types.ApplyEntitiesConfig_TaskResponse `xml:"ApplyEntitiesConfig_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -685,7 +725,7 @@ func ApplyEntitiesConfig_Task(ctx context.Context, r soap.RoundTripper, req *typ type ApplyEvcModeVM_TaskBody struct { Req *types.ApplyEvcModeVM_Task `xml:"urn:vim25 ApplyEvcModeVM_Task,omitempty"` - Res *types.ApplyEvcModeVM_TaskResponse `xml:"urn:vim25 ApplyEvcModeVM_TaskResponse,omitempty"` + Res *types.ApplyEvcModeVM_TaskResponse `xml:"ApplyEvcModeVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -705,7 +745,7 @@ func ApplyEvcModeVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Ap type ApplyHostConfig_TaskBody struct { Req *types.ApplyHostConfig_Task `xml:"urn:vim25 ApplyHostConfig_Task,omitempty"` - Res *types.ApplyHostConfig_TaskResponse `xml:"urn:vim25 ApplyHostConfig_TaskResponse,omitempty"` + Res *types.ApplyHostConfig_TaskResponse `xml:"ApplyHostConfig_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -725,7 +765,7 @@ func ApplyHostConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.A type ApplyRecommendationBody struct { Req *types.ApplyRecommendation `xml:"urn:vim25 ApplyRecommendation,omitempty"` - Res *types.ApplyRecommendationResponse `xml:"urn:vim25 ApplyRecommendationResponse,omitempty"` + Res *types.ApplyRecommendationResponse `xml:"ApplyRecommendationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -745,7 +785,7 @@ func ApplyRecommendation(ctx context.Context, r soap.RoundTripper, req *types.Ap type ApplyStorageDrsRecommendationToPod_TaskBody struct { Req *types.ApplyStorageDrsRecommendationToPod_Task `xml:"urn:vim25 ApplyStorageDrsRecommendationToPod_Task,omitempty"` - Res *types.ApplyStorageDrsRecommendationToPod_TaskResponse `xml:"urn:vim25 ApplyStorageDrsRecommendationToPod_TaskResponse,omitempty"` + Res *types.ApplyStorageDrsRecommendationToPod_TaskResponse `xml:"ApplyStorageDrsRecommendationToPod_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -765,7 +805,7 @@ func ApplyStorageDrsRecommendationToPod_Task(ctx context.Context, r soap.RoundTr type ApplyStorageDrsRecommendation_TaskBody struct { Req *types.ApplyStorageDrsRecommendation_Task `xml:"urn:vim25 ApplyStorageDrsRecommendation_Task,omitempty"` - Res *types.ApplyStorageDrsRecommendation_TaskResponse `xml:"urn:vim25 ApplyStorageDrsRecommendation_TaskResponse,omitempty"` + Res *types.ApplyStorageDrsRecommendation_TaskResponse `xml:"ApplyStorageDrsRecommendation_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -785,7 +825,7 @@ func ApplyStorageDrsRecommendation_Task(ctx context.Context, r soap.RoundTripper type AreAlarmActionsEnabledBody struct { Req *types.AreAlarmActionsEnabled `xml:"urn:vim25 AreAlarmActionsEnabled,omitempty"` - Res *types.AreAlarmActionsEnabledResponse `xml:"urn:vim25 AreAlarmActionsEnabledResponse,omitempty"` + Res *types.AreAlarmActionsEnabledResponse `xml:"AreAlarmActionsEnabledResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -805,7 +845,7 @@ func AreAlarmActionsEnabled(ctx context.Context, r soap.RoundTripper, req *types type AssignUserToGroupBody struct { Req *types.AssignUserToGroup `xml:"urn:vim25 AssignUserToGroup,omitempty"` - Res *types.AssignUserToGroupResponse `xml:"urn:vim25 AssignUserToGroupResponse,omitempty"` + Res *types.AssignUserToGroupResponse `xml:"AssignUserToGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -825,7 +865,7 @@ func AssignUserToGroup(ctx context.Context, r soap.RoundTripper, req *types.Assi type AssociateProfileBody struct { Req *types.AssociateProfile `xml:"urn:vim25 AssociateProfile,omitempty"` - Res *types.AssociateProfileResponse `xml:"urn:vim25 AssociateProfileResponse,omitempty"` + Res *types.AssociateProfileResponse `xml:"AssociateProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -845,7 +885,7 @@ func AssociateProfile(ctx context.Context, r soap.RoundTripper, req *types.Assoc type AttachDisk_TaskBody struct { Req *types.AttachDisk_Task `xml:"urn:vim25 AttachDisk_Task,omitempty"` - Res *types.AttachDisk_TaskResponse `xml:"urn:vim25 AttachDisk_TaskResponse,omitempty"` + Res *types.AttachDisk_TaskResponse `xml:"AttachDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -865,7 +905,7 @@ func AttachDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Attach type AttachScsiLunBody struct { Req *types.AttachScsiLun `xml:"urn:vim25 AttachScsiLun,omitempty"` - Res *types.AttachScsiLunResponse `xml:"urn:vim25 AttachScsiLunResponse,omitempty"` + Res *types.AttachScsiLunResponse `xml:"AttachScsiLunResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -885,7 +925,7 @@ func AttachScsiLun(ctx context.Context, r soap.RoundTripper, req *types.AttachSc type AttachScsiLunEx_TaskBody struct { Req *types.AttachScsiLunEx_Task `xml:"urn:vim25 AttachScsiLunEx_Task,omitempty"` - Res *types.AttachScsiLunEx_TaskResponse `xml:"urn:vim25 AttachScsiLunEx_TaskResponse,omitempty"` + Res *types.AttachScsiLunEx_TaskResponse `xml:"AttachScsiLunEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -905,7 +945,7 @@ func AttachScsiLunEx_Task(ctx context.Context, r soap.RoundTripper, req *types.A type AttachTagToVStorageObjectBody struct { Req *types.AttachTagToVStorageObject `xml:"urn:vim25 AttachTagToVStorageObject,omitempty"` - Res *types.AttachTagToVStorageObjectResponse `xml:"urn:vim25 AttachTagToVStorageObjectResponse,omitempty"` + Res *types.AttachTagToVStorageObjectResponse `xml:"AttachTagToVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -925,7 +965,7 @@ func AttachTagToVStorageObject(ctx context.Context, r soap.RoundTripper, req *ty type AttachVmfsExtentBody struct { Req *types.AttachVmfsExtent `xml:"urn:vim25 AttachVmfsExtent,omitempty"` - Res *types.AttachVmfsExtentResponse `xml:"urn:vim25 AttachVmfsExtentResponse,omitempty"` + Res *types.AttachVmfsExtentResponse `xml:"AttachVmfsExtentResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -945,7 +985,7 @@ func AttachVmfsExtent(ctx context.Context, r soap.RoundTripper, req *types.Attac type AutoStartPowerOffBody struct { Req *types.AutoStartPowerOff `xml:"urn:vim25 AutoStartPowerOff,omitempty"` - Res *types.AutoStartPowerOffResponse `xml:"urn:vim25 AutoStartPowerOffResponse,omitempty"` + Res *types.AutoStartPowerOffResponse `xml:"AutoStartPowerOffResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -965,7 +1005,7 @@ func AutoStartPowerOff(ctx context.Context, r soap.RoundTripper, req *types.Auto type AutoStartPowerOnBody struct { Req *types.AutoStartPowerOn `xml:"urn:vim25 AutoStartPowerOn,omitempty"` - Res *types.AutoStartPowerOnResponse `xml:"urn:vim25 AutoStartPowerOnResponse,omitempty"` + Res *types.AutoStartPowerOnResponse `xml:"AutoStartPowerOnResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -985,7 +1025,7 @@ func AutoStartPowerOn(ctx context.Context, r soap.RoundTripper, req *types.AutoS type BackupFirmwareConfigurationBody struct { Req *types.BackupFirmwareConfiguration `xml:"urn:vim25 BackupFirmwareConfiguration,omitempty"` - Res *types.BackupFirmwareConfigurationResponse `xml:"urn:vim25 BackupFirmwareConfigurationResponse,omitempty"` + Res *types.BackupFirmwareConfigurationResponse `xml:"BackupFirmwareConfigurationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1003,9 +1043,69 @@ func BackupFirmwareConfiguration(ctx context.Context, r soap.RoundTripper, req * return resBody.Res, nil } +type BatchAddHostsToCluster_TaskBody struct { + Req *types.BatchAddHostsToCluster_Task `xml:"urn:vim25 BatchAddHostsToCluster_Task,omitempty"` + Res *types.BatchAddHostsToCluster_TaskResponse `xml:"BatchAddHostsToCluster_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *BatchAddHostsToCluster_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func BatchAddHostsToCluster_Task(ctx context.Context, r soap.RoundTripper, req *types.BatchAddHostsToCluster_Task) (*types.BatchAddHostsToCluster_TaskResponse, error) { + var reqBody, resBody BatchAddHostsToCluster_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type BatchAddStandaloneHosts_TaskBody struct { + Req *types.BatchAddStandaloneHosts_Task `xml:"urn:vim25 BatchAddStandaloneHosts_Task,omitempty"` + Res *types.BatchAddStandaloneHosts_TaskResponse `xml:"BatchAddStandaloneHosts_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *BatchAddStandaloneHosts_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func BatchAddStandaloneHosts_Task(ctx context.Context, r soap.RoundTripper, req *types.BatchAddStandaloneHosts_Task) (*types.BatchAddStandaloneHosts_TaskResponse, error) { + var reqBody, resBody BatchAddStandaloneHosts_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type BatchQueryConnectInfoBody struct { + Req *types.BatchQueryConnectInfo `xml:"urn:vim25 BatchQueryConnectInfo,omitempty"` + Res *types.BatchQueryConnectInfoResponse `xml:"BatchQueryConnectInfoResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *BatchQueryConnectInfoBody) Fault() *soap.Fault { return b.Fault_ } + +func BatchQueryConnectInfo(ctx context.Context, r soap.RoundTripper, req *types.BatchQueryConnectInfo) (*types.BatchQueryConnectInfoResponse, error) { + var reqBody, resBody BatchQueryConnectInfoBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type BindVnicBody struct { Req *types.BindVnic `xml:"urn:vim25 BindVnic,omitempty"` - Res *types.BindVnicResponse `xml:"urn:vim25 BindVnicResponse,omitempty"` + Res *types.BindVnicResponse `xml:"BindVnicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1025,7 +1125,7 @@ func BindVnic(ctx context.Context, r soap.RoundTripper, req *types.BindVnic) (*t type BrowseDiagnosticLogBody struct { Req *types.BrowseDiagnosticLog `xml:"urn:vim25 BrowseDiagnosticLog,omitempty"` - Res *types.BrowseDiagnosticLogResponse `xml:"urn:vim25 BrowseDiagnosticLogResponse,omitempty"` + Res *types.BrowseDiagnosticLogResponse `xml:"BrowseDiagnosticLogResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1045,7 +1145,7 @@ func BrowseDiagnosticLog(ctx context.Context, r soap.RoundTripper, req *types.Br type CanProvisionObjectsBody struct { Req *types.CanProvisionObjects `xml:"urn:vim25 CanProvisionObjects,omitempty"` - Res *types.CanProvisionObjectsResponse `xml:"urn:vim25 CanProvisionObjectsResponse,omitempty"` + Res *types.CanProvisionObjectsResponse `xml:"CanProvisionObjectsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1065,7 +1165,7 @@ func CanProvisionObjects(ctx context.Context, r soap.RoundTripper, req *types.Ca type CancelRecommendationBody struct { Req *types.CancelRecommendation `xml:"urn:vim25 CancelRecommendation,omitempty"` - Res *types.CancelRecommendationResponse `xml:"urn:vim25 CancelRecommendationResponse,omitempty"` + Res *types.CancelRecommendationResponse `xml:"CancelRecommendationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1085,7 +1185,7 @@ func CancelRecommendation(ctx context.Context, r soap.RoundTripper, req *types.C type CancelRetrievePropertiesExBody struct { Req *types.CancelRetrievePropertiesEx `xml:"urn:vim25 CancelRetrievePropertiesEx,omitempty"` - Res *types.CancelRetrievePropertiesExResponse `xml:"urn:vim25 CancelRetrievePropertiesExResponse,omitempty"` + Res *types.CancelRetrievePropertiesExResponse `xml:"CancelRetrievePropertiesExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1105,7 +1205,7 @@ func CancelRetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req *t type CancelStorageDrsRecommendationBody struct { Req *types.CancelStorageDrsRecommendation `xml:"urn:vim25 CancelStorageDrsRecommendation,omitempty"` - Res *types.CancelStorageDrsRecommendationResponse `xml:"urn:vim25 CancelStorageDrsRecommendationResponse,omitempty"` + Res *types.CancelStorageDrsRecommendationResponse `xml:"CancelStorageDrsRecommendationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1125,7 +1225,7 @@ func CancelStorageDrsRecommendation(ctx context.Context, r soap.RoundTripper, re type CancelTaskBody struct { Req *types.CancelTask `xml:"urn:vim25 CancelTask,omitempty"` - Res *types.CancelTaskResponse `xml:"urn:vim25 CancelTaskResponse,omitempty"` + Res *types.CancelTaskResponse `xml:"CancelTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1145,7 +1245,7 @@ func CancelTask(ctx context.Context, r soap.RoundTripper, req *types.CancelTask) type CancelWaitForUpdatesBody struct { Req *types.CancelWaitForUpdates `xml:"urn:vim25 CancelWaitForUpdates,omitempty"` - Res *types.CancelWaitForUpdatesResponse `xml:"urn:vim25 CancelWaitForUpdatesResponse,omitempty"` + Res *types.CancelWaitForUpdatesResponse `xml:"CancelWaitForUpdatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1165,7 +1265,7 @@ func CancelWaitForUpdates(ctx context.Context, r soap.RoundTripper, req *types.C type CertMgrRefreshCACertificatesAndCRLs_TaskBody struct { Req *types.CertMgrRefreshCACertificatesAndCRLs_Task `xml:"urn:vim25 CertMgrRefreshCACertificatesAndCRLs_Task,omitempty"` - Res *types.CertMgrRefreshCACertificatesAndCRLs_TaskResponse `xml:"urn:vim25 CertMgrRefreshCACertificatesAndCRLs_TaskResponse,omitempty"` + Res *types.CertMgrRefreshCACertificatesAndCRLs_TaskResponse `xml:"CertMgrRefreshCACertificatesAndCRLs_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1185,7 +1285,7 @@ func CertMgrRefreshCACertificatesAndCRLs_Task(ctx context.Context, r soap.RoundT type CertMgrRefreshCertificates_TaskBody struct { Req *types.CertMgrRefreshCertificates_Task `xml:"urn:vim25 CertMgrRefreshCertificates_Task,omitempty"` - Res *types.CertMgrRefreshCertificates_TaskResponse `xml:"urn:vim25 CertMgrRefreshCertificates_TaskResponse,omitempty"` + Res *types.CertMgrRefreshCertificates_TaskResponse `xml:"CertMgrRefreshCertificates_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1205,7 +1305,7 @@ func CertMgrRefreshCertificates_Task(ctx context.Context, r soap.RoundTripper, r type CertMgrRevokeCertificates_TaskBody struct { Req *types.CertMgrRevokeCertificates_Task `xml:"urn:vim25 CertMgrRevokeCertificates_Task,omitempty"` - Res *types.CertMgrRevokeCertificates_TaskResponse `xml:"urn:vim25 CertMgrRevokeCertificates_TaskResponse,omitempty"` + Res *types.CertMgrRevokeCertificates_TaskResponse `xml:"CertMgrRevokeCertificates_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1225,7 +1325,7 @@ func CertMgrRevokeCertificates_Task(ctx context.Context, r soap.RoundTripper, re type ChangeAccessModeBody struct { Req *types.ChangeAccessMode `xml:"urn:vim25 ChangeAccessMode,omitempty"` - Res *types.ChangeAccessModeResponse `xml:"urn:vim25 ChangeAccessModeResponse,omitempty"` + Res *types.ChangeAccessModeResponse `xml:"ChangeAccessModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1245,7 +1345,7 @@ func ChangeAccessMode(ctx context.Context, r soap.RoundTripper, req *types.Chang type ChangeFileAttributesInGuestBody struct { Req *types.ChangeFileAttributesInGuest `xml:"urn:vim25 ChangeFileAttributesInGuest,omitempty"` - Res *types.ChangeFileAttributesInGuestResponse `xml:"urn:vim25 ChangeFileAttributesInGuestResponse,omitempty"` + Res *types.ChangeFileAttributesInGuestResponse `xml:"ChangeFileAttributesInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1265,7 +1365,7 @@ func ChangeFileAttributesInGuest(ctx context.Context, r soap.RoundTripper, req * type ChangeKey_TaskBody struct { Req *types.ChangeKey_Task `xml:"urn:vim25 ChangeKey_Task,omitempty"` - Res *types.ChangeKey_TaskResponse `xml:"urn:vim25 ChangeKey_TaskResponse,omitempty"` + Res *types.ChangeKey_TaskResponse `xml:"ChangeKey_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1285,7 +1385,7 @@ func ChangeKey_Task(ctx context.Context, r soap.RoundTripper, req *types.ChangeK type ChangeLockdownModeBody struct { Req *types.ChangeLockdownMode `xml:"urn:vim25 ChangeLockdownMode,omitempty"` - Res *types.ChangeLockdownModeResponse `xml:"urn:vim25 ChangeLockdownModeResponse,omitempty"` + Res *types.ChangeLockdownModeResponse `xml:"ChangeLockdownModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1305,7 +1405,7 @@ func ChangeLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.Cha type ChangeNFSUserPasswordBody struct { Req *types.ChangeNFSUserPassword `xml:"urn:vim25 ChangeNFSUserPassword,omitempty"` - Res *types.ChangeNFSUserPasswordResponse `xml:"urn:vim25 ChangeNFSUserPasswordResponse,omitempty"` + Res *types.ChangeNFSUserPasswordResponse `xml:"ChangeNFSUserPasswordResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1325,7 +1425,7 @@ func ChangeNFSUserPassword(ctx context.Context, r soap.RoundTripper, req *types. type ChangeOwnerBody struct { Req *types.ChangeOwner `xml:"urn:vim25 ChangeOwner,omitempty"` - Res *types.ChangeOwnerResponse `xml:"urn:vim25 ChangeOwnerResponse,omitempty"` + Res *types.ChangeOwnerResponse `xml:"ChangeOwnerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1343,9 +1443,29 @@ func ChangeOwner(ctx context.Context, r soap.RoundTripper, req *types.ChangeOwne return resBody.Res, nil } +type ChangePasswordBody struct { + Req *types.ChangePassword `xml:"urn:vim25 ChangePassword,omitempty"` + Res *types.ChangePasswordResponse `xml:"ChangePasswordResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ChangePasswordBody) Fault() *soap.Fault { return b.Fault_ } + +func ChangePassword(ctx context.Context, r soap.RoundTripper, req *types.ChangePassword) (*types.ChangePasswordResponse, error) { + var reqBody, resBody ChangePasswordBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type CheckAddHostEvc_TaskBody struct { Req *types.CheckAddHostEvc_Task `xml:"urn:vim25 CheckAddHostEvc_Task,omitempty"` - Res *types.CheckAddHostEvc_TaskResponse `xml:"urn:vim25 CheckAddHostEvc_TaskResponse,omitempty"` + Res *types.CheckAddHostEvc_TaskResponse `xml:"CheckAddHostEvc_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1365,7 +1485,7 @@ func CheckAddHostEvc_Task(ctx context.Context, r soap.RoundTripper, req *types.C type CheckAnswerFileStatus_TaskBody struct { Req *types.CheckAnswerFileStatus_Task `xml:"urn:vim25 CheckAnswerFileStatus_Task,omitempty"` - Res *types.CheckAnswerFileStatus_TaskResponse `xml:"urn:vim25 CheckAnswerFileStatus_TaskResponse,omitempty"` + Res *types.CheckAnswerFileStatus_TaskResponse `xml:"CheckAnswerFileStatus_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1385,7 +1505,7 @@ func CheckAnswerFileStatus_Task(ctx context.Context, r soap.RoundTripper, req *t type CheckClone_TaskBody struct { Req *types.CheckClone_Task `xml:"urn:vim25 CheckClone_Task,omitempty"` - Res *types.CheckClone_TaskResponse `xml:"urn:vim25 CheckClone_TaskResponse,omitempty"` + Res *types.CheckClone_TaskResponse `xml:"CheckClone_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1405,7 +1525,7 @@ func CheckClone_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckC type CheckCompatibility_TaskBody struct { Req *types.CheckCompatibility_Task `xml:"urn:vim25 CheckCompatibility_Task,omitempty"` - Res *types.CheckCompatibility_TaskResponse `xml:"urn:vim25 CheckCompatibility_TaskResponse,omitempty"` + Res *types.CheckCompatibility_TaskResponse `xml:"CheckCompatibility_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1425,7 +1545,7 @@ func CheckCompatibility_Task(ctx context.Context, r soap.RoundTripper, req *type type CheckCompliance_TaskBody struct { Req *types.CheckCompliance_Task `xml:"urn:vim25 CheckCompliance_Task,omitempty"` - Res *types.CheckCompliance_TaskResponse `xml:"urn:vim25 CheckCompliance_TaskResponse,omitempty"` + Res *types.CheckCompliance_TaskResponse `xml:"CheckCompliance_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1445,7 +1565,7 @@ func CheckCompliance_Task(ctx context.Context, r soap.RoundTripper, req *types.C type CheckConfigureEvcMode_TaskBody struct { Req *types.CheckConfigureEvcMode_Task `xml:"urn:vim25 CheckConfigureEvcMode_Task,omitempty"` - Res *types.CheckConfigureEvcMode_TaskResponse `xml:"urn:vim25 CheckConfigureEvcMode_TaskResponse,omitempty"` + Res *types.CheckConfigureEvcMode_TaskResponse `xml:"CheckConfigureEvcMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1465,7 +1585,7 @@ func CheckConfigureEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *t type CheckCustomizationResourcesBody struct { Req *types.CheckCustomizationResources `xml:"urn:vim25 CheckCustomizationResources,omitempty"` - Res *types.CheckCustomizationResourcesResponse `xml:"urn:vim25 CheckCustomizationResourcesResponse,omitempty"` + Res *types.CheckCustomizationResourcesResponse `xml:"CheckCustomizationResourcesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1485,7 +1605,7 @@ func CheckCustomizationResources(ctx context.Context, r soap.RoundTripper, req * type CheckCustomizationSpecBody struct { Req *types.CheckCustomizationSpec `xml:"urn:vim25 CheckCustomizationSpec,omitempty"` - Res *types.CheckCustomizationSpecResponse `xml:"urn:vim25 CheckCustomizationSpecResponse,omitempty"` + Res *types.CheckCustomizationSpecResponse `xml:"CheckCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1505,7 +1625,7 @@ func CheckCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types type CheckForUpdatesBody struct { Req *types.CheckForUpdates `xml:"urn:vim25 CheckForUpdates,omitempty"` - Res *types.CheckForUpdatesResponse `xml:"urn:vim25 CheckForUpdatesResponse,omitempty"` + Res *types.CheckForUpdatesResponse `xml:"CheckForUpdatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1525,7 +1645,7 @@ func CheckForUpdates(ctx context.Context, r soap.RoundTripper, req *types.CheckF type CheckHostPatch_TaskBody struct { Req *types.CheckHostPatch_Task `xml:"urn:vim25 CheckHostPatch_Task,omitempty"` - Res *types.CheckHostPatch_TaskResponse `xml:"urn:vim25 CheckHostPatch_TaskResponse,omitempty"` + Res *types.CheckHostPatch_TaskResponse `xml:"CheckHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1545,7 +1665,7 @@ func CheckHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.Ch type CheckInstantClone_TaskBody struct { Req *types.CheckInstantClone_Task `xml:"urn:vim25 CheckInstantClone_Task,omitempty"` - Res *types.CheckInstantClone_TaskResponse `xml:"urn:vim25 CheckInstantClone_TaskResponse,omitempty"` + Res *types.CheckInstantClone_TaskResponse `xml:"CheckInstantClone_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1565,7 +1685,7 @@ func CheckInstantClone_Task(ctx context.Context, r soap.RoundTripper, req *types type CheckLicenseFeatureBody struct { Req *types.CheckLicenseFeature `xml:"urn:vim25 CheckLicenseFeature,omitempty"` - Res *types.CheckLicenseFeatureResponse `xml:"urn:vim25 CheckLicenseFeatureResponse,omitempty"` + Res *types.CheckLicenseFeatureResponse `xml:"CheckLicenseFeatureResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1585,7 +1705,7 @@ func CheckLicenseFeature(ctx context.Context, r soap.RoundTripper, req *types.Ch type CheckMigrate_TaskBody struct { Req *types.CheckMigrate_Task `xml:"urn:vim25 CheckMigrate_Task,omitempty"` - Res *types.CheckMigrate_TaskResponse `xml:"urn:vim25 CheckMigrate_TaskResponse,omitempty"` + Res *types.CheckMigrate_TaskResponse `xml:"CheckMigrate_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1605,7 +1725,7 @@ func CheckMigrate_Task(ctx context.Context, r soap.RoundTripper, req *types.Chec type CheckPowerOn_TaskBody struct { Req *types.CheckPowerOn_Task `xml:"urn:vim25 CheckPowerOn_Task,omitempty"` - Res *types.CheckPowerOn_TaskResponse `xml:"urn:vim25 CheckPowerOn_TaskResponse,omitempty"` + Res *types.CheckPowerOn_TaskResponse `xml:"CheckPowerOn_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1625,7 +1745,7 @@ func CheckPowerOn_Task(ctx context.Context, r soap.RoundTripper, req *types.Chec type CheckProfileCompliance_TaskBody struct { Req *types.CheckProfileCompliance_Task `xml:"urn:vim25 CheckProfileCompliance_Task,omitempty"` - Res *types.CheckProfileCompliance_TaskResponse `xml:"urn:vim25 CheckProfileCompliance_TaskResponse,omitempty"` + Res *types.CheckProfileCompliance_TaskResponse `xml:"CheckProfileCompliance_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1645,7 +1765,7 @@ func CheckProfileCompliance_Task(ctx context.Context, r soap.RoundTripper, req * type CheckRelocate_TaskBody struct { Req *types.CheckRelocate_Task `xml:"urn:vim25 CheckRelocate_Task,omitempty"` - Res *types.CheckRelocate_TaskResponse `xml:"urn:vim25 CheckRelocate_TaskResponse,omitempty"` + Res *types.CheckRelocate_TaskResponse `xml:"CheckRelocate_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1665,7 +1785,7 @@ func CheckRelocate_Task(ctx context.Context, r soap.RoundTripper, req *types.Che type CheckVmConfig_TaskBody struct { Req *types.CheckVmConfig_Task `xml:"urn:vim25 CheckVmConfig_Task,omitempty"` - Res *types.CheckVmConfig_TaskResponse `xml:"urn:vim25 CheckVmConfig_TaskResponse,omitempty"` + Res *types.CheckVmConfig_TaskResponse `xml:"CheckVmConfig_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1685,7 +1805,7 @@ func CheckVmConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.Che type ClearComplianceStatusBody struct { Req *types.ClearComplianceStatus `xml:"urn:vim25 ClearComplianceStatus,omitempty"` - Res *types.ClearComplianceStatusResponse `xml:"urn:vim25 ClearComplianceStatusResponse,omitempty"` + Res *types.ClearComplianceStatusResponse `xml:"ClearComplianceStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1705,7 +1825,7 @@ func ClearComplianceStatus(ctx context.Context, r soap.RoundTripper, req *types. type ClearNFSUserBody struct { Req *types.ClearNFSUser `xml:"urn:vim25 ClearNFSUser,omitempty"` - Res *types.ClearNFSUserResponse `xml:"urn:vim25 ClearNFSUserResponse,omitempty"` + Res *types.ClearNFSUserResponse `xml:"ClearNFSUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1725,7 +1845,7 @@ func ClearNFSUser(ctx context.Context, r soap.RoundTripper, req *types.ClearNFSU type ClearSystemEventLogBody struct { Req *types.ClearSystemEventLog `xml:"urn:vim25 ClearSystemEventLog,omitempty"` - Res *types.ClearSystemEventLogResponse `xml:"urn:vim25 ClearSystemEventLogResponse,omitempty"` + Res *types.ClearSystemEventLogResponse `xml:"ClearSystemEventLogResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1745,7 +1865,7 @@ func ClearSystemEventLog(ctx context.Context, r soap.RoundTripper, req *types.Cl type ClearTriggeredAlarmsBody struct { Req *types.ClearTriggeredAlarms `xml:"urn:vim25 ClearTriggeredAlarms,omitempty"` - Res *types.ClearTriggeredAlarmsResponse `xml:"urn:vim25 ClearTriggeredAlarmsResponse,omitempty"` + Res *types.ClearTriggeredAlarmsResponse `xml:"ClearTriggeredAlarmsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1765,7 +1885,7 @@ func ClearTriggeredAlarms(ctx context.Context, r soap.RoundTripper, req *types.C type ClearVStorageObjectControlFlagsBody struct { Req *types.ClearVStorageObjectControlFlags `xml:"urn:vim25 ClearVStorageObjectControlFlags,omitempty"` - Res *types.ClearVStorageObjectControlFlagsResponse `xml:"urn:vim25 ClearVStorageObjectControlFlagsResponse,omitempty"` + Res *types.ClearVStorageObjectControlFlagsResponse `xml:"ClearVStorageObjectControlFlagsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1785,7 +1905,7 @@ func ClearVStorageObjectControlFlags(ctx context.Context, r soap.RoundTripper, r type CloneSessionBody struct { Req *types.CloneSession `xml:"urn:vim25 CloneSession,omitempty"` - Res *types.CloneSessionResponse `xml:"urn:vim25 CloneSessionResponse,omitempty"` + Res *types.CloneSessionResponse `xml:"CloneSessionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1805,7 +1925,7 @@ func CloneSession(ctx context.Context, r soap.RoundTripper, req *types.CloneSess type CloneVApp_TaskBody struct { Req *types.CloneVApp_Task `xml:"urn:vim25 CloneVApp_Task,omitempty"` - Res *types.CloneVApp_TaskResponse `xml:"urn:vim25 CloneVApp_TaskResponse,omitempty"` + Res *types.CloneVApp_TaskResponse `xml:"CloneVApp_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1825,7 +1945,7 @@ func CloneVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.CloneVA type CloneVM_TaskBody struct { Req *types.CloneVM_Task `xml:"urn:vim25 CloneVM_Task,omitempty"` - Res *types.CloneVM_TaskResponse `xml:"urn:vim25 CloneVM_TaskResponse,omitempty"` + Res *types.CloneVM_TaskResponse `xml:"CloneVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1845,7 +1965,7 @@ func CloneVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CloneVM_T type CloneVStorageObject_TaskBody struct { Req *types.CloneVStorageObject_Task `xml:"urn:vim25 CloneVStorageObject_Task,omitempty"` - Res *types.CloneVStorageObject_TaskResponse `xml:"urn:vim25 CloneVStorageObject_TaskResponse,omitempty"` + Res *types.CloneVStorageObject_TaskResponse `xml:"CloneVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1865,7 +1985,7 @@ func CloneVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *typ type CloseInventoryViewFolderBody struct { Req *types.CloseInventoryViewFolder `xml:"urn:vim25 CloseInventoryViewFolder,omitempty"` - Res *types.CloseInventoryViewFolderResponse `xml:"urn:vim25 CloseInventoryViewFolderResponse,omitempty"` + Res *types.CloseInventoryViewFolderResponse `xml:"CloseInventoryViewFolderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1885,7 +2005,7 @@ func CloseInventoryViewFolder(ctx context.Context, r soap.RoundTripper, req *typ type ClusterEnterMaintenanceModeBody struct { Req *types.ClusterEnterMaintenanceMode `xml:"urn:vim25 ClusterEnterMaintenanceMode,omitempty"` - Res *types.ClusterEnterMaintenanceModeResponse `xml:"urn:vim25 ClusterEnterMaintenanceModeResponse,omitempty"` + Res *types.ClusterEnterMaintenanceModeResponse `xml:"ClusterEnterMaintenanceModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1905,7 +2025,7 @@ func ClusterEnterMaintenanceMode(ctx context.Context, r soap.RoundTripper, req * type CompositeHostProfile_TaskBody struct { Req *types.CompositeHostProfile_Task `xml:"urn:vim25 CompositeHostProfile_Task,omitempty"` - Res *types.CompositeHostProfile_TaskResponse `xml:"urn:vim25 CompositeHostProfile_TaskResponse,omitempty"` + Res *types.CompositeHostProfile_TaskResponse `xml:"CompositeHostProfile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1925,7 +2045,7 @@ func CompositeHostProfile_Task(ctx context.Context, r soap.RoundTripper, req *ty type ComputeDiskPartitionInfoBody struct { Req *types.ComputeDiskPartitionInfo `xml:"urn:vim25 ComputeDiskPartitionInfo,omitempty"` - Res *types.ComputeDiskPartitionInfoResponse `xml:"urn:vim25 ComputeDiskPartitionInfoResponse,omitempty"` + Res *types.ComputeDiskPartitionInfoResponse `xml:"ComputeDiskPartitionInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1945,7 +2065,7 @@ func ComputeDiskPartitionInfo(ctx context.Context, r soap.RoundTripper, req *typ type ComputeDiskPartitionInfoForResizeBody struct { Req *types.ComputeDiskPartitionInfoForResize `xml:"urn:vim25 ComputeDiskPartitionInfoForResize,omitempty"` - Res *types.ComputeDiskPartitionInfoForResizeResponse `xml:"urn:vim25 ComputeDiskPartitionInfoForResizeResponse,omitempty"` + Res *types.ComputeDiskPartitionInfoForResizeResponse `xml:"ComputeDiskPartitionInfoForResizeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1965,7 +2085,7 @@ func ComputeDiskPartitionInfoForResize(ctx context.Context, r soap.RoundTripper, type ConfigureCryptoKeyBody struct { Req *types.ConfigureCryptoKey `xml:"urn:vim25 ConfigureCryptoKey,omitempty"` - Res *types.ConfigureCryptoKeyResponse `xml:"urn:vim25 ConfigureCryptoKeyResponse,omitempty"` + Res *types.ConfigureCryptoKeyResponse `xml:"ConfigureCryptoKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -1985,7 +2105,7 @@ func ConfigureCryptoKey(ctx context.Context, r soap.RoundTripper, req *types.Con type ConfigureDatastoreIORM_TaskBody struct { Req *types.ConfigureDatastoreIORM_Task `xml:"urn:vim25 ConfigureDatastoreIORM_Task,omitempty"` - Res *types.ConfigureDatastoreIORM_TaskResponse `xml:"urn:vim25 ConfigureDatastoreIORM_TaskResponse,omitempty"` + Res *types.ConfigureDatastoreIORM_TaskResponse `xml:"ConfigureDatastoreIORM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2005,7 +2125,7 @@ func ConfigureDatastoreIORM_Task(ctx context.Context, r soap.RoundTripper, req * type ConfigureDatastorePrincipalBody struct { Req *types.ConfigureDatastorePrincipal `xml:"urn:vim25 ConfigureDatastorePrincipal,omitempty"` - Res *types.ConfigureDatastorePrincipalResponse `xml:"urn:vim25 ConfigureDatastorePrincipalResponse,omitempty"` + Res *types.ConfigureDatastorePrincipalResponse `xml:"ConfigureDatastorePrincipalResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2025,7 +2145,7 @@ func ConfigureDatastorePrincipal(ctx context.Context, r soap.RoundTripper, req * type ConfigureEvcMode_TaskBody struct { Req *types.ConfigureEvcMode_Task `xml:"urn:vim25 ConfigureEvcMode_Task,omitempty"` - Res *types.ConfigureEvcMode_TaskResponse `xml:"urn:vim25 ConfigureEvcMode_TaskResponse,omitempty"` + Res *types.ConfigureEvcMode_TaskResponse `xml:"ConfigureEvcMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2043,9 +2163,29 @@ func ConfigureEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *types. return resBody.Res, nil } +type ConfigureHCI_TaskBody struct { + Req *types.ConfigureHCI_Task `xml:"urn:vim25 ConfigureHCI_Task,omitempty"` + Res *types.ConfigureHCI_TaskResponse `xml:"ConfigureHCI_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ConfigureHCI_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func ConfigureHCI_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureHCI_Task) (*types.ConfigureHCI_TaskResponse, error) { + var reqBody, resBody ConfigureHCI_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type ConfigureHostCache_TaskBody struct { Req *types.ConfigureHostCache_Task `xml:"urn:vim25 ConfigureHostCache_Task,omitempty"` - Res *types.ConfigureHostCache_TaskResponse `xml:"urn:vim25 ConfigureHostCache_TaskResponse,omitempty"` + Res *types.ConfigureHostCache_TaskResponse `xml:"ConfigureHostCache_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2065,7 +2205,7 @@ func ConfigureHostCache_Task(ctx context.Context, r soap.RoundTripper, req *type type ConfigureLicenseSourceBody struct { Req *types.ConfigureLicenseSource `xml:"urn:vim25 ConfigureLicenseSource,omitempty"` - Res *types.ConfigureLicenseSourceResponse `xml:"urn:vim25 ConfigureLicenseSourceResponse,omitempty"` + Res *types.ConfigureLicenseSourceResponse `xml:"ConfigureLicenseSourceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2085,7 +2225,7 @@ func ConfigureLicenseSource(ctx context.Context, r soap.RoundTripper, req *types type ConfigurePowerPolicyBody struct { Req *types.ConfigurePowerPolicy `xml:"urn:vim25 ConfigurePowerPolicy,omitempty"` - Res *types.ConfigurePowerPolicyResponse `xml:"urn:vim25 ConfigurePowerPolicyResponse,omitempty"` + Res *types.ConfigurePowerPolicyResponse `xml:"ConfigurePowerPolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2105,7 +2245,7 @@ func ConfigurePowerPolicy(ctx context.Context, r soap.RoundTripper, req *types.C type ConfigureStorageDrsForPod_TaskBody struct { Req *types.ConfigureStorageDrsForPod_Task `xml:"urn:vim25 ConfigureStorageDrsForPod_Task,omitempty"` - Res *types.ConfigureStorageDrsForPod_TaskResponse `xml:"urn:vim25 ConfigureStorageDrsForPod_TaskResponse,omitempty"` + Res *types.ConfigureStorageDrsForPod_TaskResponse `xml:"ConfigureStorageDrsForPod_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2125,7 +2265,7 @@ func ConfigureStorageDrsForPod_Task(ctx context.Context, r soap.RoundTripper, re type ConfigureVFlashResourceEx_TaskBody struct { Req *types.ConfigureVFlashResourceEx_Task `xml:"urn:vim25 ConfigureVFlashResourceEx_Task,omitempty"` - Res *types.ConfigureVFlashResourceEx_TaskResponse `xml:"urn:vim25 ConfigureVFlashResourceEx_TaskResponse,omitempty"` + Res *types.ConfigureVFlashResourceEx_TaskResponse `xml:"ConfigureVFlashResourceEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2143,9 +2283,29 @@ func ConfigureVFlashResourceEx_Task(ctx context.Context, r soap.RoundTripper, re return resBody.Res, nil } +type ConnectNvmeControllerBody struct { + Req *types.ConnectNvmeController `xml:"urn:vim25 ConnectNvmeController,omitempty"` + Res *types.ConnectNvmeControllerResponse `xml:"ConnectNvmeControllerResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ConnectNvmeControllerBody) Fault() *soap.Fault { return b.Fault_ } + +func ConnectNvmeController(ctx context.Context, r soap.RoundTripper, req *types.ConnectNvmeController) (*types.ConnectNvmeControllerResponse, error) { + var reqBody, resBody ConnectNvmeControllerBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type ConsolidateVMDisks_TaskBody struct { Req *types.ConsolidateVMDisks_Task `xml:"urn:vim25 ConsolidateVMDisks_Task,omitempty"` - Res *types.ConsolidateVMDisks_TaskResponse `xml:"urn:vim25 ConsolidateVMDisks_TaskResponse,omitempty"` + Res *types.ConsolidateVMDisks_TaskResponse `xml:"ConsolidateVMDisks_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2165,7 +2325,7 @@ func ConsolidateVMDisks_Task(ctx context.Context, r soap.RoundTripper, req *type type ContinueRetrievePropertiesExBody struct { Req *types.ContinueRetrievePropertiesEx `xml:"urn:vim25 ContinueRetrievePropertiesEx,omitempty"` - Res *types.ContinueRetrievePropertiesExResponse `xml:"urn:vim25 ContinueRetrievePropertiesExResponse,omitempty"` + Res *types.ContinueRetrievePropertiesExResponse `xml:"ContinueRetrievePropertiesExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2185,7 +2345,7 @@ func ContinueRetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req type ConvertNamespacePathToUuidPathBody struct { Req *types.ConvertNamespacePathToUuidPath `xml:"urn:vim25 ConvertNamespacePathToUuidPath,omitempty"` - Res *types.ConvertNamespacePathToUuidPathResponse `xml:"urn:vim25 ConvertNamespacePathToUuidPathResponse,omitempty"` + Res *types.ConvertNamespacePathToUuidPathResponse `xml:"ConvertNamespacePathToUuidPathResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2205,7 +2365,7 @@ func ConvertNamespacePathToUuidPath(ctx context.Context, r soap.RoundTripper, re type CopyDatastoreFile_TaskBody struct { Req *types.CopyDatastoreFile_Task `xml:"urn:vim25 CopyDatastoreFile_Task,omitempty"` - Res *types.CopyDatastoreFile_TaskResponse `xml:"urn:vim25 CopyDatastoreFile_TaskResponse,omitempty"` + Res *types.CopyDatastoreFile_TaskResponse `xml:"CopyDatastoreFile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2225,7 +2385,7 @@ func CopyDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *types type CopyVirtualDisk_TaskBody struct { Req *types.CopyVirtualDisk_Task `xml:"urn:vim25 CopyVirtualDisk_Task,omitempty"` - Res *types.CopyVirtualDisk_TaskResponse `xml:"urn:vim25 CopyVirtualDisk_TaskResponse,omitempty"` + Res *types.CopyVirtualDisk_TaskResponse `xml:"CopyVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2245,7 +2405,7 @@ func CopyVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.C type CreateAlarmBody struct { Req *types.CreateAlarm `xml:"urn:vim25 CreateAlarm,omitempty"` - Res *types.CreateAlarmResponse `xml:"urn:vim25 CreateAlarmResponse,omitempty"` + Res *types.CreateAlarmResponse `xml:"CreateAlarmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2265,7 +2425,7 @@ func CreateAlarm(ctx context.Context, r soap.RoundTripper, req *types.CreateAlar type CreateChildVM_TaskBody struct { Req *types.CreateChildVM_Task `xml:"urn:vim25 CreateChildVM_Task,omitempty"` - Res *types.CreateChildVM_TaskResponse `xml:"urn:vim25 CreateChildVM_TaskResponse,omitempty"` + Res *types.CreateChildVM_TaskResponse `xml:"CreateChildVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2285,7 +2445,7 @@ func CreateChildVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Cre type CreateClusterBody struct { Req *types.CreateCluster `xml:"urn:vim25 CreateCluster,omitempty"` - Res *types.CreateClusterResponse `xml:"urn:vim25 CreateClusterResponse,omitempty"` + Res *types.CreateClusterResponse `xml:"CreateClusterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2305,7 +2465,7 @@ func CreateCluster(ctx context.Context, r soap.RoundTripper, req *types.CreateCl type CreateClusterExBody struct { Req *types.CreateClusterEx `xml:"urn:vim25 CreateClusterEx,omitempty"` - Res *types.CreateClusterExResponse `xml:"urn:vim25 CreateClusterExResponse,omitempty"` + Res *types.CreateClusterExResponse `xml:"CreateClusterExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2325,7 +2485,7 @@ func CreateClusterEx(ctx context.Context, r soap.RoundTripper, req *types.Create type CreateCollectorForEventsBody struct { Req *types.CreateCollectorForEvents `xml:"urn:vim25 CreateCollectorForEvents,omitempty"` - Res *types.CreateCollectorForEventsResponse `xml:"urn:vim25 CreateCollectorForEventsResponse,omitempty"` + Res *types.CreateCollectorForEventsResponse `xml:"CreateCollectorForEventsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2345,7 +2505,7 @@ func CreateCollectorForEvents(ctx context.Context, r soap.RoundTripper, req *typ type CreateCollectorForTasksBody struct { Req *types.CreateCollectorForTasks `xml:"urn:vim25 CreateCollectorForTasks,omitempty"` - Res *types.CreateCollectorForTasksResponse `xml:"urn:vim25 CreateCollectorForTasksResponse,omitempty"` + Res *types.CreateCollectorForTasksResponse `xml:"CreateCollectorForTasksResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2365,7 +2525,7 @@ func CreateCollectorForTasks(ctx context.Context, r soap.RoundTripper, req *type type CreateContainerViewBody struct { Req *types.CreateContainerView `xml:"urn:vim25 CreateContainerView,omitempty"` - Res *types.CreateContainerViewResponse `xml:"urn:vim25 CreateContainerViewResponse,omitempty"` + Res *types.CreateContainerViewResponse `xml:"CreateContainerViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2385,7 +2545,7 @@ func CreateContainerView(ctx context.Context, r soap.RoundTripper, req *types.Cr type CreateCustomizationSpecBody struct { Req *types.CreateCustomizationSpec `xml:"urn:vim25 CreateCustomizationSpec,omitempty"` - Res *types.CreateCustomizationSpecResponse `xml:"urn:vim25 CreateCustomizationSpecResponse,omitempty"` + Res *types.CreateCustomizationSpecResponse `xml:"CreateCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2405,7 +2565,7 @@ func CreateCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *type type CreateDVPortgroup_TaskBody struct { Req *types.CreateDVPortgroup_Task `xml:"urn:vim25 CreateDVPortgroup_Task,omitempty"` - Res *types.CreateDVPortgroup_TaskResponse `xml:"urn:vim25 CreateDVPortgroup_TaskResponse,omitempty"` + Res *types.CreateDVPortgroup_TaskResponse `xml:"CreateDVPortgroup_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2425,7 +2585,7 @@ func CreateDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req *types type CreateDVS_TaskBody struct { Req *types.CreateDVS_Task `xml:"urn:vim25 CreateDVS_Task,omitempty"` - Res *types.CreateDVS_TaskResponse `xml:"urn:vim25 CreateDVS_TaskResponse,omitempty"` + Res *types.CreateDVS_TaskResponse `xml:"CreateDVS_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2445,7 +2605,7 @@ func CreateDVS_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateD type CreateDatacenterBody struct { Req *types.CreateDatacenter `xml:"urn:vim25 CreateDatacenter,omitempty"` - Res *types.CreateDatacenterResponse `xml:"urn:vim25 CreateDatacenterResponse,omitempty"` + Res *types.CreateDatacenterResponse `xml:"CreateDatacenterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2465,7 +2625,7 @@ func CreateDatacenter(ctx context.Context, r soap.RoundTripper, req *types.Creat type CreateDefaultProfileBody struct { Req *types.CreateDefaultProfile `xml:"urn:vim25 CreateDefaultProfile,omitempty"` - Res *types.CreateDefaultProfileResponse `xml:"urn:vim25 CreateDefaultProfileResponse,omitempty"` + Res *types.CreateDefaultProfileResponse `xml:"CreateDefaultProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2485,7 +2645,7 @@ func CreateDefaultProfile(ctx context.Context, r soap.RoundTripper, req *types.C type CreateDescriptorBody struct { Req *types.CreateDescriptor `xml:"urn:vim25 CreateDescriptor,omitempty"` - Res *types.CreateDescriptorResponse `xml:"urn:vim25 CreateDescriptorResponse,omitempty"` + Res *types.CreateDescriptorResponse `xml:"CreateDescriptorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2505,7 +2665,7 @@ func CreateDescriptor(ctx context.Context, r soap.RoundTripper, req *types.Creat type CreateDiagnosticPartitionBody struct { Req *types.CreateDiagnosticPartition `xml:"urn:vim25 CreateDiagnosticPartition,omitempty"` - Res *types.CreateDiagnosticPartitionResponse `xml:"urn:vim25 CreateDiagnosticPartitionResponse,omitempty"` + Res *types.CreateDiagnosticPartitionResponse `xml:"CreateDiagnosticPartitionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2525,7 +2685,7 @@ func CreateDiagnosticPartition(ctx context.Context, r soap.RoundTripper, req *ty type CreateDirectoryBody struct { Req *types.CreateDirectory `xml:"urn:vim25 CreateDirectory,omitempty"` - Res *types.CreateDirectoryResponse `xml:"urn:vim25 CreateDirectoryResponse,omitempty"` + Res *types.CreateDirectoryResponse `xml:"CreateDirectoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2545,7 +2705,7 @@ func CreateDirectory(ctx context.Context, r soap.RoundTripper, req *types.Create type CreateDiskFromSnapshot_TaskBody struct { Req *types.CreateDiskFromSnapshot_Task `xml:"urn:vim25 CreateDiskFromSnapshot_Task,omitempty"` - Res *types.CreateDiskFromSnapshot_TaskResponse `xml:"urn:vim25 CreateDiskFromSnapshot_TaskResponse,omitempty"` + Res *types.CreateDiskFromSnapshot_TaskResponse `xml:"CreateDiskFromSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2565,7 +2725,7 @@ func CreateDiskFromSnapshot_Task(ctx context.Context, r soap.RoundTripper, req * type CreateDisk_TaskBody struct { Req *types.CreateDisk_Task `xml:"urn:vim25 CreateDisk_Task,omitempty"` - Res *types.CreateDisk_TaskResponse `xml:"urn:vim25 CreateDisk_TaskResponse,omitempty"` + Res *types.CreateDisk_TaskResponse `xml:"CreateDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2585,7 +2745,7 @@ func CreateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Create type CreateFilterBody struct { Req *types.CreateFilter `xml:"urn:vim25 CreateFilter,omitempty"` - Res *types.CreateFilterResponse `xml:"urn:vim25 CreateFilterResponse,omitempty"` + Res *types.CreateFilterResponse `xml:"CreateFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2605,7 +2765,7 @@ func CreateFilter(ctx context.Context, r soap.RoundTripper, req *types.CreateFil type CreateFolderBody struct { Req *types.CreateFolder `xml:"urn:vim25 CreateFolder,omitempty"` - Res *types.CreateFolderResponse `xml:"urn:vim25 CreateFolderResponse,omitempty"` + Res *types.CreateFolderResponse `xml:"CreateFolderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2625,7 +2785,7 @@ func CreateFolder(ctx context.Context, r soap.RoundTripper, req *types.CreateFol type CreateGroupBody struct { Req *types.CreateGroup `xml:"urn:vim25 CreateGroup,omitempty"` - Res *types.CreateGroupResponse `xml:"urn:vim25 CreateGroupResponse,omitempty"` + Res *types.CreateGroupResponse `xml:"CreateGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2645,7 +2805,7 @@ func CreateGroup(ctx context.Context, r soap.RoundTripper, req *types.CreateGrou type CreateImportSpecBody struct { Req *types.CreateImportSpec `xml:"urn:vim25 CreateImportSpec,omitempty"` - Res *types.CreateImportSpecResponse `xml:"urn:vim25 CreateImportSpecResponse,omitempty"` + Res *types.CreateImportSpecResponse `xml:"CreateImportSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2665,7 +2825,7 @@ func CreateImportSpec(ctx context.Context, r soap.RoundTripper, req *types.Creat type CreateInventoryViewBody struct { Req *types.CreateInventoryView `xml:"urn:vim25 CreateInventoryView,omitempty"` - Res *types.CreateInventoryViewResponse `xml:"urn:vim25 CreateInventoryViewResponse,omitempty"` + Res *types.CreateInventoryViewResponse `xml:"CreateInventoryViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2685,7 +2845,7 @@ func CreateInventoryView(ctx context.Context, r soap.RoundTripper, req *types.Cr type CreateIpPoolBody struct { Req *types.CreateIpPool `xml:"urn:vim25 CreateIpPool,omitempty"` - Res *types.CreateIpPoolResponse `xml:"urn:vim25 CreateIpPoolResponse,omitempty"` + Res *types.CreateIpPoolResponse `xml:"CreateIpPoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2705,7 +2865,7 @@ func CreateIpPool(ctx context.Context, r soap.RoundTripper, req *types.CreateIpP type CreateListViewBody struct { Req *types.CreateListView `xml:"urn:vim25 CreateListView,omitempty"` - Res *types.CreateListViewResponse `xml:"urn:vim25 CreateListViewResponse,omitempty"` + Res *types.CreateListViewResponse `xml:"CreateListViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2725,7 +2885,7 @@ func CreateListView(ctx context.Context, r soap.RoundTripper, req *types.CreateL type CreateListViewFromViewBody struct { Req *types.CreateListViewFromView `xml:"urn:vim25 CreateListViewFromView,omitempty"` - Res *types.CreateListViewFromViewResponse `xml:"urn:vim25 CreateListViewFromViewResponse,omitempty"` + Res *types.CreateListViewFromViewResponse `xml:"CreateListViewFromViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2745,7 +2905,7 @@ func CreateListViewFromView(ctx context.Context, r soap.RoundTripper, req *types type CreateLocalDatastoreBody struct { Req *types.CreateLocalDatastore `xml:"urn:vim25 CreateLocalDatastore,omitempty"` - Res *types.CreateLocalDatastoreResponse `xml:"urn:vim25 CreateLocalDatastoreResponse,omitempty"` + Res *types.CreateLocalDatastoreResponse `xml:"CreateLocalDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2765,7 +2925,7 @@ func CreateLocalDatastore(ctx context.Context, r soap.RoundTripper, req *types.C type CreateNasDatastoreBody struct { Req *types.CreateNasDatastore `xml:"urn:vim25 CreateNasDatastore,omitempty"` - Res *types.CreateNasDatastoreResponse `xml:"urn:vim25 CreateNasDatastoreResponse,omitempty"` + Res *types.CreateNasDatastoreResponse `xml:"CreateNasDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2785,7 +2945,7 @@ func CreateNasDatastore(ctx context.Context, r soap.RoundTripper, req *types.Cre type CreateNvdimmNamespace_TaskBody struct { Req *types.CreateNvdimmNamespace_Task `xml:"urn:vim25 CreateNvdimmNamespace_Task,omitempty"` - Res *types.CreateNvdimmNamespace_TaskResponse `xml:"urn:vim25 CreateNvdimmNamespace_TaskResponse,omitempty"` + Res *types.CreateNvdimmNamespace_TaskResponse `xml:"CreateNvdimmNamespace_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2803,9 +2963,49 @@ func CreateNvdimmNamespace_Task(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type CreateNvdimmPMemNamespace_TaskBody struct { + Req *types.CreateNvdimmPMemNamespace_Task `xml:"urn:vim25 CreateNvdimmPMemNamespace_Task,omitempty"` + Res *types.CreateNvdimmPMemNamespace_TaskResponse `xml:"CreateNvdimmPMemNamespace_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *CreateNvdimmPMemNamespace_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func CreateNvdimmPMemNamespace_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateNvdimmPMemNamespace_Task) (*types.CreateNvdimmPMemNamespace_TaskResponse, error) { + var reqBody, resBody CreateNvdimmPMemNamespace_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type CreateNvmeOverRdmaAdapterBody struct { + Req *types.CreateNvmeOverRdmaAdapter `xml:"urn:vim25 CreateNvmeOverRdmaAdapter,omitempty"` + Res *types.CreateNvmeOverRdmaAdapterResponse `xml:"CreateNvmeOverRdmaAdapterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *CreateNvmeOverRdmaAdapterBody) Fault() *soap.Fault { return b.Fault_ } + +func CreateNvmeOverRdmaAdapter(ctx context.Context, r soap.RoundTripper, req *types.CreateNvmeOverRdmaAdapter) (*types.CreateNvmeOverRdmaAdapterResponse, error) { + var reqBody, resBody CreateNvmeOverRdmaAdapterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type CreateObjectScheduledTaskBody struct { Req *types.CreateObjectScheduledTask `xml:"urn:vim25 CreateObjectScheduledTask,omitempty"` - Res *types.CreateObjectScheduledTaskResponse `xml:"urn:vim25 CreateObjectScheduledTaskResponse,omitempty"` + Res *types.CreateObjectScheduledTaskResponse `xml:"CreateObjectScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2825,7 +3025,7 @@ func CreateObjectScheduledTask(ctx context.Context, r soap.RoundTripper, req *ty type CreatePerfIntervalBody struct { Req *types.CreatePerfInterval `xml:"urn:vim25 CreatePerfInterval,omitempty"` - Res *types.CreatePerfIntervalResponse `xml:"urn:vim25 CreatePerfIntervalResponse,omitempty"` + Res *types.CreatePerfIntervalResponse `xml:"CreatePerfIntervalResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2845,7 +3045,7 @@ func CreatePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.Cre type CreateProfileBody struct { Req *types.CreateProfile `xml:"urn:vim25 CreateProfile,omitempty"` - Res *types.CreateProfileResponse `xml:"urn:vim25 CreateProfileResponse,omitempty"` + Res *types.CreateProfileResponse `xml:"CreateProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2865,7 +3065,7 @@ func CreateProfile(ctx context.Context, r soap.RoundTripper, req *types.CreatePr type CreatePropertyCollectorBody struct { Req *types.CreatePropertyCollector `xml:"urn:vim25 CreatePropertyCollector,omitempty"` - Res *types.CreatePropertyCollectorResponse `xml:"urn:vim25 CreatePropertyCollectorResponse,omitempty"` + Res *types.CreatePropertyCollectorResponse `xml:"CreatePropertyCollectorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2885,7 +3085,7 @@ func CreatePropertyCollector(ctx context.Context, r soap.RoundTripper, req *type type CreateRegistryKeyInGuestBody struct { Req *types.CreateRegistryKeyInGuest `xml:"urn:vim25 CreateRegistryKeyInGuest,omitempty"` - Res *types.CreateRegistryKeyInGuestResponse `xml:"urn:vim25 CreateRegistryKeyInGuestResponse,omitempty"` + Res *types.CreateRegistryKeyInGuestResponse `xml:"CreateRegistryKeyInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2905,7 +3105,7 @@ func CreateRegistryKeyInGuest(ctx context.Context, r soap.RoundTripper, req *typ type CreateResourcePoolBody struct { Req *types.CreateResourcePool `xml:"urn:vim25 CreateResourcePool,omitempty"` - Res *types.CreateResourcePoolResponse `xml:"urn:vim25 CreateResourcePoolResponse,omitempty"` + Res *types.CreateResourcePoolResponse `xml:"CreateResourcePoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2925,7 +3125,7 @@ func CreateResourcePool(ctx context.Context, r soap.RoundTripper, req *types.Cre type CreateScheduledTaskBody struct { Req *types.CreateScheduledTask `xml:"urn:vim25 CreateScheduledTask,omitempty"` - Res *types.CreateScheduledTaskResponse `xml:"urn:vim25 CreateScheduledTaskResponse,omitempty"` + Res *types.CreateScheduledTaskResponse `xml:"CreateScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2945,7 +3145,7 @@ func CreateScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.Cr type CreateScreenshot_TaskBody struct { Req *types.CreateScreenshot_Task `xml:"urn:vim25 CreateScreenshot_Task,omitempty"` - Res *types.CreateScreenshot_TaskResponse `xml:"urn:vim25 CreateScreenshot_TaskResponse,omitempty"` + Res *types.CreateScreenshot_TaskResponse `xml:"CreateScreenshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2965,7 +3165,7 @@ func CreateScreenshot_Task(ctx context.Context, r soap.RoundTripper, req *types. type CreateSecondaryVMEx_TaskBody struct { Req *types.CreateSecondaryVMEx_Task `xml:"urn:vim25 CreateSecondaryVMEx_Task,omitempty"` - Res *types.CreateSecondaryVMEx_TaskResponse `xml:"urn:vim25 CreateSecondaryVMEx_TaskResponse,omitempty"` + Res *types.CreateSecondaryVMEx_TaskResponse `xml:"CreateSecondaryVMEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -2985,7 +3185,7 @@ func CreateSecondaryVMEx_Task(ctx context.Context, r soap.RoundTripper, req *typ type CreateSecondaryVM_TaskBody struct { Req *types.CreateSecondaryVM_Task `xml:"urn:vim25 CreateSecondaryVM_Task,omitempty"` - Res *types.CreateSecondaryVM_TaskResponse `xml:"urn:vim25 CreateSecondaryVM_TaskResponse,omitempty"` + Res *types.CreateSecondaryVM_TaskResponse `xml:"CreateSecondaryVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3005,7 +3205,7 @@ func CreateSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types type CreateSnapshotEx_TaskBody struct { Req *types.CreateSnapshotEx_Task `xml:"urn:vim25 CreateSnapshotEx_Task,omitempty"` - Res *types.CreateSnapshotEx_TaskResponse `xml:"urn:vim25 CreateSnapshotEx_TaskResponse,omitempty"` + Res *types.CreateSnapshotEx_TaskResponse `xml:"CreateSnapshotEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3025,7 +3225,7 @@ func CreateSnapshotEx_Task(ctx context.Context, r soap.RoundTripper, req *types. type CreateSnapshot_TaskBody struct { Req *types.CreateSnapshot_Task `xml:"urn:vim25 CreateSnapshot_Task,omitempty"` - Res *types.CreateSnapshot_TaskResponse `xml:"urn:vim25 CreateSnapshot_TaskResponse,omitempty"` + Res *types.CreateSnapshot_TaskResponse `xml:"CreateSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3045,7 +3245,7 @@ func CreateSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.Cr type CreateStoragePodBody struct { Req *types.CreateStoragePod `xml:"urn:vim25 CreateStoragePod,omitempty"` - Res *types.CreateStoragePodResponse `xml:"urn:vim25 CreateStoragePodResponse,omitempty"` + Res *types.CreateStoragePodResponse `xml:"CreateStoragePodResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3065,7 +3265,7 @@ func CreateStoragePod(ctx context.Context, r soap.RoundTripper, req *types.Creat type CreateTaskBody struct { Req *types.CreateTask `xml:"urn:vim25 CreateTask,omitempty"` - Res *types.CreateTaskResponse `xml:"urn:vim25 CreateTaskResponse,omitempty"` + Res *types.CreateTaskResponse `xml:"CreateTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3085,7 +3285,7 @@ func CreateTask(ctx context.Context, r soap.RoundTripper, req *types.CreateTask) type CreateTemporaryDirectoryInGuestBody struct { Req *types.CreateTemporaryDirectoryInGuest `xml:"urn:vim25 CreateTemporaryDirectoryInGuest,omitempty"` - Res *types.CreateTemporaryDirectoryInGuestResponse `xml:"urn:vim25 CreateTemporaryDirectoryInGuestResponse,omitempty"` + Res *types.CreateTemporaryDirectoryInGuestResponse `xml:"CreateTemporaryDirectoryInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3105,7 +3305,7 @@ func CreateTemporaryDirectoryInGuest(ctx context.Context, r soap.RoundTripper, r type CreateTemporaryFileInGuestBody struct { Req *types.CreateTemporaryFileInGuest `xml:"urn:vim25 CreateTemporaryFileInGuest,omitempty"` - Res *types.CreateTemporaryFileInGuestResponse `xml:"urn:vim25 CreateTemporaryFileInGuestResponse,omitempty"` + Res *types.CreateTemporaryFileInGuestResponse `xml:"CreateTemporaryFileInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3125,7 +3325,7 @@ func CreateTemporaryFileInGuest(ctx context.Context, r soap.RoundTripper, req *t type CreateUserBody struct { Req *types.CreateUser `xml:"urn:vim25 CreateUser,omitempty"` - Res *types.CreateUserResponse `xml:"urn:vim25 CreateUserResponse,omitempty"` + Res *types.CreateUserResponse `xml:"CreateUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3145,7 +3345,7 @@ func CreateUser(ctx context.Context, r soap.RoundTripper, req *types.CreateUser) type CreateVAppBody struct { Req *types.CreateVApp `xml:"urn:vim25 CreateVApp,omitempty"` - Res *types.CreateVAppResponse `xml:"urn:vim25 CreateVAppResponse,omitempty"` + Res *types.CreateVAppResponse `xml:"CreateVAppResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3165,7 +3365,7 @@ func CreateVApp(ctx context.Context, r soap.RoundTripper, req *types.CreateVApp) type CreateVM_TaskBody struct { Req *types.CreateVM_Task `xml:"urn:vim25 CreateVM_Task,omitempty"` - Res *types.CreateVM_TaskResponse `xml:"urn:vim25 CreateVM_TaskResponse,omitempty"` + Res *types.CreateVM_TaskResponse `xml:"CreateVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3185,7 +3385,7 @@ func CreateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateVM type CreateVirtualDisk_TaskBody struct { Req *types.CreateVirtualDisk_Task `xml:"urn:vim25 CreateVirtualDisk_Task,omitempty"` - Res *types.CreateVirtualDisk_TaskResponse `xml:"urn:vim25 CreateVirtualDisk_TaskResponse,omitempty"` + Res *types.CreateVirtualDisk_TaskResponse `xml:"CreateVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3205,7 +3405,7 @@ func CreateVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types type CreateVmfsDatastoreBody struct { Req *types.CreateVmfsDatastore `xml:"urn:vim25 CreateVmfsDatastore,omitempty"` - Res *types.CreateVmfsDatastoreResponse `xml:"urn:vim25 CreateVmfsDatastoreResponse,omitempty"` + Res *types.CreateVmfsDatastoreResponse `xml:"CreateVmfsDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3225,7 +3425,7 @@ func CreateVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.Cr type CreateVvolDatastoreBody struct { Req *types.CreateVvolDatastore `xml:"urn:vim25 CreateVvolDatastore,omitempty"` - Res *types.CreateVvolDatastoreResponse `xml:"urn:vim25 CreateVvolDatastoreResponse,omitempty"` + Res *types.CreateVvolDatastoreResponse `xml:"CreateVvolDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3243,9 +3443,29 @@ func CreateVvolDatastore(ctx context.Context, r soap.RoundTripper, req *types.Cr return resBody.Res, nil } +type CryptoManagerHostDisableBody struct { + Req *types.CryptoManagerHostDisable `xml:"urn:vim25 CryptoManagerHostDisable,omitempty"` + Res *types.CryptoManagerHostDisableResponse `xml:"CryptoManagerHostDisableResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *CryptoManagerHostDisableBody) Fault() *soap.Fault { return b.Fault_ } + +func CryptoManagerHostDisable(ctx context.Context, r soap.RoundTripper, req *types.CryptoManagerHostDisable) (*types.CryptoManagerHostDisableResponse, error) { + var reqBody, resBody CryptoManagerHostDisableBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type CryptoManagerHostEnableBody struct { Req *types.CryptoManagerHostEnable `xml:"urn:vim25 CryptoManagerHostEnable,omitempty"` - Res *types.CryptoManagerHostEnableResponse `xml:"urn:vim25 CryptoManagerHostEnableResponse,omitempty"` + Res *types.CryptoManagerHostEnableResponse `xml:"CryptoManagerHostEnableResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3265,7 +3485,7 @@ func CryptoManagerHostEnable(ctx context.Context, r soap.RoundTripper, req *type type CryptoManagerHostPrepareBody struct { Req *types.CryptoManagerHostPrepare `xml:"urn:vim25 CryptoManagerHostPrepare,omitempty"` - Res *types.CryptoManagerHostPrepareResponse `xml:"urn:vim25 CryptoManagerHostPrepareResponse,omitempty"` + Res *types.CryptoManagerHostPrepareResponse `xml:"CryptoManagerHostPrepareResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3285,7 +3505,7 @@ func CryptoManagerHostPrepare(ctx context.Context, r soap.RoundTripper, req *typ type CryptoUnlock_TaskBody struct { Req *types.CryptoUnlock_Task `xml:"urn:vim25 CryptoUnlock_Task,omitempty"` - Res *types.CryptoUnlock_TaskResponse `xml:"urn:vim25 CryptoUnlock_TaskResponse,omitempty"` + Res *types.CryptoUnlock_TaskResponse `xml:"CryptoUnlock_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3305,7 +3525,7 @@ func CryptoUnlock_Task(ctx context.Context, r soap.RoundTripper, req *types.Cryp type CurrentTimeBody struct { Req *types.CurrentTime `xml:"urn:vim25 CurrentTime,omitempty"` - Res *types.CurrentTimeResponse `xml:"urn:vim25 CurrentTimeResponse,omitempty"` + Res *types.CurrentTimeResponse `xml:"CurrentTimeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3325,7 +3545,7 @@ func CurrentTime(ctx context.Context, r soap.RoundTripper, req *types.CurrentTim type CustomizationSpecItemToXmlBody struct { Req *types.CustomizationSpecItemToXml `xml:"urn:vim25 CustomizationSpecItemToXml,omitempty"` - Res *types.CustomizationSpecItemToXmlResponse `xml:"urn:vim25 CustomizationSpecItemToXmlResponse,omitempty"` + Res *types.CustomizationSpecItemToXmlResponse `xml:"CustomizationSpecItemToXmlResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3343,9 +3563,29 @@ func CustomizationSpecItemToXml(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type CustomizeGuest_TaskBody struct { + Req *types.CustomizeGuest_Task `xml:"urn:vim25 CustomizeGuest_Task,omitempty"` + Res *types.CustomizeGuest_TaskResponse `xml:"CustomizeGuest_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *CustomizeGuest_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func CustomizeGuest_Task(ctx context.Context, r soap.RoundTripper, req *types.CustomizeGuest_Task) (*types.CustomizeGuest_TaskResponse, error) { + var reqBody, resBody CustomizeGuest_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type CustomizeVM_TaskBody struct { Req *types.CustomizeVM_Task `xml:"urn:vim25 CustomizeVM_Task,omitempty"` - Res *types.CustomizeVM_TaskResponse `xml:"urn:vim25 CustomizeVM_TaskResponse,omitempty"` + Res *types.CustomizeVM_TaskResponse `xml:"CustomizeVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3365,7 +3605,7 @@ func CustomizeVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Custo type DVPortgroupRollback_TaskBody struct { Req *types.DVPortgroupRollback_Task `xml:"urn:vim25 DVPortgroupRollback_Task,omitempty"` - Res *types.DVPortgroupRollback_TaskResponse `xml:"urn:vim25 DVPortgroupRollback_TaskResponse,omitempty"` + Res *types.DVPortgroupRollback_TaskResponse `xml:"DVPortgroupRollback_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3385,7 +3625,7 @@ func DVPortgroupRollback_Task(ctx context.Context, r soap.RoundTripper, req *typ type DVSManagerExportEntity_TaskBody struct { Req *types.DVSManagerExportEntity_Task `xml:"urn:vim25 DVSManagerExportEntity_Task,omitempty"` - Res *types.DVSManagerExportEntity_TaskResponse `xml:"urn:vim25 DVSManagerExportEntity_TaskResponse,omitempty"` + Res *types.DVSManagerExportEntity_TaskResponse `xml:"DVSManagerExportEntity_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3405,7 +3645,7 @@ func DVSManagerExportEntity_Task(ctx context.Context, r soap.RoundTripper, req * type DVSManagerImportEntity_TaskBody struct { Req *types.DVSManagerImportEntity_Task `xml:"urn:vim25 DVSManagerImportEntity_Task,omitempty"` - Res *types.DVSManagerImportEntity_TaskResponse `xml:"urn:vim25 DVSManagerImportEntity_TaskResponse,omitempty"` + Res *types.DVSManagerImportEntity_TaskResponse `xml:"DVSManagerImportEntity_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3425,7 +3665,7 @@ func DVSManagerImportEntity_Task(ctx context.Context, r soap.RoundTripper, req * type DVSManagerLookupDvPortGroupBody struct { Req *types.DVSManagerLookupDvPortGroup `xml:"urn:vim25 DVSManagerLookupDvPortGroup,omitempty"` - Res *types.DVSManagerLookupDvPortGroupResponse `xml:"urn:vim25 DVSManagerLookupDvPortGroupResponse,omitempty"` + Res *types.DVSManagerLookupDvPortGroupResponse `xml:"DVSManagerLookupDvPortGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3445,7 +3685,7 @@ func DVSManagerLookupDvPortGroup(ctx context.Context, r soap.RoundTripper, req * type DVSRollback_TaskBody struct { Req *types.DVSRollback_Task `xml:"urn:vim25 DVSRollback_Task,omitempty"` - Res *types.DVSRollback_TaskResponse `xml:"urn:vim25 DVSRollback_TaskResponse,omitempty"` + Res *types.DVSRollback_TaskResponse `xml:"DVSRollback_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3465,7 +3705,7 @@ func DVSRollback_Task(ctx context.Context, r soap.RoundTripper, req *types.DVSRo type DatastoreEnterMaintenanceModeBody struct { Req *types.DatastoreEnterMaintenanceMode `xml:"urn:vim25 DatastoreEnterMaintenanceMode,omitempty"` - Res *types.DatastoreEnterMaintenanceModeResponse `xml:"urn:vim25 DatastoreEnterMaintenanceModeResponse,omitempty"` + Res *types.DatastoreEnterMaintenanceModeResponse `xml:"DatastoreEnterMaintenanceModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3485,7 +3725,7 @@ func DatastoreEnterMaintenanceMode(ctx context.Context, r soap.RoundTripper, req type DatastoreExitMaintenanceMode_TaskBody struct { Req *types.DatastoreExitMaintenanceMode_Task `xml:"urn:vim25 DatastoreExitMaintenanceMode_Task,omitempty"` - Res *types.DatastoreExitMaintenanceMode_TaskResponse `xml:"urn:vim25 DatastoreExitMaintenanceMode_TaskResponse,omitempty"` + Res *types.DatastoreExitMaintenanceMode_TaskResponse `xml:"DatastoreExitMaintenanceMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3505,7 +3745,7 @@ func DatastoreExitMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, type DecodeLicenseBody struct { Req *types.DecodeLicense `xml:"urn:vim25 DecodeLicense,omitempty"` - Res *types.DecodeLicenseResponse `xml:"urn:vim25 DecodeLicenseResponse,omitempty"` + Res *types.DecodeLicenseResponse `xml:"DecodeLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3525,7 +3765,7 @@ func DecodeLicense(ctx context.Context, r soap.RoundTripper, req *types.DecodeLi type DefragmentAllDisksBody struct { Req *types.DefragmentAllDisks `xml:"urn:vim25 DefragmentAllDisks,omitempty"` - Res *types.DefragmentAllDisksResponse `xml:"urn:vim25 DefragmentAllDisksResponse,omitempty"` + Res *types.DefragmentAllDisksResponse `xml:"DefragmentAllDisksResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3545,7 +3785,7 @@ func DefragmentAllDisks(ctx context.Context, r soap.RoundTripper, req *types.Def type DefragmentVirtualDisk_TaskBody struct { Req *types.DefragmentVirtualDisk_Task `xml:"urn:vim25 DefragmentVirtualDisk_Task,omitempty"` - Res *types.DefragmentVirtualDisk_TaskResponse `xml:"urn:vim25 DefragmentVirtualDisk_TaskResponse,omitempty"` + Res *types.DefragmentVirtualDisk_TaskResponse `xml:"DefragmentVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3565,7 +3805,7 @@ func DefragmentVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *t type DeleteCustomizationSpecBody struct { Req *types.DeleteCustomizationSpec `xml:"urn:vim25 DeleteCustomizationSpec,omitempty"` - Res *types.DeleteCustomizationSpecResponse `xml:"urn:vim25 DeleteCustomizationSpecResponse,omitempty"` + Res *types.DeleteCustomizationSpecResponse `xml:"DeleteCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3585,7 +3825,7 @@ func DeleteCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *type type DeleteDatastoreFile_TaskBody struct { Req *types.DeleteDatastoreFile_Task `xml:"urn:vim25 DeleteDatastoreFile_Task,omitempty"` - Res *types.DeleteDatastoreFile_TaskResponse `xml:"urn:vim25 DeleteDatastoreFile_TaskResponse,omitempty"` + Res *types.DeleteDatastoreFile_TaskResponse `xml:"DeleteDatastoreFile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3605,7 +3845,7 @@ func DeleteDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *typ type DeleteDirectoryBody struct { Req *types.DeleteDirectory `xml:"urn:vim25 DeleteDirectory,omitempty"` - Res *types.DeleteDirectoryResponse `xml:"urn:vim25 DeleteDirectoryResponse,omitempty"` + Res *types.DeleteDirectoryResponse `xml:"DeleteDirectoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3625,7 +3865,7 @@ func DeleteDirectory(ctx context.Context, r soap.RoundTripper, req *types.Delete type DeleteDirectoryInGuestBody struct { Req *types.DeleteDirectoryInGuest `xml:"urn:vim25 DeleteDirectoryInGuest,omitempty"` - Res *types.DeleteDirectoryInGuestResponse `xml:"urn:vim25 DeleteDirectoryInGuestResponse,omitempty"` + Res *types.DeleteDirectoryInGuestResponse `xml:"DeleteDirectoryInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3645,7 +3885,7 @@ func DeleteDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types type DeleteFileBody struct { Req *types.DeleteFile `xml:"urn:vim25 DeleteFile,omitempty"` - Res *types.DeleteFileResponse `xml:"urn:vim25 DeleteFileResponse,omitempty"` + Res *types.DeleteFileResponse `xml:"DeleteFileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3665,7 +3905,7 @@ func DeleteFile(ctx context.Context, r soap.RoundTripper, req *types.DeleteFile) type DeleteFileInGuestBody struct { Req *types.DeleteFileInGuest `xml:"urn:vim25 DeleteFileInGuest,omitempty"` - Res *types.DeleteFileInGuestResponse `xml:"urn:vim25 DeleteFileInGuestResponse,omitempty"` + Res *types.DeleteFileInGuestResponse `xml:"DeleteFileInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3685,7 +3925,7 @@ func DeleteFileInGuest(ctx context.Context, r soap.RoundTripper, req *types.Dele type DeleteHostSpecificationBody struct { Req *types.DeleteHostSpecification `xml:"urn:vim25 DeleteHostSpecification,omitempty"` - Res *types.DeleteHostSpecificationResponse `xml:"urn:vim25 DeleteHostSpecificationResponse,omitempty"` + Res *types.DeleteHostSpecificationResponse `xml:"DeleteHostSpecificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3705,7 +3945,7 @@ func DeleteHostSpecification(ctx context.Context, r soap.RoundTripper, req *type type DeleteHostSubSpecificationBody struct { Req *types.DeleteHostSubSpecification `xml:"urn:vim25 DeleteHostSubSpecification,omitempty"` - Res *types.DeleteHostSubSpecificationResponse `xml:"urn:vim25 DeleteHostSubSpecificationResponse,omitempty"` + Res *types.DeleteHostSubSpecificationResponse `xml:"DeleteHostSubSpecificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3725,7 +3965,7 @@ func DeleteHostSubSpecification(ctx context.Context, r soap.RoundTripper, req *t type DeleteNvdimmBlockNamespaces_TaskBody struct { Req *types.DeleteNvdimmBlockNamespaces_Task `xml:"urn:vim25 DeleteNvdimmBlockNamespaces_Task,omitempty"` - Res *types.DeleteNvdimmBlockNamespaces_TaskResponse `xml:"urn:vim25 DeleteNvdimmBlockNamespaces_TaskResponse,omitempty"` + Res *types.DeleteNvdimmBlockNamespaces_TaskResponse `xml:"DeleteNvdimmBlockNamespaces_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3745,7 +3985,7 @@ func DeleteNvdimmBlockNamespaces_Task(ctx context.Context, r soap.RoundTripper, type DeleteNvdimmNamespace_TaskBody struct { Req *types.DeleteNvdimmNamespace_Task `xml:"urn:vim25 DeleteNvdimmNamespace_Task,omitempty"` - Res *types.DeleteNvdimmNamespace_TaskResponse `xml:"urn:vim25 DeleteNvdimmNamespace_TaskResponse,omitempty"` + Res *types.DeleteNvdimmNamespace_TaskResponse `xml:"DeleteNvdimmNamespace_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3765,7 +4005,7 @@ func DeleteNvdimmNamespace_Task(ctx context.Context, r soap.RoundTripper, req *t type DeleteRegistryKeyInGuestBody struct { Req *types.DeleteRegistryKeyInGuest `xml:"urn:vim25 DeleteRegistryKeyInGuest,omitempty"` - Res *types.DeleteRegistryKeyInGuestResponse `xml:"urn:vim25 DeleteRegistryKeyInGuestResponse,omitempty"` + Res *types.DeleteRegistryKeyInGuestResponse `xml:"DeleteRegistryKeyInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3785,7 +4025,7 @@ func DeleteRegistryKeyInGuest(ctx context.Context, r soap.RoundTripper, req *typ type DeleteRegistryValueInGuestBody struct { Req *types.DeleteRegistryValueInGuest `xml:"urn:vim25 DeleteRegistryValueInGuest,omitempty"` - Res *types.DeleteRegistryValueInGuestResponse `xml:"urn:vim25 DeleteRegistryValueInGuestResponse,omitempty"` + Res *types.DeleteRegistryValueInGuestResponse `xml:"DeleteRegistryValueInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3805,7 +4045,7 @@ func DeleteRegistryValueInGuest(ctx context.Context, r soap.RoundTripper, req *t type DeleteScsiLunStateBody struct { Req *types.DeleteScsiLunState `xml:"urn:vim25 DeleteScsiLunState,omitempty"` - Res *types.DeleteScsiLunStateResponse `xml:"urn:vim25 DeleteScsiLunStateResponse,omitempty"` + Res *types.DeleteScsiLunStateResponse `xml:"DeleteScsiLunStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3825,7 +4065,7 @@ func DeleteScsiLunState(ctx context.Context, r soap.RoundTripper, req *types.Del type DeleteSnapshot_TaskBody struct { Req *types.DeleteSnapshot_Task `xml:"urn:vim25 DeleteSnapshot_Task,omitempty"` - Res *types.DeleteSnapshot_TaskResponse `xml:"urn:vim25 DeleteSnapshot_TaskResponse,omitempty"` + Res *types.DeleteSnapshot_TaskResponse `xml:"DeleteSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3845,7 +4085,7 @@ func DeleteSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.De type DeleteVStorageObject_TaskBody struct { Req *types.DeleteVStorageObject_Task `xml:"urn:vim25 DeleteVStorageObject_Task,omitempty"` - Res *types.DeleteVStorageObject_TaskResponse `xml:"urn:vim25 DeleteVStorageObject_TaskResponse,omitempty"` + Res *types.DeleteVStorageObject_TaskResponse `xml:"DeleteVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3865,7 +4105,7 @@ func DeleteVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *ty type DeleteVffsVolumeStateBody struct { Req *types.DeleteVffsVolumeState `xml:"urn:vim25 DeleteVffsVolumeState,omitempty"` - Res *types.DeleteVffsVolumeStateResponse `xml:"urn:vim25 DeleteVffsVolumeStateResponse,omitempty"` + Res *types.DeleteVffsVolumeStateResponse `xml:"DeleteVffsVolumeStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3885,7 +4125,7 @@ func DeleteVffsVolumeState(ctx context.Context, r soap.RoundTripper, req *types. type DeleteVirtualDisk_TaskBody struct { Req *types.DeleteVirtualDisk_Task `xml:"urn:vim25 DeleteVirtualDisk_Task,omitempty"` - Res *types.DeleteVirtualDisk_TaskResponse `xml:"urn:vim25 DeleteVirtualDisk_TaskResponse,omitempty"` + Res *types.DeleteVirtualDisk_TaskResponse `xml:"DeleteVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3905,7 +4145,7 @@ func DeleteVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types type DeleteVmfsVolumeStateBody struct { Req *types.DeleteVmfsVolumeState `xml:"urn:vim25 DeleteVmfsVolumeState,omitempty"` - Res *types.DeleteVmfsVolumeStateResponse `xml:"urn:vim25 DeleteVmfsVolumeStateResponse,omitempty"` + Res *types.DeleteVmfsVolumeStateResponse `xml:"DeleteVmfsVolumeStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3925,7 +4165,7 @@ func DeleteVmfsVolumeState(ctx context.Context, r soap.RoundTripper, req *types. type DeleteVsanObjectsBody struct { Req *types.DeleteVsanObjects `xml:"urn:vim25 DeleteVsanObjects,omitempty"` - Res *types.DeleteVsanObjectsResponse `xml:"urn:vim25 DeleteVsanObjectsResponse,omitempty"` + Res *types.DeleteVsanObjectsResponse `xml:"DeleteVsanObjectsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3945,7 +4185,7 @@ func DeleteVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.Dele type DeselectVnicBody struct { Req *types.DeselectVnic `xml:"urn:vim25 DeselectVnic,omitempty"` - Res *types.DeselectVnicResponse `xml:"urn:vim25 DeselectVnicResponse,omitempty"` + Res *types.DeselectVnicResponse `xml:"DeselectVnicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3965,7 +4205,7 @@ func DeselectVnic(ctx context.Context, r soap.RoundTripper, req *types.DeselectV type DeselectVnicForNicTypeBody struct { Req *types.DeselectVnicForNicType `xml:"urn:vim25 DeselectVnicForNicType,omitempty"` - Res *types.DeselectVnicForNicTypeResponse `xml:"urn:vim25 DeselectVnicForNicTypeResponse,omitempty"` + Res *types.DeselectVnicForNicTypeResponse `xml:"DeselectVnicForNicTypeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -3985,7 +4225,7 @@ func DeselectVnicForNicType(ctx context.Context, r soap.RoundTripper, req *types type DestroyChildrenBody struct { Req *types.DestroyChildren `xml:"urn:vim25 DestroyChildren,omitempty"` - Res *types.DestroyChildrenResponse `xml:"urn:vim25 DestroyChildrenResponse,omitempty"` + Res *types.DestroyChildrenResponse `xml:"DestroyChildrenResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4005,7 +4245,7 @@ func DestroyChildren(ctx context.Context, r soap.RoundTripper, req *types.Destro type DestroyCollectorBody struct { Req *types.DestroyCollector `xml:"urn:vim25 DestroyCollector,omitempty"` - Res *types.DestroyCollectorResponse `xml:"urn:vim25 DestroyCollectorResponse,omitempty"` + Res *types.DestroyCollectorResponse `xml:"DestroyCollectorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4025,7 +4265,7 @@ func DestroyCollector(ctx context.Context, r soap.RoundTripper, req *types.Destr type DestroyDatastoreBody struct { Req *types.DestroyDatastore `xml:"urn:vim25 DestroyDatastore,omitempty"` - Res *types.DestroyDatastoreResponse `xml:"urn:vim25 DestroyDatastoreResponse,omitempty"` + Res *types.DestroyDatastoreResponse `xml:"DestroyDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4045,7 +4285,7 @@ func DestroyDatastore(ctx context.Context, r soap.RoundTripper, req *types.Destr type DestroyIpPoolBody struct { Req *types.DestroyIpPool `xml:"urn:vim25 DestroyIpPool,omitempty"` - Res *types.DestroyIpPoolResponse `xml:"urn:vim25 DestroyIpPoolResponse,omitempty"` + Res *types.DestroyIpPoolResponse `xml:"DestroyIpPoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4065,7 +4305,7 @@ func DestroyIpPool(ctx context.Context, r soap.RoundTripper, req *types.DestroyI type DestroyNetworkBody struct { Req *types.DestroyNetwork `xml:"urn:vim25 DestroyNetwork,omitempty"` - Res *types.DestroyNetworkResponse `xml:"urn:vim25 DestroyNetworkResponse,omitempty"` + Res *types.DestroyNetworkResponse `xml:"DestroyNetworkResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4085,7 +4325,7 @@ func DestroyNetwork(ctx context.Context, r soap.RoundTripper, req *types.Destroy type DestroyProfileBody struct { Req *types.DestroyProfile `xml:"urn:vim25 DestroyProfile,omitempty"` - Res *types.DestroyProfileResponse `xml:"urn:vim25 DestroyProfileResponse,omitempty"` + Res *types.DestroyProfileResponse `xml:"DestroyProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4105,7 +4345,7 @@ func DestroyProfile(ctx context.Context, r soap.RoundTripper, req *types.Destroy type DestroyPropertyCollectorBody struct { Req *types.DestroyPropertyCollector `xml:"urn:vim25 DestroyPropertyCollector,omitempty"` - Res *types.DestroyPropertyCollectorResponse `xml:"urn:vim25 DestroyPropertyCollectorResponse,omitempty"` + Res *types.DestroyPropertyCollectorResponse `xml:"DestroyPropertyCollectorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4125,7 +4365,7 @@ func DestroyPropertyCollector(ctx context.Context, r soap.RoundTripper, req *typ type DestroyPropertyFilterBody struct { Req *types.DestroyPropertyFilter `xml:"urn:vim25 DestroyPropertyFilter,omitempty"` - Res *types.DestroyPropertyFilterResponse `xml:"urn:vim25 DestroyPropertyFilterResponse,omitempty"` + Res *types.DestroyPropertyFilterResponse `xml:"DestroyPropertyFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4145,7 +4385,7 @@ func DestroyPropertyFilter(ctx context.Context, r soap.RoundTripper, req *types. type DestroyVffsBody struct { Req *types.DestroyVffs `xml:"urn:vim25 DestroyVffs,omitempty"` - Res *types.DestroyVffsResponse `xml:"urn:vim25 DestroyVffsResponse,omitempty"` + Res *types.DestroyVffsResponse `xml:"DestroyVffsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4165,7 +4405,7 @@ func DestroyVffs(ctx context.Context, r soap.RoundTripper, req *types.DestroyVff type DestroyViewBody struct { Req *types.DestroyView `xml:"urn:vim25 DestroyView,omitempty"` - Res *types.DestroyViewResponse `xml:"urn:vim25 DestroyViewResponse,omitempty"` + Res *types.DestroyViewResponse `xml:"DestroyViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4185,7 +4425,7 @@ func DestroyView(ctx context.Context, r soap.RoundTripper, req *types.DestroyVie type Destroy_TaskBody struct { Req *types.Destroy_Task `xml:"urn:vim25 Destroy_Task,omitempty"` - Res *types.Destroy_TaskResponse `xml:"urn:vim25 Destroy_TaskResponse,omitempty"` + Res *types.Destroy_TaskResponse `xml:"Destroy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4205,7 +4445,7 @@ func Destroy_Task(ctx context.Context, r soap.RoundTripper, req *types.Destroy_T type DetachDisk_TaskBody struct { Req *types.DetachDisk_Task `xml:"urn:vim25 DetachDisk_Task,omitempty"` - Res *types.DetachDisk_TaskResponse `xml:"urn:vim25 DetachDisk_TaskResponse,omitempty"` + Res *types.DetachDisk_TaskResponse `xml:"DetachDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4225,7 +4465,7 @@ func DetachDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Detach type DetachScsiLunBody struct { Req *types.DetachScsiLun `xml:"urn:vim25 DetachScsiLun,omitempty"` - Res *types.DetachScsiLunResponse `xml:"urn:vim25 DetachScsiLunResponse,omitempty"` + Res *types.DetachScsiLunResponse `xml:"DetachScsiLunResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4245,7 +4485,7 @@ func DetachScsiLun(ctx context.Context, r soap.RoundTripper, req *types.DetachSc type DetachScsiLunEx_TaskBody struct { Req *types.DetachScsiLunEx_Task `xml:"urn:vim25 DetachScsiLunEx_Task,omitempty"` - Res *types.DetachScsiLunEx_TaskResponse `xml:"urn:vim25 DetachScsiLunEx_TaskResponse,omitempty"` + Res *types.DetachScsiLunEx_TaskResponse `xml:"DetachScsiLunEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4265,7 +4505,7 @@ func DetachScsiLunEx_Task(ctx context.Context, r soap.RoundTripper, req *types.D type DetachTagFromVStorageObjectBody struct { Req *types.DetachTagFromVStorageObject `xml:"urn:vim25 DetachTagFromVStorageObject,omitempty"` - Res *types.DetachTagFromVStorageObjectResponse `xml:"urn:vim25 DetachTagFromVStorageObjectResponse,omitempty"` + Res *types.DetachTagFromVStorageObjectResponse `xml:"DetachTagFromVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4283,9 +4523,49 @@ func DetachTagFromVStorageObject(ctx context.Context, r soap.RoundTripper, req * return resBody.Res, nil } +type DisableAlarmBody struct { + Req *types.DisableAlarm `xml:"urn:vim25 DisableAlarm,omitempty"` + Res *types.DisableAlarmResponse `xml:"DisableAlarmResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *DisableAlarmBody) Fault() *soap.Fault { return b.Fault_ } + +func DisableAlarm(ctx context.Context, r soap.RoundTripper, req *types.DisableAlarm) (*types.DisableAlarmResponse, error) { + var reqBody, resBody DisableAlarmBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type DisableClusteredVmdkSupportBody struct { + Req *types.DisableClusteredVmdkSupport `xml:"urn:vim25 DisableClusteredVmdkSupport,omitempty"` + Res *types.DisableClusteredVmdkSupportResponse `xml:"DisableClusteredVmdkSupportResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *DisableClusteredVmdkSupportBody) Fault() *soap.Fault { return b.Fault_ } + +func DisableClusteredVmdkSupport(ctx context.Context, r soap.RoundTripper, req *types.DisableClusteredVmdkSupport) (*types.DisableClusteredVmdkSupportResponse, error) { + var reqBody, resBody DisableClusteredVmdkSupportBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type DisableEvcMode_TaskBody struct { Req *types.DisableEvcMode_Task `xml:"urn:vim25 DisableEvcMode_Task,omitempty"` - Res *types.DisableEvcMode_TaskResponse `xml:"urn:vim25 DisableEvcMode_TaskResponse,omitempty"` + Res *types.DisableEvcMode_TaskResponse `xml:"DisableEvcMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4305,7 +4585,7 @@ func DisableEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *types.Di type DisableFeatureBody struct { Req *types.DisableFeature `xml:"urn:vim25 DisableFeature,omitempty"` - Res *types.DisableFeatureResponse `xml:"urn:vim25 DisableFeatureResponse,omitempty"` + Res *types.DisableFeatureResponse `xml:"DisableFeatureResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4325,7 +4605,7 @@ func DisableFeature(ctx context.Context, r soap.RoundTripper, req *types.Disable type DisableHyperThreadingBody struct { Req *types.DisableHyperThreading `xml:"urn:vim25 DisableHyperThreading,omitempty"` - Res *types.DisableHyperThreadingResponse `xml:"urn:vim25 DisableHyperThreadingResponse,omitempty"` + Res *types.DisableHyperThreadingResponse `xml:"DisableHyperThreadingResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4345,7 +4625,7 @@ func DisableHyperThreading(ctx context.Context, r soap.RoundTripper, req *types. type DisableMultipathPathBody struct { Req *types.DisableMultipathPath `xml:"urn:vim25 DisableMultipathPath,omitempty"` - Res *types.DisableMultipathPathResponse `xml:"urn:vim25 DisableMultipathPathResponse,omitempty"` + Res *types.DisableMultipathPathResponse `xml:"DisableMultipathPathResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4365,7 +4645,7 @@ func DisableMultipathPath(ctx context.Context, r soap.RoundTripper, req *types.D type DisableRulesetBody struct { Req *types.DisableRuleset `xml:"urn:vim25 DisableRuleset,omitempty"` - Res *types.DisableRulesetResponse `xml:"urn:vim25 DisableRulesetResponse,omitempty"` + Res *types.DisableRulesetResponse `xml:"DisableRulesetResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4385,7 +4665,7 @@ func DisableRuleset(ctx context.Context, r soap.RoundTripper, req *types.Disable type DisableSecondaryVM_TaskBody struct { Req *types.DisableSecondaryVM_Task `xml:"urn:vim25 DisableSecondaryVM_Task,omitempty"` - Res *types.DisableSecondaryVM_TaskResponse `xml:"urn:vim25 DisableSecondaryVM_TaskResponse,omitempty"` + Res *types.DisableSecondaryVM_TaskResponse `xml:"DisableSecondaryVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4405,7 +4685,7 @@ func DisableSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *type type DisableSmartCardAuthenticationBody struct { Req *types.DisableSmartCardAuthentication `xml:"urn:vim25 DisableSmartCardAuthentication,omitempty"` - Res *types.DisableSmartCardAuthenticationResponse `xml:"urn:vim25 DisableSmartCardAuthenticationResponse,omitempty"` + Res *types.DisableSmartCardAuthenticationResponse `xml:"DisableSmartCardAuthenticationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4425,7 +4705,7 @@ func DisableSmartCardAuthentication(ctx context.Context, r soap.RoundTripper, re type DisconnectHost_TaskBody struct { Req *types.DisconnectHost_Task `xml:"urn:vim25 DisconnectHost_Task,omitempty"` - Res *types.DisconnectHost_TaskResponse `xml:"urn:vim25 DisconnectHost_TaskResponse,omitempty"` + Res *types.DisconnectHost_TaskResponse `xml:"DisconnectHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4443,9 +4723,29 @@ func DisconnectHost_Task(ctx context.Context, r soap.RoundTripper, req *types.Di return resBody.Res, nil } +type DisconnectNvmeControllerBody struct { + Req *types.DisconnectNvmeController `xml:"urn:vim25 DisconnectNvmeController,omitempty"` + Res *types.DisconnectNvmeControllerResponse `xml:"DisconnectNvmeControllerResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *DisconnectNvmeControllerBody) Fault() *soap.Fault { return b.Fault_ } + +func DisconnectNvmeController(ctx context.Context, r soap.RoundTripper, req *types.DisconnectNvmeController) (*types.DisconnectNvmeControllerResponse, error) { + var reqBody, resBody DisconnectNvmeControllerBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type DiscoverFcoeHbasBody struct { Req *types.DiscoverFcoeHbas `xml:"urn:vim25 DiscoverFcoeHbas,omitempty"` - Res *types.DiscoverFcoeHbasResponse `xml:"urn:vim25 DiscoverFcoeHbasResponse,omitempty"` + Res *types.DiscoverFcoeHbasResponse `xml:"DiscoverFcoeHbasResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4463,9 +4763,29 @@ func DiscoverFcoeHbas(ctx context.Context, r soap.RoundTripper, req *types.Disco return resBody.Res, nil } +type DiscoverNvmeControllersBody struct { + Req *types.DiscoverNvmeControllers `xml:"urn:vim25 DiscoverNvmeControllers,omitempty"` + Res *types.DiscoverNvmeControllersResponse `xml:"DiscoverNvmeControllersResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *DiscoverNvmeControllersBody) Fault() *soap.Fault { return b.Fault_ } + +func DiscoverNvmeControllers(ctx context.Context, r soap.RoundTripper, req *types.DiscoverNvmeControllers) (*types.DiscoverNvmeControllersResponse, error) { + var reqBody, resBody DiscoverNvmeControllersBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type DissociateProfileBody struct { Req *types.DissociateProfile `xml:"urn:vim25 DissociateProfile,omitempty"` - Res *types.DissociateProfileResponse `xml:"urn:vim25 DissociateProfileResponse,omitempty"` + Res *types.DissociateProfileResponse `xml:"DissociateProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4485,7 +4805,7 @@ func DissociateProfile(ctx context.Context, r soap.RoundTripper, req *types.Diss type DoesCustomizationSpecExistBody struct { Req *types.DoesCustomizationSpecExist `xml:"urn:vim25 DoesCustomizationSpecExist,omitempty"` - Res *types.DoesCustomizationSpecExistResponse `xml:"urn:vim25 DoesCustomizationSpecExistResponse,omitempty"` + Res *types.DoesCustomizationSpecExistResponse `xml:"DoesCustomizationSpecExistResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4503,9 +4823,29 @@ func DoesCustomizationSpecExist(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type DownloadDescriptionTreeBody struct { + Req *types.DownloadDescriptionTree `xml:"urn:vim25 DownloadDescriptionTree,omitempty"` + Res *types.DownloadDescriptionTreeResponse `xml:"DownloadDescriptionTreeResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *DownloadDescriptionTreeBody) Fault() *soap.Fault { return b.Fault_ } + +func DownloadDescriptionTree(ctx context.Context, r soap.RoundTripper, req *types.DownloadDescriptionTree) (*types.DownloadDescriptionTreeResponse, error) { + var reqBody, resBody DownloadDescriptionTreeBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type DuplicateCustomizationSpecBody struct { Req *types.DuplicateCustomizationSpec `xml:"urn:vim25 DuplicateCustomizationSpec,omitempty"` - Res *types.DuplicateCustomizationSpecResponse `xml:"urn:vim25 DuplicateCustomizationSpecResponse,omitempty"` + Res *types.DuplicateCustomizationSpecResponse `xml:"DuplicateCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4525,7 +4865,7 @@ func DuplicateCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *t type DvsReconfigureVmVnicNetworkResourcePool_TaskBody struct { Req *types.DvsReconfigureVmVnicNetworkResourcePool_Task `xml:"urn:vim25 DvsReconfigureVmVnicNetworkResourcePool_Task,omitempty"` - Res *types.DvsReconfigureVmVnicNetworkResourcePool_TaskResponse `xml:"urn:vim25 DvsReconfigureVmVnicNetworkResourcePool_TaskResponse,omitempty"` + Res *types.DvsReconfigureVmVnicNetworkResourcePool_TaskResponse `xml:"DvsReconfigureVmVnicNetworkResourcePool_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4545,7 +4885,7 @@ func DvsReconfigureVmVnicNetworkResourcePool_Task(ctx context.Context, r soap.Ro type EagerZeroVirtualDisk_TaskBody struct { Req *types.EagerZeroVirtualDisk_Task `xml:"urn:vim25 EagerZeroVirtualDisk_Task,omitempty"` - Res *types.EagerZeroVirtualDisk_TaskResponse `xml:"urn:vim25 EagerZeroVirtualDisk_TaskResponse,omitempty"` + Res *types.EagerZeroVirtualDisk_TaskResponse `xml:"EagerZeroVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4563,9 +4903,29 @@ func EagerZeroVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *ty return resBody.Res, nil } +type EnableAlarmBody struct { + Req *types.EnableAlarm `xml:"urn:vim25 EnableAlarm,omitempty"` + Res *types.EnableAlarmResponse `xml:"EnableAlarmResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *EnableAlarmBody) Fault() *soap.Fault { return b.Fault_ } + +func EnableAlarm(ctx context.Context, r soap.RoundTripper, req *types.EnableAlarm) (*types.EnableAlarmResponse, error) { + var reqBody, resBody EnableAlarmBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type EnableAlarmActionsBody struct { Req *types.EnableAlarmActions `xml:"urn:vim25 EnableAlarmActions,omitempty"` - Res *types.EnableAlarmActionsResponse `xml:"urn:vim25 EnableAlarmActionsResponse,omitempty"` + Res *types.EnableAlarmActionsResponse `xml:"EnableAlarmActionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4583,9 +4943,29 @@ func EnableAlarmActions(ctx context.Context, r soap.RoundTripper, req *types.Ena return resBody.Res, nil } +type EnableClusteredVmdkSupportBody struct { + Req *types.EnableClusteredVmdkSupport `xml:"urn:vim25 EnableClusteredVmdkSupport,omitempty"` + Res *types.EnableClusteredVmdkSupportResponse `xml:"EnableClusteredVmdkSupportResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *EnableClusteredVmdkSupportBody) Fault() *soap.Fault { return b.Fault_ } + +func EnableClusteredVmdkSupport(ctx context.Context, r soap.RoundTripper, req *types.EnableClusteredVmdkSupport) (*types.EnableClusteredVmdkSupportResponse, error) { + var reqBody, resBody EnableClusteredVmdkSupportBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type EnableCryptoBody struct { Req *types.EnableCrypto `xml:"urn:vim25 EnableCrypto,omitempty"` - Res *types.EnableCryptoResponse `xml:"urn:vim25 EnableCryptoResponse,omitempty"` + Res *types.EnableCryptoResponse `xml:"EnableCryptoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4605,7 +4985,7 @@ func EnableCrypto(ctx context.Context, r soap.RoundTripper, req *types.EnableCry type EnableFeatureBody struct { Req *types.EnableFeature `xml:"urn:vim25 EnableFeature,omitempty"` - Res *types.EnableFeatureResponse `xml:"urn:vim25 EnableFeatureResponse,omitempty"` + Res *types.EnableFeatureResponse `xml:"EnableFeatureResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4625,7 +5005,7 @@ func EnableFeature(ctx context.Context, r soap.RoundTripper, req *types.EnableFe type EnableHyperThreadingBody struct { Req *types.EnableHyperThreading `xml:"urn:vim25 EnableHyperThreading,omitempty"` - Res *types.EnableHyperThreadingResponse `xml:"urn:vim25 EnableHyperThreadingResponse,omitempty"` + Res *types.EnableHyperThreadingResponse `xml:"EnableHyperThreadingResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4645,7 +5025,7 @@ func EnableHyperThreading(ctx context.Context, r soap.RoundTripper, req *types.E type EnableMultipathPathBody struct { Req *types.EnableMultipathPath `xml:"urn:vim25 EnableMultipathPath,omitempty"` - Res *types.EnableMultipathPathResponse `xml:"urn:vim25 EnableMultipathPathResponse,omitempty"` + Res *types.EnableMultipathPathResponse `xml:"EnableMultipathPathResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4665,7 +5045,7 @@ func EnableMultipathPath(ctx context.Context, r soap.RoundTripper, req *types.En type EnableNetworkResourceManagementBody struct { Req *types.EnableNetworkResourceManagement `xml:"urn:vim25 EnableNetworkResourceManagement,omitempty"` - Res *types.EnableNetworkResourceManagementResponse `xml:"urn:vim25 EnableNetworkResourceManagementResponse,omitempty"` + Res *types.EnableNetworkResourceManagementResponse `xml:"EnableNetworkResourceManagementResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4685,7 +5065,7 @@ func EnableNetworkResourceManagement(ctx context.Context, r soap.RoundTripper, r type EnableRulesetBody struct { Req *types.EnableRuleset `xml:"urn:vim25 EnableRuleset,omitempty"` - Res *types.EnableRulesetResponse `xml:"urn:vim25 EnableRulesetResponse,omitempty"` + Res *types.EnableRulesetResponse `xml:"EnableRulesetResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4705,7 +5085,7 @@ func EnableRuleset(ctx context.Context, r soap.RoundTripper, req *types.EnableRu type EnableSecondaryVM_TaskBody struct { Req *types.EnableSecondaryVM_Task `xml:"urn:vim25 EnableSecondaryVM_Task,omitempty"` - Res *types.EnableSecondaryVM_TaskResponse `xml:"urn:vim25 EnableSecondaryVM_TaskResponse,omitempty"` + Res *types.EnableSecondaryVM_TaskResponse `xml:"EnableSecondaryVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4725,7 +5105,7 @@ func EnableSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types type EnableSmartCardAuthenticationBody struct { Req *types.EnableSmartCardAuthentication `xml:"urn:vim25 EnableSmartCardAuthentication,omitempty"` - Res *types.EnableSmartCardAuthenticationResponse `xml:"urn:vim25 EnableSmartCardAuthenticationResponse,omitempty"` + Res *types.EnableSmartCardAuthenticationResponse `xml:"EnableSmartCardAuthenticationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4745,7 +5125,7 @@ func EnableSmartCardAuthentication(ctx context.Context, r soap.RoundTripper, req type EnterLockdownModeBody struct { Req *types.EnterLockdownMode `xml:"urn:vim25 EnterLockdownMode,omitempty"` - Res *types.EnterLockdownModeResponse `xml:"urn:vim25 EnterLockdownModeResponse,omitempty"` + Res *types.EnterLockdownModeResponse `xml:"EnterLockdownModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4765,7 +5145,7 @@ func EnterLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.Ente type EnterMaintenanceMode_TaskBody struct { Req *types.EnterMaintenanceMode_Task `xml:"urn:vim25 EnterMaintenanceMode_Task,omitempty"` - Res *types.EnterMaintenanceMode_TaskResponse `xml:"urn:vim25 EnterMaintenanceMode_TaskResponse,omitempty"` + Res *types.EnterMaintenanceMode_TaskResponse `xml:"EnterMaintenanceMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4785,7 +5165,7 @@ func EnterMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, req *ty type EstimateDatabaseSizeBody struct { Req *types.EstimateDatabaseSize `xml:"urn:vim25 EstimateDatabaseSize,omitempty"` - Res *types.EstimateDatabaseSizeResponse `xml:"urn:vim25 EstimateDatabaseSizeResponse,omitempty"` + Res *types.EstimateDatabaseSizeResponse `xml:"EstimateDatabaseSizeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4805,7 +5185,7 @@ func EstimateDatabaseSize(ctx context.Context, r soap.RoundTripper, req *types.E type EstimateStorageForConsolidateSnapshots_TaskBody struct { Req *types.EstimateStorageForConsolidateSnapshots_Task `xml:"urn:vim25 EstimateStorageForConsolidateSnapshots_Task,omitempty"` - Res *types.EstimateStorageForConsolidateSnapshots_TaskResponse `xml:"urn:vim25 EstimateStorageForConsolidateSnapshots_TaskResponse,omitempty"` + Res *types.EstimateStorageForConsolidateSnapshots_TaskResponse `xml:"EstimateStorageForConsolidateSnapshots_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4825,7 +5205,7 @@ func EstimateStorageForConsolidateSnapshots_Task(ctx context.Context, r soap.Rou type EsxAgentHostManagerUpdateConfigBody struct { Req *types.EsxAgentHostManagerUpdateConfig `xml:"urn:vim25 EsxAgentHostManagerUpdateConfig,omitempty"` - Res *types.EsxAgentHostManagerUpdateConfigResponse `xml:"urn:vim25 EsxAgentHostManagerUpdateConfigResponse,omitempty"` + Res *types.EsxAgentHostManagerUpdateConfigResponse `xml:"EsxAgentHostManagerUpdateConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4845,7 +5225,7 @@ func EsxAgentHostManagerUpdateConfig(ctx context.Context, r soap.RoundTripper, r type EvacuateVsanNode_TaskBody struct { Req *types.EvacuateVsanNode_Task `xml:"urn:vim25 EvacuateVsanNode_Task,omitempty"` - Res *types.EvacuateVsanNode_TaskResponse `xml:"urn:vim25 EvacuateVsanNode_TaskResponse,omitempty"` + Res *types.EvacuateVsanNode_TaskResponse `xml:"EvacuateVsanNode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4865,7 +5245,7 @@ func EvacuateVsanNode_Task(ctx context.Context, r soap.RoundTripper, req *types. type EvcManagerBody struct { Req *types.EvcManager `xml:"urn:vim25 EvcManager,omitempty"` - Res *types.EvcManagerResponse `xml:"urn:vim25 EvcManagerResponse,omitempty"` + Res *types.EvcManagerResponse `xml:"EvcManagerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4885,7 +5265,7 @@ func EvcManager(ctx context.Context, r soap.RoundTripper, req *types.EvcManager) type ExecuteHostProfileBody struct { Req *types.ExecuteHostProfile `xml:"urn:vim25 ExecuteHostProfile,omitempty"` - Res *types.ExecuteHostProfileResponse `xml:"urn:vim25 ExecuteHostProfileResponse,omitempty"` + Res *types.ExecuteHostProfileResponse `xml:"ExecuteHostProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4905,7 +5285,7 @@ func ExecuteHostProfile(ctx context.Context, r soap.RoundTripper, req *types.Exe type ExecuteSimpleCommandBody struct { Req *types.ExecuteSimpleCommand `xml:"urn:vim25 ExecuteSimpleCommand,omitempty"` - Res *types.ExecuteSimpleCommandResponse `xml:"urn:vim25 ExecuteSimpleCommandResponse,omitempty"` + Res *types.ExecuteSimpleCommandResponse `xml:"ExecuteSimpleCommandResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4925,7 +5305,7 @@ func ExecuteSimpleCommand(ctx context.Context, r soap.RoundTripper, req *types.E type ExitLockdownModeBody struct { Req *types.ExitLockdownMode `xml:"urn:vim25 ExitLockdownMode,omitempty"` - Res *types.ExitLockdownModeResponse `xml:"urn:vim25 ExitLockdownModeResponse,omitempty"` + Res *types.ExitLockdownModeResponse `xml:"ExitLockdownModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4945,7 +5325,7 @@ func ExitLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.ExitL type ExitMaintenanceMode_TaskBody struct { Req *types.ExitMaintenanceMode_Task `xml:"urn:vim25 ExitMaintenanceMode_Task,omitempty"` - Res *types.ExitMaintenanceMode_TaskResponse `xml:"urn:vim25 ExitMaintenanceMode_TaskResponse,omitempty"` + Res *types.ExitMaintenanceMode_TaskResponse `xml:"ExitMaintenanceMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4965,7 +5345,7 @@ func ExitMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, req *typ type ExpandVmfsDatastoreBody struct { Req *types.ExpandVmfsDatastore `xml:"urn:vim25 ExpandVmfsDatastore,omitempty"` - Res *types.ExpandVmfsDatastoreResponse `xml:"urn:vim25 ExpandVmfsDatastoreResponse,omitempty"` + Res *types.ExpandVmfsDatastoreResponse `xml:"ExpandVmfsDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -4985,7 +5365,7 @@ func ExpandVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.Ex type ExpandVmfsExtentBody struct { Req *types.ExpandVmfsExtent `xml:"urn:vim25 ExpandVmfsExtent,omitempty"` - Res *types.ExpandVmfsExtentResponse `xml:"urn:vim25 ExpandVmfsExtentResponse,omitempty"` + Res *types.ExpandVmfsExtentResponse `xml:"ExpandVmfsExtentResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5005,7 +5385,7 @@ func ExpandVmfsExtent(ctx context.Context, r soap.RoundTripper, req *types.Expan type ExportAnswerFile_TaskBody struct { Req *types.ExportAnswerFile_Task `xml:"urn:vim25 ExportAnswerFile_Task,omitempty"` - Res *types.ExportAnswerFile_TaskResponse `xml:"urn:vim25 ExportAnswerFile_TaskResponse,omitempty"` + Res *types.ExportAnswerFile_TaskResponse `xml:"ExportAnswerFile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5025,7 +5405,7 @@ func ExportAnswerFile_Task(ctx context.Context, r soap.RoundTripper, req *types. type ExportProfileBody struct { Req *types.ExportProfile `xml:"urn:vim25 ExportProfile,omitempty"` - Res *types.ExportProfileResponse `xml:"urn:vim25 ExportProfileResponse,omitempty"` + Res *types.ExportProfileResponse `xml:"ExportProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5045,7 +5425,7 @@ func ExportProfile(ctx context.Context, r soap.RoundTripper, req *types.ExportPr type ExportSnapshotBody struct { Req *types.ExportSnapshot `xml:"urn:vim25 ExportSnapshot,omitempty"` - Res *types.ExportSnapshotResponse `xml:"urn:vim25 ExportSnapshotResponse,omitempty"` + Res *types.ExportSnapshotResponse `xml:"ExportSnapshotResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5065,7 +5445,7 @@ func ExportSnapshot(ctx context.Context, r soap.RoundTripper, req *types.ExportS type ExportVAppBody struct { Req *types.ExportVApp `xml:"urn:vim25 ExportVApp,omitempty"` - Res *types.ExportVAppResponse `xml:"urn:vim25 ExportVAppResponse,omitempty"` + Res *types.ExportVAppResponse `xml:"ExportVAppResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5085,7 +5465,7 @@ func ExportVApp(ctx context.Context, r soap.RoundTripper, req *types.ExportVApp) type ExportVmBody struct { Req *types.ExportVm `xml:"urn:vim25 ExportVm,omitempty"` - Res *types.ExportVmResponse `xml:"urn:vim25 ExportVmResponse,omitempty"` + Res *types.ExportVmResponse `xml:"ExportVmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5105,7 +5485,7 @@ func ExportVm(ctx context.Context, r soap.RoundTripper, req *types.ExportVm) (*t type ExtendDisk_TaskBody struct { Req *types.ExtendDisk_Task `xml:"urn:vim25 ExtendDisk_Task,omitempty"` - Res *types.ExtendDisk_TaskResponse `xml:"urn:vim25 ExtendDisk_TaskResponse,omitempty"` + Res *types.ExtendDisk_TaskResponse `xml:"ExtendDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5123,9 +5503,29 @@ func ExtendDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Extend return resBody.Res, nil } +type ExtendHCI_TaskBody struct { + Req *types.ExtendHCI_Task `xml:"urn:vim25 ExtendHCI_Task,omitempty"` + Res *types.ExtendHCI_TaskResponse `xml:"ExtendHCI_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ExtendHCI_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func ExtendHCI_Task(ctx context.Context, r soap.RoundTripper, req *types.ExtendHCI_Task) (*types.ExtendHCI_TaskResponse, error) { + var reqBody, resBody ExtendHCI_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type ExtendVffsBody struct { Req *types.ExtendVffs `xml:"urn:vim25 ExtendVffs,omitempty"` - Res *types.ExtendVffsResponse `xml:"urn:vim25 ExtendVffsResponse,omitempty"` + Res *types.ExtendVffsResponse `xml:"ExtendVffsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5145,7 +5545,7 @@ func ExtendVffs(ctx context.Context, r soap.RoundTripper, req *types.ExtendVffs) type ExtendVirtualDisk_TaskBody struct { Req *types.ExtendVirtualDisk_Task `xml:"urn:vim25 ExtendVirtualDisk_Task,omitempty"` - Res *types.ExtendVirtualDisk_TaskResponse `xml:"urn:vim25 ExtendVirtualDisk_TaskResponse,omitempty"` + Res *types.ExtendVirtualDisk_TaskResponse `xml:"ExtendVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5165,7 +5565,7 @@ func ExtendVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types type ExtendVmfsDatastoreBody struct { Req *types.ExtendVmfsDatastore `xml:"urn:vim25 ExtendVmfsDatastore,omitempty"` - Res *types.ExtendVmfsDatastoreResponse `xml:"urn:vim25 ExtendVmfsDatastoreResponse,omitempty"` + Res *types.ExtendVmfsDatastoreResponse `xml:"ExtendVmfsDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5185,7 +5585,7 @@ func ExtendVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.Ex type ExtractOvfEnvironmentBody struct { Req *types.ExtractOvfEnvironment `xml:"urn:vim25 ExtractOvfEnvironment,omitempty"` - Res *types.ExtractOvfEnvironmentResponse `xml:"urn:vim25 ExtractOvfEnvironmentResponse,omitempty"` + Res *types.ExtractOvfEnvironmentResponse `xml:"ExtractOvfEnvironmentResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5205,7 +5605,7 @@ func ExtractOvfEnvironment(ctx context.Context, r soap.RoundTripper, req *types. type FetchDVPortKeysBody struct { Req *types.FetchDVPortKeys `xml:"urn:vim25 FetchDVPortKeys,omitempty"` - Res *types.FetchDVPortKeysResponse `xml:"urn:vim25 FetchDVPortKeysResponse,omitempty"` + Res *types.FetchDVPortKeysResponse `xml:"FetchDVPortKeysResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5225,7 +5625,7 @@ func FetchDVPortKeys(ctx context.Context, r soap.RoundTripper, req *types.FetchD type FetchDVPortsBody struct { Req *types.FetchDVPorts `xml:"urn:vim25 FetchDVPorts,omitempty"` - Res *types.FetchDVPortsResponse `xml:"urn:vim25 FetchDVPortsResponse,omitempty"` + Res *types.FetchDVPortsResponse `xml:"FetchDVPortsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5245,7 +5645,7 @@ func FetchDVPorts(ctx context.Context, r soap.RoundTripper, req *types.FetchDVPo type FetchSystemEventLogBody struct { Req *types.FetchSystemEventLog `xml:"urn:vim25 FetchSystemEventLog,omitempty"` - Res *types.FetchSystemEventLogResponse `xml:"urn:vim25 FetchSystemEventLogResponse,omitempty"` + Res *types.FetchSystemEventLogResponse `xml:"FetchSystemEventLogResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5265,7 +5665,7 @@ func FetchSystemEventLog(ctx context.Context, r soap.RoundTripper, req *types.Fe type FetchUserPrivilegeOnEntitiesBody struct { Req *types.FetchUserPrivilegeOnEntities `xml:"urn:vim25 FetchUserPrivilegeOnEntities,omitempty"` - Res *types.FetchUserPrivilegeOnEntitiesResponse `xml:"urn:vim25 FetchUserPrivilegeOnEntitiesResponse,omitempty"` + Res *types.FetchUserPrivilegeOnEntitiesResponse `xml:"FetchUserPrivilegeOnEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5285,7 +5685,7 @@ func FetchUserPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req type FindAllByDnsNameBody struct { Req *types.FindAllByDnsName `xml:"urn:vim25 FindAllByDnsName,omitempty"` - Res *types.FindAllByDnsNameResponse `xml:"urn:vim25 FindAllByDnsNameResponse,omitempty"` + Res *types.FindAllByDnsNameResponse `xml:"FindAllByDnsNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5305,7 +5705,7 @@ func FindAllByDnsName(ctx context.Context, r soap.RoundTripper, req *types.FindA type FindAllByIpBody struct { Req *types.FindAllByIp `xml:"urn:vim25 FindAllByIp,omitempty"` - Res *types.FindAllByIpResponse `xml:"urn:vim25 FindAllByIpResponse,omitempty"` + Res *types.FindAllByIpResponse `xml:"FindAllByIpResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5325,7 +5725,7 @@ func FindAllByIp(ctx context.Context, r soap.RoundTripper, req *types.FindAllByI type FindAllByUuidBody struct { Req *types.FindAllByUuid `xml:"urn:vim25 FindAllByUuid,omitempty"` - Res *types.FindAllByUuidResponse `xml:"urn:vim25 FindAllByUuidResponse,omitempty"` + Res *types.FindAllByUuidResponse `xml:"FindAllByUuidResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5345,7 +5745,7 @@ func FindAllByUuid(ctx context.Context, r soap.RoundTripper, req *types.FindAllB type FindAssociatedProfileBody struct { Req *types.FindAssociatedProfile `xml:"urn:vim25 FindAssociatedProfile,omitempty"` - Res *types.FindAssociatedProfileResponse `xml:"urn:vim25 FindAssociatedProfileResponse,omitempty"` + Res *types.FindAssociatedProfileResponse `xml:"FindAssociatedProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5365,7 +5765,7 @@ func FindAssociatedProfile(ctx context.Context, r soap.RoundTripper, req *types. type FindByDatastorePathBody struct { Req *types.FindByDatastorePath `xml:"urn:vim25 FindByDatastorePath,omitempty"` - Res *types.FindByDatastorePathResponse `xml:"urn:vim25 FindByDatastorePathResponse,omitempty"` + Res *types.FindByDatastorePathResponse `xml:"FindByDatastorePathResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5385,7 +5785,7 @@ func FindByDatastorePath(ctx context.Context, r soap.RoundTripper, req *types.Fi type FindByDnsNameBody struct { Req *types.FindByDnsName `xml:"urn:vim25 FindByDnsName,omitempty"` - Res *types.FindByDnsNameResponse `xml:"urn:vim25 FindByDnsNameResponse,omitempty"` + Res *types.FindByDnsNameResponse `xml:"FindByDnsNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5405,7 +5805,7 @@ func FindByDnsName(ctx context.Context, r soap.RoundTripper, req *types.FindByDn type FindByInventoryPathBody struct { Req *types.FindByInventoryPath `xml:"urn:vim25 FindByInventoryPath,omitempty"` - Res *types.FindByInventoryPathResponse `xml:"urn:vim25 FindByInventoryPathResponse,omitempty"` + Res *types.FindByInventoryPathResponse `xml:"FindByInventoryPathResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5425,7 +5825,7 @@ func FindByInventoryPath(ctx context.Context, r soap.RoundTripper, req *types.Fi type FindByIpBody struct { Req *types.FindByIp `xml:"urn:vim25 FindByIp,omitempty"` - Res *types.FindByIpResponse `xml:"urn:vim25 FindByIpResponse,omitempty"` + Res *types.FindByIpResponse `xml:"FindByIpResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5445,7 +5845,7 @@ func FindByIp(ctx context.Context, r soap.RoundTripper, req *types.FindByIp) (*t type FindByUuidBody struct { Req *types.FindByUuid `xml:"urn:vim25 FindByUuid,omitempty"` - Res *types.FindByUuidResponse `xml:"urn:vim25 FindByUuidResponse,omitempty"` + Res *types.FindByUuidResponse `xml:"FindByUuidResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5465,7 +5865,7 @@ func FindByUuid(ctx context.Context, r soap.RoundTripper, req *types.FindByUuid) type FindChildBody struct { Req *types.FindChild `xml:"urn:vim25 FindChild,omitempty"` - Res *types.FindChildResponse `xml:"urn:vim25 FindChildResponse,omitempty"` + Res *types.FindChildResponse `xml:"FindChildResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5485,7 +5885,7 @@ func FindChild(ctx context.Context, r soap.RoundTripper, req *types.FindChild) ( type FindExtensionBody struct { Req *types.FindExtension `xml:"urn:vim25 FindExtension,omitempty"` - Res *types.FindExtensionResponse `xml:"urn:vim25 FindExtensionResponse,omitempty"` + Res *types.FindExtensionResponse `xml:"FindExtensionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5505,7 +5905,7 @@ func FindExtension(ctx context.Context, r soap.RoundTripper, req *types.FindExte type FindRulesForVmBody struct { Req *types.FindRulesForVm `xml:"urn:vim25 FindRulesForVm,omitempty"` - Res *types.FindRulesForVmResponse `xml:"urn:vim25 FindRulesForVmResponse,omitempty"` + Res *types.FindRulesForVmResponse `xml:"FindRulesForVmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5525,7 +5925,7 @@ func FindRulesForVm(ctx context.Context, r soap.RoundTripper, req *types.FindRul type FormatVffsBody struct { Req *types.FormatVffs `xml:"urn:vim25 FormatVffs,omitempty"` - Res *types.FormatVffsResponse `xml:"urn:vim25 FormatVffsResponse,omitempty"` + Res *types.FormatVffsResponse `xml:"FormatVffsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5545,7 +5945,7 @@ func FormatVffs(ctx context.Context, r soap.RoundTripper, req *types.FormatVffs) type FormatVmfsBody struct { Req *types.FormatVmfs `xml:"urn:vim25 FormatVmfs,omitempty"` - Res *types.FormatVmfsResponse `xml:"urn:vim25 FormatVmfsResponse,omitempty"` + Res *types.FormatVmfsResponse `xml:"FormatVmfsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5565,7 +5965,7 @@ func FormatVmfs(ctx context.Context, r soap.RoundTripper, req *types.FormatVmfs) type GenerateCertificateSigningRequestBody struct { Req *types.GenerateCertificateSigningRequest `xml:"urn:vim25 GenerateCertificateSigningRequest,omitempty"` - Res *types.GenerateCertificateSigningRequestResponse `xml:"urn:vim25 GenerateCertificateSigningRequestResponse,omitempty"` + Res *types.GenerateCertificateSigningRequestResponse `xml:"GenerateCertificateSigningRequestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5585,7 +5985,7 @@ func GenerateCertificateSigningRequest(ctx context.Context, r soap.RoundTripper, type GenerateCertificateSigningRequestByDnBody struct { Req *types.GenerateCertificateSigningRequestByDn `xml:"urn:vim25 GenerateCertificateSigningRequestByDn,omitempty"` - Res *types.GenerateCertificateSigningRequestByDnResponse `xml:"urn:vim25 GenerateCertificateSigningRequestByDnResponse,omitempty"` + Res *types.GenerateCertificateSigningRequestByDnResponse `xml:"GenerateCertificateSigningRequestByDnResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5605,7 +6005,7 @@ func GenerateCertificateSigningRequestByDn(ctx context.Context, r soap.RoundTrip type GenerateClientCsrBody struct { Req *types.GenerateClientCsr `xml:"urn:vim25 GenerateClientCsr,omitempty"` - Res *types.GenerateClientCsrResponse `xml:"urn:vim25 GenerateClientCsrResponse,omitempty"` + Res *types.GenerateClientCsrResponse `xml:"GenerateClientCsrResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5625,7 +6025,7 @@ func GenerateClientCsr(ctx context.Context, r soap.RoundTripper, req *types.Gene type GenerateConfigTaskListBody struct { Req *types.GenerateConfigTaskList `xml:"urn:vim25 GenerateConfigTaskList,omitempty"` - Res *types.GenerateConfigTaskListResponse `xml:"urn:vim25 GenerateConfigTaskListResponse,omitempty"` + Res *types.GenerateConfigTaskListResponse `xml:"GenerateConfigTaskListResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5645,7 +6045,7 @@ func GenerateConfigTaskList(ctx context.Context, r soap.RoundTripper, req *types type GenerateHostConfigTaskSpec_TaskBody struct { Req *types.GenerateHostConfigTaskSpec_Task `xml:"urn:vim25 GenerateHostConfigTaskSpec_Task,omitempty"` - Res *types.GenerateHostConfigTaskSpec_TaskResponse `xml:"urn:vim25 GenerateHostConfigTaskSpec_TaskResponse,omitempty"` + Res *types.GenerateHostConfigTaskSpec_TaskResponse `xml:"GenerateHostConfigTaskSpec_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5665,7 +6065,7 @@ func GenerateHostConfigTaskSpec_Task(ctx context.Context, r soap.RoundTripper, r type GenerateHostProfileTaskList_TaskBody struct { Req *types.GenerateHostProfileTaskList_Task `xml:"urn:vim25 GenerateHostProfileTaskList_Task,omitempty"` - Res *types.GenerateHostProfileTaskList_TaskResponse `xml:"urn:vim25 GenerateHostProfileTaskList_TaskResponse,omitempty"` + Res *types.GenerateHostProfileTaskList_TaskResponse `xml:"GenerateHostProfileTaskList_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5685,7 +6085,7 @@ func GenerateHostProfileTaskList_Task(ctx context.Context, r soap.RoundTripper, type GenerateKeyBody struct { Req *types.GenerateKey `xml:"urn:vim25 GenerateKey,omitempty"` - Res *types.GenerateKeyResponse `xml:"urn:vim25 GenerateKeyResponse,omitempty"` + Res *types.GenerateKeyResponse `xml:"GenerateKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5705,7 +6105,7 @@ func GenerateKey(ctx context.Context, r soap.RoundTripper, req *types.GenerateKe type GenerateLogBundles_TaskBody struct { Req *types.GenerateLogBundles_Task `xml:"urn:vim25 GenerateLogBundles_Task,omitempty"` - Res *types.GenerateLogBundles_TaskResponse `xml:"urn:vim25 GenerateLogBundles_TaskResponse,omitempty"` + Res *types.GenerateLogBundles_TaskResponse `xml:"GenerateLogBundles_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5725,7 +6125,7 @@ func GenerateLogBundles_Task(ctx context.Context, r soap.RoundTripper, req *type type GenerateSelfSignedClientCertBody struct { Req *types.GenerateSelfSignedClientCert `xml:"urn:vim25 GenerateSelfSignedClientCert,omitempty"` - Res *types.GenerateSelfSignedClientCertResponse `xml:"urn:vim25 GenerateSelfSignedClientCertResponse,omitempty"` + Res *types.GenerateSelfSignedClientCertResponse `xml:"GenerateSelfSignedClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5745,7 +6145,7 @@ func GenerateSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req type GetAlarmBody struct { Req *types.GetAlarm `xml:"urn:vim25 GetAlarm,omitempty"` - Res *types.GetAlarmResponse `xml:"urn:vim25 GetAlarmResponse,omitempty"` + Res *types.GetAlarmResponse `xml:"GetAlarmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5765,7 +6165,7 @@ func GetAlarm(ctx context.Context, r soap.RoundTripper, req *types.GetAlarm) (*t type GetAlarmStateBody struct { Req *types.GetAlarmState `xml:"urn:vim25 GetAlarmState,omitempty"` - Res *types.GetAlarmStateResponse `xml:"urn:vim25 GetAlarmStateResponse,omitempty"` + Res *types.GetAlarmStateResponse `xml:"GetAlarmStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5785,7 +6185,7 @@ func GetAlarmState(ctx context.Context, r soap.RoundTripper, req *types.GetAlarm type GetCustomizationSpecBody struct { Req *types.GetCustomizationSpec `xml:"urn:vim25 GetCustomizationSpec,omitempty"` - Res *types.GetCustomizationSpecResponse `xml:"urn:vim25 GetCustomizationSpecResponse,omitempty"` + Res *types.GetCustomizationSpecResponse `xml:"GetCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5803,9 +6203,29 @@ func GetCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.G return resBody.Res, nil } +type GetDefaultKmsClusterBody struct { + Req *types.GetDefaultKmsCluster `xml:"urn:vim25 GetDefaultKmsCluster,omitempty"` + Res *types.GetDefaultKmsClusterResponse `xml:"GetDefaultKmsClusterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *GetDefaultKmsClusterBody) Fault() *soap.Fault { return b.Fault_ } + +func GetDefaultKmsCluster(ctx context.Context, r soap.RoundTripper, req *types.GetDefaultKmsCluster) (*types.GetDefaultKmsClusterResponse, error) { + var reqBody, resBody GetDefaultKmsClusterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type GetPublicKeyBody struct { Req *types.GetPublicKey `xml:"urn:vim25 GetPublicKey,omitempty"` - Res *types.GetPublicKeyResponse `xml:"urn:vim25 GetPublicKeyResponse,omitempty"` + Res *types.GetPublicKeyResponse `xml:"GetPublicKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5825,7 +6245,7 @@ func GetPublicKey(ctx context.Context, r soap.RoundTripper, req *types.GetPublic type GetResourceUsageBody struct { Req *types.GetResourceUsage `xml:"urn:vim25 GetResourceUsage,omitempty"` - Res *types.GetResourceUsageResponse `xml:"urn:vim25 GetResourceUsageResponse,omitempty"` + Res *types.GetResourceUsageResponse `xml:"GetResourceUsageResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5843,9 +6263,29 @@ func GetResourceUsage(ctx context.Context, r soap.RoundTripper, req *types.GetRe return resBody.Res, nil } +type GetSiteInfoBody struct { + Req *types.GetSiteInfo `xml:"urn:vim25 GetSiteInfo,omitempty"` + Res *types.GetSiteInfoResponse `xml:"GetSiteInfoResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *GetSiteInfoBody) Fault() *soap.Fault { return b.Fault_ } + +func GetSiteInfo(ctx context.Context, r soap.RoundTripper, req *types.GetSiteInfo) (*types.GetSiteInfoResponse, error) { + var reqBody, resBody GetSiteInfoBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type GetVchaClusterHealthBody struct { Req *types.GetVchaClusterHealth `xml:"urn:vim25 GetVchaClusterHealth,omitempty"` - Res *types.GetVchaClusterHealthResponse `xml:"urn:vim25 GetVchaClusterHealthResponse,omitempty"` + Res *types.GetVchaClusterHealthResponse `xml:"GetVchaClusterHealthResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5865,7 +6305,7 @@ func GetVchaClusterHealth(ctx context.Context, r soap.RoundTripper, req *types.G type GetVsanObjExtAttrsBody struct { Req *types.GetVsanObjExtAttrs `xml:"urn:vim25 GetVsanObjExtAttrs,omitempty"` - Res *types.GetVsanObjExtAttrsResponse `xml:"urn:vim25 GetVsanObjExtAttrsResponse,omitempty"` + Res *types.GetVsanObjExtAttrsResponse `xml:"GetVsanObjExtAttrsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5885,7 +6325,7 @@ func GetVsanObjExtAttrs(ctx context.Context, r soap.RoundTripper, req *types.Get type HasMonitoredEntityBody struct { Req *types.HasMonitoredEntity `xml:"urn:vim25 HasMonitoredEntity,omitempty"` - Res *types.HasMonitoredEntityResponse `xml:"urn:vim25 HasMonitoredEntityResponse,omitempty"` + Res *types.HasMonitoredEntityResponse `xml:"HasMonitoredEntityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5905,7 +6345,7 @@ func HasMonitoredEntity(ctx context.Context, r soap.RoundTripper, req *types.Has type HasPrivilegeOnEntitiesBody struct { Req *types.HasPrivilegeOnEntities `xml:"urn:vim25 HasPrivilegeOnEntities,omitempty"` - Res *types.HasPrivilegeOnEntitiesResponse `xml:"urn:vim25 HasPrivilegeOnEntitiesResponse,omitempty"` + Res *types.HasPrivilegeOnEntitiesResponse `xml:"HasPrivilegeOnEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5925,7 +6365,7 @@ func HasPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req *types type HasPrivilegeOnEntityBody struct { Req *types.HasPrivilegeOnEntity `xml:"urn:vim25 HasPrivilegeOnEntity,omitempty"` - Res *types.HasPrivilegeOnEntityResponse `xml:"urn:vim25 HasPrivilegeOnEntityResponse,omitempty"` + Res *types.HasPrivilegeOnEntityResponse `xml:"HasPrivilegeOnEntityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5945,7 +6385,7 @@ func HasPrivilegeOnEntity(ctx context.Context, r soap.RoundTripper, req *types.H type HasProviderBody struct { Req *types.HasProvider `xml:"urn:vim25 HasProvider,omitempty"` - Res *types.HasProviderResponse `xml:"urn:vim25 HasProviderResponse,omitempty"` + Res *types.HasProviderResponse `xml:"HasProviderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5965,7 +6405,7 @@ func HasProvider(ctx context.Context, r soap.RoundTripper, req *types.HasProvide type HasUserPrivilegeOnEntitiesBody struct { Req *types.HasUserPrivilegeOnEntities `xml:"urn:vim25 HasUserPrivilegeOnEntities,omitempty"` - Res *types.HasUserPrivilegeOnEntitiesResponse `xml:"urn:vim25 HasUserPrivilegeOnEntitiesResponse,omitempty"` + Res *types.HasUserPrivilegeOnEntitiesResponse `xml:"HasUserPrivilegeOnEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -5985,7 +6425,7 @@ func HasUserPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req *t type HostClearVStorageObjectControlFlagsBody struct { Req *types.HostClearVStorageObjectControlFlags `xml:"urn:vim25 HostClearVStorageObjectControlFlags,omitempty"` - Res *types.HostClearVStorageObjectControlFlagsResponse `xml:"urn:vim25 HostClearVStorageObjectControlFlagsResponse,omitempty"` + Res *types.HostClearVStorageObjectControlFlagsResponse `xml:"HostClearVStorageObjectControlFlagsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6005,7 +6445,7 @@ func HostClearVStorageObjectControlFlags(ctx context.Context, r soap.RoundTrippe type HostCloneVStorageObject_TaskBody struct { Req *types.HostCloneVStorageObject_Task `xml:"urn:vim25 HostCloneVStorageObject_Task,omitempty"` - Res *types.HostCloneVStorageObject_TaskResponse `xml:"urn:vim25 HostCloneVStorageObject_TaskResponse,omitempty"` + Res *types.HostCloneVStorageObject_TaskResponse `xml:"HostCloneVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6025,7 +6465,7 @@ func HostCloneVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req type HostConfigVFlashCacheBody struct { Req *types.HostConfigVFlashCache `xml:"urn:vim25 HostConfigVFlashCache,omitempty"` - Res *types.HostConfigVFlashCacheResponse `xml:"urn:vim25 HostConfigVFlashCacheResponse,omitempty"` + Res *types.HostConfigVFlashCacheResponse `xml:"HostConfigVFlashCacheResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6045,7 +6485,7 @@ func HostConfigVFlashCache(ctx context.Context, r soap.RoundTripper, req *types. type HostConfigureVFlashResourceBody struct { Req *types.HostConfigureVFlashResource `xml:"urn:vim25 HostConfigureVFlashResource,omitempty"` - Res *types.HostConfigureVFlashResourceResponse `xml:"urn:vim25 HostConfigureVFlashResourceResponse,omitempty"` + Res *types.HostConfigureVFlashResourceResponse `xml:"HostConfigureVFlashResourceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6065,7 +6505,7 @@ func HostConfigureVFlashResource(ctx context.Context, r soap.RoundTripper, req * type HostCreateDisk_TaskBody struct { Req *types.HostCreateDisk_Task `xml:"urn:vim25 HostCreateDisk_Task,omitempty"` - Res *types.HostCreateDisk_TaskResponse `xml:"urn:vim25 HostCreateDisk_TaskResponse,omitempty"` + Res *types.HostCreateDisk_TaskResponse `xml:"HostCreateDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6085,7 +6525,7 @@ func HostCreateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Ho type HostDeleteVStorageObject_TaskBody struct { Req *types.HostDeleteVStorageObject_Task `xml:"urn:vim25 HostDeleteVStorageObject_Task,omitempty"` - Res *types.HostDeleteVStorageObject_TaskResponse `xml:"urn:vim25 HostDeleteVStorageObject_TaskResponse,omitempty"` + Res *types.HostDeleteVStorageObject_TaskResponse `xml:"HostDeleteVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6105,7 +6545,7 @@ func HostDeleteVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req type HostExtendDisk_TaskBody struct { Req *types.HostExtendDisk_Task `xml:"urn:vim25 HostExtendDisk_Task,omitempty"` - Res *types.HostExtendDisk_TaskResponse `xml:"urn:vim25 HostExtendDisk_TaskResponse,omitempty"` + Res *types.HostExtendDisk_TaskResponse `xml:"HostExtendDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6125,7 +6565,7 @@ func HostExtendDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Ho type HostGetVFlashModuleDefaultConfigBody struct { Req *types.HostGetVFlashModuleDefaultConfig `xml:"urn:vim25 HostGetVFlashModuleDefaultConfig,omitempty"` - Res *types.HostGetVFlashModuleDefaultConfigResponse `xml:"urn:vim25 HostGetVFlashModuleDefaultConfigResponse,omitempty"` + Res *types.HostGetVFlashModuleDefaultConfigResponse `xml:"HostGetVFlashModuleDefaultConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6145,7 +6585,7 @@ func HostGetVFlashModuleDefaultConfig(ctx context.Context, r soap.RoundTripper, type HostImageConfigGetAcceptanceBody struct { Req *types.HostImageConfigGetAcceptance `xml:"urn:vim25 HostImageConfigGetAcceptance,omitempty"` - Res *types.HostImageConfigGetAcceptanceResponse `xml:"urn:vim25 HostImageConfigGetAcceptanceResponse,omitempty"` + Res *types.HostImageConfigGetAcceptanceResponse `xml:"HostImageConfigGetAcceptanceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6165,7 +6605,7 @@ func HostImageConfigGetAcceptance(ctx context.Context, r soap.RoundTripper, req type HostImageConfigGetProfileBody struct { Req *types.HostImageConfigGetProfile `xml:"urn:vim25 HostImageConfigGetProfile,omitempty"` - Res *types.HostImageConfigGetProfileResponse `xml:"urn:vim25 HostImageConfigGetProfileResponse,omitempty"` + Res *types.HostImageConfigGetProfileResponse `xml:"HostImageConfigGetProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6185,7 +6625,7 @@ func HostImageConfigGetProfile(ctx context.Context, r soap.RoundTripper, req *ty type HostInflateDisk_TaskBody struct { Req *types.HostInflateDisk_Task `xml:"urn:vim25 HostInflateDisk_Task,omitempty"` - Res *types.HostInflateDisk_TaskResponse `xml:"urn:vim25 HostInflateDisk_TaskResponse,omitempty"` + Res *types.HostInflateDisk_TaskResponse `xml:"HostInflateDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6205,7 +6645,7 @@ func HostInflateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.H type HostListVStorageObjectBody struct { Req *types.HostListVStorageObject `xml:"urn:vim25 HostListVStorageObject,omitempty"` - Res *types.HostListVStorageObjectResponse `xml:"urn:vim25 HostListVStorageObjectResponse,omitempty"` + Res *types.HostListVStorageObjectResponse `xml:"HostListVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6225,7 +6665,7 @@ func HostListVStorageObject(ctx context.Context, r soap.RoundTripper, req *types type HostProfileResetValidationStateBody struct { Req *types.HostProfileResetValidationState `xml:"urn:vim25 HostProfileResetValidationState,omitempty"` - Res *types.HostProfileResetValidationStateResponse `xml:"urn:vim25 HostProfileResetValidationStateResponse,omitempty"` + Res *types.HostProfileResetValidationStateResponse `xml:"HostProfileResetValidationStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6245,7 +6685,7 @@ func HostProfileResetValidationState(ctx context.Context, r soap.RoundTripper, r type HostReconcileDatastoreInventory_TaskBody struct { Req *types.HostReconcileDatastoreInventory_Task `xml:"urn:vim25 HostReconcileDatastoreInventory_Task,omitempty"` - Res *types.HostReconcileDatastoreInventory_TaskResponse `xml:"urn:vim25 HostReconcileDatastoreInventory_TaskResponse,omitempty"` + Res *types.HostReconcileDatastoreInventory_TaskResponse `xml:"HostReconcileDatastoreInventory_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6265,7 +6705,7 @@ func HostReconcileDatastoreInventory_Task(ctx context.Context, r soap.RoundTripp type HostRegisterDiskBody struct { Req *types.HostRegisterDisk `xml:"urn:vim25 HostRegisterDisk,omitempty"` - Res *types.HostRegisterDiskResponse `xml:"urn:vim25 HostRegisterDiskResponse,omitempty"` + Res *types.HostRegisterDiskResponse `xml:"HostRegisterDiskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6285,7 +6725,7 @@ func HostRegisterDisk(ctx context.Context, r soap.RoundTripper, req *types.HostR type HostRelocateVStorageObject_TaskBody struct { Req *types.HostRelocateVStorageObject_Task `xml:"urn:vim25 HostRelocateVStorageObject_Task,omitempty"` - Res *types.HostRelocateVStorageObject_TaskResponse `xml:"urn:vim25 HostRelocateVStorageObject_TaskResponse,omitempty"` + Res *types.HostRelocateVStorageObject_TaskResponse `xml:"HostRelocateVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6305,7 +6745,7 @@ func HostRelocateVStorageObject_Task(ctx context.Context, r soap.RoundTripper, r type HostRemoveVFlashResourceBody struct { Req *types.HostRemoveVFlashResource `xml:"urn:vim25 HostRemoveVFlashResource,omitempty"` - Res *types.HostRemoveVFlashResourceResponse `xml:"urn:vim25 HostRemoveVFlashResourceResponse,omitempty"` + Res *types.HostRemoveVFlashResourceResponse `xml:"HostRemoveVFlashResourceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6325,7 +6765,7 @@ func HostRemoveVFlashResource(ctx context.Context, r soap.RoundTripper, req *typ type HostRenameVStorageObjectBody struct { Req *types.HostRenameVStorageObject `xml:"urn:vim25 HostRenameVStorageObject,omitempty"` - Res *types.HostRenameVStorageObjectResponse `xml:"urn:vim25 HostRenameVStorageObjectResponse,omitempty"` + Res *types.HostRenameVStorageObjectResponse `xml:"HostRenameVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6345,7 +6785,7 @@ func HostRenameVStorageObject(ctx context.Context, r soap.RoundTripper, req *typ type HostRetrieveVStorageInfrastructureObjectPolicyBody struct { Req *types.HostRetrieveVStorageInfrastructureObjectPolicy `xml:"urn:vim25 HostRetrieveVStorageInfrastructureObjectPolicy,omitempty"` - Res *types.HostRetrieveVStorageInfrastructureObjectPolicyResponse `xml:"urn:vim25 HostRetrieveVStorageInfrastructureObjectPolicyResponse,omitempty"` + Res *types.HostRetrieveVStorageInfrastructureObjectPolicyResponse `xml:"HostRetrieveVStorageInfrastructureObjectPolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6365,7 +6805,7 @@ func HostRetrieveVStorageInfrastructureObjectPolicy(ctx context.Context, r soap. type HostRetrieveVStorageObjectBody struct { Req *types.HostRetrieveVStorageObject `xml:"urn:vim25 HostRetrieveVStorageObject,omitempty"` - Res *types.HostRetrieveVStorageObjectResponse `xml:"urn:vim25 HostRetrieveVStorageObjectResponse,omitempty"` + Res *types.HostRetrieveVStorageObjectResponse `xml:"HostRetrieveVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6383,9 +6823,49 @@ func HostRetrieveVStorageObject(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type HostRetrieveVStorageObjectMetadataBody struct { + Req *types.HostRetrieveVStorageObjectMetadata `xml:"urn:vim25 HostRetrieveVStorageObjectMetadata,omitempty"` + Res *types.HostRetrieveVStorageObjectMetadataResponse `xml:"HostRetrieveVStorageObjectMetadataResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *HostRetrieveVStorageObjectMetadataBody) Fault() *soap.Fault { return b.Fault_ } + +func HostRetrieveVStorageObjectMetadata(ctx context.Context, r soap.RoundTripper, req *types.HostRetrieveVStorageObjectMetadata) (*types.HostRetrieveVStorageObjectMetadataResponse, error) { + var reqBody, resBody HostRetrieveVStorageObjectMetadataBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type HostRetrieveVStorageObjectMetadataValueBody struct { + Req *types.HostRetrieveVStorageObjectMetadataValue `xml:"urn:vim25 HostRetrieveVStorageObjectMetadataValue,omitempty"` + Res *types.HostRetrieveVStorageObjectMetadataValueResponse `xml:"HostRetrieveVStorageObjectMetadataValueResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *HostRetrieveVStorageObjectMetadataValueBody) Fault() *soap.Fault { return b.Fault_ } + +func HostRetrieveVStorageObjectMetadataValue(ctx context.Context, r soap.RoundTripper, req *types.HostRetrieveVStorageObjectMetadataValue) (*types.HostRetrieveVStorageObjectMetadataValueResponse, error) { + var reqBody, resBody HostRetrieveVStorageObjectMetadataValueBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type HostRetrieveVStorageObjectStateBody struct { Req *types.HostRetrieveVStorageObjectState `xml:"urn:vim25 HostRetrieveVStorageObjectState,omitempty"` - Res *types.HostRetrieveVStorageObjectStateResponse `xml:"urn:vim25 HostRetrieveVStorageObjectStateResponse,omitempty"` + Res *types.HostRetrieveVStorageObjectStateResponse `xml:"HostRetrieveVStorageObjectStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6405,7 +6885,7 @@ func HostRetrieveVStorageObjectState(ctx context.Context, r soap.RoundTripper, r type HostScheduleReconcileDatastoreInventoryBody struct { Req *types.HostScheduleReconcileDatastoreInventory `xml:"urn:vim25 HostScheduleReconcileDatastoreInventory,omitempty"` - Res *types.HostScheduleReconcileDatastoreInventoryResponse `xml:"urn:vim25 HostScheduleReconcileDatastoreInventoryResponse,omitempty"` + Res *types.HostScheduleReconcileDatastoreInventoryResponse `xml:"HostScheduleReconcileDatastoreInventoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6425,7 +6905,7 @@ func HostScheduleReconcileDatastoreInventory(ctx context.Context, r soap.RoundTr type HostSetVStorageObjectControlFlagsBody struct { Req *types.HostSetVStorageObjectControlFlags `xml:"urn:vim25 HostSetVStorageObjectControlFlags,omitempty"` - Res *types.HostSetVStorageObjectControlFlagsResponse `xml:"urn:vim25 HostSetVStorageObjectControlFlagsResponse,omitempty"` + Res *types.HostSetVStorageObjectControlFlagsResponse `xml:"HostSetVStorageObjectControlFlagsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6445,7 +6925,7 @@ func HostSetVStorageObjectControlFlags(ctx context.Context, r soap.RoundTripper, type HostSpecGetUpdatedHostsBody struct { Req *types.HostSpecGetUpdatedHosts `xml:"urn:vim25 HostSpecGetUpdatedHosts,omitempty"` - Res *types.HostSpecGetUpdatedHostsResponse `xml:"urn:vim25 HostSpecGetUpdatedHostsResponse,omitempty"` + Res *types.HostSpecGetUpdatedHostsResponse `xml:"HostSpecGetUpdatedHostsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6463,9 +6943,29 @@ func HostSpecGetUpdatedHosts(ctx context.Context, r soap.RoundTripper, req *type return resBody.Res, nil } +type HostUpdateVStorageObjectMetadata_TaskBody struct { + Req *types.HostUpdateVStorageObjectMetadata_Task `xml:"urn:vim25 HostUpdateVStorageObjectMetadata_Task,omitempty"` + Res *types.HostUpdateVStorageObjectMetadata_TaskResponse `xml:"HostUpdateVStorageObjectMetadata_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *HostUpdateVStorageObjectMetadata_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func HostUpdateVStorageObjectMetadata_Task(ctx context.Context, r soap.RoundTripper, req *types.HostUpdateVStorageObjectMetadata_Task) (*types.HostUpdateVStorageObjectMetadata_TaskResponse, error) { + var reqBody, resBody HostUpdateVStorageObjectMetadata_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type HostVStorageObjectCreateDiskFromSnapshot_TaskBody struct { Req *types.HostVStorageObjectCreateDiskFromSnapshot_Task `xml:"urn:vim25 HostVStorageObjectCreateDiskFromSnapshot_Task,omitempty"` - Res *types.HostVStorageObjectCreateDiskFromSnapshot_TaskResponse `xml:"urn:vim25 HostVStorageObjectCreateDiskFromSnapshot_TaskResponse,omitempty"` + Res *types.HostVStorageObjectCreateDiskFromSnapshot_TaskResponse `xml:"HostVStorageObjectCreateDiskFromSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6485,7 +6985,7 @@ func HostVStorageObjectCreateDiskFromSnapshot_Task(ctx context.Context, r soap.R type HostVStorageObjectCreateSnapshot_TaskBody struct { Req *types.HostVStorageObjectCreateSnapshot_Task `xml:"urn:vim25 HostVStorageObjectCreateSnapshot_Task,omitempty"` - Res *types.HostVStorageObjectCreateSnapshot_TaskResponse `xml:"urn:vim25 HostVStorageObjectCreateSnapshot_TaskResponse,omitempty"` + Res *types.HostVStorageObjectCreateSnapshot_TaskResponse `xml:"HostVStorageObjectCreateSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6505,7 +7005,7 @@ func HostVStorageObjectCreateSnapshot_Task(ctx context.Context, r soap.RoundTrip type HostVStorageObjectDeleteSnapshot_TaskBody struct { Req *types.HostVStorageObjectDeleteSnapshot_Task `xml:"urn:vim25 HostVStorageObjectDeleteSnapshot_Task,omitempty"` - Res *types.HostVStorageObjectDeleteSnapshot_TaskResponse `xml:"urn:vim25 HostVStorageObjectDeleteSnapshot_TaskResponse,omitempty"` + Res *types.HostVStorageObjectDeleteSnapshot_TaskResponse `xml:"HostVStorageObjectDeleteSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6525,7 +7025,7 @@ func HostVStorageObjectDeleteSnapshot_Task(ctx context.Context, r soap.RoundTrip type HostVStorageObjectRetrieveSnapshotInfoBody struct { Req *types.HostVStorageObjectRetrieveSnapshotInfo `xml:"urn:vim25 HostVStorageObjectRetrieveSnapshotInfo,omitempty"` - Res *types.HostVStorageObjectRetrieveSnapshotInfoResponse `xml:"urn:vim25 HostVStorageObjectRetrieveSnapshotInfoResponse,omitempty"` + Res *types.HostVStorageObjectRetrieveSnapshotInfoResponse `xml:"HostVStorageObjectRetrieveSnapshotInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6545,7 +7045,7 @@ func HostVStorageObjectRetrieveSnapshotInfo(ctx context.Context, r soap.RoundTri type HostVStorageObjectRevert_TaskBody struct { Req *types.HostVStorageObjectRevert_Task `xml:"urn:vim25 HostVStorageObjectRevert_Task,omitempty"` - Res *types.HostVStorageObjectRevert_TaskResponse `xml:"urn:vim25 HostVStorageObjectRevert_TaskResponse,omitempty"` + Res *types.HostVStorageObjectRevert_TaskResponse `xml:"HostVStorageObjectRevert_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6565,7 +7065,7 @@ func HostVStorageObjectRevert_Task(ctx context.Context, r soap.RoundTripper, req type HttpNfcLeaseAbortBody struct { Req *types.HttpNfcLeaseAbort `xml:"urn:vim25 HttpNfcLeaseAbort,omitempty"` - Res *types.HttpNfcLeaseAbortResponse `xml:"urn:vim25 HttpNfcLeaseAbortResponse,omitempty"` + Res *types.HttpNfcLeaseAbortResponse `xml:"HttpNfcLeaseAbortResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6585,7 +7085,7 @@ func HttpNfcLeaseAbort(ctx context.Context, r soap.RoundTripper, req *types.Http type HttpNfcLeaseCompleteBody struct { Req *types.HttpNfcLeaseComplete `xml:"urn:vim25 HttpNfcLeaseComplete,omitempty"` - Res *types.HttpNfcLeaseCompleteResponse `xml:"urn:vim25 HttpNfcLeaseCompleteResponse,omitempty"` + Res *types.HttpNfcLeaseCompleteResponse `xml:"HttpNfcLeaseCompleteResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6605,7 +7105,7 @@ func HttpNfcLeaseComplete(ctx context.Context, r soap.RoundTripper, req *types.H type HttpNfcLeaseGetManifestBody struct { Req *types.HttpNfcLeaseGetManifest `xml:"urn:vim25 HttpNfcLeaseGetManifest,omitempty"` - Res *types.HttpNfcLeaseGetManifestResponse `xml:"urn:vim25 HttpNfcLeaseGetManifestResponse,omitempty"` + Res *types.HttpNfcLeaseGetManifestResponse `xml:"HttpNfcLeaseGetManifestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6625,7 +7125,7 @@ func HttpNfcLeaseGetManifest(ctx context.Context, r soap.RoundTripper, req *type type HttpNfcLeaseProgressBody struct { Req *types.HttpNfcLeaseProgress `xml:"urn:vim25 HttpNfcLeaseProgress,omitempty"` - Res *types.HttpNfcLeaseProgressResponse `xml:"urn:vim25 HttpNfcLeaseProgressResponse,omitempty"` + Res *types.HttpNfcLeaseProgressResponse `xml:"HttpNfcLeaseProgressResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6645,7 +7145,7 @@ func HttpNfcLeaseProgress(ctx context.Context, r soap.RoundTripper, req *types.H type HttpNfcLeasePullFromUrls_TaskBody struct { Req *types.HttpNfcLeasePullFromUrls_Task `xml:"urn:vim25 HttpNfcLeasePullFromUrls_Task,omitempty"` - Res *types.HttpNfcLeasePullFromUrls_TaskResponse `xml:"urn:vim25 HttpNfcLeasePullFromUrls_TaskResponse,omitempty"` + Res *types.HttpNfcLeasePullFromUrls_TaskResponse `xml:"HttpNfcLeasePullFromUrls_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6665,7 +7165,7 @@ func HttpNfcLeasePullFromUrls_Task(ctx context.Context, r soap.RoundTripper, req type HttpNfcLeaseSetManifestChecksumTypeBody struct { Req *types.HttpNfcLeaseSetManifestChecksumType `xml:"urn:vim25 HttpNfcLeaseSetManifestChecksumType,omitempty"` - Res *types.HttpNfcLeaseSetManifestChecksumTypeResponse `xml:"urn:vim25 HttpNfcLeaseSetManifestChecksumTypeResponse,omitempty"` + Res *types.HttpNfcLeaseSetManifestChecksumTypeResponse `xml:"HttpNfcLeaseSetManifestChecksumTypeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6685,7 +7185,7 @@ func HttpNfcLeaseSetManifestChecksumType(ctx context.Context, r soap.RoundTrippe type ImpersonateUserBody struct { Req *types.ImpersonateUser `xml:"urn:vim25 ImpersonateUser,omitempty"` - Res *types.ImpersonateUserResponse `xml:"urn:vim25 ImpersonateUserResponse,omitempty"` + Res *types.ImpersonateUserResponse `xml:"ImpersonateUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6705,7 +7205,7 @@ func ImpersonateUser(ctx context.Context, r soap.RoundTripper, req *types.Impers type ImportCertificateForCAM_TaskBody struct { Req *types.ImportCertificateForCAM_Task `xml:"urn:vim25 ImportCertificateForCAM_Task,omitempty"` - Res *types.ImportCertificateForCAM_TaskResponse `xml:"urn:vim25 ImportCertificateForCAM_TaskResponse,omitempty"` + Res *types.ImportCertificateForCAM_TaskResponse `xml:"ImportCertificateForCAM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6725,7 +7225,7 @@ func ImportCertificateForCAM_Task(ctx context.Context, r soap.RoundTripper, req type ImportUnmanagedSnapshotBody struct { Req *types.ImportUnmanagedSnapshot `xml:"urn:vim25 ImportUnmanagedSnapshot,omitempty"` - Res *types.ImportUnmanagedSnapshotResponse `xml:"urn:vim25 ImportUnmanagedSnapshotResponse,omitempty"` + Res *types.ImportUnmanagedSnapshotResponse `xml:"ImportUnmanagedSnapshotResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6745,7 +7245,7 @@ func ImportUnmanagedSnapshot(ctx context.Context, r soap.RoundTripper, req *type type ImportVAppBody struct { Req *types.ImportVApp `xml:"urn:vim25 ImportVApp,omitempty"` - Res *types.ImportVAppResponse `xml:"urn:vim25 ImportVAppResponse,omitempty"` + Res *types.ImportVAppResponse `xml:"ImportVAppResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6765,7 +7265,7 @@ func ImportVApp(ctx context.Context, r soap.RoundTripper, req *types.ImportVApp) type InflateDisk_TaskBody struct { Req *types.InflateDisk_Task `xml:"urn:vim25 InflateDisk_Task,omitempty"` - Res *types.InflateDisk_TaskResponse `xml:"urn:vim25 InflateDisk_TaskResponse,omitempty"` + Res *types.InflateDisk_TaskResponse `xml:"InflateDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6785,7 +7285,7 @@ func InflateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Infla type InflateVirtualDisk_TaskBody struct { Req *types.InflateVirtualDisk_Task `xml:"urn:vim25 InflateVirtualDisk_Task,omitempty"` - Res *types.InflateVirtualDisk_TaskResponse `xml:"urn:vim25 InflateVirtualDisk_TaskResponse,omitempty"` + Res *types.InflateVirtualDisk_TaskResponse `xml:"InflateVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6805,7 +7305,7 @@ func InflateVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *type type InitializeDisks_TaskBody struct { Req *types.InitializeDisks_Task `xml:"urn:vim25 InitializeDisks_Task,omitempty"` - Res *types.InitializeDisks_TaskResponse `xml:"urn:vim25 InitializeDisks_TaskResponse,omitempty"` + Res *types.InitializeDisks_TaskResponse `xml:"InitializeDisks_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6825,7 +7325,7 @@ func InitializeDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.I type InitiateFileTransferFromGuestBody struct { Req *types.InitiateFileTransferFromGuest `xml:"urn:vim25 InitiateFileTransferFromGuest,omitempty"` - Res *types.InitiateFileTransferFromGuestResponse `xml:"urn:vim25 InitiateFileTransferFromGuestResponse,omitempty"` + Res *types.InitiateFileTransferFromGuestResponse `xml:"InitiateFileTransferFromGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6845,7 +7345,7 @@ func InitiateFileTransferFromGuest(ctx context.Context, r soap.RoundTripper, req type InitiateFileTransferToGuestBody struct { Req *types.InitiateFileTransferToGuest `xml:"urn:vim25 InitiateFileTransferToGuest,omitempty"` - Res *types.InitiateFileTransferToGuestResponse `xml:"urn:vim25 InitiateFileTransferToGuestResponse,omitempty"` + Res *types.InitiateFileTransferToGuestResponse `xml:"InitiateFileTransferToGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6865,7 +7365,7 @@ func InitiateFileTransferToGuest(ctx context.Context, r soap.RoundTripper, req * type InstallHostPatchV2_TaskBody struct { Req *types.InstallHostPatchV2_Task `xml:"urn:vim25 InstallHostPatchV2_Task,omitempty"` - Res *types.InstallHostPatchV2_TaskResponse `xml:"urn:vim25 InstallHostPatchV2_TaskResponse,omitempty"` + Res *types.InstallHostPatchV2_TaskResponse `xml:"InstallHostPatchV2_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6885,7 +7385,7 @@ func InstallHostPatchV2_Task(ctx context.Context, r soap.RoundTripper, req *type type InstallHostPatch_TaskBody struct { Req *types.InstallHostPatch_Task `xml:"urn:vim25 InstallHostPatch_Task,omitempty"` - Res *types.InstallHostPatch_TaskResponse `xml:"urn:vim25 InstallHostPatch_TaskResponse,omitempty"` + Res *types.InstallHostPatch_TaskResponse `xml:"InstallHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6905,7 +7405,7 @@ func InstallHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types. type InstallIoFilter_TaskBody struct { Req *types.InstallIoFilter_Task `xml:"urn:vim25 InstallIoFilter_Task,omitempty"` - Res *types.InstallIoFilter_TaskResponse `xml:"urn:vim25 InstallIoFilter_TaskResponse,omitempty"` + Res *types.InstallIoFilter_TaskResponse `xml:"InstallIoFilter_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6925,7 +7425,7 @@ func InstallIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types.I type InstallServerCertificateBody struct { Req *types.InstallServerCertificate `xml:"urn:vim25 InstallServerCertificate,omitempty"` - Res *types.InstallServerCertificateResponse `xml:"urn:vim25 InstallServerCertificateResponse,omitempty"` + Res *types.InstallServerCertificateResponse `xml:"InstallServerCertificateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6945,7 +7445,7 @@ func InstallServerCertificate(ctx context.Context, r soap.RoundTripper, req *typ type InstallSmartCardTrustAnchorBody struct { Req *types.InstallSmartCardTrustAnchor `xml:"urn:vim25 InstallSmartCardTrustAnchor,omitempty"` - Res *types.InstallSmartCardTrustAnchorResponse `xml:"urn:vim25 InstallSmartCardTrustAnchorResponse,omitempty"` + Res *types.InstallSmartCardTrustAnchorResponse `xml:"InstallSmartCardTrustAnchorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6965,7 +7465,7 @@ func InstallSmartCardTrustAnchor(ctx context.Context, r soap.RoundTripper, req * type InstantClone_TaskBody struct { Req *types.InstantClone_Task `xml:"urn:vim25 InstantClone_Task,omitempty"` - Res *types.InstantClone_TaskResponse `xml:"urn:vim25 InstantClone_TaskResponse,omitempty"` + Res *types.InstantClone_TaskResponse `xml:"InstantClone_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -6983,9 +7483,29 @@ func InstantClone_Task(ctx context.Context, r soap.RoundTripper, req *types.Inst return resBody.Res, nil } +type IsKmsClusterActiveBody struct { + Req *types.IsKmsClusterActive `xml:"urn:vim25 IsKmsClusterActive,omitempty"` + Res *types.IsKmsClusterActiveResponse `xml:"IsKmsClusterActiveResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *IsKmsClusterActiveBody) Fault() *soap.Fault { return b.Fault_ } + +func IsKmsClusterActive(ctx context.Context, r soap.RoundTripper, req *types.IsKmsClusterActive) (*types.IsKmsClusterActiveResponse, error) { + var reqBody, resBody IsKmsClusterActiveBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type IsSharedGraphicsActiveBody struct { Req *types.IsSharedGraphicsActive `xml:"urn:vim25 IsSharedGraphicsActive,omitempty"` - Res *types.IsSharedGraphicsActiveResponse `xml:"urn:vim25 IsSharedGraphicsActiveResponse,omitempty"` + Res *types.IsSharedGraphicsActiveResponse `xml:"IsSharedGraphicsActiveResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7005,7 +7525,7 @@ func IsSharedGraphicsActive(ctx context.Context, r soap.RoundTripper, req *types type JoinDomainWithCAM_TaskBody struct { Req *types.JoinDomainWithCAM_Task `xml:"urn:vim25 JoinDomainWithCAM_Task,omitempty"` - Res *types.JoinDomainWithCAM_TaskResponse `xml:"urn:vim25 JoinDomainWithCAM_TaskResponse,omitempty"` + Res *types.JoinDomainWithCAM_TaskResponse `xml:"JoinDomainWithCAM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7025,7 +7545,7 @@ func JoinDomainWithCAM_Task(ctx context.Context, r soap.RoundTripper, req *types type JoinDomain_TaskBody struct { Req *types.JoinDomain_Task `xml:"urn:vim25 JoinDomain_Task,omitempty"` - Res *types.JoinDomain_TaskResponse `xml:"urn:vim25 JoinDomain_TaskResponse,omitempty"` + Res *types.JoinDomain_TaskResponse `xml:"JoinDomain_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7045,7 +7565,7 @@ func JoinDomain_Task(ctx context.Context, r soap.RoundTripper, req *types.JoinDo type LeaveCurrentDomain_TaskBody struct { Req *types.LeaveCurrentDomain_Task `xml:"urn:vim25 LeaveCurrentDomain_Task,omitempty"` - Res *types.LeaveCurrentDomain_TaskResponse `xml:"urn:vim25 LeaveCurrentDomain_TaskResponse,omitempty"` + Res *types.LeaveCurrentDomain_TaskResponse `xml:"LeaveCurrentDomain_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7065,7 +7585,7 @@ func LeaveCurrentDomain_Task(ctx context.Context, r soap.RoundTripper, req *type type ListCACertificateRevocationListsBody struct { Req *types.ListCACertificateRevocationLists `xml:"urn:vim25 ListCACertificateRevocationLists,omitempty"` - Res *types.ListCACertificateRevocationListsResponse `xml:"urn:vim25 ListCACertificateRevocationListsResponse,omitempty"` + Res *types.ListCACertificateRevocationListsResponse `xml:"ListCACertificateRevocationListsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7085,7 +7605,7 @@ func ListCACertificateRevocationLists(ctx context.Context, r soap.RoundTripper, type ListCACertificatesBody struct { Req *types.ListCACertificates `xml:"urn:vim25 ListCACertificates,omitempty"` - Res *types.ListCACertificatesResponse `xml:"urn:vim25 ListCACertificatesResponse,omitempty"` + Res *types.ListCACertificatesResponse `xml:"ListCACertificatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7105,7 +7625,7 @@ func ListCACertificates(ctx context.Context, r soap.RoundTripper, req *types.Lis type ListFilesInGuestBody struct { Req *types.ListFilesInGuest `xml:"urn:vim25 ListFilesInGuest,omitempty"` - Res *types.ListFilesInGuestResponse `xml:"urn:vim25 ListFilesInGuestResponse,omitempty"` + Res *types.ListFilesInGuestResponse `xml:"ListFilesInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7125,7 +7645,7 @@ func ListFilesInGuest(ctx context.Context, r soap.RoundTripper, req *types.ListF type ListGuestAliasesBody struct { Req *types.ListGuestAliases `xml:"urn:vim25 ListGuestAliases,omitempty"` - Res *types.ListGuestAliasesResponse `xml:"urn:vim25 ListGuestAliasesResponse,omitempty"` + Res *types.ListGuestAliasesResponse `xml:"ListGuestAliasesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7145,7 +7665,7 @@ func ListGuestAliases(ctx context.Context, r soap.RoundTripper, req *types.ListG type ListGuestMappedAliasesBody struct { Req *types.ListGuestMappedAliases `xml:"urn:vim25 ListGuestMappedAliases,omitempty"` - Res *types.ListGuestMappedAliasesResponse `xml:"urn:vim25 ListGuestMappedAliasesResponse,omitempty"` + Res *types.ListGuestMappedAliasesResponse `xml:"ListGuestMappedAliasesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7165,7 +7685,7 @@ func ListGuestMappedAliases(ctx context.Context, r soap.RoundTripper, req *types type ListKeysBody struct { Req *types.ListKeys `xml:"urn:vim25 ListKeys,omitempty"` - Res *types.ListKeysResponse `xml:"urn:vim25 ListKeysResponse,omitempty"` + Res *types.ListKeysResponse `xml:"ListKeysResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7185,7 +7705,7 @@ func ListKeys(ctx context.Context, r soap.RoundTripper, req *types.ListKeys) (*t type ListKmipServersBody struct { Req *types.ListKmipServers `xml:"urn:vim25 ListKmipServers,omitempty"` - Res *types.ListKmipServersResponse `xml:"urn:vim25 ListKmipServersResponse,omitempty"` + Res *types.ListKmipServersResponse `xml:"ListKmipServersResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7203,9 +7723,29 @@ func ListKmipServers(ctx context.Context, r soap.RoundTripper, req *types.ListKm return resBody.Res, nil } +type ListKmsClustersBody struct { + Req *types.ListKmsClusters `xml:"urn:vim25 ListKmsClusters,omitempty"` + Res *types.ListKmsClustersResponse `xml:"ListKmsClustersResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ListKmsClustersBody) Fault() *soap.Fault { return b.Fault_ } + +func ListKmsClusters(ctx context.Context, r soap.RoundTripper, req *types.ListKmsClusters) (*types.ListKmsClustersResponse, error) { + var reqBody, resBody ListKmsClustersBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type ListProcessesInGuestBody struct { Req *types.ListProcessesInGuest `xml:"urn:vim25 ListProcessesInGuest,omitempty"` - Res *types.ListProcessesInGuestResponse `xml:"urn:vim25 ListProcessesInGuestResponse,omitempty"` + Res *types.ListProcessesInGuestResponse `xml:"ListProcessesInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7225,7 +7765,7 @@ func ListProcessesInGuest(ctx context.Context, r soap.RoundTripper, req *types.L type ListRegistryKeysInGuestBody struct { Req *types.ListRegistryKeysInGuest `xml:"urn:vim25 ListRegistryKeysInGuest,omitempty"` - Res *types.ListRegistryKeysInGuestResponse `xml:"urn:vim25 ListRegistryKeysInGuestResponse,omitempty"` + Res *types.ListRegistryKeysInGuestResponse `xml:"ListRegistryKeysInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7245,7 +7785,7 @@ func ListRegistryKeysInGuest(ctx context.Context, r soap.RoundTripper, req *type type ListRegistryValuesInGuestBody struct { Req *types.ListRegistryValuesInGuest `xml:"urn:vim25 ListRegistryValuesInGuest,omitempty"` - Res *types.ListRegistryValuesInGuestResponse `xml:"urn:vim25 ListRegistryValuesInGuestResponse,omitempty"` + Res *types.ListRegistryValuesInGuestResponse `xml:"ListRegistryValuesInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7265,7 +7805,7 @@ func ListRegistryValuesInGuest(ctx context.Context, r soap.RoundTripper, req *ty type ListSmartCardTrustAnchorsBody struct { Req *types.ListSmartCardTrustAnchors `xml:"urn:vim25 ListSmartCardTrustAnchors,omitempty"` - Res *types.ListSmartCardTrustAnchorsResponse `xml:"urn:vim25 ListSmartCardTrustAnchorsResponse,omitempty"` + Res *types.ListSmartCardTrustAnchorsResponse `xml:"ListSmartCardTrustAnchorsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7285,7 +7825,7 @@ func ListSmartCardTrustAnchors(ctx context.Context, r soap.RoundTripper, req *ty type ListTagsAttachedToVStorageObjectBody struct { Req *types.ListTagsAttachedToVStorageObject `xml:"urn:vim25 ListTagsAttachedToVStorageObject,omitempty"` - Res *types.ListTagsAttachedToVStorageObjectResponse `xml:"urn:vim25 ListTagsAttachedToVStorageObjectResponse,omitempty"` + Res *types.ListTagsAttachedToVStorageObjectResponse `xml:"ListTagsAttachedToVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7305,7 +7845,7 @@ func ListTagsAttachedToVStorageObject(ctx context.Context, r soap.RoundTripper, type ListVStorageObjectBody struct { Req *types.ListVStorageObject `xml:"urn:vim25 ListVStorageObject,omitempty"` - Res *types.ListVStorageObjectResponse `xml:"urn:vim25 ListVStorageObjectResponse,omitempty"` + Res *types.ListVStorageObjectResponse `xml:"ListVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7325,7 +7865,7 @@ func ListVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.Lis type ListVStorageObjectsAttachedToTagBody struct { Req *types.ListVStorageObjectsAttachedToTag `xml:"urn:vim25 ListVStorageObjectsAttachedToTag,omitempty"` - Res *types.ListVStorageObjectsAttachedToTagResponse `xml:"urn:vim25 ListVStorageObjectsAttachedToTagResponse,omitempty"` + Res *types.ListVStorageObjectsAttachedToTagResponse `xml:"ListVStorageObjectsAttachedToTagResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7345,7 +7885,7 @@ func ListVStorageObjectsAttachedToTag(ctx context.Context, r soap.RoundTripper, type LogUserEventBody struct { Req *types.LogUserEvent `xml:"urn:vim25 LogUserEvent,omitempty"` - Res *types.LogUserEventResponse `xml:"urn:vim25 LogUserEventResponse,omitempty"` + Res *types.LogUserEventResponse `xml:"LogUserEventResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7365,7 +7905,7 @@ func LogUserEvent(ctx context.Context, r soap.RoundTripper, req *types.LogUserEv type LoginBody struct { Req *types.Login `xml:"urn:vim25 Login,omitempty"` - Res *types.LoginResponse `xml:"urn:vim25 LoginResponse,omitempty"` + Res *types.LoginResponse `xml:"LoginResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7385,7 +7925,7 @@ func Login(ctx context.Context, r soap.RoundTripper, req *types.Login) (*types.L type LoginBySSPIBody struct { Req *types.LoginBySSPI `xml:"urn:vim25 LoginBySSPI,omitempty"` - Res *types.LoginBySSPIResponse `xml:"urn:vim25 LoginBySSPIResponse,omitempty"` + Res *types.LoginBySSPIResponse `xml:"LoginBySSPIResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7405,7 +7945,7 @@ func LoginBySSPI(ctx context.Context, r soap.RoundTripper, req *types.LoginBySSP type LoginByTokenBody struct { Req *types.LoginByToken `xml:"urn:vim25 LoginByToken,omitempty"` - Res *types.LoginByTokenResponse `xml:"urn:vim25 LoginByTokenResponse,omitempty"` + Res *types.LoginByTokenResponse `xml:"LoginByTokenResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7425,7 +7965,7 @@ func LoginByToken(ctx context.Context, r soap.RoundTripper, req *types.LoginByTo type LoginExtensionByCertificateBody struct { Req *types.LoginExtensionByCertificate `xml:"urn:vim25 LoginExtensionByCertificate,omitempty"` - Res *types.LoginExtensionByCertificateResponse `xml:"urn:vim25 LoginExtensionByCertificateResponse,omitempty"` + Res *types.LoginExtensionByCertificateResponse `xml:"LoginExtensionByCertificateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7445,7 +7985,7 @@ func LoginExtensionByCertificate(ctx context.Context, r soap.RoundTripper, req * type LoginExtensionBySubjectNameBody struct { Req *types.LoginExtensionBySubjectName `xml:"urn:vim25 LoginExtensionBySubjectName,omitempty"` - Res *types.LoginExtensionBySubjectNameResponse `xml:"urn:vim25 LoginExtensionBySubjectNameResponse,omitempty"` + Res *types.LoginExtensionBySubjectNameResponse `xml:"LoginExtensionBySubjectNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7465,7 +8005,7 @@ func LoginExtensionBySubjectName(ctx context.Context, r soap.RoundTripper, req * type LogoutBody struct { Req *types.Logout `xml:"urn:vim25 Logout,omitempty"` - Res *types.LogoutResponse `xml:"urn:vim25 LogoutResponse,omitempty"` + Res *types.LogoutResponse `xml:"LogoutResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7485,7 +8025,7 @@ func Logout(ctx context.Context, r soap.RoundTripper, req *types.Logout) (*types type LookupDvPortGroupBody struct { Req *types.LookupDvPortGroup `xml:"urn:vim25 LookupDvPortGroup,omitempty"` - Res *types.LookupDvPortGroupResponse `xml:"urn:vim25 LookupDvPortGroupResponse,omitempty"` + Res *types.LookupDvPortGroupResponse `xml:"LookupDvPortGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7505,7 +8045,7 @@ func LookupDvPortGroup(ctx context.Context, r soap.RoundTripper, req *types.Look type LookupVmOverheadMemoryBody struct { Req *types.LookupVmOverheadMemory `xml:"urn:vim25 LookupVmOverheadMemory,omitempty"` - Res *types.LookupVmOverheadMemoryResponse `xml:"urn:vim25 LookupVmOverheadMemoryResponse,omitempty"` + Res *types.LookupVmOverheadMemoryResponse `xml:"LookupVmOverheadMemoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7525,7 +8065,7 @@ func LookupVmOverheadMemory(ctx context.Context, r soap.RoundTripper, req *types type MakeDirectoryBody struct { Req *types.MakeDirectory `xml:"urn:vim25 MakeDirectory,omitempty"` - Res *types.MakeDirectoryResponse `xml:"urn:vim25 MakeDirectoryResponse,omitempty"` + Res *types.MakeDirectoryResponse `xml:"MakeDirectoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7545,7 +8085,7 @@ func MakeDirectory(ctx context.Context, r soap.RoundTripper, req *types.MakeDire type MakeDirectoryInGuestBody struct { Req *types.MakeDirectoryInGuest `xml:"urn:vim25 MakeDirectoryInGuest,omitempty"` - Res *types.MakeDirectoryInGuestResponse `xml:"urn:vim25 MakeDirectoryInGuestResponse,omitempty"` + Res *types.MakeDirectoryInGuestResponse `xml:"MakeDirectoryInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7565,7 +8105,7 @@ func MakeDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.M type MakePrimaryVM_TaskBody struct { Req *types.MakePrimaryVM_Task `xml:"urn:vim25 MakePrimaryVM_Task,omitempty"` - Res *types.MakePrimaryVM_TaskResponse `xml:"urn:vim25 MakePrimaryVM_TaskResponse,omitempty"` + Res *types.MakePrimaryVM_TaskResponse `xml:"MakePrimaryVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7585,7 +8125,7 @@ func MakePrimaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Mak type MarkAsLocal_TaskBody struct { Req *types.MarkAsLocal_Task `xml:"urn:vim25 MarkAsLocal_Task,omitempty"` - Res *types.MarkAsLocal_TaskResponse `xml:"urn:vim25 MarkAsLocal_TaskResponse,omitempty"` + Res *types.MarkAsLocal_TaskResponse `xml:"MarkAsLocal_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7605,7 +8145,7 @@ func MarkAsLocal_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkA type MarkAsNonLocal_TaskBody struct { Req *types.MarkAsNonLocal_Task `xml:"urn:vim25 MarkAsNonLocal_Task,omitempty"` - Res *types.MarkAsNonLocal_TaskResponse `xml:"urn:vim25 MarkAsNonLocal_TaskResponse,omitempty"` + Res *types.MarkAsNonLocal_TaskResponse `xml:"MarkAsNonLocal_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7625,7 +8165,7 @@ func MarkAsNonLocal_Task(ctx context.Context, r soap.RoundTripper, req *types.Ma type MarkAsNonSsd_TaskBody struct { Req *types.MarkAsNonSsd_Task `xml:"urn:vim25 MarkAsNonSsd_Task,omitempty"` - Res *types.MarkAsNonSsd_TaskResponse `xml:"urn:vim25 MarkAsNonSsd_TaskResponse,omitempty"` + Res *types.MarkAsNonSsd_TaskResponse `xml:"MarkAsNonSsd_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7645,7 +8185,7 @@ func MarkAsNonSsd_Task(ctx context.Context, r soap.RoundTripper, req *types.Mark type MarkAsSsd_TaskBody struct { Req *types.MarkAsSsd_Task `xml:"urn:vim25 MarkAsSsd_Task,omitempty"` - Res *types.MarkAsSsd_TaskResponse `xml:"urn:vim25 MarkAsSsd_TaskResponse,omitempty"` + Res *types.MarkAsSsd_TaskResponse `xml:"MarkAsSsd_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7665,7 +8205,7 @@ func MarkAsSsd_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkAsS type MarkAsTemplateBody struct { Req *types.MarkAsTemplate `xml:"urn:vim25 MarkAsTemplate,omitempty"` - Res *types.MarkAsTemplateResponse `xml:"urn:vim25 MarkAsTemplateResponse,omitempty"` + Res *types.MarkAsTemplateResponse `xml:"MarkAsTemplateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7685,7 +8225,7 @@ func MarkAsTemplate(ctx context.Context, r soap.RoundTripper, req *types.MarkAsT type MarkAsVirtualMachineBody struct { Req *types.MarkAsVirtualMachine `xml:"urn:vim25 MarkAsVirtualMachine,omitempty"` - Res *types.MarkAsVirtualMachineResponse `xml:"urn:vim25 MarkAsVirtualMachineResponse,omitempty"` + Res *types.MarkAsVirtualMachineResponse `xml:"MarkAsVirtualMachineResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7705,7 +8245,7 @@ func MarkAsVirtualMachine(ctx context.Context, r soap.RoundTripper, req *types.M type MarkDefaultBody struct { Req *types.MarkDefault `xml:"urn:vim25 MarkDefault,omitempty"` - Res *types.MarkDefaultResponse `xml:"urn:vim25 MarkDefaultResponse,omitempty"` + Res *types.MarkDefaultResponse `xml:"MarkDefaultResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7725,7 +8265,7 @@ func MarkDefault(ctx context.Context, r soap.RoundTripper, req *types.MarkDefaul type MarkForRemovalBody struct { Req *types.MarkForRemoval `xml:"urn:vim25 MarkForRemoval,omitempty"` - Res *types.MarkForRemovalResponse `xml:"urn:vim25 MarkForRemovalResponse,omitempty"` + Res *types.MarkForRemovalResponse `xml:"MarkForRemovalResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7743,9 +8283,69 @@ func MarkForRemoval(ctx context.Context, r soap.RoundTripper, req *types.MarkFor return resBody.Res, nil } +type MarkPerenniallyReservedBody struct { + Req *types.MarkPerenniallyReserved `xml:"urn:vim25 MarkPerenniallyReserved,omitempty"` + Res *types.MarkPerenniallyReservedResponse `xml:"MarkPerenniallyReservedResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *MarkPerenniallyReservedBody) Fault() *soap.Fault { return b.Fault_ } + +func MarkPerenniallyReserved(ctx context.Context, r soap.RoundTripper, req *types.MarkPerenniallyReserved) (*types.MarkPerenniallyReservedResponse, error) { + var reqBody, resBody MarkPerenniallyReservedBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type MarkPerenniallyReservedEx_TaskBody struct { + Req *types.MarkPerenniallyReservedEx_Task `xml:"urn:vim25 MarkPerenniallyReservedEx_Task,omitempty"` + Res *types.MarkPerenniallyReservedEx_TaskResponse `xml:"MarkPerenniallyReservedEx_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *MarkPerenniallyReservedEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func MarkPerenniallyReservedEx_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkPerenniallyReservedEx_Task) (*types.MarkPerenniallyReservedEx_TaskResponse, error) { + var reqBody, resBody MarkPerenniallyReservedEx_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type MarkServiceProviderEntitiesBody struct { + Req *types.MarkServiceProviderEntities `xml:"urn:vim25 MarkServiceProviderEntities,omitempty"` + Res *types.MarkServiceProviderEntitiesResponse `xml:"MarkServiceProviderEntitiesResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *MarkServiceProviderEntitiesBody) Fault() *soap.Fault { return b.Fault_ } + +func MarkServiceProviderEntities(ctx context.Context, r soap.RoundTripper, req *types.MarkServiceProviderEntities) (*types.MarkServiceProviderEntitiesResponse, error) { + var reqBody, resBody MarkServiceProviderEntitiesBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type MergeDvs_TaskBody struct { Req *types.MergeDvs_Task `xml:"urn:vim25 MergeDvs_Task,omitempty"` - Res *types.MergeDvs_TaskResponse `xml:"urn:vim25 MergeDvs_TaskResponse,omitempty"` + Res *types.MergeDvs_TaskResponse `xml:"MergeDvs_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7765,7 +8365,7 @@ func MergeDvs_Task(ctx context.Context, r soap.RoundTripper, req *types.MergeDvs type MergePermissionsBody struct { Req *types.MergePermissions `xml:"urn:vim25 MergePermissions,omitempty"` - Res *types.MergePermissionsResponse `xml:"urn:vim25 MergePermissionsResponse,omitempty"` + Res *types.MergePermissionsResponse `xml:"MergePermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7785,7 +8385,7 @@ func MergePermissions(ctx context.Context, r soap.RoundTripper, req *types.Merge type MigrateVM_TaskBody struct { Req *types.MigrateVM_Task `xml:"urn:vim25 MigrateVM_Task,omitempty"` - Res *types.MigrateVM_TaskResponse `xml:"urn:vim25 MigrateVM_TaskResponse,omitempty"` + Res *types.MigrateVM_TaskResponse `xml:"MigrateVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7805,7 +8405,7 @@ func MigrateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Migrate type ModifyListViewBody struct { Req *types.ModifyListView `xml:"urn:vim25 ModifyListView,omitempty"` - Res *types.ModifyListViewResponse `xml:"urn:vim25 ModifyListViewResponse,omitempty"` + Res *types.ModifyListViewResponse `xml:"ModifyListViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7825,7 +8425,7 @@ func ModifyListView(ctx context.Context, r soap.RoundTripper, req *types.ModifyL type MountToolsInstallerBody struct { Req *types.MountToolsInstaller `xml:"urn:vim25 MountToolsInstaller,omitempty"` - Res *types.MountToolsInstallerResponse `xml:"urn:vim25 MountToolsInstallerResponse,omitempty"` + Res *types.MountToolsInstallerResponse `xml:"MountToolsInstallerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7845,7 +8445,7 @@ func MountToolsInstaller(ctx context.Context, r soap.RoundTripper, req *types.Mo type MountVffsVolumeBody struct { Req *types.MountVffsVolume `xml:"urn:vim25 MountVffsVolume,omitempty"` - Res *types.MountVffsVolumeResponse `xml:"urn:vim25 MountVffsVolumeResponse,omitempty"` + Res *types.MountVffsVolumeResponse `xml:"MountVffsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7865,7 +8465,7 @@ func MountVffsVolume(ctx context.Context, r soap.RoundTripper, req *types.MountV type MountVmfsVolumeBody struct { Req *types.MountVmfsVolume `xml:"urn:vim25 MountVmfsVolume,omitempty"` - Res *types.MountVmfsVolumeResponse `xml:"urn:vim25 MountVmfsVolumeResponse,omitempty"` + Res *types.MountVmfsVolumeResponse `xml:"MountVmfsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7885,7 +8485,7 @@ func MountVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.MountV type MountVmfsVolumeEx_TaskBody struct { Req *types.MountVmfsVolumeEx_Task `xml:"urn:vim25 MountVmfsVolumeEx_Task,omitempty"` - Res *types.MountVmfsVolumeEx_TaskResponse `xml:"urn:vim25 MountVmfsVolumeEx_TaskResponse,omitempty"` + Res *types.MountVmfsVolumeEx_TaskResponse `xml:"MountVmfsVolumeEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7905,7 +8505,7 @@ func MountVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *types type MoveDVPort_TaskBody struct { Req *types.MoveDVPort_Task `xml:"urn:vim25 MoveDVPort_Task,omitempty"` - Res *types.MoveDVPort_TaskResponse `xml:"urn:vim25 MoveDVPort_TaskResponse,omitempty"` + Res *types.MoveDVPort_TaskResponse `xml:"MoveDVPort_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7925,7 +8525,7 @@ func MoveDVPort_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveDV type MoveDatastoreFile_TaskBody struct { Req *types.MoveDatastoreFile_Task `xml:"urn:vim25 MoveDatastoreFile_Task,omitempty"` - Res *types.MoveDatastoreFile_TaskResponse `xml:"urn:vim25 MoveDatastoreFile_TaskResponse,omitempty"` + Res *types.MoveDatastoreFile_TaskResponse `xml:"MoveDatastoreFile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7945,7 +8545,7 @@ func MoveDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *types type MoveDirectoryInGuestBody struct { Req *types.MoveDirectoryInGuest `xml:"urn:vim25 MoveDirectoryInGuest,omitempty"` - Res *types.MoveDirectoryInGuestResponse `xml:"urn:vim25 MoveDirectoryInGuestResponse,omitempty"` + Res *types.MoveDirectoryInGuestResponse `xml:"MoveDirectoryInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7965,7 +8565,7 @@ func MoveDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.M type MoveFileInGuestBody struct { Req *types.MoveFileInGuest `xml:"urn:vim25 MoveFileInGuest,omitempty"` - Res *types.MoveFileInGuestResponse `xml:"urn:vim25 MoveFileInGuestResponse,omitempty"` + Res *types.MoveFileInGuestResponse `xml:"MoveFileInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -7985,7 +8585,7 @@ func MoveFileInGuest(ctx context.Context, r soap.RoundTripper, req *types.MoveFi type MoveHostInto_TaskBody struct { Req *types.MoveHostInto_Task `xml:"urn:vim25 MoveHostInto_Task,omitempty"` - Res *types.MoveHostInto_TaskResponse `xml:"urn:vim25 MoveHostInto_TaskResponse,omitempty"` + Res *types.MoveHostInto_TaskResponse `xml:"MoveHostInto_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8005,7 +8605,7 @@ func MoveHostInto_Task(ctx context.Context, r soap.RoundTripper, req *types.Move type MoveIntoFolder_TaskBody struct { Req *types.MoveIntoFolder_Task `xml:"urn:vim25 MoveIntoFolder_Task,omitempty"` - Res *types.MoveIntoFolder_TaskResponse `xml:"urn:vim25 MoveIntoFolder_TaskResponse,omitempty"` + Res *types.MoveIntoFolder_TaskResponse `xml:"MoveIntoFolder_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8025,7 +8625,7 @@ func MoveIntoFolder_Task(ctx context.Context, r soap.RoundTripper, req *types.Mo type MoveIntoResourcePoolBody struct { Req *types.MoveIntoResourcePool `xml:"urn:vim25 MoveIntoResourcePool,omitempty"` - Res *types.MoveIntoResourcePoolResponse `xml:"urn:vim25 MoveIntoResourcePoolResponse,omitempty"` + Res *types.MoveIntoResourcePoolResponse `xml:"MoveIntoResourcePoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8045,7 +8645,7 @@ func MoveIntoResourcePool(ctx context.Context, r soap.RoundTripper, req *types.M type MoveInto_TaskBody struct { Req *types.MoveInto_Task `xml:"urn:vim25 MoveInto_Task,omitempty"` - Res *types.MoveInto_TaskResponse `xml:"urn:vim25 MoveInto_TaskResponse,omitempty"` + Res *types.MoveInto_TaskResponse `xml:"MoveInto_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8065,7 +8665,7 @@ func MoveInto_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveInto type MoveVirtualDisk_TaskBody struct { Req *types.MoveVirtualDisk_Task `xml:"urn:vim25 MoveVirtualDisk_Task,omitempty"` - Res *types.MoveVirtualDisk_TaskResponse `xml:"urn:vim25 MoveVirtualDisk_TaskResponse,omitempty"` + Res *types.MoveVirtualDisk_TaskResponse `xml:"MoveVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8085,7 +8685,7 @@ func MoveVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.M type OpenInventoryViewFolderBody struct { Req *types.OpenInventoryViewFolder `xml:"urn:vim25 OpenInventoryViewFolder,omitempty"` - Res *types.OpenInventoryViewFolderResponse `xml:"urn:vim25 OpenInventoryViewFolderResponse,omitempty"` + Res *types.OpenInventoryViewFolderResponse `xml:"OpenInventoryViewFolderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8105,7 +8705,7 @@ func OpenInventoryViewFolder(ctx context.Context, r soap.RoundTripper, req *type type OverwriteCustomizationSpecBody struct { Req *types.OverwriteCustomizationSpec `xml:"urn:vim25 OverwriteCustomizationSpec,omitempty"` - Res *types.OverwriteCustomizationSpecResponse `xml:"urn:vim25 OverwriteCustomizationSpecResponse,omitempty"` + Res *types.OverwriteCustomizationSpecResponse `xml:"OverwriteCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8125,7 +8725,7 @@ func OverwriteCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *t type ParseDescriptorBody struct { Req *types.ParseDescriptor `xml:"urn:vim25 ParseDescriptor,omitempty"` - Res *types.ParseDescriptorResponse `xml:"urn:vim25 ParseDescriptorResponse,omitempty"` + Res *types.ParseDescriptorResponse `xml:"ParseDescriptorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8145,7 +8745,7 @@ func ParseDescriptor(ctx context.Context, r soap.RoundTripper, req *types.ParseD type PerformDvsProductSpecOperation_TaskBody struct { Req *types.PerformDvsProductSpecOperation_Task `xml:"urn:vim25 PerformDvsProductSpecOperation_Task,omitempty"` - Res *types.PerformDvsProductSpecOperation_TaskResponse `xml:"urn:vim25 PerformDvsProductSpecOperation_TaskResponse,omitempty"` + Res *types.PerformDvsProductSpecOperation_TaskResponse `xml:"PerformDvsProductSpecOperation_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8165,7 +8765,7 @@ func PerformDvsProductSpecOperation_Task(ctx context.Context, r soap.RoundTrippe type PerformVsanUpgradePreflightCheckBody struct { Req *types.PerformVsanUpgradePreflightCheck `xml:"urn:vim25 PerformVsanUpgradePreflightCheck,omitempty"` - Res *types.PerformVsanUpgradePreflightCheckResponse `xml:"urn:vim25 PerformVsanUpgradePreflightCheckResponse,omitempty"` + Res *types.PerformVsanUpgradePreflightCheckResponse `xml:"PerformVsanUpgradePreflightCheckResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8185,7 +8785,7 @@ func PerformVsanUpgradePreflightCheck(ctx context.Context, r soap.RoundTripper, type PerformVsanUpgrade_TaskBody struct { Req *types.PerformVsanUpgrade_Task `xml:"urn:vim25 PerformVsanUpgrade_Task,omitempty"` - Res *types.PerformVsanUpgrade_TaskResponse `xml:"urn:vim25 PerformVsanUpgrade_TaskResponse,omitempty"` + Res *types.PerformVsanUpgrade_TaskResponse `xml:"PerformVsanUpgrade_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8205,7 +8805,7 @@ func PerformVsanUpgrade_Task(ctx context.Context, r soap.RoundTripper, req *type type PlaceVmBody struct { Req *types.PlaceVm `xml:"urn:vim25 PlaceVm,omitempty"` - Res *types.PlaceVmResponse `xml:"urn:vim25 PlaceVmResponse,omitempty"` + Res *types.PlaceVmResponse `xml:"PlaceVmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8225,7 +8825,7 @@ func PlaceVm(ctx context.Context, r soap.RoundTripper, req *types.PlaceVm) (*typ type PostEventBody struct { Req *types.PostEvent `xml:"urn:vim25 PostEvent,omitempty"` - Res *types.PostEventResponse `xml:"urn:vim25 PostEventResponse,omitempty"` + Res *types.PostEventResponse `xml:"PostEventResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8245,7 +8845,7 @@ func PostEvent(ctx context.Context, r soap.RoundTripper, req *types.PostEvent) ( type PostHealthUpdatesBody struct { Req *types.PostHealthUpdates `xml:"urn:vim25 PostHealthUpdates,omitempty"` - Res *types.PostHealthUpdatesResponse `xml:"urn:vim25 PostHealthUpdatesResponse,omitempty"` + Res *types.PostHealthUpdatesResponse `xml:"PostHealthUpdatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8265,7 +8865,7 @@ func PostHealthUpdates(ctx context.Context, r soap.RoundTripper, req *types.Post type PowerDownHostToStandBy_TaskBody struct { Req *types.PowerDownHostToStandBy_Task `xml:"urn:vim25 PowerDownHostToStandBy_Task,omitempty"` - Res *types.PowerDownHostToStandBy_TaskResponse `xml:"urn:vim25 PowerDownHostToStandBy_TaskResponse,omitempty"` + Res *types.PowerDownHostToStandBy_TaskResponse `xml:"PowerDownHostToStandBy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8285,7 +8885,7 @@ func PowerDownHostToStandBy_Task(ctx context.Context, r soap.RoundTripper, req * type PowerOffVApp_TaskBody struct { Req *types.PowerOffVApp_Task `xml:"urn:vim25 PowerOffVApp_Task,omitempty"` - Res *types.PowerOffVApp_TaskResponse `xml:"urn:vim25 PowerOffVApp_TaskResponse,omitempty"` + Res *types.PowerOffVApp_TaskResponse `xml:"PowerOffVApp_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8305,7 +8905,7 @@ func PowerOffVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.Powe type PowerOffVM_TaskBody struct { Req *types.PowerOffVM_Task `xml:"urn:vim25 PowerOffVM_Task,omitempty"` - Res *types.PowerOffVM_TaskResponse `xml:"urn:vim25 PowerOffVM_TaskResponse,omitempty"` + Res *types.PowerOffVM_TaskResponse `xml:"PowerOffVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8325,7 +8925,7 @@ func PowerOffVM_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerO type PowerOnMultiVM_TaskBody struct { Req *types.PowerOnMultiVM_Task `xml:"urn:vim25 PowerOnMultiVM_Task,omitempty"` - Res *types.PowerOnMultiVM_TaskResponse `xml:"urn:vim25 PowerOnMultiVM_TaskResponse,omitempty"` + Res *types.PowerOnMultiVM_TaskResponse `xml:"PowerOnMultiVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8345,7 +8945,7 @@ func PowerOnMultiVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Po type PowerOnVApp_TaskBody struct { Req *types.PowerOnVApp_Task `xml:"urn:vim25 PowerOnVApp_Task,omitempty"` - Res *types.PowerOnVApp_TaskResponse `xml:"urn:vim25 PowerOnVApp_TaskResponse,omitempty"` + Res *types.PowerOnVApp_TaskResponse `xml:"PowerOnVApp_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8365,7 +8965,7 @@ func PowerOnVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.Power type PowerOnVM_TaskBody struct { Req *types.PowerOnVM_Task `xml:"urn:vim25 PowerOnVM_Task,omitempty"` - Res *types.PowerOnVM_TaskResponse `xml:"urn:vim25 PowerOnVM_TaskResponse,omitempty"` + Res *types.PowerOnVM_TaskResponse `xml:"PowerOnVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8385,7 +8985,7 @@ func PowerOnVM_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOn type PowerUpHostFromStandBy_TaskBody struct { Req *types.PowerUpHostFromStandBy_Task `xml:"urn:vim25 PowerUpHostFromStandBy_Task,omitempty"` - Res *types.PowerUpHostFromStandBy_TaskResponse `xml:"urn:vim25 PowerUpHostFromStandBy_TaskResponse,omitempty"` + Res *types.PowerUpHostFromStandBy_TaskResponse `xml:"PowerUpHostFromStandBy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8405,7 +9005,7 @@ func PowerUpHostFromStandBy_Task(ctx context.Context, r soap.RoundTripper, req * type PrepareCryptoBody struct { Req *types.PrepareCrypto `xml:"urn:vim25 PrepareCrypto,omitempty"` - Res *types.PrepareCryptoResponse `xml:"urn:vim25 PrepareCryptoResponse,omitempty"` + Res *types.PrepareCryptoResponse `xml:"PrepareCryptoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8425,7 +9025,7 @@ func PrepareCrypto(ctx context.Context, r soap.RoundTripper, req *types.PrepareC type PromoteDisks_TaskBody struct { Req *types.PromoteDisks_Task `xml:"urn:vim25 PromoteDisks_Task,omitempty"` - Res *types.PromoteDisks_TaskResponse `xml:"urn:vim25 PromoteDisks_TaskResponse,omitempty"` + Res *types.PromoteDisks_TaskResponse `xml:"PromoteDisks_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8445,7 +9045,7 @@ func PromoteDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.Prom type PutUsbScanCodesBody struct { Req *types.PutUsbScanCodes `xml:"urn:vim25 PutUsbScanCodes,omitempty"` - Res *types.PutUsbScanCodesResponse `xml:"urn:vim25 PutUsbScanCodesResponse,omitempty"` + Res *types.PutUsbScanCodesResponse `xml:"PutUsbScanCodesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8465,7 +9065,7 @@ func PutUsbScanCodes(ctx context.Context, r soap.RoundTripper, req *types.PutUsb type QueryAnswerFileStatusBody struct { Req *types.QueryAnswerFileStatus `xml:"urn:vim25 QueryAnswerFileStatus,omitempty"` - Res *types.QueryAnswerFileStatusResponse `xml:"urn:vim25 QueryAnswerFileStatusResponse,omitempty"` + Res *types.QueryAnswerFileStatusResponse `xml:"QueryAnswerFileStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8485,7 +9085,7 @@ func QueryAnswerFileStatus(ctx context.Context, r soap.RoundTripper, req *types. type QueryAssignedLicensesBody struct { Req *types.QueryAssignedLicenses `xml:"urn:vim25 QueryAssignedLicenses,omitempty"` - Res *types.QueryAssignedLicensesResponse `xml:"urn:vim25 QueryAssignedLicensesResponse,omitempty"` + Res *types.QueryAssignedLicensesResponse `xml:"QueryAssignedLicensesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8505,7 +9105,7 @@ func QueryAssignedLicenses(ctx context.Context, r soap.RoundTripper, req *types. type QueryAvailableDisksForVmfsBody struct { Req *types.QueryAvailableDisksForVmfs `xml:"urn:vim25 QueryAvailableDisksForVmfs,omitempty"` - Res *types.QueryAvailableDisksForVmfsResponse `xml:"urn:vim25 QueryAvailableDisksForVmfsResponse,omitempty"` + Res *types.QueryAvailableDisksForVmfsResponse `xml:"QueryAvailableDisksForVmfsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8525,7 +9125,7 @@ func QueryAvailableDisksForVmfs(ctx context.Context, r soap.RoundTripper, req *t type QueryAvailableDvsSpecBody struct { Req *types.QueryAvailableDvsSpec `xml:"urn:vim25 QueryAvailableDvsSpec,omitempty"` - Res *types.QueryAvailableDvsSpecResponse `xml:"urn:vim25 QueryAvailableDvsSpecResponse,omitempty"` + Res *types.QueryAvailableDvsSpecResponse `xml:"QueryAvailableDvsSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8545,7 +9145,7 @@ func QueryAvailableDvsSpec(ctx context.Context, r soap.RoundTripper, req *types. type QueryAvailablePartitionBody struct { Req *types.QueryAvailablePartition `xml:"urn:vim25 QueryAvailablePartition,omitempty"` - Res *types.QueryAvailablePartitionResponse `xml:"urn:vim25 QueryAvailablePartitionResponse,omitempty"` + Res *types.QueryAvailablePartitionResponse `xml:"QueryAvailablePartitionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8565,7 +9165,7 @@ func QueryAvailablePartition(ctx context.Context, r soap.RoundTripper, req *type type QueryAvailablePerfMetricBody struct { Req *types.QueryAvailablePerfMetric `xml:"urn:vim25 QueryAvailablePerfMetric,omitempty"` - Res *types.QueryAvailablePerfMetricResponse `xml:"urn:vim25 QueryAvailablePerfMetricResponse,omitempty"` + Res *types.QueryAvailablePerfMetricResponse `xml:"QueryAvailablePerfMetricResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8585,7 +9185,7 @@ func QueryAvailablePerfMetric(ctx context.Context, r soap.RoundTripper, req *typ type QueryAvailableSsdsBody struct { Req *types.QueryAvailableSsds `xml:"urn:vim25 QueryAvailableSsds,omitempty"` - Res *types.QueryAvailableSsdsResponse `xml:"urn:vim25 QueryAvailableSsdsResponse,omitempty"` + Res *types.QueryAvailableSsdsResponse `xml:"QueryAvailableSsdsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8605,7 +9205,7 @@ func QueryAvailableSsds(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryAvailableTimeZonesBody struct { Req *types.QueryAvailableTimeZones `xml:"urn:vim25 QueryAvailableTimeZones,omitempty"` - Res *types.QueryAvailableTimeZonesResponse `xml:"urn:vim25 QueryAvailableTimeZonesResponse,omitempty"` + Res *types.QueryAvailableTimeZonesResponse `xml:"QueryAvailableTimeZonesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8625,7 +9225,7 @@ func QueryAvailableTimeZones(ctx context.Context, r soap.RoundTripper, req *type type QueryBootDevicesBody struct { Req *types.QueryBootDevices `xml:"urn:vim25 QueryBootDevices,omitempty"` - Res *types.QueryBootDevicesResponse `xml:"urn:vim25 QueryBootDevicesResponse,omitempty"` + Res *types.QueryBootDevicesResponse `xml:"QueryBootDevicesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8645,7 +9245,7 @@ func QueryBootDevices(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryBoundVnicsBody struct { Req *types.QueryBoundVnics `xml:"urn:vim25 QueryBoundVnics,omitempty"` - Res *types.QueryBoundVnicsResponse `xml:"urn:vim25 QueryBoundVnicsResponse,omitempty"` + Res *types.QueryBoundVnicsResponse `xml:"QueryBoundVnicsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8665,7 +9265,7 @@ func QueryBoundVnics(ctx context.Context, r soap.RoundTripper, req *types.QueryB type QueryCandidateNicsBody struct { Req *types.QueryCandidateNics `xml:"urn:vim25 QueryCandidateNics,omitempty"` - Res *types.QueryCandidateNicsResponse `xml:"urn:vim25 QueryCandidateNicsResponse,omitempty"` + Res *types.QueryCandidateNicsResponse `xml:"QueryCandidateNicsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8685,7 +9285,7 @@ func QueryCandidateNics(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryChangedDiskAreasBody struct { Req *types.QueryChangedDiskAreas `xml:"urn:vim25 QueryChangedDiskAreas,omitempty"` - Res *types.QueryChangedDiskAreasResponse `xml:"urn:vim25 QueryChangedDiskAreasResponse,omitempty"` + Res *types.QueryChangedDiskAreasResponse `xml:"QueryChangedDiskAreasResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8705,7 +9305,7 @@ func QueryChangedDiskAreas(ctx context.Context, r soap.RoundTripper, req *types. type QueryCmmdsBody struct { Req *types.QueryCmmds `xml:"urn:vim25 QueryCmmds,omitempty"` - Res *types.QueryCmmdsResponse `xml:"urn:vim25 QueryCmmdsResponse,omitempty"` + Res *types.QueryCmmdsResponse `xml:"QueryCmmdsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8725,7 +9325,7 @@ func QueryCmmds(ctx context.Context, r soap.RoundTripper, req *types.QueryCmmds) type QueryCompatibleHostForExistingDvsBody struct { Req *types.QueryCompatibleHostForExistingDvs `xml:"urn:vim25 QueryCompatibleHostForExistingDvs,omitempty"` - Res *types.QueryCompatibleHostForExistingDvsResponse `xml:"urn:vim25 QueryCompatibleHostForExistingDvsResponse,omitempty"` + Res *types.QueryCompatibleHostForExistingDvsResponse `xml:"QueryCompatibleHostForExistingDvsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8745,7 +9345,7 @@ func QueryCompatibleHostForExistingDvs(ctx context.Context, r soap.RoundTripper, type QueryCompatibleHostForNewDvsBody struct { Req *types.QueryCompatibleHostForNewDvs `xml:"urn:vim25 QueryCompatibleHostForNewDvs,omitempty"` - Res *types.QueryCompatibleHostForNewDvsResponse `xml:"urn:vim25 QueryCompatibleHostForNewDvsResponse,omitempty"` + Res *types.QueryCompatibleHostForNewDvsResponse `xml:"QueryCompatibleHostForNewDvsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8765,7 +9365,7 @@ func QueryCompatibleHostForNewDvs(ctx context.Context, r soap.RoundTripper, req type QueryComplianceStatusBody struct { Req *types.QueryComplianceStatus `xml:"urn:vim25 QueryComplianceStatus,omitempty"` - Res *types.QueryComplianceStatusResponse `xml:"urn:vim25 QueryComplianceStatusResponse,omitempty"` + Res *types.QueryComplianceStatusResponse `xml:"QueryComplianceStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8785,7 +9385,7 @@ func QueryComplianceStatus(ctx context.Context, r soap.RoundTripper, req *types. type QueryConfigOptionBody struct { Req *types.QueryConfigOption `xml:"urn:vim25 QueryConfigOption,omitempty"` - Res *types.QueryConfigOptionResponse `xml:"urn:vim25 QueryConfigOptionResponse,omitempty"` + Res *types.QueryConfigOptionResponse `xml:"QueryConfigOptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8805,7 +9405,7 @@ func QueryConfigOption(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryConfigOptionDescriptorBody struct { Req *types.QueryConfigOptionDescriptor `xml:"urn:vim25 QueryConfigOptionDescriptor,omitempty"` - Res *types.QueryConfigOptionDescriptorResponse `xml:"urn:vim25 QueryConfigOptionDescriptorResponse,omitempty"` + Res *types.QueryConfigOptionDescriptorResponse `xml:"QueryConfigOptionDescriptorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8825,7 +9425,7 @@ func QueryConfigOptionDescriptor(ctx context.Context, r soap.RoundTripper, req * type QueryConfigOptionExBody struct { Req *types.QueryConfigOptionEx `xml:"urn:vim25 QueryConfigOptionEx,omitempty"` - Res *types.QueryConfigOptionExResponse `xml:"urn:vim25 QueryConfigOptionExResponse,omitempty"` + Res *types.QueryConfigOptionExResponse `xml:"QueryConfigOptionExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8845,7 +9445,7 @@ func QueryConfigOptionEx(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryConfigTargetBody struct { Req *types.QueryConfigTarget `xml:"urn:vim25 QueryConfigTarget,omitempty"` - Res *types.QueryConfigTargetResponse `xml:"urn:vim25 QueryConfigTargetResponse,omitempty"` + Res *types.QueryConfigTargetResponse `xml:"QueryConfigTargetResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8865,7 +9465,7 @@ func QueryConfigTarget(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryConfiguredModuleOptionStringBody struct { Req *types.QueryConfiguredModuleOptionString `xml:"urn:vim25 QueryConfiguredModuleOptionString,omitempty"` - Res *types.QueryConfiguredModuleOptionStringResponse `xml:"urn:vim25 QueryConfiguredModuleOptionStringResponse,omitempty"` + Res *types.QueryConfiguredModuleOptionStringResponse `xml:"QueryConfiguredModuleOptionStringResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8885,7 +9485,7 @@ func QueryConfiguredModuleOptionString(ctx context.Context, r soap.RoundTripper, type QueryConnectionInfoBody struct { Req *types.QueryConnectionInfo `xml:"urn:vim25 QueryConnectionInfo,omitempty"` - Res *types.QueryConnectionInfoResponse `xml:"urn:vim25 QueryConnectionInfoResponse,omitempty"` + Res *types.QueryConnectionInfoResponse `xml:"QueryConnectionInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8905,7 +9505,7 @@ func QueryConnectionInfo(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryConnectionInfoViaSpecBody struct { Req *types.QueryConnectionInfoViaSpec `xml:"urn:vim25 QueryConnectionInfoViaSpec,omitempty"` - Res *types.QueryConnectionInfoViaSpecResponse `xml:"urn:vim25 QueryConnectionInfoViaSpecResponse,omitempty"` + Res *types.QueryConnectionInfoViaSpecResponse `xml:"QueryConnectionInfoViaSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8923,9 +9523,29 @@ func QueryConnectionInfoViaSpec(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type QueryCryptoKeyStatusBody struct { + Req *types.QueryCryptoKeyStatus `xml:"urn:vim25 QueryCryptoKeyStatus,omitempty"` + Res *types.QueryCryptoKeyStatusResponse `xml:"QueryCryptoKeyStatusResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *QueryCryptoKeyStatusBody) Fault() *soap.Fault { return b.Fault_ } + +func QueryCryptoKeyStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryCryptoKeyStatus) (*types.QueryCryptoKeyStatusResponse, error) { + var reqBody, resBody QueryCryptoKeyStatusBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type QueryDatastorePerformanceSummaryBody struct { Req *types.QueryDatastorePerformanceSummary `xml:"urn:vim25 QueryDatastorePerformanceSummary,omitempty"` - Res *types.QueryDatastorePerformanceSummaryResponse `xml:"urn:vim25 QueryDatastorePerformanceSummaryResponse,omitempty"` + Res *types.QueryDatastorePerformanceSummaryResponse `xml:"QueryDatastorePerformanceSummaryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8945,7 +9565,7 @@ func QueryDatastorePerformanceSummary(ctx context.Context, r soap.RoundTripper, type QueryDateTimeBody struct { Req *types.QueryDateTime `xml:"urn:vim25 QueryDateTime,omitempty"` - Res *types.QueryDateTimeResponse `xml:"urn:vim25 QueryDateTimeResponse,omitempty"` + Res *types.QueryDateTimeResponse `xml:"QueryDateTimeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8965,7 +9585,7 @@ func QueryDateTime(ctx context.Context, r soap.RoundTripper, req *types.QueryDat type QueryDescriptionsBody struct { Req *types.QueryDescriptions `xml:"urn:vim25 QueryDescriptions,omitempty"` - Res *types.QueryDescriptionsResponse `xml:"urn:vim25 QueryDescriptionsResponse,omitempty"` + Res *types.QueryDescriptionsResponse `xml:"QueryDescriptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -8985,7 +9605,7 @@ func QueryDescriptions(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryDisksForVsanBody struct { Req *types.QueryDisksForVsan `xml:"urn:vim25 QueryDisksForVsan,omitempty"` - Res *types.QueryDisksForVsanResponse `xml:"urn:vim25 QueryDisksForVsanResponse,omitempty"` + Res *types.QueryDisksForVsanResponse `xml:"QueryDisksForVsanResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9005,7 +9625,7 @@ func QueryDisksForVsan(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryDisksUsingFilterBody struct { Req *types.QueryDisksUsingFilter `xml:"urn:vim25 QueryDisksUsingFilter,omitempty"` - Res *types.QueryDisksUsingFilterResponse `xml:"urn:vim25 QueryDisksUsingFilterResponse,omitempty"` + Res *types.QueryDisksUsingFilterResponse `xml:"QueryDisksUsingFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9025,7 +9645,7 @@ func QueryDisksUsingFilter(ctx context.Context, r soap.RoundTripper, req *types. type QueryDvsByUuidBody struct { Req *types.QueryDvsByUuid `xml:"urn:vim25 QueryDvsByUuid,omitempty"` - Res *types.QueryDvsByUuidResponse `xml:"urn:vim25 QueryDvsByUuidResponse,omitempty"` + Res *types.QueryDvsByUuidResponse `xml:"QueryDvsByUuidResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9045,7 +9665,7 @@ func QueryDvsByUuid(ctx context.Context, r soap.RoundTripper, req *types.QueryDv type QueryDvsCheckCompatibilityBody struct { Req *types.QueryDvsCheckCompatibility `xml:"urn:vim25 QueryDvsCheckCompatibility,omitempty"` - Res *types.QueryDvsCheckCompatibilityResponse `xml:"urn:vim25 QueryDvsCheckCompatibilityResponse,omitempty"` + Res *types.QueryDvsCheckCompatibilityResponse `xml:"QueryDvsCheckCompatibilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9065,7 +9685,7 @@ func QueryDvsCheckCompatibility(ctx context.Context, r soap.RoundTripper, req *t type QueryDvsCompatibleHostSpecBody struct { Req *types.QueryDvsCompatibleHostSpec `xml:"urn:vim25 QueryDvsCompatibleHostSpec,omitempty"` - Res *types.QueryDvsCompatibleHostSpecResponse `xml:"urn:vim25 QueryDvsCompatibleHostSpecResponse,omitempty"` + Res *types.QueryDvsCompatibleHostSpecResponse `xml:"QueryDvsCompatibleHostSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9085,7 +9705,7 @@ func QueryDvsCompatibleHostSpec(ctx context.Context, r soap.RoundTripper, req *t type QueryDvsConfigTargetBody struct { Req *types.QueryDvsConfigTarget `xml:"urn:vim25 QueryDvsConfigTarget,omitempty"` - Res *types.QueryDvsConfigTargetResponse `xml:"urn:vim25 QueryDvsConfigTargetResponse,omitempty"` + Res *types.QueryDvsConfigTargetResponse `xml:"QueryDvsConfigTargetResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9105,7 +9725,7 @@ func QueryDvsConfigTarget(ctx context.Context, r soap.RoundTripper, req *types.Q type QueryDvsFeatureCapabilityBody struct { Req *types.QueryDvsFeatureCapability `xml:"urn:vim25 QueryDvsFeatureCapability,omitempty"` - Res *types.QueryDvsFeatureCapabilityResponse `xml:"urn:vim25 QueryDvsFeatureCapabilityResponse,omitempty"` + Res *types.QueryDvsFeatureCapabilityResponse `xml:"QueryDvsFeatureCapabilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9125,7 +9745,7 @@ func QueryDvsFeatureCapability(ctx context.Context, r soap.RoundTripper, req *ty type QueryEventsBody struct { Req *types.QueryEvents `xml:"urn:vim25 QueryEvents,omitempty"` - Res *types.QueryEventsResponse `xml:"urn:vim25 QueryEventsResponse,omitempty"` + Res *types.QueryEventsResponse `xml:"QueryEventsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9145,7 +9765,7 @@ func QueryEvents(ctx context.Context, r soap.RoundTripper, req *types.QueryEvent type QueryExpressionMetadataBody struct { Req *types.QueryExpressionMetadata `xml:"urn:vim25 QueryExpressionMetadata,omitempty"` - Res *types.QueryExpressionMetadataResponse `xml:"urn:vim25 QueryExpressionMetadataResponse,omitempty"` + Res *types.QueryExpressionMetadataResponse `xml:"QueryExpressionMetadataResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9165,7 +9785,7 @@ func QueryExpressionMetadata(ctx context.Context, r soap.RoundTripper, req *type type QueryExtensionIpAllocationUsageBody struct { Req *types.QueryExtensionIpAllocationUsage `xml:"urn:vim25 QueryExtensionIpAllocationUsage,omitempty"` - Res *types.QueryExtensionIpAllocationUsageResponse `xml:"urn:vim25 QueryExtensionIpAllocationUsageResponse,omitempty"` + Res *types.QueryExtensionIpAllocationUsageResponse `xml:"QueryExtensionIpAllocationUsageResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9185,7 +9805,7 @@ func QueryExtensionIpAllocationUsage(ctx context.Context, r soap.RoundTripper, r type QueryFaultToleranceCompatibilityBody struct { Req *types.QueryFaultToleranceCompatibility `xml:"urn:vim25 QueryFaultToleranceCompatibility,omitempty"` - Res *types.QueryFaultToleranceCompatibilityResponse `xml:"urn:vim25 QueryFaultToleranceCompatibilityResponse,omitempty"` + Res *types.QueryFaultToleranceCompatibilityResponse `xml:"QueryFaultToleranceCompatibilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9205,7 +9825,7 @@ func QueryFaultToleranceCompatibility(ctx context.Context, r soap.RoundTripper, type QueryFaultToleranceCompatibilityExBody struct { Req *types.QueryFaultToleranceCompatibilityEx `xml:"urn:vim25 QueryFaultToleranceCompatibilityEx,omitempty"` - Res *types.QueryFaultToleranceCompatibilityExResponse `xml:"urn:vim25 QueryFaultToleranceCompatibilityExResponse,omitempty"` + Res *types.QueryFaultToleranceCompatibilityExResponse `xml:"QueryFaultToleranceCompatibilityExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9225,7 +9845,7 @@ func QueryFaultToleranceCompatibilityEx(ctx context.Context, r soap.RoundTripper type QueryFilterEntitiesBody struct { Req *types.QueryFilterEntities `xml:"urn:vim25 QueryFilterEntities,omitempty"` - Res *types.QueryFilterEntitiesResponse `xml:"urn:vim25 QueryFilterEntitiesResponse,omitempty"` + Res *types.QueryFilterEntitiesResponse `xml:"QueryFilterEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9245,7 +9865,7 @@ func QueryFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryFilterInfoIdsBody struct { Req *types.QueryFilterInfoIds `xml:"urn:vim25 QueryFilterInfoIds,omitempty"` - Res *types.QueryFilterInfoIdsResponse `xml:"urn:vim25 QueryFilterInfoIdsResponse,omitempty"` + Res *types.QueryFilterInfoIdsResponse `xml:"QueryFilterInfoIdsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9265,7 +9885,7 @@ func QueryFilterInfoIds(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryFilterListBody struct { Req *types.QueryFilterList `xml:"urn:vim25 QueryFilterList,omitempty"` - Res *types.QueryFilterListResponse `xml:"urn:vim25 QueryFilterListResponse,omitempty"` + Res *types.QueryFilterListResponse `xml:"QueryFilterListResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9285,7 +9905,7 @@ func QueryFilterList(ctx context.Context, r soap.RoundTripper, req *types.QueryF type QueryFilterNameBody struct { Req *types.QueryFilterName `xml:"urn:vim25 QueryFilterName,omitempty"` - Res *types.QueryFilterNameResponse `xml:"urn:vim25 QueryFilterNameResponse,omitempty"` + Res *types.QueryFilterNameResponse `xml:"QueryFilterNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9305,7 +9925,7 @@ func QueryFilterName(ctx context.Context, r soap.RoundTripper, req *types.QueryF type QueryFirmwareConfigUploadURLBody struct { Req *types.QueryFirmwareConfigUploadURL `xml:"urn:vim25 QueryFirmwareConfigUploadURL,omitempty"` - Res *types.QueryFirmwareConfigUploadURLResponse `xml:"urn:vim25 QueryFirmwareConfigUploadURLResponse,omitempty"` + Res *types.QueryFirmwareConfigUploadURLResponse `xml:"QueryFirmwareConfigUploadURLResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9325,7 +9945,7 @@ func QueryFirmwareConfigUploadURL(ctx context.Context, r soap.RoundTripper, req type QueryHealthUpdateInfosBody struct { Req *types.QueryHealthUpdateInfos `xml:"urn:vim25 QueryHealthUpdateInfos,omitempty"` - Res *types.QueryHealthUpdateInfosResponse `xml:"urn:vim25 QueryHealthUpdateInfosResponse,omitempty"` + Res *types.QueryHealthUpdateInfosResponse `xml:"QueryHealthUpdateInfosResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9345,7 +9965,7 @@ func QueryHealthUpdateInfos(ctx context.Context, r soap.RoundTripper, req *types type QueryHealthUpdatesBody struct { Req *types.QueryHealthUpdates `xml:"urn:vim25 QueryHealthUpdates,omitempty"` - Res *types.QueryHealthUpdatesResponse `xml:"urn:vim25 QueryHealthUpdatesResponse,omitempty"` + Res *types.QueryHealthUpdatesResponse `xml:"QueryHealthUpdatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9365,7 +9985,7 @@ func QueryHealthUpdates(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryHostConnectionInfoBody struct { Req *types.QueryHostConnectionInfo `xml:"urn:vim25 QueryHostConnectionInfo,omitempty"` - Res *types.QueryHostConnectionInfoResponse `xml:"urn:vim25 QueryHostConnectionInfoResponse,omitempty"` + Res *types.QueryHostConnectionInfoResponse `xml:"QueryHostConnectionInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9385,7 +10005,7 @@ func QueryHostConnectionInfo(ctx context.Context, r soap.RoundTripper, req *type type QueryHostPatch_TaskBody struct { Req *types.QueryHostPatch_Task `xml:"urn:vim25 QueryHostPatch_Task,omitempty"` - Res *types.QueryHostPatch_TaskResponse `xml:"urn:vim25 QueryHostPatch_TaskResponse,omitempty"` + Res *types.QueryHostPatch_TaskResponse `xml:"QueryHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9405,7 +10025,7 @@ func QueryHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryHostProfileMetadataBody struct { Req *types.QueryHostProfileMetadata `xml:"urn:vim25 QueryHostProfileMetadata,omitempty"` - Res *types.QueryHostProfileMetadataResponse `xml:"urn:vim25 QueryHostProfileMetadataResponse,omitempty"` + Res *types.QueryHostProfileMetadataResponse `xml:"QueryHostProfileMetadataResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9425,14 +10045,34 @@ func QueryHostProfileMetadata(ctx context.Context, r soap.RoundTripper, req *typ type QueryHostStatusBody struct { Req *types.QueryHostStatus `xml:"urn:vim25 QueryHostStatus,omitempty"` - Res *types.QueryHostStatusResponse `xml:"urn:vim25 QueryHostStatusResponse,omitempty"` + Res *types.QueryHostStatusResponse `xml:"QueryHostStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } -func (b *QueryHostStatusBody) Fault() *soap.Fault { return b.Fault_ } +func (b *QueryHostStatusBody) Fault() *soap.Fault { return b.Fault_ } + +func QueryHostStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryHostStatus) (*types.QueryHostStatusResponse, error) { + var reqBody, resBody QueryHostStatusBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type QueryHostsWithAttachedLunBody struct { + Req *types.QueryHostsWithAttachedLun `xml:"urn:vim25 QueryHostsWithAttachedLun,omitempty"` + Res *types.QueryHostsWithAttachedLunResponse `xml:"QueryHostsWithAttachedLunResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *QueryHostsWithAttachedLunBody) Fault() *soap.Fault { return b.Fault_ } -func QueryHostStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryHostStatus) (*types.QueryHostStatusResponse, error) { - var reqBody, resBody QueryHostStatusBody +func QueryHostsWithAttachedLun(ctx context.Context, r soap.RoundTripper, req *types.QueryHostsWithAttachedLun) (*types.QueryHostsWithAttachedLunResponse, error) { + var reqBody, resBody QueryHostsWithAttachedLunBody reqBody.Req = req @@ -9445,7 +10085,7 @@ func QueryHostStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryH type QueryIORMConfigOptionBody struct { Req *types.QueryIORMConfigOption `xml:"urn:vim25 QueryIORMConfigOption,omitempty"` - Res *types.QueryIORMConfigOptionResponse `xml:"urn:vim25 QueryIORMConfigOptionResponse,omitempty"` + Res *types.QueryIORMConfigOptionResponse `xml:"QueryIORMConfigOptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9465,7 +10105,7 @@ func QueryIORMConfigOption(ctx context.Context, r soap.RoundTripper, req *types. type QueryIPAllocationsBody struct { Req *types.QueryIPAllocations `xml:"urn:vim25 QueryIPAllocations,omitempty"` - Res *types.QueryIPAllocationsResponse `xml:"urn:vim25 QueryIPAllocationsResponse,omitempty"` + Res *types.QueryIPAllocationsResponse `xml:"QueryIPAllocationsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9485,7 +10125,7 @@ func QueryIPAllocations(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryIoFilterInfoBody struct { Req *types.QueryIoFilterInfo `xml:"urn:vim25 QueryIoFilterInfo,omitempty"` - Res *types.QueryIoFilterInfoResponse `xml:"urn:vim25 QueryIoFilterInfoResponse,omitempty"` + Res *types.QueryIoFilterInfoResponse `xml:"QueryIoFilterInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9505,7 +10145,7 @@ func QueryIoFilterInfo(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryIoFilterIssuesBody struct { Req *types.QueryIoFilterIssues `xml:"urn:vim25 QueryIoFilterIssues,omitempty"` - Res *types.QueryIoFilterIssuesResponse `xml:"urn:vim25 QueryIoFilterIssuesResponse,omitempty"` + Res *types.QueryIoFilterIssuesResponse `xml:"QueryIoFilterIssuesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9525,7 +10165,7 @@ func QueryIoFilterIssues(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryIpPoolsBody struct { Req *types.QueryIpPools `xml:"urn:vim25 QueryIpPools,omitempty"` - Res *types.QueryIpPoolsResponse `xml:"urn:vim25 QueryIpPoolsResponse,omitempty"` + Res *types.QueryIpPoolsResponse `xml:"QueryIpPoolsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9545,7 +10185,7 @@ func QueryIpPools(ctx context.Context, r soap.RoundTripper, req *types.QueryIpPo type QueryLicenseSourceAvailabilityBody struct { Req *types.QueryLicenseSourceAvailability `xml:"urn:vim25 QueryLicenseSourceAvailability,omitempty"` - Res *types.QueryLicenseSourceAvailabilityResponse `xml:"urn:vim25 QueryLicenseSourceAvailabilityResponse,omitempty"` + Res *types.QueryLicenseSourceAvailabilityResponse `xml:"QueryLicenseSourceAvailabilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9565,7 +10205,7 @@ func QueryLicenseSourceAvailability(ctx context.Context, r soap.RoundTripper, re type QueryLicenseUsageBody struct { Req *types.QueryLicenseUsage `xml:"urn:vim25 QueryLicenseUsage,omitempty"` - Res *types.QueryLicenseUsageResponse `xml:"urn:vim25 QueryLicenseUsageResponse,omitempty"` + Res *types.QueryLicenseUsageResponse `xml:"QueryLicenseUsageResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9585,7 +10225,7 @@ func QueryLicenseUsage(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryLockdownExceptionsBody struct { Req *types.QueryLockdownExceptions `xml:"urn:vim25 QueryLockdownExceptions,omitempty"` - Res *types.QueryLockdownExceptionsResponse `xml:"urn:vim25 QueryLockdownExceptionsResponse,omitempty"` + Res *types.QueryLockdownExceptionsResponse `xml:"QueryLockdownExceptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9605,7 +10245,7 @@ func QueryLockdownExceptions(ctx context.Context, r soap.RoundTripper, req *type type QueryManagedByBody struct { Req *types.QueryManagedBy `xml:"urn:vim25 QueryManagedBy,omitempty"` - Res *types.QueryManagedByResponse `xml:"urn:vim25 QueryManagedByResponse,omitempty"` + Res *types.QueryManagedByResponse `xml:"QueryManagedByResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9625,7 +10265,7 @@ func QueryManagedBy(ctx context.Context, r soap.RoundTripper, req *types.QueryMa type QueryMemoryOverheadBody struct { Req *types.QueryMemoryOverhead `xml:"urn:vim25 QueryMemoryOverhead,omitempty"` - Res *types.QueryMemoryOverheadResponse `xml:"urn:vim25 QueryMemoryOverheadResponse,omitempty"` + Res *types.QueryMemoryOverheadResponse `xml:"QueryMemoryOverheadResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9645,7 +10285,7 @@ func QueryMemoryOverhead(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryMemoryOverheadExBody struct { Req *types.QueryMemoryOverheadEx `xml:"urn:vim25 QueryMemoryOverheadEx,omitempty"` - Res *types.QueryMemoryOverheadExResponse `xml:"urn:vim25 QueryMemoryOverheadExResponse,omitempty"` + Res *types.QueryMemoryOverheadExResponse `xml:"QueryMemoryOverheadExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9665,7 +10305,7 @@ func QueryMemoryOverheadEx(ctx context.Context, r soap.RoundTripper, req *types. type QueryMigrationDependenciesBody struct { Req *types.QueryMigrationDependencies `xml:"urn:vim25 QueryMigrationDependencies,omitempty"` - Res *types.QueryMigrationDependenciesResponse `xml:"urn:vim25 QueryMigrationDependenciesResponse,omitempty"` + Res *types.QueryMigrationDependenciesResponse `xml:"QueryMigrationDependenciesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9685,7 +10325,7 @@ func QueryMigrationDependencies(ctx context.Context, r soap.RoundTripper, req *t type QueryModulesBody struct { Req *types.QueryModules `xml:"urn:vim25 QueryModules,omitempty"` - Res *types.QueryModulesResponse `xml:"urn:vim25 QueryModulesResponse,omitempty"` + Res *types.QueryModulesResponse `xml:"QueryModulesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9705,7 +10345,7 @@ func QueryModules(ctx context.Context, r soap.RoundTripper, req *types.QueryModu type QueryMonitoredEntitiesBody struct { Req *types.QueryMonitoredEntities `xml:"urn:vim25 QueryMonitoredEntities,omitempty"` - Res *types.QueryMonitoredEntitiesResponse `xml:"urn:vim25 QueryMonitoredEntitiesResponse,omitempty"` + Res *types.QueryMonitoredEntitiesResponse `xml:"QueryMonitoredEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9725,7 +10365,7 @@ func QueryMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *types type QueryNFSUserBody struct { Req *types.QueryNFSUser `xml:"urn:vim25 QueryNFSUser,omitempty"` - Res *types.QueryNFSUserResponse `xml:"urn:vim25 QueryNFSUserResponse,omitempty"` + Res *types.QueryNFSUserResponse `xml:"QueryNFSUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9745,7 +10385,7 @@ func QueryNFSUser(ctx context.Context, r soap.RoundTripper, req *types.QueryNFSU type QueryNetConfigBody struct { Req *types.QueryNetConfig `xml:"urn:vim25 QueryNetConfig,omitempty"` - Res *types.QueryNetConfigResponse `xml:"urn:vim25 QueryNetConfigResponse,omitempty"` + Res *types.QueryNetConfigResponse `xml:"QueryNetConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9765,7 +10405,7 @@ func QueryNetConfig(ctx context.Context, r soap.RoundTripper, req *types.QueryNe type QueryNetworkHintBody struct { Req *types.QueryNetworkHint `xml:"urn:vim25 QueryNetworkHint,omitempty"` - Res *types.QueryNetworkHintResponse `xml:"urn:vim25 QueryNetworkHintResponse,omitempty"` + Res *types.QueryNetworkHintResponse `xml:"QueryNetworkHintResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9785,7 +10425,7 @@ func QueryNetworkHint(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryObjectsOnPhysicalVsanDiskBody struct { Req *types.QueryObjectsOnPhysicalVsanDisk `xml:"urn:vim25 QueryObjectsOnPhysicalVsanDisk,omitempty"` - Res *types.QueryObjectsOnPhysicalVsanDiskResponse `xml:"urn:vim25 QueryObjectsOnPhysicalVsanDiskResponse,omitempty"` + Res *types.QueryObjectsOnPhysicalVsanDiskResponse `xml:"QueryObjectsOnPhysicalVsanDiskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9805,7 +10445,7 @@ func QueryObjectsOnPhysicalVsanDisk(ctx context.Context, r soap.RoundTripper, re type QueryOptionsBody struct { Req *types.QueryOptions `xml:"urn:vim25 QueryOptions,omitempty"` - Res *types.QueryOptionsResponse `xml:"urn:vim25 QueryOptionsResponse,omitempty"` + Res *types.QueryOptionsResponse `xml:"QueryOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9825,7 +10465,7 @@ func QueryOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryOpti type QueryPartitionCreateDescBody struct { Req *types.QueryPartitionCreateDesc `xml:"urn:vim25 QueryPartitionCreateDesc,omitempty"` - Res *types.QueryPartitionCreateDescResponse `xml:"urn:vim25 QueryPartitionCreateDescResponse,omitempty"` + Res *types.QueryPartitionCreateDescResponse `xml:"QueryPartitionCreateDescResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9845,7 +10485,7 @@ func QueryPartitionCreateDesc(ctx context.Context, r soap.RoundTripper, req *typ type QueryPartitionCreateOptionsBody struct { Req *types.QueryPartitionCreateOptions `xml:"urn:vim25 QueryPartitionCreateOptions,omitempty"` - Res *types.QueryPartitionCreateOptionsResponse `xml:"urn:vim25 QueryPartitionCreateOptionsResponse,omitempty"` + Res *types.QueryPartitionCreateOptionsResponse `xml:"QueryPartitionCreateOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9865,7 +10505,7 @@ func QueryPartitionCreateOptions(ctx context.Context, r soap.RoundTripper, req * type QueryPathSelectionPolicyOptionsBody struct { Req *types.QueryPathSelectionPolicyOptions `xml:"urn:vim25 QueryPathSelectionPolicyOptions,omitempty"` - Res *types.QueryPathSelectionPolicyOptionsResponse `xml:"urn:vim25 QueryPathSelectionPolicyOptionsResponse,omitempty"` + Res *types.QueryPathSelectionPolicyOptionsResponse `xml:"QueryPathSelectionPolicyOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9885,7 +10525,7 @@ func QueryPathSelectionPolicyOptions(ctx context.Context, r soap.RoundTripper, r type QueryPerfBody struct { Req *types.QueryPerf `xml:"urn:vim25 QueryPerf,omitempty"` - Res *types.QueryPerfResponse `xml:"urn:vim25 QueryPerfResponse,omitempty"` + Res *types.QueryPerfResponse `xml:"QueryPerfResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9905,7 +10545,7 @@ func QueryPerf(ctx context.Context, r soap.RoundTripper, req *types.QueryPerf) ( type QueryPerfCompositeBody struct { Req *types.QueryPerfComposite `xml:"urn:vim25 QueryPerfComposite,omitempty"` - Res *types.QueryPerfCompositeResponse `xml:"urn:vim25 QueryPerfCompositeResponse,omitempty"` + Res *types.QueryPerfCompositeResponse `xml:"QueryPerfCompositeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9925,7 +10565,7 @@ func QueryPerfComposite(ctx context.Context, r soap.RoundTripper, req *types.Que type QueryPerfCounterBody struct { Req *types.QueryPerfCounter `xml:"urn:vim25 QueryPerfCounter,omitempty"` - Res *types.QueryPerfCounterResponse `xml:"urn:vim25 QueryPerfCounterResponse,omitempty"` + Res *types.QueryPerfCounterResponse `xml:"QueryPerfCounterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9945,7 +10585,7 @@ func QueryPerfCounter(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryPerfCounterByLevelBody struct { Req *types.QueryPerfCounterByLevel `xml:"urn:vim25 QueryPerfCounterByLevel,omitempty"` - Res *types.QueryPerfCounterByLevelResponse `xml:"urn:vim25 QueryPerfCounterByLevelResponse,omitempty"` + Res *types.QueryPerfCounterByLevelResponse `xml:"QueryPerfCounterByLevelResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9965,7 +10605,7 @@ func QueryPerfCounterByLevel(ctx context.Context, r soap.RoundTripper, req *type type QueryPerfProviderSummaryBody struct { Req *types.QueryPerfProviderSummary `xml:"urn:vim25 QueryPerfProviderSummary,omitempty"` - Res *types.QueryPerfProviderSummaryResponse `xml:"urn:vim25 QueryPerfProviderSummaryResponse,omitempty"` + Res *types.QueryPerfProviderSummaryResponse `xml:"QueryPerfProviderSummaryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -9985,7 +10625,7 @@ func QueryPerfProviderSummary(ctx context.Context, r soap.RoundTripper, req *typ type QueryPhysicalVsanDisksBody struct { Req *types.QueryPhysicalVsanDisks `xml:"urn:vim25 QueryPhysicalVsanDisks,omitempty"` - Res *types.QueryPhysicalVsanDisksResponse `xml:"urn:vim25 QueryPhysicalVsanDisksResponse,omitempty"` + Res *types.QueryPhysicalVsanDisksResponse `xml:"QueryPhysicalVsanDisksResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10005,7 +10645,7 @@ func QueryPhysicalVsanDisks(ctx context.Context, r soap.RoundTripper, req *types type QueryPnicStatusBody struct { Req *types.QueryPnicStatus `xml:"urn:vim25 QueryPnicStatus,omitempty"` - Res *types.QueryPnicStatusResponse `xml:"urn:vim25 QueryPnicStatusResponse,omitempty"` + Res *types.QueryPnicStatusResponse `xml:"QueryPnicStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10025,7 +10665,7 @@ func QueryPnicStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryP type QueryPolicyMetadataBody struct { Req *types.QueryPolicyMetadata `xml:"urn:vim25 QueryPolicyMetadata,omitempty"` - Res *types.QueryPolicyMetadataResponse `xml:"urn:vim25 QueryPolicyMetadataResponse,omitempty"` + Res *types.QueryPolicyMetadataResponse `xml:"QueryPolicyMetadataResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10043,9 +10683,29 @@ func QueryPolicyMetadata(ctx context.Context, r soap.RoundTripper, req *types.Qu return resBody.Res, nil } +type QueryProductLockerLocationBody struct { + Req *types.QueryProductLockerLocation `xml:"urn:vim25 QueryProductLockerLocation,omitempty"` + Res *types.QueryProductLockerLocationResponse `xml:"QueryProductLockerLocationResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *QueryProductLockerLocationBody) Fault() *soap.Fault { return b.Fault_ } + +func QueryProductLockerLocation(ctx context.Context, r soap.RoundTripper, req *types.QueryProductLockerLocation) (*types.QueryProductLockerLocationResponse, error) { + var reqBody, resBody QueryProductLockerLocationBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type QueryProfileStructureBody struct { Req *types.QueryProfileStructure `xml:"urn:vim25 QueryProfileStructure,omitempty"` - Res *types.QueryProfileStructureResponse `xml:"urn:vim25 QueryProfileStructureResponse,omitempty"` + Res *types.QueryProfileStructureResponse `xml:"QueryProfileStructureResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10065,7 +10725,7 @@ func QueryProfileStructure(ctx context.Context, r soap.RoundTripper, req *types. type QueryProviderListBody struct { Req *types.QueryProviderList `xml:"urn:vim25 QueryProviderList,omitempty"` - Res *types.QueryProviderListResponse `xml:"urn:vim25 QueryProviderListResponse,omitempty"` + Res *types.QueryProviderListResponse `xml:"QueryProviderListResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10085,7 +10745,7 @@ func QueryProviderList(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryProviderNameBody struct { Req *types.QueryProviderName `xml:"urn:vim25 QueryProviderName,omitempty"` - Res *types.QueryProviderNameResponse `xml:"urn:vim25 QueryProviderNameResponse,omitempty"` + Res *types.QueryProviderNameResponse `xml:"QueryProviderNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10105,7 +10765,7 @@ func QueryProviderName(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryResourceConfigOptionBody struct { Req *types.QueryResourceConfigOption `xml:"urn:vim25 QueryResourceConfigOption,omitempty"` - Res *types.QueryResourceConfigOptionResponse `xml:"urn:vim25 QueryResourceConfigOptionResponse,omitempty"` + Res *types.QueryResourceConfigOptionResponse `xml:"QueryResourceConfigOptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10125,7 +10785,7 @@ func QueryResourceConfigOption(ctx context.Context, r soap.RoundTripper, req *ty type QueryServiceListBody struct { Req *types.QueryServiceList `xml:"urn:vim25 QueryServiceList,omitempty"` - Res *types.QueryServiceListResponse `xml:"urn:vim25 QueryServiceListResponse,omitempty"` + Res *types.QueryServiceListResponse `xml:"QueryServiceListResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10145,7 +10805,7 @@ func QueryServiceList(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryStorageArrayTypePolicyOptionsBody struct { Req *types.QueryStorageArrayTypePolicyOptions `xml:"urn:vim25 QueryStorageArrayTypePolicyOptions,omitempty"` - Res *types.QueryStorageArrayTypePolicyOptionsResponse `xml:"urn:vim25 QueryStorageArrayTypePolicyOptionsResponse,omitempty"` + Res *types.QueryStorageArrayTypePolicyOptionsResponse `xml:"QueryStorageArrayTypePolicyOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10165,7 +10825,7 @@ func QueryStorageArrayTypePolicyOptions(ctx context.Context, r soap.RoundTripper type QuerySupportedFeaturesBody struct { Req *types.QuerySupportedFeatures `xml:"urn:vim25 QuerySupportedFeatures,omitempty"` - Res *types.QuerySupportedFeaturesResponse `xml:"urn:vim25 QuerySupportedFeaturesResponse,omitempty"` + Res *types.QuerySupportedFeaturesResponse `xml:"QuerySupportedFeaturesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10185,7 +10845,7 @@ func QuerySupportedFeatures(ctx context.Context, r soap.RoundTripper, req *types type QuerySyncingVsanObjectsBody struct { Req *types.QuerySyncingVsanObjects `xml:"urn:vim25 QuerySyncingVsanObjects,omitempty"` - Res *types.QuerySyncingVsanObjectsResponse `xml:"urn:vim25 QuerySyncingVsanObjectsResponse,omitempty"` + Res *types.QuerySyncingVsanObjectsResponse `xml:"QuerySyncingVsanObjectsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10205,7 +10865,7 @@ func QuerySyncingVsanObjects(ctx context.Context, r soap.RoundTripper, req *type type QuerySystemUsersBody struct { Req *types.QuerySystemUsers `xml:"urn:vim25 QuerySystemUsers,omitempty"` - Res *types.QuerySystemUsersResponse `xml:"urn:vim25 QuerySystemUsersResponse,omitempty"` + Res *types.QuerySystemUsersResponse `xml:"QuerySystemUsersResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10225,7 +10885,7 @@ func QuerySystemUsers(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryTargetCapabilitiesBody struct { Req *types.QueryTargetCapabilities `xml:"urn:vim25 QueryTargetCapabilities,omitempty"` - Res *types.QueryTargetCapabilitiesResponse `xml:"urn:vim25 QueryTargetCapabilitiesResponse,omitempty"` + Res *types.QueryTargetCapabilitiesResponse `xml:"QueryTargetCapabilitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10245,7 +10905,7 @@ func QueryTargetCapabilities(ctx context.Context, r soap.RoundTripper, req *type type QueryTpmAttestationReportBody struct { Req *types.QueryTpmAttestationReport `xml:"urn:vim25 QueryTpmAttestationReport,omitempty"` - Res *types.QueryTpmAttestationReportResponse `xml:"urn:vim25 QueryTpmAttestationReportResponse,omitempty"` + Res *types.QueryTpmAttestationReportResponse `xml:"QueryTpmAttestationReportResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10265,7 +10925,7 @@ func QueryTpmAttestationReport(ctx context.Context, r soap.RoundTripper, req *ty type QueryUnmonitoredHostsBody struct { Req *types.QueryUnmonitoredHosts `xml:"urn:vim25 QueryUnmonitoredHosts,omitempty"` - Res *types.QueryUnmonitoredHostsResponse `xml:"urn:vim25 QueryUnmonitoredHostsResponse,omitempty"` + Res *types.QueryUnmonitoredHostsResponse `xml:"QueryUnmonitoredHostsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10285,7 +10945,7 @@ func QueryUnmonitoredHosts(ctx context.Context, r soap.RoundTripper, req *types. type QueryUnownedFilesBody struct { Req *types.QueryUnownedFiles `xml:"urn:vim25 QueryUnownedFiles,omitempty"` - Res *types.QueryUnownedFilesResponse `xml:"urn:vim25 QueryUnownedFilesResponse,omitempty"` + Res *types.QueryUnownedFilesResponse `xml:"QueryUnownedFilesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10305,7 +10965,7 @@ func QueryUnownedFiles(ctx context.Context, r soap.RoundTripper, req *types.Quer type QueryUnresolvedVmfsVolumeBody struct { Req *types.QueryUnresolvedVmfsVolume `xml:"urn:vim25 QueryUnresolvedVmfsVolume,omitempty"` - Res *types.QueryUnresolvedVmfsVolumeResponse `xml:"urn:vim25 QueryUnresolvedVmfsVolumeResponse,omitempty"` + Res *types.QueryUnresolvedVmfsVolumeResponse `xml:"QueryUnresolvedVmfsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10325,7 +10985,7 @@ func QueryUnresolvedVmfsVolume(ctx context.Context, r soap.RoundTripper, req *ty type QueryUnresolvedVmfsVolumesBody struct { Req *types.QueryUnresolvedVmfsVolumes `xml:"urn:vim25 QueryUnresolvedVmfsVolumes,omitempty"` - Res *types.QueryUnresolvedVmfsVolumesResponse `xml:"urn:vim25 QueryUnresolvedVmfsVolumesResponse,omitempty"` + Res *types.QueryUnresolvedVmfsVolumesResponse `xml:"QueryUnresolvedVmfsVolumesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10345,7 +11005,7 @@ func QueryUnresolvedVmfsVolumes(ctx context.Context, r soap.RoundTripper, req *t type QueryUsedVlanIdInDvsBody struct { Req *types.QueryUsedVlanIdInDvs `xml:"urn:vim25 QueryUsedVlanIdInDvs,omitempty"` - Res *types.QueryUsedVlanIdInDvsResponse `xml:"urn:vim25 QueryUsedVlanIdInDvsResponse,omitempty"` + Res *types.QueryUsedVlanIdInDvsResponse `xml:"QueryUsedVlanIdInDvsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10365,7 +11025,7 @@ func QueryUsedVlanIdInDvs(ctx context.Context, r soap.RoundTripper, req *types.Q type QueryVMotionCompatibilityBody struct { Req *types.QueryVMotionCompatibility `xml:"urn:vim25 QueryVMotionCompatibility,omitempty"` - Res *types.QueryVMotionCompatibilityResponse `xml:"urn:vim25 QueryVMotionCompatibilityResponse,omitempty"` + Res *types.QueryVMotionCompatibilityResponse `xml:"QueryVMotionCompatibilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10385,7 +11045,7 @@ func QueryVMotionCompatibility(ctx context.Context, r soap.RoundTripper, req *ty type QueryVMotionCompatibilityEx_TaskBody struct { Req *types.QueryVMotionCompatibilityEx_Task `xml:"urn:vim25 QueryVMotionCompatibilityEx_Task,omitempty"` - Res *types.QueryVMotionCompatibilityEx_TaskResponse `xml:"urn:vim25 QueryVMotionCompatibilityEx_TaskResponse,omitempty"` + Res *types.QueryVMotionCompatibilityEx_TaskResponse `xml:"QueryVMotionCompatibilityEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10405,7 +11065,7 @@ func QueryVMotionCompatibilityEx_Task(ctx context.Context, r soap.RoundTripper, type QueryVirtualDiskFragmentationBody struct { Req *types.QueryVirtualDiskFragmentation `xml:"urn:vim25 QueryVirtualDiskFragmentation,omitempty"` - Res *types.QueryVirtualDiskFragmentationResponse `xml:"urn:vim25 QueryVirtualDiskFragmentationResponse,omitempty"` + Res *types.QueryVirtualDiskFragmentationResponse `xml:"QueryVirtualDiskFragmentationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10425,7 +11085,7 @@ func QueryVirtualDiskFragmentation(ctx context.Context, r soap.RoundTripper, req type QueryVirtualDiskGeometryBody struct { Req *types.QueryVirtualDiskGeometry `xml:"urn:vim25 QueryVirtualDiskGeometry,omitempty"` - Res *types.QueryVirtualDiskGeometryResponse `xml:"urn:vim25 QueryVirtualDiskGeometryResponse,omitempty"` + Res *types.QueryVirtualDiskGeometryResponse `xml:"QueryVirtualDiskGeometryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10445,7 +11105,7 @@ func QueryVirtualDiskGeometry(ctx context.Context, r soap.RoundTripper, req *typ type QueryVirtualDiskUuidBody struct { Req *types.QueryVirtualDiskUuid `xml:"urn:vim25 QueryVirtualDiskUuid,omitempty"` - Res *types.QueryVirtualDiskUuidResponse `xml:"urn:vim25 QueryVirtualDiskUuidResponse,omitempty"` + Res *types.QueryVirtualDiskUuidResponse `xml:"QueryVirtualDiskUuidResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10465,7 +11125,7 @@ func QueryVirtualDiskUuid(ctx context.Context, r soap.RoundTripper, req *types.Q type QueryVmfsConfigOptionBody struct { Req *types.QueryVmfsConfigOption `xml:"urn:vim25 QueryVmfsConfigOption,omitempty"` - Res *types.QueryVmfsConfigOptionResponse `xml:"urn:vim25 QueryVmfsConfigOptionResponse,omitempty"` + Res *types.QueryVmfsConfigOptionResponse `xml:"QueryVmfsConfigOptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10485,7 +11145,7 @@ func QueryVmfsConfigOption(ctx context.Context, r soap.RoundTripper, req *types. type QueryVmfsDatastoreCreateOptionsBody struct { Req *types.QueryVmfsDatastoreCreateOptions `xml:"urn:vim25 QueryVmfsDatastoreCreateOptions,omitempty"` - Res *types.QueryVmfsDatastoreCreateOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreCreateOptionsResponse,omitempty"` + Res *types.QueryVmfsDatastoreCreateOptionsResponse `xml:"QueryVmfsDatastoreCreateOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10505,7 +11165,7 @@ func QueryVmfsDatastoreCreateOptions(ctx context.Context, r soap.RoundTripper, r type QueryVmfsDatastoreExpandOptionsBody struct { Req *types.QueryVmfsDatastoreExpandOptions `xml:"urn:vim25 QueryVmfsDatastoreExpandOptions,omitempty"` - Res *types.QueryVmfsDatastoreExpandOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreExpandOptionsResponse,omitempty"` + Res *types.QueryVmfsDatastoreExpandOptionsResponse `xml:"QueryVmfsDatastoreExpandOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10525,7 +11185,7 @@ func QueryVmfsDatastoreExpandOptions(ctx context.Context, r soap.RoundTripper, r type QueryVmfsDatastoreExtendOptionsBody struct { Req *types.QueryVmfsDatastoreExtendOptions `xml:"urn:vim25 QueryVmfsDatastoreExtendOptions,omitempty"` - Res *types.QueryVmfsDatastoreExtendOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreExtendOptionsResponse,omitempty"` + Res *types.QueryVmfsDatastoreExtendOptionsResponse `xml:"QueryVmfsDatastoreExtendOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10545,7 +11205,7 @@ func QueryVmfsDatastoreExtendOptions(ctx context.Context, r soap.RoundTripper, r type QueryVnicStatusBody struct { Req *types.QueryVnicStatus `xml:"urn:vim25 QueryVnicStatus,omitempty"` - Res *types.QueryVnicStatusResponse `xml:"urn:vim25 QueryVnicStatusResponse,omitempty"` + Res *types.QueryVnicStatusResponse `xml:"QueryVnicStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10565,7 +11225,7 @@ func QueryVnicStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryV type QueryVsanObjectUuidsByFilterBody struct { Req *types.QueryVsanObjectUuidsByFilter `xml:"urn:vim25 QueryVsanObjectUuidsByFilter,omitempty"` - Res *types.QueryVsanObjectUuidsByFilterResponse `xml:"urn:vim25 QueryVsanObjectUuidsByFilterResponse,omitempty"` + Res *types.QueryVsanObjectUuidsByFilterResponse `xml:"QueryVsanObjectUuidsByFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10585,7 +11245,7 @@ func QueryVsanObjectUuidsByFilter(ctx context.Context, r soap.RoundTripper, req type QueryVsanObjectsBody struct { Req *types.QueryVsanObjects `xml:"urn:vim25 QueryVsanObjects,omitempty"` - Res *types.QueryVsanObjectsResponse `xml:"urn:vim25 QueryVsanObjectsResponse,omitempty"` + Res *types.QueryVsanObjectsResponse `xml:"QueryVsanObjectsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10605,7 +11265,7 @@ func QueryVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.Query type QueryVsanStatisticsBody struct { Req *types.QueryVsanStatistics `xml:"urn:vim25 QueryVsanStatistics,omitempty"` - Res *types.QueryVsanStatisticsResponse `xml:"urn:vim25 QueryVsanStatisticsResponse,omitempty"` + Res *types.QueryVsanStatisticsResponse `xml:"QueryVsanStatisticsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10625,7 +11285,7 @@ func QueryVsanStatistics(ctx context.Context, r soap.RoundTripper, req *types.Qu type QueryVsanUpgradeStatusBody struct { Req *types.QueryVsanUpgradeStatus `xml:"urn:vim25 QueryVsanUpgradeStatus,omitempty"` - Res *types.QueryVsanUpgradeStatusResponse `xml:"urn:vim25 QueryVsanUpgradeStatusResponse,omitempty"` + Res *types.QueryVsanUpgradeStatusResponse `xml:"QueryVsanUpgradeStatusResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10645,7 +11305,7 @@ func QueryVsanUpgradeStatus(ctx context.Context, r soap.RoundTripper, req *types type ReadEnvironmentVariableInGuestBody struct { Req *types.ReadEnvironmentVariableInGuest `xml:"urn:vim25 ReadEnvironmentVariableInGuest,omitempty"` - Res *types.ReadEnvironmentVariableInGuestResponse `xml:"urn:vim25 ReadEnvironmentVariableInGuestResponse,omitempty"` + Res *types.ReadEnvironmentVariableInGuestResponse `xml:"ReadEnvironmentVariableInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10665,7 +11325,7 @@ func ReadEnvironmentVariableInGuest(ctx context.Context, r soap.RoundTripper, re type ReadNextEventsBody struct { Req *types.ReadNextEvents `xml:"urn:vim25 ReadNextEvents,omitempty"` - Res *types.ReadNextEventsResponse `xml:"urn:vim25 ReadNextEventsResponse,omitempty"` + Res *types.ReadNextEventsResponse `xml:"ReadNextEventsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10685,7 +11345,7 @@ func ReadNextEvents(ctx context.Context, r soap.RoundTripper, req *types.ReadNex type ReadNextTasksBody struct { Req *types.ReadNextTasks `xml:"urn:vim25 ReadNextTasks,omitempty"` - Res *types.ReadNextTasksResponse `xml:"urn:vim25 ReadNextTasksResponse,omitempty"` + Res *types.ReadNextTasksResponse `xml:"ReadNextTasksResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10705,7 +11365,7 @@ func ReadNextTasks(ctx context.Context, r soap.RoundTripper, req *types.ReadNext type ReadPreviousEventsBody struct { Req *types.ReadPreviousEvents `xml:"urn:vim25 ReadPreviousEvents,omitempty"` - Res *types.ReadPreviousEventsResponse `xml:"urn:vim25 ReadPreviousEventsResponse,omitempty"` + Res *types.ReadPreviousEventsResponse `xml:"ReadPreviousEventsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10725,7 +11385,7 @@ func ReadPreviousEvents(ctx context.Context, r soap.RoundTripper, req *types.Rea type ReadPreviousTasksBody struct { Req *types.ReadPreviousTasks `xml:"urn:vim25 ReadPreviousTasks,omitempty"` - Res *types.ReadPreviousTasksResponse `xml:"urn:vim25 ReadPreviousTasksResponse,omitempty"` + Res *types.ReadPreviousTasksResponse `xml:"ReadPreviousTasksResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10745,7 +11405,7 @@ func ReadPreviousTasks(ctx context.Context, r soap.RoundTripper, req *types.Read type RebootGuestBody struct { Req *types.RebootGuest `xml:"urn:vim25 RebootGuest,omitempty"` - Res *types.RebootGuestResponse `xml:"urn:vim25 RebootGuestResponse,omitempty"` + Res *types.RebootGuestResponse `xml:"RebootGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10765,7 +11425,7 @@ func RebootGuest(ctx context.Context, r soap.RoundTripper, req *types.RebootGues type RebootHost_TaskBody struct { Req *types.RebootHost_Task `xml:"urn:vim25 RebootHost_Task,omitempty"` - Res *types.RebootHost_TaskResponse `xml:"urn:vim25 RebootHost_TaskResponse,omitempty"` + Res *types.RebootHost_TaskResponse `xml:"RebootHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10785,7 +11445,7 @@ func RebootHost_Task(ctx context.Context, r soap.RoundTripper, req *types.Reboot type RecommendDatastoresBody struct { Req *types.RecommendDatastores `xml:"urn:vim25 RecommendDatastores,omitempty"` - Res *types.RecommendDatastoresResponse `xml:"urn:vim25 RecommendDatastoresResponse,omitempty"` + Res *types.RecommendDatastoresResponse `xml:"RecommendDatastoresResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10805,7 +11465,7 @@ func RecommendDatastores(ctx context.Context, r soap.RoundTripper, req *types.Re type RecommendHostsForVmBody struct { Req *types.RecommendHostsForVm `xml:"urn:vim25 RecommendHostsForVm,omitempty"` - Res *types.RecommendHostsForVmResponse `xml:"urn:vim25 RecommendHostsForVmResponse,omitempty"` + Res *types.RecommendHostsForVmResponse `xml:"RecommendHostsForVmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10825,7 +11485,7 @@ func RecommendHostsForVm(ctx context.Context, r soap.RoundTripper, req *types.Re type RecommissionVsanNode_TaskBody struct { Req *types.RecommissionVsanNode_Task `xml:"urn:vim25 RecommissionVsanNode_Task,omitempty"` - Res *types.RecommissionVsanNode_TaskResponse `xml:"urn:vim25 RecommissionVsanNode_TaskResponse,omitempty"` + Res *types.RecommissionVsanNode_TaskResponse `xml:"RecommissionVsanNode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10845,7 +11505,7 @@ func RecommissionVsanNode_Task(ctx context.Context, r soap.RoundTripper, req *ty type ReconcileDatastoreInventory_TaskBody struct { Req *types.ReconcileDatastoreInventory_Task `xml:"urn:vim25 ReconcileDatastoreInventory_Task,omitempty"` - Res *types.ReconcileDatastoreInventory_TaskResponse `xml:"urn:vim25 ReconcileDatastoreInventory_TaskResponse,omitempty"` + Res *types.ReconcileDatastoreInventory_TaskResponse `xml:"ReconcileDatastoreInventory_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10865,7 +11525,7 @@ func ReconcileDatastoreInventory_Task(ctx context.Context, r soap.RoundTripper, type ReconfigVM_TaskBody struct { Req *types.ReconfigVM_Task `xml:"urn:vim25 ReconfigVM_Task,omitempty"` - Res *types.ReconfigVM_TaskResponse `xml:"urn:vim25 ReconfigVM_TaskResponse,omitempty"` + Res *types.ReconfigVM_TaskResponse `xml:"ReconfigVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10885,7 +11545,7 @@ func ReconfigVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Reconf type ReconfigurationSatisfiableBody struct { Req *types.ReconfigurationSatisfiable `xml:"urn:vim25 ReconfigurationSatisfiable,omitempty"` - Res *types.ReconfigurationSatisfiableResponse `xml:"urn:vim25 ReconfigurationSatisfiableResponse,omitempty"` + Res *types.ReconfigurationSatisfiableResponse `xml:"ReconfigurationSatisfiableResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10905,7 +11565,7 @@ func ReconfigurationSatisfiable(ctx context.Context, r soap.RoundTripper, req *t type ReconfigureAlarmBody struct { Req *types.ReconfigureAlarm `xml:"urn:vim25 ReconfigureAlarm,omitempty"` - Res *types.ReconfigureAlarmResponse `xml:"urn:vim25 ReconfigureAlarmResponse,omitempty"` + Res *types.ReconfigureAlarmResponse `xml:"ReconfigureAlarmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10925,7 +11585,7 @@ func ReconfigureAlarm(ctx context.Context, r soap.RoundTripper, req *types.Recon type ReconfigureAutostartBody struct { Req *types.ReconfigureAutostart `xml:"urn:vim25 ReconfigureAutostart,omitempty"` - Res *types.ReconfigureAutostartResponse `xml:"urn:vim25 ReconfigureAutostartResponse,omitempty"` + Res *types.ReconfigureAutostartResponse `xml:"ReconfigureAutostartResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10945,7 +11605,7 @@ func ReconfigureAutostart(ctx context.Context, r soap.RoundTripper, req *types.R type ReconfigureCluster_TaskBody struct { Req *types.ReconfigureCluster_Task `xml:"urn:vim25 ReconfigureCluster_Task,omitempty"` - Res *types.ReconfigureCluster_TaskResponse `xml:"urn:vim25 ReconfigureCluster_TaskResponse,omitempty"` + Res *types.ReconfigureCluster_TaskResponse `xml:"ReconfigureCluster_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10965,7 +11625,7 @@ func ReconfigureCluster_Task(ctx context.Context, r soap.RoundTripper, req *type type ReconfigureComputeResource_TaskBody struct { Req *types.ReconfigureComputeResource_Task `xml:"urn:vim25 ReconfigureComputeResource_Task,omitempty"` - Res *types.ReconfigureComputeResource_TaskResponse `xml:"urn:vim25 ReconfigureComputeResource_TaskResponse,omitempty"` + Res *types.ReconfigureComputeResource_TaskResponse `xml:"ReconfigureComputeResource_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -10985,7 +11645,7 @@ func ReconfigureComputeResource_Task(ctx context.Context, r soap.RoundTripper, r type ReconfigureDVPort_TaskBody struct { Req *types.ReconfigureDVPort_Task `xml:"urn:vim25 ReconfigureDVPort_Task,omitempty"` - Res *types.ReconfigureDVPort_TaskResponse `xml:"urn:vim25 ReconfigureDVPort_TaskResponse,omitempty"` + Res *types.ReconfigureDVPort_TaskResponse `xml:"ReconfigureDVPort_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11005,7 +11665,7 @@ func ReconfigureDVPort_Task(ctx context.Context, r soap.RoundTripper, req *types type ReconfigureDVPortgroup_TaskBody struct { Req *types.ReconfigureDVPortgroup_Task `xml:"urn:vim25 ReconfigureDVPortgroup_Task,omitempty"` - Res *types.ReconfigureDVPortgroup_TaskResponse `xml:"urn:vim25 ReconfigureDVPortgroup_TaskResponse,omitempty"` + Res *types.ReconfigureDVPortgroup_TaskResponse `xml:"ReconfigureDVPortgroup_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11025,7 +11685,7 @@ func ReconfigureDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req * type ReconfigureDatacenter_TaskBody struct { Req *types.ReconfigureDatacenter_Task `xml:"urn:vim25 ReconfigureDatacenter_Task,omitempty"` - Res *types.ReconfigureDatacenter_TaskResponse `xml:"urn:vim25 ReconfigureDatacenter_TaskResponse,omitempty"` + Res *types.ReconfigureDatacenter_TaskResponse `xml:"ReconfigureDatacenter_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11045,7 +11705,7 @@ func ReconfigureDatacenter_Task(ctx context.Context, r soap.RoundTripper, req *t type ReconfigureDomObjectBody struct { Req *types.ReconfigureDomObject `xml:"urn:vim25 ReconfigureDomObject,omitempty"` - Res *types.ReconfigureDomObjectResponse `xml:"urn:vim25 ReconfigureDomObjectResponse,omitempty"` + Res *types.ReconfigureDomObjectResponse `xml:"ReconfigureDomObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11065,7 +11725,7 @@ func ReconfigureDomObject(ctx context.Context, r soap.RoundTripper, req *types.R type ReconfigureDvs_TaskBody struct { Req *types.ReconfigureDvs_Task `xml:"urn:vim25 ReconfigureDvs_Task,omitempty"` - Res *types.ReconfigureDvs_TaskResponse `xml:"urn:vim25 ReconfigureDvs_TaskResponse,omitempty"` + Res *types.ReconfigureDvs_TaskResponse `xml:"ReconfigureDvs_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11085,7 +11745,7 @@ func ReconfigureDvs_Task(ctx context.Context, r soap.RoundTripper, req *types.Re type ReconfigureHostForDAS_TaskBody struct { Req *types.ReconfigureHostForDAS_Task `xml:"urn:vim25 ReconfigureHostForDAS_Task,omitempty"` - Res *types.ReconfigureHostForDAS_TaskResponse `xml:"urn:vim25 ReconfigureHostForDAS_TaskResponse,omitempty"` + Res *types.ReconfigureHostForDAS_TaskResponse `xml:"ReconfigureHostForDAS_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11105,7 +11765,7 @@ func ReconfigureHostForDAS_Task(ctx context.Context, r soap.RoundTripper, req *t type ReconfigureScheduledTaskBody struct { Req *types.ReconfigureScheduledTask `xml:"urn:vim25 ReconfigureScheduledTask,omitempty"` - Res *types.ReconfigureScheduledTaskResponse `xml:"urn:vim25 ReconfigureScheduledTaskResponse,omitempty"` + Res *types.ReconfigureScheduledTaskResponse `xml:"ReconfigureScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11125,7 +11785,7 @@ func ReconfigureScheduledTask(ctx context.Context, r soap.RoundTripper, req *typ type ReconfigureServiceConsoleReservationBody struct { Req *types.ReconfigureServiceConsoleReservation `xml:"urn:vim25 ReconfigureServiceConsoleReservation,omitempty"` - Res *types.ReconfigureServiceConsoleReservationResponse `xml:"urn:vim25 ReconfigureServiceConsoleReservationResponse,omitempty"` + Res *types.ReconfigureServiceConsoleReservationResponse `xml:"ReconfigureServiceConsoleReservationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11145,7 +11805,7 @@ func ReconfigureServiceConsoleReservation(ctx context.Context, r soap.RoundTripp type ReconfigureSnmpAgentBody struct { Req *types.ReconfigureSnmpAgent `xml:"urn:vim25 ReconfigureSnmpAgent,omitempty"` - Res *types.ReconfigureSnmpAgentResponse `xml:"urn:vim25 ReconfigureSnmpAgentResponse,omitempty"` + Res *types.ReconfigureSnmpAgentResponse `xml:"ReconfigureSnmpAgentResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11165,7 +11825,7 @@ func ReconfigureSnmpAgent(ctx context.Context, r soap.RoundTripper, req *types.R type ReconfigureVirtualMachineReservationBody struct { Req *types.ReconfigureVirtualMachineReservation `xml:"urn:vim25 ReconfigureVirtualMachineReservation,omitempty"` - Res *types.ReconfigureVirtualMachineReservationResponse `xml:"urn:vim25 ReconfigureVirtualMachineReservationResponse,omitempty"` + Res *types.ReconfigureVirtualMachineReservationResponse `xml:"ReconfigureVirtualMachineReservationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11185,7 +11845,7 @@ func ReconfigureVirtualMachineReservation(ctx context.Context, r soap.RoundTripp type ReconnectHost_TaskBody struct { Req *types.ReconnectHost_Task `xml:"urn:vim25 ReconnectHost_Task,omitempty"` - Res *types.ReconnectHost_TaskResponse `xml:"urn:vim25 ReconnectHost_TaskResponse,omitempty"` + Res *types.ReconnectHost_TaskResponse `xml:"ReconnectHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11205,7 +11865,7 @@ func ReconnectHost_Task(ctx context.Context, r soap.RoundTripper, req *types.Rec type RectifyDvsHost_TaskBody struct { Req *types.RectifyDvsHost_Task `xml:"urn:vim25 RectifyDvsHost_Task,omitempty"` - Res *types.RectifyDvsHost_TaskResponse `xml:"urn:vim25 RectifyDvsHost_TaskResponse,omitempty"` + Res *types.RectifyDvsHost_TaskResponse `xml:"RectifyDvsHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11225,7 +11885,7 @@ func RectifyDvsHost_Task(ctx context.Context, r soap.RoundTripper, req *types.Re type RectifyDvsOnHost_TaskBody struct { Req *types.RectifyDvsOnHost_Task `xml:"urn:vim25 RectifyDvsOnHost_Task,omitempty"` - Res *types.RectifyDvsOnHost_TaskResponse `xml:"urn:vim25 RectifyDvsOnHost_TaskResponse,omitempty"` + Res *types.RectifyDvsOnHost_TaskResponse `xml:"RectifyDvsOnHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11245,7 +11905,7 @@ func RectifyDvsOnHost_Task(ctx context.Context, r soap.RoundTripper, req *types. type RefreshBody struct { Req *types.Refresh `xml:"urn:vim25 Refresh,omitempty"` - Res *types.RefreshResponse `xml:"urn:vim25 RefreshResponse,omitempty"` + Res *types.RefreshResponse `xml:"RefreshResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11265,7 +11925,7 @@ func Refresh(ctx context.Context, r soap.RoundTripper, req *types.Refresh) (*typ type RefreshDVPortStateBody struct { Req *types.RefreshDVPortState `xml:"urn:vim25 RefreshDVPortState,omitempty"` - Res *types.RefreshDVPortStateResponse `xml:"urn:vim25 RefreshDVPortStateResponse,omitempty"` + Res *types.RefreshDVPortStateResponse `xml:"RefreshDVPortStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11285,7 +11945,7 @@ func RefreshDVPortState(ctx context.Context, r soap.RoundTripper, req *types.Ref type RefreshDatastoreBody struct { Req *types.RefreshDatastore `xml:"urn:vim25 RefreshDatastore,omitempty"` - Res *types.RefreshDatastoreResponse `xml:"urn:vim25 RefreshDatastoreResponse,omitempty"` + Res *types.RefreshDatastoreResponse `xml:"RefreshDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11305,7 +11965,7 @@ func RefreshDatastore(ctx context.Context, r soap.RoundTripper, req *types.Refre type RefreshDatastoreStorageInfoBody struct { Req *types.RefreshDatastoreStorageInfo `xml:"urn:vim25 RefreshDatastoreStorageInfo,omitempty"` - Res *types.RefreshDatastoreStorageInfoResponse `xml:"urn:vim25 RefreshDatastoreStorageInfoResponse,omitempty"` + Res *types.RefreshDatastoreStorageInfoResponse `xml:"RefreshDatastoreStorageInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11325,7 +11985,7 @@ func RefreshDatastoreStorageInfo(ctx context.Context, r soap.RoundTripper, req * type RefreshDateTimeSystemBody struct { Req *types.RefreshDateTimeSystem `xml:"urn:vim25 RefreshDateTimeSystem,omitempty"` - Res *types.RefreshDateTimeSystemResponse `xml:"urn:vim25 RefreshDateTimeSystemResponse,omitempty"` + Res *types.RefreshDateTimeSystemResponse `xml:"RefreshDateTimeSystemResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11345,7 +12005,7 @@ func RefreshDateTimeSystem(ctx context.Context, r soap.RoundTripper, req *types. type RefreshFirewallBody struct { Req *types.RefreshFirewall `xml:"urn:vim25 RefreshFirewall,omitempty"` - Res *types.RefreshFirewallResponse `xml:"urn:vim25 RefreshFirewallResponse,omitempty"` + Res *types.RefreshFirewallResponse `xml:"RefreshFirewallResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11365,7 +12025,7 @@ func RefreshFirewall(ctx context.Context, r soap.RoundTripper, req *types.Refres type RefreshGraphicsManagerBody struct { Req *types.RefreshGraphicsManager `xml:"urn:vim25 RefreshGraphicsManager,omitempty"` - Res *types.RefreshGraphicsManagerResponse `xml:"urn:vim25 RefreshGraphicsManagerResponse,omitempty"` + Res *types.RefreshGraphicsManagerResponse `xml:"RefreshGraphicsManagerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11385,7 +12045,7 @@ func RefreshGraphicsManager(ctx context.Context, r soap.RoundTripper, req *types type RefreshHealthStatusSystemBody struct { Req *types.RefreshHealthStatusSystem `xml:"urn:vim25 RefreshHealthStatusSystem,omitempty"` - Res *types.RefreshHealthStatusSystemResponse `xml:"urn:vim25 RefreshHealthStatusSystemResponse,omitempty"` + Res *types.RefreshHealthStatusSystemResponse `xml:"RefreshHealthStatusSystemResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11405,7 +12065,7 @@ func RefreshHealthStatusSystem(ctx context.Context, r soap.RoundTripper, req *ty type RefreshNetworkSystemBody struct { Req *types.RefreshNetworkSystem `xml:"urn:vim25 RefreshNetworkSystem,omitempty"` - Res *types.RefreshNetworkSystemResponse `xml:"urn:vim25 RefreshNetworkSystemResponse,omitempty"` + Res *types.RefreshNetworkSystemResponse `xml:"RefreshNetworkSystemResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11425,7 +12085,7 @@ func RefreshNetworkSystem(ctx context.Context, r soap.RoundTripper, req *types.R type RefreshRecommendationBody struct { Req *types.RefreshRecommendation `xml:"urn:vim25 RefreshRecommendation,omitempty"` - Res *types.RefreshRecommendationResponse `xml:"urn:vim25 RefreshRecommendationResponse,omitempty"` + Res *types.RefreshRecommendationResponse `xml:"RefreshRecommendationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11445,7 +12105,7 @@ func RefreshRecommendation(ctx context.Context, r soap.RoundTripper, req *types. type RefreshRuntimeBody struct { Req *types.RefreshRuntime `xml:"urn:vim25 RefreshRuntime,omitempty"` - Res *types.RefreshRuntimeResponse `xml:"urn:vim25 RefreshRuntimeResponse,omitempty"` + Res *types.RefreshRuntimeResponse `xml:"RefreshRuntimeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11465,7 +12125,7 @@ func RefreshRuntime(ctx context.Context, r soap.RoundTripper, req *types.Refresh type RefreshServicesBody struct { Req *types.RefreshServices `xml:"urn:vim25 RefreshServices,omitempty"` - Res *types.RefreshServicesResponse `xml:"urn:vim25 RefreshServicesResponse,omitempty"` + Res *types.RefreshServicesResponse `xml:"RefreshServicesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11485,7 +12145,7 @@ func RefreshServices(ctx context.Context, r soap.RoundTripper, req *types.Refres type RefreshStorageDrsRecommendationBody struct { Req *types.RefreshStorageDrsRecommendation `xml:"urn:vim25 RefreshStorageDrsRecommendation,omitempty"` - Res *types.RefreshStorageDrsRecommendationResponse `xml:"urn:vim25 RefreshStorageDrsRecommendationResponse,omitempty"` + Res *types.RefreshStorageDrsRecommendationResponse `xml:"RefreshStorageDrsRecommendationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11505,7 +12165,7 @@ func RefreshStorageDrsRecommendation(ctx context.Context, r soap.RoundTripper, r type RefreshStorageDrsRecommendationsForPod_TaskBody struct { Req *types.RefreshStorageDrsRecommendationsForPod_Task `xml:"urn:vim25 RefreshStorageDrsRecommendationsForPod_Task,omitempty"` - Res *types.RefreshStorageDrsRecommendationsForPod_TaskResponse `xml:"urn:vim25 RefreshStorageDrsRecommendationsForPod_TaskResponse,omitempty"` + Res *types.RefreshStorageDrsRecommendationsForPod_TaskResponse `xml:"RefreshStorageDrsRecommendationsForPod_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11525,7 +12185,7 @@ func RefreshStorageDrsRecommendationsForPod_Task(ctx context.Context, r soap.Rou type RefreshStorageInfoBody struct { Req *types.RefreshStorageInfo `xml:"urn:vim25 RefreshStorageInfo,omitempty"` - Res *types.RefreshStorageInfoResponse `xml:"urn:vim25 RefreshStorageInfoResponse,omitempty"` + Res *types.RefreshStorageInfoResponse `xml:"RefreshStorageInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11545,7 +12205,7 @@ func RefreshStorageInfo(ctx context.Context, r soap.RoundTripper, req *types.Ref type RefreshStorageSystemBody struct { Req *types.RefreshStorageSystem `xml:"urn:vim25 RefreshStorageSystem,omitempty"` - Res *types.RefreshStorageSystemResponse `xml:"urn:vim25 RefreshStorageSystemResponse,omitempty"` + Res *types.RefreshStorageSystemResponse `xml:"RefreshStorageSystemResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11565,7 +12225,7 @@ func RefreshStorageSystem(ctx context.Context, r soap.RoundTripper, req *types.R type RegisterChildVM_TaskBody struct { Req *types.RegisterChildVM_Task `xml:"urn:vim25 RegisterChildVM_Task,omitempty"` - Res *types.RegisterChildVM_TaskResponse `xml:"urn:vim25 RegisterChildVM_TaskResponse,omitempty"` + Res *types.RegisterChildVM_TaskResponse `xml:"RegisterChildVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11585,7 +12245,7 @@ func RegisterChildVM_Task(ctx context.Context, r soap.RoundTripper, req *types.R type RegisterDiskBody struct { Req *types.RegisterDisk `xml:"urn:vim25 RegisterDisk,omitempty"` - Res *types.RegisterDiskResponse `xml:"urn:vim25 RegisterDiskResponse,omitempty"` + Res *types.RegisterDiskResponse `xml:"RegisterDiskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11605,7 +12265,7 @@ func RegisterDisk(ctx context.Context, r soap.RoundTripper, req *types.RegisterD type RegisterExtensionBody struct { Req *types.RegisterExtension `xml:"urn:vim25 RegisterExtension,omitempty"` - Res *types.RegisterExtensionResponse `xml:"urn:vim25 RegisterExtensionResponse,omitempty"` + Res *types.RegisterExtensionResponse `xml:"RegisterExtensionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11625,7 +12285,7 @@ func RegisterExtension(ctx context.Context, r soap.RoundTripper, req *types.Regi type RegisterHealthUpdateProviderBody struct { Req *types.RegisterHealthUpdateProvider `xml:"urn:vim25 RegisterHealthUpdateProvider,omitempty"` - Res *types.RegisterHealthUpdateProviderResponse `xml:"urn:vim25 RegisterHealthUpdateProviderResponse,omitempty"` + Res *types.RegisterHealthUpdateProviderResponse `xml:"RegisterHealthUpdateProviderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11645,7 +12305,7 @@ func RegisterHealthUpdateProvider(ctx context.Context, r soap.RoundTripper, req type RegisterKmipServerBody struct { Req *types.RegisterKmipServer `xml:"urn:vim25 RegisterKmipServer,omitempty"` - Res *types.RegisterKmipServerResponse `xml:"urn:vim25 RegisterKmipServerResponse,omitempty"` + Res *types.RegisterKmipServerResponse `xml:"RegisterKmipServerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11663,9 +12323,29 @@ func RegisterKmipServer(ctx context.Context, r soap.RoundTripper, req *types.Reg return resBody.Res, nil } +type RegisterKmsClusterBody struct { + Req *types.RegisterKmsCluster `xml:"urn:vim25 RegisterKmsCluster,omitempty"` + Res *types.RegisterKmsClusterResponse `xml:"RegisterKmsClusterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RegisterKmsClusterBody) Fault() *soap.Fault { return b.Fault_ } + +func RegisterKmsCluster(ctx context.Context, r soap.RoundTripper, req *types.RegisterKmsCluster) (*types.RegisterKmsClusterResponse, error) { + var reqBody, resBody RegisterKmsClusterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type RegisterVM_TaskBody struct { Req *types.RegisterVM_Task `xml:"urn:vim25 RegisterVM_Task,omitempty"` - Res *types.RegisterVM_TaskResponse `xml:"urn:vim25 RegisterVM_TaskResponse,omitempty"` + Res *types.RegisterVM_TaskResponse `xml:"RegisterVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11685,7 +12365,7 @@ func RegisterVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Regist type ReleaseCredentialsInGuestBody struct { Req *types.ReleaseCredentialsInGuest `xml:"urn:vim25 ReleaseCredentialsInGuest,omitempty"` - Res *types.ReleaseCredentialsInGuestResponse `xml:"urn:vim25 ReleaseCredentialsInGuestResponse,omitempty"` + Res *types.ReleaseCredentialsInGuestResponse `xml:"ReleaseCredentialsInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11705,7 +12385,7 @@ func ReleaseCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *ty type ReleaseIpAllocationBody struct { Req *types.ReleaseIpAllocation `xml:"urn:vim25 ReleaseIpAllocation,omitempty"` - Res *types.ReleaseIpAllocationResponse `xml:"urn:vim25 ReleaseIpAllocationResponse,omitempty"` + Res *types.ReleaseIpAllocationResponse `xml:"ReleaseIpAllocationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11725,7 +12405,7 @@ func ReleaseIpAllocation(ctx context.Context, r soap.RoundTripper, req *types.Re type ReleaseManagedSnapshotBody struct { Req *types.ReleaseManagedSnapshot `xml:"urn:vim25 ReleaseManagedSnapshot,omitempty"` - Res *types.ReleaseManagedSnapshotResponse `xml:"urn:vim25 ReleaseManagedSnapshotResponse,omitempty"` + Res *types.ReleaseManagedSnapshotResponse `xml:"ReleaseManagedSnapshotResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11745,7 +12425,7 @@ func ReleaseManagedSnapshot(ctx context.Context, r soap.RoundTripper, req *types type ReloadBody struct { Req *types.Reload `xml:"urn:vim25 Reload,omitempty"` - Res *types.ReloadResponse `xml:"urn:vim25 ReloadResponse,omitempty"` + Res *types.ReloadResponse `xml:"ReloadResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11765,7 +12445,7 @@ func Reload(ctx context.Context, r soap.RoundTripper, req *types.Reload) (*types type RelocateVM_TaskBody struct { Req *types.RelocateVM_Task `xml:"urn:vim25 RelocateVM_Task,omitempty"` - Res *types.RelocateVM_TaskResponse `xml:"urn:vim25 RelocateVM_TaskResponse,omitempty"` + Res *types.RelocateVM_TaskResponse `xml:"RelocateVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11785,7 +12465,7 @@ func RelocateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Reloca type RelocateVStorageObject_TaskBody struct { Req *types.RelocateVStorageObject_Task `xml:"urn:vim25 RelocateVStorageObject_Task,omitempty"` - Res *types.RelocateVStorageObject_TaskResponse `xml:"urn:vim25 RelocateVStorageObject_TaskResponse,omitempty"` + Res *types.RelocateVStorageObject_TaskResponse `xml:"RelocateVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11805,7 +12485,7 @@ func RelocateVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req * type RemoveAlarmBody struct { Req *types.RemoveAlarm `xml:"urn:vim25 RemoveAlarm,omitempty"` - Res *types.RemoveAlarmResponse `xml:"urn:vim25 RemoveAlarmResponse,omitempty"` + Res *types.RemoveAlarmResponse `xml:"RemoveAlarmResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11825,7 +12505,7 @@ func RemoveAlarm(ctx context.Context, r soap.RoundTripper, req *types.RemoveAlar type RemoveAllSnapshots_TaskBody struct { Req *types.RemoveAllSnapshots_Task `xml:"urn:vim25 RemoveAllSnapshots_Task,omitempty"` - Res *types.RemoveAllSnapshots_TaskResponse `xml:"urn:vim25 RemoveAllSnapshots_TaskResponse,omitempty"` + Res *types.RemoveAllSnapshots_TaskResponse `xml:"RemoveAllSnapshots_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11845,7 +12525,7 @@ func RemoveAllSnapshots_Task(ctx context.Context, r soap.RoundTripper, req *type type RemoveAssignedLicenseBody struct { Req *types.RemoveAssignedLicense `xml:"urn:vim25 RemoveAssignedLicense,omitempty"` - Res *types.RemoveAssignedLicenseResponse `xml:"urn:vim25 RemoveAssignedLicenseResponse,omitempty"` + Res *types.RemoveAssignedLicenseResponse `xml:"RemoveAssignedLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11865,7 +12545,7 @@ func RemoveAssignedLicense(ctx context.Context, r soap.RoundTripper, req *types. type RemoveAuthorizationRoleBody struct { Req *types.RemoveAuthorizationRole `xml:"urn:vim25 RemoveAuthorizationRole,omitempty"` - Res *types.RemoveAuthorizationRoleResponse `xml:"urn:vim25 RemoveAuthorizationRoleResponse,omitempty"` + Res *types.RemoveAuthorizationRoleResponse `xml:"RemoveAuthorizationRoleResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11885,7 +12565,7 @@ func RemoveAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *type type RemoveCustomFieldDefBody struct { Req *types.RemoveCustomFieldDef `xml:"urn:vim25 RemoveCustomFieldDef,omitempty"` - Res *types.RemoveCustomFieldDefResponse `xml:"urn:vim25 RemoveCustomFieldDefResponse,omitempty"` + Res *types.RemoveCustomFieldDefResponse `xml:"RemoveCustomFieldDefResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11905,7 +12585,7 @@ func RemoveCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.R type RemoveDatastoreBody struct { Req *types.RemoveDatastore `xml:"urn:vim25 RemoveDatastore,omitempty"` - Res *types.RemoveDatastoreResponse `xml:"urn:vim25 RemoveDatastoreResponse,omitempty"` + Res *types.RemoveDatastoreResponse `xml:"RemoveDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11925,7 +12605,7 @@ func RemoveDatastore(ctx context.Context, r soap.RoundTripper, req *types.Remove type RemoveDatastoreEx_TaskBody struct { Req *types.RemoveDatastoreEx_Task `xml:"urn:vim25 RemoveDatastoreEx_Task,omitempty"` - Res *types.RemoveDatastoreEx_TaskResponse `xml:"urn:vim25 RemoveDatastoreEx_TaskResponse,omitempty"` + Res *types.RemoveDatastoreEx_TaskResponse `xml:"RemoveDatastoreEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11945,7 +12625,7 @@ func RemoveDatastoreEx_Task(ctx context.Context, r soap.RoundTripper, req *types type RemoveDiskMapping_TaskBody struct { Req *types.RemoveDiskMapping_Task `xml:"urn:vim25 RemoveDiskMapping_Task,omitempty"` - Res *types.RemoveDiskMapping_TaskResponse `xml:"urn:vim25 RemoveDiskMapping_TaskResponse,omitempty"` + Res *types.RemoveDiskMapping_TaskResponse `xml:"RemoveDiskMapping_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11965,7 +12645,7 @@ func RemoveDiskMapping_Task(ctx context.Context, r soap.RoundTripper, req *types type RemoveDisk_TaskBody struct { Req *types.RemoveDisk_Task `xml:"urn:vim25 RemoveDisk_Task,omitempty"` - Res *types.RemoveDisk_TaskResponse `xml:"urn:vim25 RemoveDisk_TaskResponse,omitempty"` + Res *types.RemoveDisk_TaskResponse `xml:"RemoveDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -11985,7 +12665,7 @@ func RemoveDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.Remove type RemoveEntityPermissionBody struct { Req *types.RemoveEntityPermission `xml:"urn:vim25 RemoveEntityPermission,omitempty"` - Res *types.RemoveEntityPermissionResponse `xml:"urn:vim25 RemoveEntityPermissionResponse,omitempty"` + Res *types.RemoveEntityPermissionResponse `xml:"RemoveEntityPermissionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12005,7 +12685,7 @@ func RemoveEntityPermission(ctx context.Context, r soap.RoundTripper, req *types type RemoveFilterBody struct { Req *types.RemoveFilter `xml:"urn:vim25 RemoveFilter,omitempty"` - Res *types.RemoveFilterResponse `xml:"urn:vim25 RemoveFilterResponse,omitempty"` + Res *types.RemoveFilterResponse `xml:"RemoveFilterResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12025,7 +12705,7 @@ func RemoveFilter(ctx context.Context, r soap.RoundTripper, req *types.RemoveFil type RemoveFilterEntitiesBody struct { Req *types.RemoveFilterEntities `xml:"urn:vim25 RemoveFilterEntities,omitempty"` - Res *types.RemoveFilterEntitiesResponse `xml:"urn:vim25 RemoveFilterEntitiesResponse,omitempty"` + Res *types.RemoveFilterEntitiesResponse `xml:"RemoveFilterEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12045,7 +12725,7 @@ func RemoveFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.R type RemoveGroupBody struct { Req *types.RemoveGroup `xml:"urn:vim25 RemoveGroup,omitempty"` - Res *types.RemoveGroupResponse `xml:"urn:vim25 RemoveGroupResponse,omitempty"` + Res *types.RemoveGroupResponse `xml:"RemoveGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12065,7 +12745,7 @@ func RemoveGroup(ctx context.Context, r soap.RoundTripper, req *types.RemoveGrou type RemoveGuestAliasBody struct { Req *types.RemoveGuestAlias `xml:"urn:vim25 RemoveGuestAlias,omitempty"` - Res *types.RemoveGuestAliasResponse `xml:"urn:vim25 RemoveGuestAliasResponse,omitempty"` + Res *types.RemoveGuestAliasResponse `xml:"RemoveGuestAliasResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12085,7 +12765,7 @@ func RemoveGuestAlias(ctx context.Context, r soap.RoundTripper, req *types.Remov type RemoveGuestAliasByCertBody struct { Req *types.RemoveGuestAliasByCert `xml:"urn:vim25 RemoveGuestAliasByCert,omitempty"` - Res *types.RemoveGuestAliasByCertResponse `xml:"urn:vim25 RemoveGuestAliasByCertResponse,omitempty"` + Res *types.RemoveGuestAliasByCertResponse `xml:"RemoveGuestAliasByCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12105,7 +12785,7 @@ func RemoveGuestAliasByCert(ctx context.Context, r soap.RoundTripper, req *types type RemoveInternetScsiSendTargetsBody struct { Req *types.RemoveInternetScsiSendTargets `xml:"urn:vim25 RemoveInternetScsiSendTargets,omitempty"` - Res *types.RemoveInternetScsiSendTargetsResponse `xml:"urn:vim25 RemoveInternetScsiSendTargetsResponse,omitempty"` + Res *types.RemoveInternetScsiSendTargetsResponse `xml:"RemoveInternetScsiSendTargetsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12125,7 +12805,7 @@ func RemoveInternetScsiSendTargets(ctx context.Context, r soap.RoundTripper, req type RemoveInternetScsiStaticTargetsBody struct { Req *types.RemoveInternetScsiStaticTargets `xml:"urn:vim25 RemoveInternetScsiStaticTargets,omitempty"` - Res *types.RemoveInternetScsiStaticTargetsResponse `xml:"urn:vim25 RemoveInternetScsiStaticTargetsResponse,omitempty"` + Res *types.RemoveInternetScsiStaticTargetsResponse `xml:"RemoveInternetScsiStaticTargetsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12145,7 +12825,7 @@ func RemoveInternetScsiStaticTargets(ctx context.Context, r soap.RoundTripper, r type RemoveKeyBody struct { Req *types.RemoveKey `xml:"urn:vim25 RemoveKey,omitempty"` - Res *types.RemoveKeyResponse `xml:"urn:vim25 RemoveKeyResponse,omitempty"` + Res *types.RemoveKeyResponse `xml:"RemoveKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12165,7 +12845,7 @@ func RemoveKey(ctx context.Context, r soap.RoundTripper, req *types.RemoveKey) ( type RemoveKeysBody struct { Req *types.RemoveKeys `xml:"urn:vim25 RemoveKeys,omitempty"` - Res *types.RemoveKeysResponse `xml:"urn:vim25 RemoveKeysResponse,omitempty"` + Res *types.RemoveKeysResponse `xml:"RemoveKeysResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12185,7 +12865,7 @@ func RemoveKeys(ctx context.Context, r soap.RoundTripper, req *types.RemoveKeys) type RemoveKmipServerBody struct { Req *types.RemoveKmipServer `xml:"urn:vim25 RemoveKmipServer,omitempty"` - Res *types.RemoveKmipServerResponse `xml:"urn:vim25 RemoveKmipServerResponse,omitempty"` + Res *types.RemoveKmipServerResponse `xml:"RemoveKmipServerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12205,7 +12885,7 @@ func RemoveKmipServer(ctx context.Context, r soap.RoundTripper, req *types.Remov type RemoveLicenseBody struct { Req *types.RemoveLicense `xml:"urn:vim25 RemoveLicense,omitempty"` - Res *types.RemoveLicenseResponse `xml:"urn:vim25 RemoveLicenseResponse,omitempty"` + Res *types.RemoveLicenseResponse `xml:"RemoveLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12225,7 +12905,7 @@ func RemoveLicense(ctx context.Context, r soap.RoundTripper, req *types.RemoveLi type RemoveLicenseLabelBody struct { Req *types.RemoveLicenseLabel `xml:"urn:vim25 RemoveLicenseLabel,omitempty"` - Res *types.RemoveLicenseLabelResponse `xml:"urn:vim25 RemoveLicenseLabelResponse,omitempty"` + Res *types.RemoveLicenseLabelResponse `xml:"RemoveLicenseLabelResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12245,7 +12925,7 @@ func RemoveLicenseLabel(ctx context.Context, r soap.RoundTripper, req *types.Rem type RemoveMonitoredEntitiesBody struct { Req *types.RemoveMonitoredEntities `xml:"urn:vim25 RemoveMonitoredEntities,omitempty"` - Res *types.RemoveMonitoredEntitiesResponse `xml:"urn:vim25 RemoveMonitoredEntitiesResponse,omitempty"` + Res *types.RemoveMonitoredEntitiesResponse `xml:"RemoveMonitoredEntitiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12265,7 +12945,7 @@ func RemoveMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *type type RemoveNetworkResourcePoolBody struct { Req *types.RemoveNetworkResourcePool `xml:"urn:vim25 RemoveNetworkResourcePool,omitempty"` - Res *types.RemoveNetworkResourcePoolResponse `xml:"urn:vim25 RemoveNetworkResourcePoolResponse,omitempty"` + Res *types.RemoveNetworkResourcePoolResponse `xml:"RemoveNetworkResourcePoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12283,9 +12963,29 @@ func RemoveNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *ty return resBody.Res, nil } +type RemoveNvmeOverRdmaAdapterBody struct { + Req *types.RemoveNvmeOverRdmaAdapter `xml:"urn:vim25 RemoveNvmeOverRdmaAdapter,omitempty"` + Res *types.RemoveNvmeOverRdmaAdapterResponse `xml:"RemoveNvmeOverRdmaAdapterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RemoveNvmeOverRdmaAdapterBody) Fault() *soap.Fault { return b.Fault_ } + +func RemoveNvmeOverRdmaAdapter(ctx context.Context, r soap.RoundTripper, req *types.RemoveNvmeOverRdmaAdapter) (*types.RemoveNvmeOverRdmaAdapterResponse, error) { + var reqBody, resBody RemoveNvmeOverRdmaAdapterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type RemovePerfIntervalBody struct { Req *types.RemovePerfInterval `xml:"urn:vim25 RemovePerfInterval,omitempty"` - Res *types.RemovePerfIntervalResponse `xml:"urn:vim25 RemovePerfIntervalResponse,omitempty"` + Res *types.RemovePerfIntervalResponse `xml:"RemovePerfIntervalResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12305,7 +13005,7 @@ func RemovePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.Rem type RemovePortGroupBody struct { Req *types.RemovePortGroup `xml:"urn:vim25 RemovePortGroup,omitempty"` - Res *types.RemovePortGroupResponse `xml:"urn:vim25 RemovePortGroupResponse,omitempty"` + Res *types.RemovePortGroupResponse `xml:"RemovePortGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12325,7 +13025,7 @@ func RemovePortGroup(ctx context.Context, r soap.RoundTripper, req *types.Remove type RemoveScheduledTaskBody struct { Req *types.RemoveScheduledTask `xml:"urn:vim25 RemoveScheduledTask,omitempty"` - Res *types.RemoveScheduledTaskResponse `xml:"urn:vim25 RemoveScheduledTaskResponse,omitempty"` + Res *types.RemoveScheduledTaskResponse `xml:"RemoveScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12345,7 +13045,7 @@ func RemoveScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.Re type RemoveServiceConsoleVirtualNicBody struct { Req *types.RemoveServiceConsoleVirtualNic `xml:"urn:vim25 RemoveServiceConsoleVirtualNic,omitempty"` - Res *types.RemoveServiceConsoleVirtualNicResponse `xml:"urn:vim25 RemoveServiceConsoleVirtualNicResponse,omitempty"` + Res *types.RemoveServiceConsoleVirtualNicResponse `xml:"RemoveServiceConsoleVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12365,7 +13065,7 @@ func RemoveServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, re type RemoveSmartCardTrustAnchorBody struct { Req *types.RemoveSmartCardTrustAnchor `xml:"urn:vim25 RemoveSmartCardTrustAnchor,omitempty"` - Res *types.RemoveSmartCardTrustAnchorResponse `xml:"urn:vim25 RemoveSmartCardTrustAnchorResponse,omitempty"` + Res *types.RemoveSmartCardTrustAnchorResponse `xml:"RemoveSmartCardTrustAnchorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12385,7 +13085,7 @@ func RemoveSmartCardTrustAnchor(ctx context.Context, r soap.RoundTripper, req *t type RemoveSmartCardTrustAnchorByFingerprintBody struct { Req *types.RemoveSmartCardTrustAnchorByFingerprint `xml:"urn:vim25 RemoveSmartCardTrustAnchorByFingerprint,omitempty"` - Res *types.RemoveSmartCardTrustAnchorByFingerprintResponse `xml:"urn:vim25 RemoveSmartCardTrustAnchorByFingerprintResponse,omitempty"` + Res *types.RemoveSmartCardTrustAnchorByFingerprintResponse `xml:"RemoveSmartCardTrustAnchorByFingerprintResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12405,7 +13105,7 @@ func RemoveSmartCardTrustAnchorByFingerprint(ctx context.Context, r soap.RoundTr type RemoveSnapshot_TaskBody struct { Req *types.RemoveSnapshot_Task `xml:"urn:vim25 RemoveSnapshot_Task,omitempty"` - Res *types.RemoveSnapshot_TaskResponse `xml:"urn:vim25 RemoveSnapshot_TaskResponse,omitempty"` + Res *types.RemoveSnapshot_TaskResponse `xml:"RemoveSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12425,7 +13125,7 @@ func RemoveSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.Re type RemoveUserBody struct { Req *types.RemoveUser `xml:"urn:vim25 RemoveUser,omitempty"` - Res *types.RemoveUserResponse `xml:"urn:vim25 RemoveUserResponse,omitempty"` + Res *types.RemoveUserResponse `xml:"RemoveUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12445,7 +13145,7 @@ func RemoveUser(ctx context.Context, r soap.RoundTripper, req *types.RemoveUser) type RemoveVirtualNicBody struct { Req *types.RemoveVirtualNic `xml:"urn:vim25 RemoveVirtualNic,omitempty"` - Res *types.RemoveVirtualNicResponse `xml:"urn:vim25 RemoveVirtualNicResponse,omitempty"` + Res *types.RemoveVirtualNicResponse `xml:"RemoveVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12465,7 +13165,7 @@ func RemoveVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.Remov type RemoveVirtualSwitchBody struct { Req *types.RemoveVirtualSwitch `xml:"urn:vim25 RemoveVirtualSwitch,omitempty"` - Res *types.RemoveVirtualSwitchResponse `xml:"urn:vim25 RemoveVirtualSwitchResponse,omitempty"` + Res *types.RemoveVirtualSwitchResponse `xml:"RemoveVirtualSwitchResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12485,7 +13185,7 @@ func RemoveVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.Re type RenameCustomFieldDefBody struct { Req *types.RenameCustomFieldDef `xml:"urn:vim25 RenameCustomFieldDef,omitempty"` - Res *types.RenameCustomFieldDefResponse `xml:"urn:vim25 RenameCustomFieldDefResponse,omitempty"` + Res *types.RenameCustomFieldDefResponse `xml:"RenameCustomFieldDefResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12505,7 +13205,7 @@ func RenameCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.R type RenameCustomizationSpecBody struct { Req *types.RenameCustomizationSpec `xml:"urn:vim25 RenameCustomizationSpec,omitempty"` - Res *types.RenameCustomizationSpecResponse `xml:"urn:vim25 RenameCustomizationSpecResponse,omitempty"` + Res *types.RenameCustomizationSpecResponse `xml:"RenameCustomizationSpecResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12525,7 +13225,7 @@ func RenameCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *type type RenameDatastoreBody struct { Req *types.RenameDatastore `xml:"urn:vim25 RenameDatastore,omitempty"` - Res *types.RenameDatastoreResponse `xml:"urn:vim25 RenameDatastoreResponse,omitempty"` + Res *types.RenameDatastoreResponse `xml:"RenameDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12545,7 +13245,7 @@ func RenameDatastore(ctx context.Context, r soap.RoundTripper, req *types.Rename type RenameSnapshotBody struct { Req *types.RenameSnapshot `xml:"urn:vim25 RenameSnapshot,omitempty"` - Res *types.RenameSnapshotResponse `xml:"urn:vim25 RenameSnapshotResponse,omitempty"` + Res *types.RenameSnapshotResponse `xml:"RenameSnapshotResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12565,7 +13265,7 @@ func RenameSnapshot(ctx context.Context, r soap.RoundTripper, req *types.RenameS type RenameVStorageObjectBody struct { Req *types.RenameVStorageObject `xml:"urn:vim25 RenameVStorageObject,omitempty"` - Res *types.RenameVStorageObjectResponse `xml:"urn:vim25 RenameVStorageObjectResponse,omitempty"` + Res *types.RenameVStorageObjectResponse `xml:"RenameVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12585,7 +13285,7 @@ func RenameVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.R type Rename_TaskBody struct { Req *types.Rename_Task `xml:"urn:vim25 Rename_Task,omitempty"` - Res *types.Rename_TaskResponse `xml:"urn:vim25 Rename_TaskResponse,omitempty"` + Res *types.Rename_TaskResponse `xml:"Rename_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12605,7 +13305,7 @@ func Rename_Task(ctx context.Context, r soap.RoundTripper, req *types.Rename_Tas type ReplaceCACertificatesAndCRLsBody struct { Req *types.ReplaceCACertificatesAndCRLs `xml:"urn:vim25 ReplaceCACertificatesAndCRLs,omitempty"` - Res *types.ReplaceCACertificatesAndCRLsResponse `xml:"urn:vim25 ReplaceCACertificatesAndCRLsResponse,omitempty"` + Res *types.ReplaceCACertificatesAndCRLsResponse `xml:"ReplaceCACertificatesAndCRLsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12625,7 +13325,7 @@ func ReplaceCACertificatesAndCRLs(ctx context.Context, r soap.RoundTripper, req type ReplaceSmartCardTrustAnchorsBody struct { Req *types.ReplaceSmartCardTrustAnchors `xml:"urn:vim25 ReplaceSmartCardTrustAnchors,omitempty"` - Res *types.ReplaceSmartCardTrustAnchorsResponse `xml:"urn:vim25 ReplaceSmartCardTrustAnchorsResponse,omitempty"` + Res *types.ReplaceSmartCardTrustAnchorsResponse `xml:"ReplaceSmartCardTrustAnchorsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12645,7 +13345,7 @@ func ReplaceSmartCardTrustAnchors(ctx context.Context, r soap.RoundTripper, req type RescanAllHbaBody struct { Req *types.RescanAllHba `xml:"urn:vim25 RescanAllHba,omitempty"` - Res *types.RescanAllHbaResponse `xml:"urn:vim25 RescanAllHbaResponse,omitempty"` + Res *types.RescanAllHbaResponse `xml:"RescanAllHbaResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12665,7 +13365,7 @@ func RescanAllHba(ctx context.Context, r soap.RoundTripper, req *types.RescanAll type RescanHbaBody struct { Req *types.RescanHba `xml:"urn:vim25 RescanHba,omitempty"` - Res *types.RescanHbaResponse `xml:"urn:vim25 RescanHbaResponse,omitempty"` + Res *types.RescanHbaResponse `xml:"RescanHbaResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12685,7 +13385,7 @@ func RescanHba(ctx context.Context, r soap.RoundTripper, req *types.RescanHba) ( type RescanVffsBody struct { Req *types.RescanVffs `xml:"urn:vim25 RescanVffs,omitempty"` - Res *types.RescanVffsResponse `xml:"urn:vim25 RescanVffsResponse,omitempty"` + Res *types.RescanVffsResponse `xml:"RescanVffsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12705,7 +13405,7 @@ func RescanVffs(ctx context.Context, r soap.RoundTripper, req *types.RescanVffs) type RescanVmfsBody struct { Req *types.RescanVmfs `xml:"urn:vim25 RescanVmfs,omitempty"` - Res *types.RescanVmfsResponse `xml:"urn:vim25 RescanVmfsResponse,omitempty"` + Res *types.RescanVmfsResponse `xml:"RescanVmfsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12725,7 +13425,7 @@ func RescanVmfs(ctx context.Context, r soap.RoundTripper, req *types.RescanVmfs) type ResetCollectorBody struct { Req *types.ResetCollector `xml:"urn:vim25 ResetCollector,omitempty"` - Res *types.ResetCollectorResponse `xml:"urn:vim25 ResetCollectorResponse,omitempty"` + Res *types.ResetCollectorResponse `xml:"ResetCollectorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12745,7 +13445,7 @@ func ResetCollector(ctx context.Context, r soap.RoundTripper, req *types.ResetCo type ResetCounterLevelMappingBody struct { Req *types.ResetCounterLevelMapping `xml:"urn:vim25 ResetCounterLevelMapping,omitempty"` - Res *types.ResetCounterLevelMappingResponse `xml:"urn:vim25 ResetCounterLevelMappingResponse,omitempty"` + Res *types.ResetCounterLevelMappingResponse `xml:"ResetCounterLevelMappingResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12765,7 +13465,7 @@ func ResetCounterLevelMapping(ctx context.Context, r soap.RoundTripper, req *typ type ResetEntityPermissionsBody struct { Req *types.ResetEntityPermissions `xml:"urn:vim25 ResetEntityPermissions,omitempty"` - Res *types.ResetEntityPermissionsResponse `xml:"urn:vim25 ResetEntityPermissionsResponse,omitempty"` + Res *types.ResetEntityPermissionsResponse `xml:"ResetEntityPermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12785,7 +13485,7 @@ func ResetEntityPermissions(ctx context.Context, r soap.RoundTripper, req *types type ResetFirmwareToFactoryDefaultsBody struct { Req *types.ResetFirmwareToFactoryDefaults `xml:"urn:vim25 ResetFirmwareToFactoryDefaults,omitempty"` - Res *types.ResetFirmwareToFactoryDefaultsResponse `xml:"urn:vim25 ResetFirmwareToFactoryDefaultsResponse,omitempty"` + Res *types.ResetFirmwareToFactoryDefaultsResponse `xml:"ResetFirmwareToFactoryDefaultsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12805,7 +13505,7 @@ func ResetFirmwareToFactoryDefaults(ctx context.Context, r soap.RoundTripper, re type ResetGuestInformationBody struct { Req *types.ResetGuestInformation `xml:"urn:vim25 ResetGuestInformation,omitempty"` - Res *types.ResetGuestInformationResponse `xml:"urn:vim25 ResetGuestInformationResponse,omitempty"` + Res *types.ResetGuestInformationResponse `xml:"ResetGuestInformationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12825,7 +13525,7 @@ func ResetGuestInformation(ctx context.Context, r soap.RoundTripper, req *types. type ResetListViewBody struct { Req *types.ResetListView `xml:"urn:vim25 ResetListView,omitempty"` - Res *types.ResetListViewResponse `xml:"urn:vim25 ResetListViewResponse,omitempty"` + Res *types.ResetListViewResponse `xml:"ResetListViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12845,7 +13545,7 @@ func ResetListView(ctx context.Context, r soap.RoundTripper, req *types.ResetLis type ResetListViewFromViewBody struct { Req *types.ResetListViewFromView `xml:"urn:vim25 ResetListViewFromView,omitempty"` - Res *types.ResetListViewFromViewResponse `xml:"urn:vim25 ResetListViewFromViewResponse,omitempty"` + Res *types.ResetListViewFromViewResponse `xml:"ResetListViewFromViewResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12865,7 +13565,7 @@ func ResetListViewFromView(ctx context.Context, r soap.RoundTripper, req *types. type ResetSystemHealthInfoBody struct { Req *types.ResetSystemHealthInfo `xml:"urn:vim25 ResetSystemHealthInfo,omitempty"` - Res *types.ResetSystemHealthInfoResponse `xml:"urn:vim25 ResetSystemHealthInfoResponse,omitempty"` + Res *types.ResetSystemHealthInfoResponse `xml:"ResetSystemHealthInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12885,7 +13585,7 @@ func ResetSystemHealthInfo(ctx context.Context, r soap.RoundTripper, req *types. type ResetVM_TaskBody struct { Req *types.ResetVM_Task `xml:"urn:vim25 ResetVM_Task,omitempty"` - Res *types.ResetVM_TaskResponse `xml:"urn:vim25 ResetVM_TaskResponse,omitempty"` + Res *types.ResetVM_TaskResponse `xml:"ResetVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12905,7 +13605,7 @@ func ResetVM_Task(ctx context.Context, r soap.RoundTripper, req *types.ResetVM_T type ResignatureUnresolvedVmfsVolume_TaskBody struct { Req *types.ResignatureUnresolvedVmfsVolume_Task `xml:"urn:vim25 ResignatureUnresolvedVmfsVolume_Task,omitempty"` - Res *types.ResignatureUnresolvedVmfsVolume_TaskResponse `xml:"urn:vim25 ResignatureUnresolvedVmfsVolume_TaskResponse,omitempty"` + Res *types.ResignatureUnresolvedVmfsVolume_TaskResponse `xml:"ResignatureUnresolvedVmfsVolume_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12925,7 +13625,7 @@ func ResignatureUnresolvedVmfsVolume_Task(ctx context.Context, r soap.RoundTripp type ResolveInstallationErrorsOnCluster_TaskBody struct { Req *types.ResolveInstallationErrorsOnCluster_Task `xml:"urn:vim25 ResolveInstallationErrorsOnCluster_Task,omitempty"` - Res *types.ResolveInstallationErrorsOnCluster_TaskResponse `xml:"urn:vim25 ResolveInstallationErrorsOnCluster_TaskResponse,omitempty"` + Res *types.ResolveInstallationErrorsOnCluster_TaskResponse `xml:"ResolveInstallationErrorsOnCluster_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12945,7 +13645,7 @@ func ResolveInstallationErrorsOnCluster_Task(ctx context.Context, r soap.RoundTr type ResolveInstallationErrorsOnHost_TaskBody struct { Req *types.ResolveInstallationErrorsOnHost_Task `xml:"urn:vim25 ResolveInstallationErrorsOnHost_Task,omitempty"` - Res *types.ResolveInstallationErrorsOnHost_TaskResponse `xml:"urn:vim25 ResolveInstallationErrorsOnHost_TaskResponse,omitempty"` + Res *types.ResolveInstallationErrorsOnHost_TaskResponse `xml:"ResolveInstallationErrorsOnHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12965,7 +13665,7 @@ func ResolveInstallationErrorsOnHost_Task(ctx context.Context, r soap.RoundTripp type ResolveMultipleUnresolvedVmfsVolumesBody struct { Req *types.ResolveMultipleUnresolvedVmfsVolumes `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumes,omitempty"` - Res *types.ResolveMultipleUnresolvedVmfsVolumesResponse `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesResponse,omitempty"` + Res *types.ResolveMultipleUnresolvedVmfsVolumesResponse `xml:"ResolveMultipleUnresolvedVmfsVolumesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -12985,7 +13685,7 @@ func ResolveMultipleUnresolvedVmfsVolumes(ctx context.Context, r soap.RoundTripp type ResolveMultipleUnresolvedVmfsVolumesEx_TaskBody struct { Req *types.ResolveMultipleUnresolvedVmfsVolumesEx_Task `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesEx_Task,omitempty"` - Res *types.ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse,omitempty"` + Res *types.ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse `xml:"ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13005,7 +13705,7 @@ func ResolveMultipleUnresolvedVmfsVolumesEx_Task(ctx context.Context, r soap.Rou type RestartServiceBody struct { Req *types.RestartService `xml:"urn:vim25 RestartService,omitempty"` - Res *types.RestartServiceResponse `xml:"urn:vim25 RestartServiceResponse,omitempty"` + Res *types.RestartServiceResponse `xml:"RestartServiceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13025,7 +13725,7 @@ func RestartService(ctx context.Context, r soap.RoundTripper, req *types.Restart type RestartServiceConsoleVirtualNicBody struct { Req *types.RestartServiceConsoleVirtualNic `xml:"urn:vim25 RestartServiceConsoleVirtualNic,omitempty"` - Res *types.RestartServiceConsoleVirtualNicResponse `xml:"urn:vim25 RestartServiceConsoleVirtualNicResponse,omitempty"` + Res *types.RestartServiceConsoleVirtualNicResponse `xml:"RestartServiceConsoleVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13045,7 +13745,7 @@ func RestartServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, r type RestoreFirmwareConfigurationBody struct { Req *types.RestoreFirmwareConfiguration `xml:"urn:vim25 RestoreFirmwareConfiguration,omitempty"` - Res *types.RestoreFirmwareConfigurationResponse `xml:"urn:vim25 RestoreFirmwareConfigurationResponse,omitempty"` + Res *types.RestoreFirmwareConfigurationResponse `xml:"RestoreFirmwareConfigurationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13065,7 +13765,7 @@ func RestoreFirmwareConfiguration(ctx context.Context, r soap.RoundTripper, req type RetrieveAllPermissionsBody struct { Req *types.RetrieveAllPermissions `xml:"urn:vim25 RetrieveAllPermissions,omitempty"` - Res *types.RetrieveAllPermissionsResponse `xml:"urn:vim25 RetrieveAllPermissionsResponse,omitempty"` + Res *types.RetrieveAllPermissionsResponse `xml:"RetrieveAllPermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13085,7 +13785,7 @@ func RetrieveAllPermissions(ctx context.Context, r soap.RoundTripper, req *types type RetrieveAnswerFileBody struct { Req *types.RetrieveAnswerFile `xml:"urn:vim25 RetrieveAnswerFile,omitempty"` - Res *types.RetrieveAnswerFileResponse `xml:"urn:vim25 RetrieveAnswerFileResponse,omitempty"` + Res *types.RetrieveAnswerFileResponse `xml:"RetrieveAnswerFileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13105,7 +13805,7 @@ func RetrieveAnswerFile(ctx context.Context, r soap.RoundTripper, req *types.Ret type RetrieveAnswerFileForProfileBody struct { Req *types.RetrieveAnswerFileForProfile `xml:"urn:vim25 RetrieveAnswerFileForProfile,omitempty"` - Res *types.RetrieveAnswerFileForProfileResponse `xml:"urn:vim25 RetrieveAnswerFileForProfileResponse,omitempty"` + Res *types.RetrieveAnswerFileForProfileResponse `xml:"RetrieveAnswerFileForProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13125,7 +13825,7 @@ func RetrieveAnswerFileForProfile(ctx context.Context, r soap.RoundTripper, req type RetrieveArgumentDescriptionBody struct { Req *types.RetrieveArgumentDescription `xml:"urn:vim25 RetrieveArgumentDescription,omitempty"` - Res *types.RetrieveArgumentDescriptionResponse `xml:"urn:vim25 RetrieveArgumentDescriptionResponse,omitempty"` + Res *types.RetrieveArgumentDescriptionResponse `xml:"RetrieveArgumentDescriptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13145,7 +13845,7 @@ func RetrieveArgumentDescription(ctx context.Context, r soap.RoundTripper, req * type RetrieveClientCertBody struct { Req *types.RetrieveClientCert `xml:"urn:vim25 RetrieveClientCert,omitempty"` - Res *types.RetrieveClientCertResponse `xml:"urn:vim25 RetrieveClientCertResponse,omitempty"` + Res *types.RetrieveClientCertResponse `xml:"RetrieveClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13165,7 +13865,7 @@ func RetrieveClientCert(ctx context.Context, r soap.RoundTripper, req *types.Ret type RetrieveClientCsrBody struct { Req *types.RetrieveClientCsr `xml:"urn:vim25 RetrieveClientCsr,omitempty"` - Res *types.RetrieveClientCsrResponse `xml:"urn:vim25 RetrieveClientCsrResponse,omitempty"` + Res *types.RetrieveClientCsrResponse `xml:"RetrieveClientCsrResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13185,7 +13885,7 @@ func RetrieveClientCsr(ctx context.Context, r soap.RoundTripper, req *types.Retr type RetrieveDasAdvancedRuntimeInfoBody struct { Req *types.RetrieveDasAdvancedRuntimeInfo `xml:"urn:vim25 RetrieveDasAdvancedRuntimeInfo,omitempty"` - Res *types.RetrieveDasAdvancedRuntimeInfoResponse `xml:"urn:vim25 RetrieveDasAdvancedRuntimeInfoResponse,omitempty"` + Res *types.RetrieveDasAdvancedRuntimeInfoResponse `xml:"RetrieveDasAdvancedRuntimeInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13205,7 +13905,7 @@ func RetrieveDasAdvancedRuntimeInfo(ctx context.Context, r soap.RoundTripper, re type RetrieveDescriptionBody struct { Req *types.RetrieveDescription `xml:"urn:vim25 RetrieveDescription,omitempty"` - Res *types.RetrieveDescriptionResponse `xml:"urn:vim25 RetrieveDescriptionResponse,omitempty"` + Res *types.RetrieveDescriptionResponse `xml:"RetrieveDescriptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13225,7 +13925,7 @@ func RetrieveDescription(ctx context.Context, r soap.RoundTripper, req *types.Re type RetrieveDiskPartitionInfoBody struct { Req *types.RetrieveDiskPartitionInfo `xml:"urn:vim25 RetrieveDiskPartitionInfo,omitempty"` - Res *types.RetrieveDiskPartitionInfoResponse `xml:"urn:vim25 RetrieveDiskPartitionInfoResponse,omitempty"` + Res *types.RetrieveDiskPartitionInfoResponse `xml:"RetrieveDiskPartitionInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13243,9 +13943,29 @@ func RetrieveDiskPartitionInfo(ctx context.Context, r soap.RoundTripper, req *ty return resBody.Res, nil } +type RetrieveDynamicPassthroughInfoBody struct { + Req *types.RetrieveDynamicPassthroughInfo `xml:"urn:vim25 RetrieveDynamicPassthroughInfo,omitempty"` + Res *types.RetrieveDynamicPassthroughInfoResponse `xml:"RetrieveDynamicPassthroughInfoResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RetrieveDynamicPassthroughInfoBody) Fault() *soap.Fault { return b.Fault_ } + +func RetrieveDynamicPassthroughInfo(ctx context.Context, r soap.RoundTripper, req *types.RetrieveDynamicPassthroughInfo) (*types.RetrieveDynamicPassthroughInfoResponse, error) { + var reqBody, resBody RetrieveDynamicPassthroughInfoBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type RetrieveEntityPermissionsBody struct { Req *types.RetrieveEntityPermissions `xml:"urn:vim25 RetrieveEntityPermissions,omitempty"` - Res *types.RetrieveEntityPermissionsResponse `xml:"urn:vim25 RetrieveEntityPermissionsResponse,omitempty"` + Res *types.RetrieveEntityPermissionsResponse `xml:"RetrieveEntityPermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13265,7 +13985,7 @@ func RetrieveEntityPermissions(ctx context.Context, r soap.RoundTripper, req *ty type RetrieveEntityScheduledTaskBody struct { Req *types.RetrieveEntityScheduledTask `xml:"urn:vim25 RetrieveEntityScheduledTask,omitempty"` - Res *types.RetrieveEntityScheduledTaskResponse `xml:"urn:vim25 RetrieveEntityScheduledTaskResponse,omitempty"` + Res *types.RetrieveEntityScheduledTaskResponse `xml:"RetrieveEntityScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13283,9 +14003,29 @@ func RetrieveEntityScheduledTask(ctx context.Context, r soap.RoundTripper, req * return resBody.Res, nil } +type RetrieveFreeEpcMemoryBody struct { + Req *types.RetrieveFreeEpcMemory `xml:"urn:vim25 RetrieveFreeEpcMemory,omitempty"` + Res *types.RetrieveFreeEpcMemoryResponse `xml:"RetrieveFreeEpcMemoryResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RetrieveFreeEpcMemoryBody) Fault() *soap.Fault { return b.Fault_ } + +func RetrieveFreeEpcMemory(ctx context.Context, r soap.RoundTripper, req *types.RetrieveFreeEpcMemory) (*types.RetrieveFreeEpcMemoryResponse, error) { + var reqBody, resBody RetrieveFreeEpcMemoryBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type RetrieveHardwareUptimeBody struct { Req *types.RetrieveHardwareUptime `xml:"urn:vim25 RetrieveHardwareUptime,omitempty"` - Res *types.RetrieveHardwareUptimeResponse `xml:"urn:vim25 RetrieveHardwareUptimeResponse,omitempty"` + Res *types.RetrieveHardwareUptimeResponse `xml:"RetrieveHardwareUptimeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13305,7 +14045,7 @@ func RetrieveHardwareUptime(ctx context.Context, r soap.RoundTripper, req *types type RetrieveHostAccessControlEntriesBody struct { Req *types.RetrieveHostAccessControlEntries `xml:"urn:vim25 RetrieveHostAccessControlEntries,omitempty"` - Res *types.RetrieveHostAccessControlEntriesResponse `xml:"urn:vim25 RetrieveHostAccessControlEntriesResponse,omitempty"` + Res *types.RetrieveHostAccessControlEntriesResponse `xml:"RetrieveHostAccessControlEntriesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13325,7 +14065,7 @@ func RetrieveHostAccessControlEntries(ctx context.Context, r soap.RoundTripper, type RetrieveHostCustomizationsBody struct { Req *types.RetrieveHostCustomizations `xml:"urn:vim25 RetrieveHostCustomizations,omitempty"` - Res *types.RetrieveHostCustomizationsResponse `xml:"urn:vim25 RetrieveHostCustomizationsResponse,omitempty"` + Res *types.RetrieveHostCustomizationsResponse `xml:"RetrieveHostCustomizationsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13345,7 +14085,7 @@ func RetrieveHostCustomizations(ctx context.Context, r soap.RoundTripper, req *t type RetrieveHostCustomizationsForProfileBody struct { Req *types.RetrieveHostCustomizationsForProfile `xml:"urn:vim25 RetrieveHostCustomizationsForProfile,omitempty"` - Res *types.RetrieveHostCustomizationsForProfileResponse `xml:"urn:vim25 RetrieveHostCustomizationsForProfileResponse,omitempty"` + Res *types.RetrieveHostCustomizationsForProfileResponse `xml:"RetrieveHostCustomizationsForProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13365,7 +14105,7 @@ func RetrieveHostCustomizationsForProfile(ctx context.Context, r soap.RoundTripp type RetrieveHostSpecificationBody struct { Req *types.RetrieveHostSpecification `xml:"urn:vim25 RetrieveHostSpecification,omitempty"` - Res *types.RetrieveHostSpecificationResponse `xml:"urn:vim25 RetrieveHostSpecificationResponse,omitempty"` + Res *types.RetrieveHostSpecificationResponse `xml:"RetrieveHostSpecificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13385,7 +14125,7 @@ func RetrieveHostSpecification(ctx context.Context, r soap.RoundTripper, req *ty type RetrieveKmipServerCertBody struct { Req *types.RetrieveKmipServerCert `xml:"urn:vim25 RetrieveKmipServerCert,omitempty"` - Res *types.RetrieveKmipServerCertResponse `xml:"urn:vim25 RetrieveKmipServerCertResponse,omitempty"` + Res *types.RetrieveKmipServerCertResponse `xml:"RetrieveKmipServerCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13405,7 +14145,7 @@ func RetrieveKmipServerCert(ctx context.Context, r soap.RoundTripper, req *types type RetrieveKmipServersStatus_TaskBody struct { Req *types.RetrieveKmipServersStatus_Task `xml:"urn:vim25 RetrieveKmipServersStatus_Task,omitempty"` - Res *types.RetrieveKmipServersStatus_TaskResponse `xml:"urn:vim25 RetrieveKmipServersStatus_TaskResponse,omitempty"` + Res *types.RetrieveKmipServersStatus_TaskResponse `xml:"RetrieveKmipServersStatus_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13425,7 +14165,7 @@ func RetrieveKmipServersStatus_Task(ctx context.Context, r soap.RoundTripper, re type RetrieveObjectScheduledTaskBody struct { Req *types.RetrieveObjectScheduledTask `xml:"urn:vim25 RetrieveObjectScheduledTask,omitempty"` - Res *types.RetrieveObjectScheduledTaskResponse `xml:"urn:vim25 RetrieveObjectScheduledTaskResponse,omitempty"` + Res *types.RetrieveObjectScheduledTaskResponse `xml:"RetrieveObjectScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13445,7 +14185,7 @@ func RetrieveObjectScheduledTask(ctx context.Context, r soap.RoundTripper, req * type RetrieveProductComponentsBody struct { Req *types.RetrieveProductComponents `xml:"urn:vim25 RetrieveProductComponents,omitempty"` - Res *types.RetrieveProductComponentsResponse `xml:"urn:vim25 RetrieveProductComponentsResponse,omitempty"` + Res *types.RetrieveProductComponentsResponse `xml:"RetrieveProductComponentsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13465,7 +14205,7 @@ func RetrieveProductComponents(ctx context.Context, r soap.RoundTripper, req *ty type RetrievePropertiesBody struct { Req *types.RetrieveProperties `xml:"urn:vim25 RetrieveProperties,omitempty"` - Res *types.RetrievePropertiesResponse `xml:"urn:vim25 RetrievePropertiesResponse,omitempty"` + Res *types.RetrievePropertiesResponse `xml:"RetrievePropertiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13485,7 +14225,7 @@ func RetrieveProperties(ctx context.Context, r soap.RoundTripper, req *types.Ret type RetrievePropertiesExBody struct { Req *types.RetrievePropertiesEx `xml:"urn:vim25 RetrievePropertiesEx,omitempty"` - Res *types.RetrievePropertiesExResponse `xml:"urn:vim25 RetrievePropertiesExResponse,omitempty"` + Res *types.RetrievePropertiesExResponse `xml:"RetrievePropertiesExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13505,7 +14245,7 @@ func RetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req *types.R type RetrieveRolePermissionsBody struct { Req *types.RetrieveRolePermissions `xml:"urn:vim25 RetrieveRolePermissions,omitempty"` - Res *types.RetrieveRolePermissionsResponse `xml:"urn:vim25 RetrieveRolePermissionsResponse,omitempty"` + Res *types.RetrieveRolePermissionsResponse `xml:"RetrieveRolePermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13525,7 +14265,7 @@ func RetrieveRolePermissions(ctx context.Context, r soap.RoundTripper, req *type type RetrieveSelfSignedClientCertBody struct { Req *types.RetrieveSelfSignedClientCert `xml:"urn:vim25 RetrieveSelfSignedClientCert,omitempty"` - Res *types.RetrieveSelfSignedClientCertResponse `xml:"urn:vim25 RetrieveSelfSignedClientCertResponse,omitempty"` + Res *types.RetrieveSelfSignedClientCertResponse `xml:"RetrieveSelfSignedClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13545,7 +14285,7 @@ func RetrieveSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req type RetrieveServiceContentBody struct { Req *types.RetrieveServiceContent `xml:"urn:vim25 RetrieveServiceContent,omitempty"` - Res *types.RetrieveServiceContentResponse `xml:"urn:vim25 RetrieveServiceContentResponse,omitempty"` + Res *types.RetrieveServiceContentResponse `xml:"RetrieveServiceContentResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13563,9 +14303,49 @@ func RetrieveServiceContent(ctx context.Context, r soap.RoundTripper, req *types return resBody.Res, nil } +type RetrieveServiceProviderEntitiesBody struct { + Req *types.RetrieveServiceProviderEntities `xml:"urn:vim25 RetrieveServiceProviderEntities,omitempty"` + Res *types.RetrieveServiceProviderEntitiesResponse `xml:"RetrieveServiceProviderEntitiesResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RetrieveServiceProviderEntitiesBody) Fault() *soap.Fault { return b.Fault_ } + +func RetrieveServiceProviderEntities(ctx context.Context, r soap.RoundTripper, req *types.RetrieveServiceProviderEntities) (*types.RetrieveServiceProviderEntitiesResponse, error) { + var reqBody, resBody RetrieveServiceProviderEntitiesBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type RetrieveSnapshotDetailsBody struct { + Req *types.RetrieveSnapshotDetails `xml:"urn:vim25 RetrieveSnapshotDetails,omitempty"` + Res *types.RetrieveSnapshotDetailsResponse `xml:"RetrieveSnapshotDetailsResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RetrieveSnapshotDetailsBody) Fault() *soap.Fault { return b.Fault_ } + +func RetrieveSnapshotDetails(ctx context.Context, r soap.RoundTripper, req *types.RetrieveSnapshotDetails) (*types.RetrieveSnapshotDetailsResponse, error) { + var reqBody, resBody RetrieveSnapshotDetailsBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type RetrieveSnapshotInfoBody struct { Req *types.RetrieveSnapshotInfo `xml:"urn:vim25 RetrieveSnapshotInfo,omitempty"` - Res *types.RetrieveSnapshotInfoResponse `xml:"urn:vim25 RetrieveSnapshotInfoResponse,omitempty"` + Res *types.RetrieveSnapshotInfoResponse `xml:"RetrieveSnapshotInfoResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13585,7 +14365,7 @@ func RetrieveSnapshotInfo(ctx context.Context, r soap.RoundTripper, req *types.R type RetrieveUserGroupsBody struct { Req *types.RetrieveUserGroups `xml:"urn:vim25 RetrieveUserGroups,omitempty"` - Res *types.RetrieveUserGroupsResponse `xml:"urn:vim25 RetrieveUserGroupsResponse,omitempty"` + Res *types.RetrieveUserGroupsResponse `xml:"RetrieveUserGroupsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13605,7 +14385,7 @@ func RetrieveUserGroups(ctx context.Context, r soap.RoundTripper, req *types.Ret type RetrieveVStorageInfrastructureObjectPolicyBody struct { Req *types.RetrieveVStorageInfrastructureObjectPolicy `xml:"urn:vim25 RetrieveVStorageInfrastructureObjectPolicy,omitempty"` - Res *types.RetrieveVStorageInfrastructureObjectPolicyResponse `xml:"urn:vim25 RetrieveVStorageInfrastructureObjectPolicyResponse,omitempty"` + Res *types.RetrieveVStorageInfrastructureObjectPolicyResponse `xml:"RetrieveVStorageInfrastructureObjectPolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13625,7 +14405,7 @@ func RetrieveVStorageInfrastructureObjectPolicy(ctx context.Context, r soap.Roun type RetrieveVStorageObjectBody struct { Req *types.RetrieveVStorageObject `xml:"urn:vim25 RetrieveVStorageObject,omitempty"` - Res *types.RetrieveVStorageObjectResponse `xml:"urn:vim25 RetrieveVStorageObjectResponse,omitempty"` + Res *types.RetrieveVStorageObjectResponse `xml:"RetrieveVStorageObjectResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13645,7 +14425,7 @@ func RetrieveVStorageObject(ctx context.Context, r soap.RoundTripper, req *types type RetrieveVStorageObjectAssociationsBody struct { Req *types.RetrieveVStorageObjectAssociations `xml:"urn:vim25 RetrieveVStorageObjectAssociations,omitempty"` - Res *types.RetrieveVStorageObjectAssociationsResponse `xml:"urn:vim25 RetrieveVStorageObjectAssociationsResponse,omitempty"` + Res *types.RetrieveVStorageObjectAssociationsResponse `xml:"RetrieveVStorageObjectAssociationsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13665,7 +14445,7 @@ func RetrieveVStorageObjectAssociations(ctx context.Context, r soap.RoundTripper type RetrieveVStorageObjectStateBody struct { Req *types.RetrieveVStorageObjectState `xml:"urn:vim25 RetrieveVStorageObjectState,omitempty"` - Res *types.RetrieveVStorageObjectStateResponse `xml:"urn:vim25 RetrieveVStorageObjectStateResponse,omitempty"` + Res *types.RetrieveVStorageObjectStateResponse `xml:"RetrieveVStorageObjectStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13685,7 +14465,7 @@ func RetrieveVStorageObjectState(ctx context.Context, r soap.RoundTripper, req * type RevertToCurrentSnapshot_TaskBody struct { Req *types.RevertToCurrentSnapshot_Task `xml:"urn:vim25 RevertToCurrentSnapshot_Task,omitempty"` - Res *types.RevertToCurrentSnapshot_TaskResponse `xml:"urn:vim25 RevertToCurrentSnapshot_TaskResponse,omitempty"` + Res *types.RevertToCurrentSnapshot_TaskResponse `xml:"RevertToCurrentSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13705,7 +14485,7 @@ func RevertToCurrentSnapshot_Task(ctx context.Context, r soap.RoundTripper, req type RevertToSnapshot_TaskBody struct { Req *types.RevertToSnapshot_Task `xml:"urn:vim25 RevertToSnapshot_Task,omitempty"` - Res *types.RevertToSnapshot_TaskResponse `xml:"urn:vim25 RevertToSnapshot_TaskResponse,omitempty"` + Res *types.RevertToSnapshot_TaskResponse `xml:"RevertToSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13725,7 +14505,7 @@ func RevertToSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types. type RevertVStorageObject_TaskBody struct { Req *types.RevertVStorageObject_Task `xml:"urn:vim25 RevertVStorageObject_Task,omitempty"` - Res *types.RevertVStorageObject_TaskResponse `xml:"urn:vim25 RevertVStorageObject_TaskResponse,omitempty"` + Res *types.RevertVStorageObject_TaskResponse `xml:"RevertVStorageObject_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13745,7 +14525,7 @@ func RevertVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *ty type RewindCollectorBody struct { Req *types.RewindCollector `xml:"urn:vim25 RewindCollector,omitempty"` - Res *types.RewindCollectorResponse `xml:"urn:vim25 RewindCollectorResponse,omitempty"` + Res *types.RewindCollectorResponse `xml:"RewindCollectorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13765,7 +14545,7 @@ func RewindCollector(ctx context.Context, r soap.RoundTripper, req *types.Rewind type RunScheduledTaskBody struct { Req *types.RunScheduledTask `xml:"urn:vim25 RunScheduledTask,omitempty"` - Res *types.RunScheduledTaskResponse `xml:"urn:vim25 RunScheduledTaskResponse,omitempty"` + Res *types.RunScheduledTaskResponse `xml:"RunScheduledTaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13785,7 +14565,7 @@ func RunScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.RunSc type RunVsanPhysicalDiskDiagnosticsBody struct { Req *types.RunVsanPhysicalDiskDiagnostics `xml:"urn:vim25 RunVsanPhysicalDiskDiagnostics,omitempty"` - Res *types.RunVsanPhysicalDiskDiagnosticsResponse `xml:"urn:vim25 RunVsanPhysicalDiskDiagnosticsResponse,omitempty"` + Res *types.RunVsanPhysicalDiskDiagnosticsResponse `xml:"RunVsanPhysicalDiskDiagnosticsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13805,7 +14585,7 @@ func RunVsanPhysicalDiskDiagnostics(ctx context.Context, r soap.RoundTripper, re type ScanHostPatchV2_TaskBody struct { Req *types.ScanHostPatchV2_Task `xml:"urn:vim25 ScanHostPatchV2_Task,omitempty"` - Res *types.ScanHostPatchV2_TaskResponse `xml:"urn:vim25 ScanHostPatchV2_TaskResponse,omitempty"` + Res *types.ScanHostPatchV2_TaskResponse `xml:"ScanHostPatchV2_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13825,7 +14605,7 @@ func ScanHostPatchV2_Task(ctx context.Context, r soap.RoundTripper, req *types.S type ScanHostPatch_TaskBody struct { Req *types.ScanHostPatch_Task `xml:"urn:vim25 ScanHostPatch_Task,omitempty"` - Res *types.ScanHostPatch_TaskResponse `xml:"urn:vim25 ScanHostPatch_TaskResponse,omitempty"` + Res *types.ScanHostPatch_TaskResponse `xml:"ScanHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13845,7 +14625,7 @@ func ScanHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.Sca type ScheduleReconcileDatastoreInventoryBody struct { Req *types.ScheduleReconcileDatastoreInventory `xml:"urn:vim25 ScheduleReconcileDatastoreInventory,omitempty"` - Res *types.ScheduleReconcileDatastoreInventoryResponse `xml:"urn:vim25 ScheduleReconcileDatastoreInventoryResponse,omitempty"` + Res *types.ScheduleReconcileDatastoreInventoryResponse `xml:"ScheduleReconcileDatastoreInventoryResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13865,7 +14645,7 @@ func ScheduleReconcileDatastoreInventory(ctx context.Context, r soap.RoundTrippe type SearchDatastoreSubFolders_TaskBody struct { Req *types.SearchDatastoreSubFolders_Task `xml:"urn:vim25 SearchDatastoreSubFolders_Task,omitempty"` - Res *types.SearchDatastoreSubFolders_TaskResponse `xml:"urn:vim25 SearchDatastoreSubFolders_TaskResponse,omitempty"` + Res *types.SearchDatastoreSubFolders_TaskResponse `xml:"SearchDatastoreSubFolders_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13885,7 +14665,7 @@ func SearchDatastoreSubFolders_Task(ctx context.Context, r soap.RoundTripper, re type SearchDatastore_TaskBody struct { Req *types.SearchDatastore_Task `xml:"urn:vim25 SearchDatastore_Task,omitempty"` - Res *types.SearchDatastore_TaskResponse `xml:"urn:vim25 SearchDatastore_TaskResponse,omitempty"` + Res *types.SearchDatastore_TaskResponse `xml:"SearchDatastore_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13905,7 +14685,7 @@ func SearchDatastore_Task(ctx context.Context, r soap.RoundTripper, req *types.S type SelectActivePartitionBody struct { Req *types.SelectActivePartition `xml:"urn:vim25 SelectActivePartition,omitempty"` - Res *types.SelectActivePartitionResponse `xml:"urn:vim25 SelectActivePartitionResponse,omitempty"` + Res *types.SelectActivePartitionResponse `xml:"SelectActivePartitionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13925,7 +14705,7 @@ func SelectActivePartition(ctx context.Context, r soap.RoundTripper, req *types. type SelectVnicBody struct { Req *types.SelectVnic `xml:"urn:vim25 SelectVnic,omitempty"` - Res *types.SelectVnicResponse `xml:"urn:vim25 SelectVnicResponse,omitempty"` + Res *types.SelectVnicResponse `xml:"SelectVnicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13945,7 +14725,7 @@ func SelectVnic(ctx context.Context, r soap.RoundTripper, req *types.SelectVnic) type SelectVnicForNicTypeBody struct { Req *types.SelectVnicForNicType `xml:"urn:vim25 SelectVnicForNicType,omitempty"` - Res *types.SelectVnicForNicTypeResponse `xml:"urn:vim25 SelectVnicForNicTypeResponse,omitempty"` + Res *types.SelectVnicForNicTypeResponse `xml:"SelectVnicForNicTypeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13965,7 +14745,7 @@ func SelectVnicForNicType(ctx context.Context, r soap.RoundTripper, req *types.S type SendNMIBody struct { Req *types.SendNMI `xml:"urn:vim25 SendNMI,omitempty"` - Res *types.SendNMIResponse `xml:"urn:vim25 SendNMIResponse,omitempty"` + Res *types.SendNMIResponse `xml:"SendNMIResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -13985,7 +14765,7 @@ func SendNMI(ctx context.Context, r soap.RoundTripper, req *types.SendNMI) (*typ type SendTestNotificationBody struct { Req *types.SendTestNotification `xml:"urn:vim25 SendTestNotification,omitempty"` - Res *types.SendTestNotificationResponse `xml:"urn:vim25 SendTestNotificationResponse,omitempty"` + Res *types.SendTestNotificationResponse `xml:"SendTestNotificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14005,7 +14785,7 @@ func SendTestNotification(ctx context.Context, r soap.RoundTripper, req *types.S type SessionIsActiveBody struct { Req *types.SessionIsActive `xml:"urn:vim25 SessionIsActive,omitempty"` - Res *types.SessionIsActiveResponse `xml:"urn:vim25 SessionIsActiveResponse,omitempty"` + Res *types.SessionIsActiveResponse `xml:"SessionIsActiveResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14025,7 +14805,7 @@ func SessionIsActive(ctx context.Context, r soap.RoundTripper, req *types.Sessio type SetCollectorPageSizeBody struct { Req *types.SetCollectorPageSize `xml:"urn:vim25 SetCollectorPageSize,omitempty"` - Res *types.SetCollectorPageSizeResponse `xml:"urn:vim25 SetCollectorPageSizeResponse,omitempty"` + Res *types.SetCollectorPageSizeResponse `xml:"SetCollectorPageSizeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14043,9 +14823,49 @@ func SetCollectorPageSize(ctx context.Context, r soap.RoundTripper, req *types.S return resBody.Res, nil } +type SetCryptoModeBody struct { + Req *types.SetCryptoMode `xml:"urn:vim25 SetCryptoMode,omitempty"` + Res *types.SetCryptoModeResponse `xml:"SetCryptoModeResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *SetCryptoModeBody) Fault() *soap.Fault { return b.Fault_ } + +func SetCryptoMode(ctx context.Context, r soap.RoundTripper, req *types.SetCryptoMode) (*types.SetCryptoModeResponse, error) { + var reqBody, resBody SetCryptoModeBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + +type SetDefaultKmsClusterBody struct { + Req *types.SetDefaultKmsCluster `xml:"urn:vim25 SetDefaultKmsCluster,omitempty"` + Res *types.SetDefaultKmsClusterResponse `xml:"SetDefaultKmsClusterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *SetDefaultKmsClusterBody) Fault() *soap.Fault { return b.Fault_ } + +func SetDefaultKmsCluster(ctx context.Context, r soap.RoundTripper, req *types.SetDefaultKmsCluster) (*types.SetDefaultKmsClusterResponse, error) { + var reqBody, resBody SetDefaultKmsClusterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type SetDisplayTopologyBody struct { Req *types.SetDisplayTopology `xml:"urn:vim25 SetDisplayTopology,omitempty"` - Res *types.SetDisplayTopologyResponse `xml:"urn:vim25 SetDisplayTopologyResponse,omitempty"` + Res *types.SetDisplayTopologyResponse `xml:"SetDisplayTopologyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14065,7 +14885,7 @@ func SetDisplayTopology(ctx context.Context, r soap.RoundTripper, req *types.Set type SetEntityPermissionsBody struct { Req *types.SetEntityPermissions `xml:"urn:vim25 SetEntityPermissions,omitempty"` - Res *types.SetEntityPermissionsResponse `xml:"urn:vim25 SetEntityPermissionsResponse,omitempty"` + Res *types.SetEntityPermissionsResponse `xml:"SetEntityPermissionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14085,7 +14905,7 @@ func SetEntityPermissions(ctx context.Context, r soap.RoundTripper, req *types.S type SetExtensionCertificateBody struct { Req *types.SetExtensionCertificate `xml:"urn:vim25 SetExtensionCertificate,omitempty"` - Res *types.SetExtensionCertificateResponse `xml:"urn:vim25 SetExtensionCertificateResponse,omitempty"` + Res *types.SetExtensionCertificateResponse `xml:"SetExtensionCertificateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14105,7 +14925,7 @@ func SetExtensionCertificate(ctx context.Context, r soap.RoundTripper, req *type type SetFieldBody struct { Req *types.SetField `xml:"urn:vim25 SetField,omitempty"` - Res *types.SetFieldResponse `xml:"urn:vim25 SetFieldResponse,omitempty"` + Res *types.SetFieldResponse `xml:"SetFieldResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14125,7 +14945,7 @@ func SetField(ctx context.Context, r soap.RoundTripper, req *types.SetField) (*t type SetLicenseEditionBody struct { Req *types.SetLicenseEdition `xml:"urn:vim25 SetLicenseEdition,omitempty"` - Res *types.SetLicenseEditionResponse `xml:"urn:vim25 SetLicenseEditionResponse,omitempty"` + Res *types.SetLicenseEditionResponse `xml:"SetLicenseEditionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14145,7 +14965,7 @@ func SetLicenseEdition(ctx context.Context, r soap.RoundTripper, req *types.SetL type SetLocaleBody struct { Req *types.SetLocale `xml:"urn:vim25 SetLocale,omitempty"` - Res *types.SetLocaleResponse `xml:"urn:vim25 SetLocaleResponse,omitempty"` + Res *types.SetLocaleResponse `xml:"SetLocaleResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14165,7 +14985,7 @@ func SetLocale(ctx context.Context, r soap.RoundTripper, req *types.SetLocale) ( type SetMultipathLunPolicyBody struct { Req *types.SetMultipathLunPolicy `xml:"urn:vim25 SetMultipathLunPolicy,omitempty"` - Res *types.SetMultipathLunPolicyResponse `xml:"urn:vim25 SetMultipathLunPolicyResponse,omitempty"` + Res *types.SetMultipathLunPolicyResponse `xml:"SetMultipathLunPolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14185,7 +15005,7 @@ func SetMultipathLunPolicy(ctx context.Context, r soap.RoundTripper, req *types. type SetNFSUserBody struct { Req *types.SetNFSUser `xml:"urn:vim25 SetNFSUser,omitempty"` - Res *types.SetNFSUserResponse `xml:"urn:vim25 SetNFSUserResponse,omitempty"` + Res *types.SetNFSUserResponse `xml:"SetNFSUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14205,7 +15025,7 @@ func SetNFSUser(ctx context.Context, r soap.RoundTripper, req *types.SetNFSUser) type SetPublicKeyBody struct { Req *types.SetPublicKey `xml:"urn:vim25 SetPublicKey,omitempty"` - Res *types.SetPublicKeyResponse `xml:"urn:vim25 SetPublicKeyResponse,omitempty"` + Res *types.SetPublicKeyResponse `xml:"SetPublicKeyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14225,7 +15045,7 @@ func SetPublicKey(ctx context.Context, r soap.RoundTripper, req *types.SetPublic type SetRegistryValueInGuestBody struct { Req *types.SetRegistryValueInGuest `xml:"urn:vim25 SetRegistryValueInGuest,omitempty"` - Res *types.SetRegistryValueInGuestResponse `xml:"urn:vim25 SetRegistryValueInGuestResponse,omitempty"` + Res *types.SetRegistryValueInGuestResponse `xml:"SetRegistryValueInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14245,7 +15065,7 @@ func SetRegistryValueInGuest(ctx context.Context, r soap.RoundTripper, req *type type SetScreenResolutionBody struct { Req *types.SetScreenResolution `xml:"urn:vim25 SetScreenResolution,omitempty"` - Res *types.SetScreenResolutionResponse `xml:"urn:vim25 SetScreenResolutionResponse,omitempty"` + Res *types.SetScreenResolutionResponse `xml:"SetScreenResolutionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14265,7 +15085,7 @@ func SetScreenResolution(ctx context.Context, r soap.RoundTripper, req *types.Se type SetTaskDescriptionBody struct { Req *types.SetTaskDescription `xml:"urn:vim25 SetTaskDescription,omitempty"` - Res *types.SetTaskDescriptionResponse `xml:"urn:vim25 SetTaskDescriptionResponse,omitempty"` + Res *types.SetTaskDescriptionResponse `xml:"SetTaskDescriptionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14285,7 +15105,7 @@ func SetTaskDescription(ctx context.Context, r soap.RoundTripper, req *types.Set type SetTaskStateBody struct { Req *types.SetTaskState `xml:"urn:vim25 SetTaskState,omitempty"` - Res *types.SetTaskStateResponse `xml:"urn:vim25 SetTaskStateResponse,omitempty"` + Res *types.SetTaskStateResponse `xml:"SetTaskStateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14305,7 +15125,7 @@ func SetTaskState(ctx context.Context, r soap.RoundTripper, req *types.SetTaskSt type SetVStorageObjectControlFlagsBody struct { Req *types.SetVStorageObjectControlFlags `xml:"urn:vim25 SetVStorageObjectControlFlags,omitempty"` - Res *types.SetVStorageObjectControlFlagsResponse `xml:"urn:vim25 SetVStorageObjectControlFlagsResponse,omitempty"` + Res *types.SetVStorageObjectControlFlagsResponse `xml:"SetVStorageObjectControlFlagsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14325,7 +15145,7 @@ func SetVStorageObjectControlFlags(ctx context.Context, r soap.RoundTripper, req type SetVirtualDiskUuidBody struct { Req *types.SetVirtualDiskUuid `xml:"urn:vim25 SetVirtualDiskUuid,omitempty"` - Res *types.SetVirtualDiskUuidResponse `xml:"urn:vim25 SetVirtualDiskUuidResponse,omitempty"` + Res *types.SetVirtualDiskUuidResponse `xml:"SetVirtualDiskUuidResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14345,7 +15165,7 @@ func SetVirtualDiskUuid(ctx context.Context, r soap.RoundTripper, req *types.Set type ShrinkVirtualDisk_TaskBody struct { Req *types.ShrinkVirtualDisk_Task `xml:"urn:vim25 ShrinkVirtualDisk_Task,omitempty"` - Res *types.ShrinkVirtualDisk_TaskResponse `xml:"urn:vim25 ShrinkVirtualDisk_TaskResponse,omitempty"` + Res *types.ShrinkVirtualDisk_TaskResponse `xml:"ShrinkVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14365,7 +15185,7 @@ func ShrinkVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types type ShutdownGuestBody struct { Req *types.ShutdownGuest `xml:"urn:vim25 ShutdownGuest,omitempty"` - Res *types.ShutdownGuestResponse `xml:"urn:vim25 ShutdownGuestResponse,omitempty"` + Res *types.ShutdownGuestResponse `xml:"ShutdownGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14385,7 +15205,7 @@ func ShutdownGuest(ctx context.Context, r soap.RoundTripper, req *types.Shutdown type ShutdownHost_TaskBody struct { Req *types.ShutdownHost_Task `xml:"urn:vim25 ShutdownHost_Task,omitempty"` - Res *types.ShutdownHost_TaskResponse `xml:"urn:vim25 ShutdownHost_TaskResponse,omitempty"` + Res *types.ShutdownHost_TaskResponse `xml:"ShutdownHost_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14405,7 +15225,7 @@ func ShutdownHost_Task(ctx context.Context, r soap.RoundTripper, req *types.Shut type StageHostPatch_TaskBody struct { Req *types.StageHostPatch_Task `xml:"urn:vim25 StageHostPatch_Task,omitempty"` - Res *types.StageHostPatch_TaskResponse `xml:"urn:vim25 StageHostPatch_TaskResponse,omitempty"` + Res *types.StageHostPatch_TaskResponse `xml:"StageHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14425,7 +15245,7 @@ func StageHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.St type StampAllRulesWithUuid_TaskBody struct { Req *types.StampAllRulesWithUuid_Task `xml:"urn:vim25 StampAllRulesWithUuid_Task,omitempty"` - Res *types.StampAllRulesWithUuid_TaskResponse `xml:"urn:vim25 StampAllRulesWithUuid_TaskResponse,omitempty"` + Res *types.StampAllRulesWithUuid_TaskResponse `xml:"StampAllRulesWithUuid_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14445,7 +15265,7 @@ func StampAllRulesWithUuid_Task(ctx context.Context, r soap.RoundTripper, req *t type StandbyGuestBody struct { Req *types.StandbyGuest `xml:"urn:vim25 StandbyGuest,omitempty"` - Res *types.StandbyGuestResponse `xml:"urn:vim25 StandbyGuestResponse,omitempty"` + Res *types.StandbyGuestResponse `xml:"StandbyGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14463,9 +15283,29 @@ func StandbyGuest(ctx context.Context, r soap.RoundTripper, req *types.StandbyGu return resBody.Res, nil } +type StartGuestNetwork_TaskBody struct { + Req *types.StartGuestNetwork_Task `xml:"urn:vim25 StartGuestNetwork_Task,omitempty"` + Res *types.StartGuestNetwork_TaskResponse `xml:"StartGuestNetwork_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *StartGuestNetwork_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func StartGuestNetwork_Task(ctx context.Context, r soap.RoundTripper, req *types.StartGuestNetwork_Task) (*types.StartGuestNetwork_TaskResponse, error) { + var reqBody, resBody StartGuestNetwork_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type StartProgramInGuestBody struct { Req *types.StartProgramInGuest `xml:"urn:vim25 StartProgramInGuest,omitempty"` - Res *types.StartProgramInGuestResponse `xml:"urn:vim25 StartProgramInGuestResponse,omitempty"` + Res *types.StartProgramInGuestResponse `xml:"StartProgramInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14485,7 +15325,7 @@ func StartProgramInGuest(ctx context.Context, r soap.RoundTripper, req *types.St type StartRecording_TaskBody struct { Req *types.StartRecording_Task `xml:"urn:vim25 StartRecording_Task,omitempty"` - Res *types.StartRecording_TaskResponse `xml:"urn:vim25 StartRecording_TaskResponse,omitempty"` + Res *types.StartRecording_TaskResponse `xml:"StartRecording_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14505,7 +15345,7 @@ func StartRecording_Task(ctx context.Context, r soap.RoundTripper, req *types.St type StartReplaying_TaskBody struct { Req *types.StartReplaying_Task `xml:"urn:vim25 StartReplaying_Task,omitempty"` - Res *types.StartReplaying_TaskResponse `xml:"urn:vim25 StartReplaying_TaskResponse,omitempty"` + Res *types.StartReplaying_TaskResponse `xml:"StartReplaying_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14525,7 +15365,7 @@ func StartReplaying_Task(ctx context.Context, r soap.RoundTripper, req *types.St type StartServiceBody struct { Req *types.StartService `xml:"urn:vim25 StartService,omitempty"` - Res *types.StartServiceResponse `xml:"urn:vim25 StartServiceResponse,omitempty"` + Res *types.StartServiceResponse `xml:"StartServiceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14545,7 +15385,7 @@ func StartService(ctx context.Context, r soap.RoundTripper, req *types.StartServ type StopRecording_TaskBody struct { Req *types.StopRecording_Task `xml:"urn:vim25 StopRecording_Task,omitempty"` - Res *types.StopRecording_TaskResponse `xml:"urn:vim25 StopRecording_TaskResponse,omitempty"` + Res *types.StopRecording_TaskResponse `xml:"StopRecording_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14565,7 +15405,7 @@ func StopRecording_Task(ctx context.Context, r soap.RoundTripper, req *types.Sto type StopReplaying_TaskBody struct { Req *types.StopReplaying_Task `xml:"urn:vim25 StopReplaying_Task,omitempty"` - Res *types.StopReplaying_TaskResponse `xml:"urn:vim25 StopReplaying_TaskResponse,omitempty"` + Res *types.StopReplaying_TaskResponse `xml:"StopReplaying_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14585,7 +15425,7 @@ func StopReplaying_Task(ctx context.Context, r soap.RoundTripper, req *types.Sto type StopServiceBody struct { Req *types.StopService `xml:"urn:vim25 StopService,omitempty"` - Res *types.StopServiceResponse `xml:"urn:vim25 StopServiceResponse,omitempty"` + Res *types.StopServiceResponse `xml:"StopServiceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14605,7 +15445,7 @@ func StopService(ctx context.Context, r soap.RoundTripper, req *types.StopServic type SuspendVApp_TaskBody struct { Req *types.SuspendVApp_Task `xml:"urn:vim25 SuspendVApp_Task,omitempty"` - Res *types.SuspendVApp_TaskResponse `xml:"urn:vim25 SuspendVApp_TaskResponse,omitempty"` + Res *types.SuspendVApp_TaskResponse `xml:"SuspendVApp_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14625,7 +15465,7 @@ func SuspendVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.Suspe type SuspendVM_TaskBody struct { Req *types.SuspendVM_Task `xml:"urn:vim25 SuspendVM_Task,omitempty"` - Res *types.SuspendVM_TaskResponse `xml:"urn:vim25 SuspendVM_TaskResponse,omitempty"` + Res *types.SuspendVM_TaskResponse `xml:"SuspendVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14645,7 +15485,7 @@ func SuspendVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Suspend type TerminateFaultTolerantVM_TaskBody struct { Req *types.TerminateFaultTolerantVM_Task `xml:"urn:vim25 TerminateFaultTolerantVM_Task,omitempty"` - Res *types.TerminateFaultTolerantVM_TaskResponse `xml:"urn:vim25 TerminateFaultTolerantVM_TaskResponse,omitempty"` + Res *types.TerminateFaultTolerantVM_TaskResponse `xml:"TerminateFaultTolerantVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14665,7 +15505,7 @@ func TerminateFaultTolerantVM_Task(ctx context.Context, r soap.RoundTripper, req type TerminateProcessInGuestBody struct { Req *types.TerminateProcessInGuest `xml:"urn:vim25 TerminateProcessInGuest,omitempty"` - Res *types.TerminateProcessInGuestResponse `xml:"urn:vim25 TerminateProcessInGuestResponse,omitempty"` + Res *types.TerminateProcessInGuestResponse `xml:"TerminateProcessInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14685,7 +15525,7 @@ func TerminateProcessInGuest(ctx context.Context, r soap.RoundTripper, req *type type TerminateSessionBody struct { Req *types.TerminateSession `xml:"urn:vim25 TerminateSession,omitempty"` - Res *types.TerminateSessionResponse `xml:"urn:vim25 TerminateSessionResponse,omitempty"` + Res *types.TerminateSessionResponse `xml:"TerminateSessionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14705,7 +15545,7 @@ func TerminateSession(ctx context.Context, r soap.RoundTripper, req *types.Termi type TerminateVMBody struct { Req *types.TerminateVM `xml:"urn:vim25 TerminateVM,omitempty"` - Res *types.TerminateVMResponse `xml:"urn:vim25 TerminateVMResponse,omitempty"` + Res *types.TerminateVMResponse `xml:"TerminateVMResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14725,7 +15565,7 @@ func TerminateVM(ctx context.Context, r soap.RoundTripper, req *types.TerminateV type TurnDiskLocatorLedOff_TaskBody struct { Req *types.TurnDiskLocatorLedOff_Task `xml:"urn:vim25 TurnDiskLocatorLedOff_Task,omitempty"` - Res *types.TurnDiskLocatorLedOff_TaskResponse `xml:"urn:vim25 TurnDiskLocatorLedOff_TaskResponse,omitempty"` + Res *types.TurnDiskLocatorLedOff_TaskResponse `xml:"TurnDiskLocatorLedOff_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14745,7 +15585,7 @@ func TurnDiskLocatorLedOff_Task(ctx context.Context, r soap.RoundTripper, req *t type TurnDiskLocatorLedOn_TaskBody struct { Req *types.TurnDiskLocatorLedOn_Task `xml:"urn:vim25 TurnDiskLocatorLedOn_Task,omitempty"` - Res *types.TurnDiskLocatorLedOn_TaskResponse `xml:"urn:vim25 TurnDiskLocatorLedOn_TaskResponse,omitempty"` + Res *types.TurnDiskLocatorLedOn_TaskResponse `xml:"TurnDiskLocatorLedOn_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14765,7 +15605,7 @@ func TurnDiskLocatorLedOn_Task(ctx context.Context, r soap.RoundTripper, req *ty type TurnOffFaultToleranceForVM_TaskBody struct { Req *types.TurnOffFaultToleranceForVM_Task `xml:"urn:vim25 TurnOffFaultToleranceForVM_Task,omitempty"` - Res *types.TurnOffFaultToleranceForVM_TaskResponse `xml:"urn:vim25 TurnOffFaultToleranceForVM_TaskResponse,omitempty"` + Res *types.TurnOffFaultToleranceForVM_TaskResponse `xml:"TurnOffFaultToleranceForVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14785,7 +15625,7 @@ func TurnOffFaultToleranceForVM_Task(ctx context.Context, r soap.RoundTripper, r type UnassignUserFromGroupBody struct { Req *types.UnassignUserFromGroup `xml:"urn:vim25 UnassignUserFromGroup,omitempty"` - Res *types.UnassignUserFromGroupResponse `xml:"urn:vim25 UnassignUserFromGroupResponse,omitempty"` + Res *types.UnassignUserFromGroupResponse `xml:"UnassignUserFromGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14805,7 +15645,7 @@ func UnassignUserFromGroup(ctx context.Context, r soap.RoundTripper, req *types. type UnbindVnicBody struct { Req *types.UnbindVnic `xml:"urn:vim25 UnbindVnic,omitempty"` - Res *types.UnbindVnicResponse `xml:"urn:vim25 UnbindVnicResponse,omitempty"` + Res *types.UnbindVnicResponse `xml:"UnbindVnicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14825,7 +15665,7 @@ func UnbindVnic(ctx context.Context, r soap.RoundTripper, req *types.UnbindVnic) type UninstallHostPatch_TaskBody struct { Req *types.UninstallHostPatch_Task `xml:"urn:vim25 UninstallHostPatch_Task,omitempty"` - Res *types.UninstallHostPatch_TaskResponse `xml:"urn:vim25 UninstallHostPatch_TaskResponse,omitempty"` + Res *types.UninstallHostPatch_TaskResponse `xml:"UninstallHostPatch_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14845,7 +15685,7 @@ func UninstallHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *type type UninstallIoFilter_TaskBody struct { Req *types.UninstallIoFilter_Task `xml:"urn:vim25 UninstallIoFilter_Task,omitempty"` - Res *types.UninstallIoFilter_TaskResponse `xml:"urn:vim25 UninstallIoFilter_TaskResponse,omitempty"` + Res *types.UninstallIoFilter_TaskResponse `xml:"UninstallIoFilter_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14865,7 +15705,7 @@ func UninstallIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types type UninstallServiceBody struct { Req *types.UninstallService `xml:"urn:vim25 UninstallService,omitempty"` - Res *types.UninstallServiceResponse `xml:"urn:vim25 UninstallServiceResponse,omitempty"` + Res *types.UninstallServiceResponse `xml:"UninstallServiceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14885,7 +15725,7 @@ func UninstallService(ctx context.Context, r soap.RoundTripper, req *types.Unins type UnmapVmfsVolumeEx_TaskBody struct { Req *types.UnmapVmfsVolumeEx_Task `xml:"urn:vim25 UnmapVmfsVolumeEx_Task,omitempty"` - Res *types.UnmapVmfsVolumeEx_TaskResponse `xml:"urn:vim25 UnmapVmfsVolumeEx_TaskResponse,omitempty"` + Res *types.UnmapVmfsVolumeEx_TaskResponse `xml:"UnmapVmfsVolumeEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14903,9 +15743,29 @@ func UnmapVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *types return resBody.Res, nil } +type UnmarkServiceProviderEntitiesBody struct { + Req *types.UnmarkServiceProviderEntities `xml:"urn:vim25 UnmarkServiceProviderEntities,omitempty"` + Res *types.UnmarkServiceProviderEntitiesResponse `xml:"UnmarkServiceProviderEntitiesResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UnmarkServiceProviderEntitiesBody) Fault() *soap.Fault { return b.Fault_ } + +func UnmarkServiceProviderEntities(ctx context.Context, r soap.RoundTripper, req *types.UnmarkServiceProviderEntities) (*types.UnmarkServiceProviderEntitiesResponse, error) { + var reqBody, resBody UnmarkServiceProviderEntitiesBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UnmountDiskMapping_TaskBody struct { Req *types.UnmountDiskMapping_Task `xml:"urn:vim25 UnmountDiskMapping_Task,omitempty"` - Res *types.UnmountDiskMapping_TaskResponse `xml:"urn:vim25 UnmountDiskMapping_TaskResponse,omitempty"` + Res *types.UnmountDiskMapping_TaskResponse `xml:"UnmountDiskMapping_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14925,7 +15785,7 @@ func UnmountDiskMapping_Task(ctx context.Context, r soap.RoundTripper, req *type type UnmountForceMountedVmfsVolumeBody struct { Req *types.UnmountForceMountedVmfsVolume `xml:"urn:vim25 UnmountForceMountedVmfsVolume,omitempty"` - Res *types.UnmountForceMountedVmfsVolumeResponse `xml:"urn:vim25 UnmountForceMountedVmfsVolumeResponse,omitempty"` + Res *types.UnmountForceMountedVmfsVolumeResponse `xml:"UnmountForceMountedVmfsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14945,7 +15805,7 @@ func UnmountForceMountedVmfsVolume(ctx context.Context, r soap.RoundTripper, req type UnmountToolsInstallerBody struct { Req *types.UnmountToolsInstaller `xml:"urn:vim25 UnmountToolsInstaller,omitempty"` - Res *types.UnmountToolsInstallerResponse `xml:"urn:vim25 UnmountToolsInstallerResponse,omitempty"` + Res *types.UnmountToolsInstallerResponse `xml:"UnmountToolsInstallerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14965,7 +15825,7 @@ func UnmountToolsInstaller(ctx context.Context, r soap.RoundTripper, req *types. type UnmountVffsVolumeBody struct { Req *types.UnmountVffsVolume `xml:"urn:vim25 UnmountVffsVolume,omitempty"` - Res *types.UnmountVffsVolumeResponse `xml:"urn:vim25 UnmountVffsVolumeResponse,omitempty"` + Res *types.UnmountVffsVolumeResponse `xml:"UnmountVffsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -14985,7 +15845,7 @@ func UnmountVffsVolume(ctx context.Context, r soap.RoundTripper, req *types.Unmo type UnmountVmfsVolumeBody struct { Req *types.UnmountVmfsVolume `xml:"urn:vim25 UnmountVmfsVolume,omitempty"` - Res *types.UnmountVmfsVolumeResponse `xml:"urn:vim25 UnmountVmfsVolumeResponse,omitempty"` + Res *types.UnmountVmfsVolumeResponse `xml:"UnmountVmfsVolumeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15005,7 +15865,7 @@ func UnmountVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.Unmo type UnmountVmfsVolumeEx_TaskBody struct { Req *types.UnmountVmfsVolumeEx_Task `xml:"urn:vim25 UnmountVmfsVolumeEx_Task,omitempty"` - Res *types.UnmountVmfsVolumeEx_TaskResponse `xml:"urn:vim25 UnmountVmfsVolumeEx_TaskResponse,omitempty"` + Res *types.UnmountVmfsVolumeEx_TaskResponse `xml:"UnmountVmfsVolumeEx_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15025,7 +15885,7 @@ func UnmountVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *typ type UnregisterAndDestroy_TaskBody struct { Req *types.UnregisterAndDestroy_Task `xml:"urn:vim25 UnregisterAndDestroy_Task,omitempty"` - Res *types.UnregisterAndDestroy_TaskResponse `xml:"urn:vim25 UnregisterAndDestroy_TaskResponse,omitempty"` + Res *types.UnregisterAndDestroy_TaskResponse `xml:"UnregisterAndDestroy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15045,7 +15905,7 @@ func UnregisterAndDestroy_Task(ctx context.Context, r soap.RoundTripper, req *ty type UnregisterExtensionBody struct { Req *types.UnregisterExtension `xml:"urn:vim25 UnregisterExtension,omitempty"` - Res *types.UnregisterExtensionResponse `xml:"urn:vim25 UnregisterExtensionResponse,omitempty"` + Res *types.UnregisterExtensionResponse `xml:"UnregisterExtensionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15065,7 +15925,7 @@ func UnregisterExtension(ctx context.Context, r soap.RoundTripper, req *types.Un type UnregisterHealthUpdateProviderBody struct { Req *types.UnregisterHealthUpdateProvider `xml:"urn:vim25 UnregisterHealthUpdateProvider,omitempty"` - Res *types.UnregisterHealthUpdateProviderResponse `xml:"urn:vim25 UnregisterHealthUpdateProviderResponse,omitempty"` + Res *types.UnregisterHealthUpdateProviderResponse `xml:"UnregisterHealthUpdateProviderResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15083,9 +15943,29 @@ func UnregisterHealthUpdateProvider(ctx context.Context, r soap.RoundTripper, re return resBody.Res, nil } +type UnregisterKmsClusterBody struct { + Req *types.UnregisterKmsCluster `xml:"urn:vim25 UnregisterKmsCluster,omitempty"` + Res *types.UnregisterKmsClusterResponse `xml:"UnregisterKmsClusterResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UnregisterKmsClusterBody) Fault() *soap.Fault { return b.Fault_ } + +func UnregisterKmsCluster(ctx context.Context, r soap.RoundTripper, req *types.UnregisterKmsCluster) (*types.UnregisterKmsClusterResponse, error) { + var reqBody, resBody UnregisterKmsClusterBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UnregisterVMBody struct { Req *types.UnregisterVM `xml:"urn:vim25 UnregisterVM,omitempty"` - Res *types.UnregisterVMResponse `xml:"urn:vim25 UnregisterVMResponse,omitempty"` + Res *types.UnregisterVMResponse `xml:"UnregisterVMResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15105,7 +15985,7 @@ func UnregisterVM(ctx context.Context, r soap.RoundTripper, req *types.Unregiste type UpdateAnswerFile_TaskBody struct { Req *types.UpdateAnswerFile_Task `xml:"urn:vim25 UpdateAnswerFile_Task,omitempty"` - Res *types.UpdateAnswerFile_TaskResponse `xml:"urn:vim25 UpdateAnswerFile_TaskResponse,omitempty"` + Res *types.UpdateAnswerFile_TaskResponse `xml:"UpdateAnswerFile_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15123,9 +16003,29 @@ func UpdateAnswerFile_Task(ctx context.Context, r soap.RoundTripper, req *types. return resBody.Res, nil } +type UpdateAssignableHardwareConfigBody struct { + Req *types.UpdateAssignableHardwareConfig `xml:"urn:vim25 UpdateAssignableHardwareConfig,omitempty"` + Res *types.UpdateAssignableHardwareConfigResponse `xml:"UpdateAssignableHardwareConfigResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UpdateAssignableHardwareConfigBody) Fault() *soap.Fault { return b.Fault_ } + +func UpdateAssignableHardwareConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateAssignableHardwareConfig) (*types.UpdateAssignableHardwareConfigResponse, error) { + var reqBody, resBody UpdateAssignableHardwareConfigBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UpdateAssignedLicenseBody struct { Req *types.UpdateAssignedLicense `xml:"urn:vim25 UpdateAssignedLicense,omitempty"` - Res *types.UpdateAssignedLicenseResponse `xml:"urn:vim25 UpdateAssignedLicenseResponse,omitempty"` + Res *types.UpdateAssignedLicenseResponse `xml:"UpdateAssignedLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15145,7 +16045,7 @@ func UpdateAssignedLicense(ctx context.Context, r soap.RoundTripper, req *types. type UpdateAuthorizationRoleBody struct { Req *types.UpdateAuthorizationRole `xml:"urn:vim25 UpdateAuthorizationRole,omitempty"` - Res *types.UpdateAuthorizationRoleResponse `xml:"urn:vim25 UpdateAuthorizationRoleResponse,omitempty"` + Res *types.UpdateAuthorizationRoleResponse `xml:"UpdateAuthorizationRoleResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15165,7 +16065,7 @@ func UpdateAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *type type UpdateBootDeviceBody struct { Req *types.UpdateBootDevice `xml:"urn:vim25 UpdateBootDevice,omitempty"` - Res *types.UpdateBootDeviceResponse `xml:"urn:vim25 UpdateBootDeviceResponse,omitempty"` + Res *types.UpdateBootDeviceResponse `xml:"UpdateBootDeviceResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15185,7 +16085,7 @@ func UpdateBootDevice(ctx context.Context, r soap.RoundTripper, req *types.Updat type UpdateChildResourceConfigurationBody struct { Req *types.UpdateChildResourceConfiguration `xml:"urn:vim25 UpdateChildResourceConfiguration,omitempty"` - Res *types.UpdateChildResourceConfigurationResponse `xml:"urn:vim25 UpdateChildResourceConfigurationResponse,omitempty"` + Res *types.UpdateChildResourceConfigurationResponse `xml:"UpdateChildResourceConfigurationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15205,7 +16105,7 @@ func UpdateChildResourceConfiguration(ctx context.Context, r soap.RoundTripper, type UpdateClusterProfileBody struct { Req *types.UpdateClusterProfile `xml:"urn:vim25 UpdateClusterProfile,omitempty"` - Res *types.UpdateClusterProfileResponse `xml:"urn:vim25 UpdateClusterProfileResponse,omitempty"` + Res *types.UpdateClusterProfileResponse `xml:"UpdateClusterProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15225,7 +16125,7 @@ func UpdateClusterProfile(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateConfigBody struct { Req *types.UpdateConfig `xml:"urn:vim25 UpdateConfig,omitempty"` - Res *types.UpdateConfigResponse `xml:"urn:vim25 UpdateConfigResponse,omitempty"` + Res *types.UpdateConfigResponse `xml:"UpdateConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15245,7 +16145,7 @@ func UpdateConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateCon type UpdateConsoleIpRouteConfigBody struct { Req *types.UpdateConsoleIpRouteConfig `xml:"urn:vim25 UpdateConsoleIpRouteConfig,omitempty"` - Res *types.UpdateConsoleIpRouteConfigResponse `xml:"urn:vim25 UpdateConsoleIpRouteConfigResponse,omitempty"` + Res *types.UpdateConsoleIpRouteConfigResponse `xml:"UpdateConsoleIpRouteConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15265,7 +16165,7 @@ func UpdateConsoleIpRouteConfig(ctx context.Context, r soap.RoundTripper, req *t type UpdateCounterLevelMappingBody struct { Req *types.UpdateCounterLevelMapping `xml:"urn:vim25 UpdateCounterLevelMapping,omitempty"` - Res *types.UpdateCounterLevelMappingResponse `xml:"urn:vim25 UpdateCounterLevelMappingResponse,omitempty"` + Res *types.UpdateCounterLevelMappingResponse `xml:"UpdateCounterLevelMappingResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15285,7 +16185,7 @@ func UpdateCounterLevelMapping(ctx context.Context, r soap.RoundTripper, req *ty type UpdateDVSHealthCheckConfig_TaskBody struct { Req *types.UpdateDVSHealthCheckConfig_Task `xml:"urn:vim25 UpdateDVSHealthCheckConfig_Task,omitempty"` - Res *types.UpdateDVSHealthCheckConfig_TaskResponse `xml:"urn:vim25 UpdateDVSHealthCheckConfig_TaskResponse,omitempty"` + Res *types.UpdateDVSHealthCheckConfig_TaskResponse `xml:"UpdateDVSHealthCheckConfig_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15305,7 +16205,7 @@ func UpdateDVSHealthCheckConfig_Task(ctx context.Context, r soap.RoundTripper, r type UpdateDVSLacpGroupConfig_TaskBody struct { Req *types.UpdateDVSLacpGroupConfig_Task `xml:"urn:vim25 UpdateDVSLacpGroupConfig_Task,omitempty"` - Res *types.UpdateDVSLacpGroupConfig_TaskResponse `xml:"urn:vim25 UpdateDVSLacpGroupConfig_TaskResponse,omitempty"` + Res *types.UpdateDVSLacpGroupConfig_TaskResponse `xml:"UpdateDVSLacpGroupConfig_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15325,7 +16225,7 @@ func UpdateDVSLacpGroupConfig_Task(ctx context.Context, r soap.RoundTripper, req type UpdateDateTimeBody struct { Req *types.UpdateDateTime `xml:"urn:vim25 UpdateDateTime,omitempty"` - Res *types.UpdateDateTimeResponse `xml:"urn:vim25 UpdateDateTimeResponse,omitempty"` + Res *types.UpdateDateTimeResponse `xml:"UpdateDateTimeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15345,7 +16245,7 @@ func UpdateDateTime(ctx context.Context, r soap.RoundTripper, req *types.UpdateD type UpdateDateTimeConfigBody struct { Req *types.UpdateDateTimeConfig `xml:"urn:vim25 UpdateDateTimeConfig,omitempty"` - Res *types.UpdateDateTimeConfigResponse `xml:"urn:vim25 UpdateDateTimeConfigResponse,omitempty"` + Res *types.UpdateDateTimeConfigResponse `xml:"UpdateDateTimeConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15365,7 +16265,7 @@ func UpdateDateTimeConfig(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateDefaultPolicyBody struct { Req *types.UpdateDefaultPolicy `xml:"urn:vim25 UpdateDefaultPolicy,omitempty"` - Res *types.UpdateDefaultPolicyResponse `xml:"urn:vim25 UpdateDefaultPolicyResponse,omitempty"` + Res *types.UpdateDefaultPolicyResponse `xml:"UpdateDefaultPolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15385,7 +16285,7 @@ func UpdateDefaultPolicy(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateDiskPartitionsBody struct { Req *types.UpdateDiskPartitions `xml:"urn:vim25 UpdateDiskPartitions,omitempty"` - Res *types.UpdateDiskPartitionsResponse `xml:"urn:vim25 UpdateDiskPartitionsResponse,omitempty"` + Res *types.UpdateDiskPartitionsResponse `xml:"UpdateDiskPartitionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15405,7 +16305,7 @@ func UpdateDiskPartitions(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateDnsConfigBody struct { Req *types.UpdateDnsConfig `xml:"urn:vim25 UpdateDnsConfig,omitempty"` - Res *types.UpdateDnsConfigResponse `xml:"urn:vim25 UpdateDnsConfigResponse,omitempty"` + Res *types.UpdateDnsConfigResponse `xml:"UpdateDnsConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15425,7 +16325,7 @@ func UpdateDnsConfig(ctx context.Context, r soap.RoundTripper, req *types.Update type UpdateDvsCapabilityBody struct { Req *types.UpdateDvsCapability `xml:"urn:vim25 UpdateDvsCapability,omitempty"` - Res *types.UpdateDvsCapabilityResponse `xml:"urn:vim25 UpdateDvsCapabilityResponse,omitempty"` + Res *types.UpdateDvsCapabilityResponse `xml:"UpdateDvsCapabilityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15445,7 +16345,7 @@ func UpdateDvsCapability(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateExtensionBody struct { Req *types.UpdateExtension `xml:"urn:vim25 UpdateExtension,omitempty"` - Res *types.UpdateExtensionResponse `xml:"urn:vim25 UpdateExtensionResponse,omitempty"` + Res *types.UpdateExtensionResponse `xml:"UpdateExtensionResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15465,7 +16365,7 @@ func UpdateExtension(ctx context.Context, r soap.RoundTripper, req *types.Update type UpdateFlagsBody struct { Req *types.UpdateFlags `xml:"urn:vim25 UpdateFlags,omitempty"` - Res *types.UpdateFlagsResponse `xml:"urn:vim25 UpdateFlagsResponse,omitempty"` + Res *types.UpdateFlagsResponse `xml:"UpdateFlagsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15485,7 +16385,7 @@ func UpdateFlags(ctx context.Context, r soap.RoundTripper, req *types.UpdateFlag type UpdateGraphicsConfigBody struct { Req *types.UpdateGraphicsConfig `xml:"urn:vim25 UpdateGraphicsConfig,omitempty"` - Res *types.UpdateGraphicsConfigResponse `xml:"urn:vim25 UpdateGraphicsConfigResponse,omitempty"` + Res *types.UpdateGraphicsConfigResponse `xml:"UpdateGraphicsConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15505,7 +16405,7 @@ func UpdateGraphicsConfig(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateHostCustomizations_TaskBody struct { Req *types.UpdateHostCustomizations_Task `xml:"urn:vim25 UpdateHostCustomizations_Task,omitempty"` - Res *types.UpdateHostCustomizations_TaskResponse `xml:"urn:vim25 UpdateHostCustomizations_TaskResponse,omitempty"` + Res *types.UpdateHostCustomizations_TaskResponse `xml:"UpdateHostCustomizations_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15525,7 +16425,7 @@ func UpdateHostCustomizations_Task(ctx context.Context, r soap.RoundTripper, req type UpdateHostImageAcceptanceLevelBody struct { Req *types.UpdateHostImageAcceptanceLevel `xml:"urn:vim25 UpdateHostImageAcceptanceLevel,omitempty"` - Res *types.UpdateHostImageAcceptanceLevelResponse `xml:"urn:vim25 UpdateHostImageAcceptanceLevelResponse,omitempty"` + Res *types.UpdateHostImageAcceptanceLevelResponse `xml:"UpdateHostImageAcceptanceLevelResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15545,7 +16445,7 @@ func UpdateHostImageAcceptanceLevel(ctx context.Context, r soap.RoundTripper, re type UpdateHostProfileBody struct { Req *types.UpdateHostProfile `xml:"urn:vim25 UpdateHostProfile,omitempty"` - Res *types.UpdateHostProfileResponse `xml:"urn:vim25 UpdateHostProfileResponse,omitempty"` + Res *types.UpdateHostProfileResponse `xml:"UpdateHostProfileResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15565,7 +16465,7 @@ func UpdateHostProfile(ctx context.Context, r soap.RoundTripper, req *types.Upda type UpdateHostSpecificationBody struct { Req *types.UpdateHostSpecification `xml:"urn:vim25 UpdateHostSpecification,omitempty"` - Res *types.UpdateHostSpecificationResponse `xml:"urn:vim25 UpdateHostSpecificationResponse,omitempty"` + Res *types.UpdateHostSpecificationResponse `xml:"UpdateHostSpecificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15585,7 +16485,7 @@ func UpdateHostSpecification(ctx context.Context, r soap.RoundTripper, req *type type UpdateHostSubSpecificationBody struct { Req *types.UpdateHostSubSpecification `xml:"urn:vim25 UpdateHostSubSpecification,omitempty"` - Res *types.UpdateHostSubSpecificationResponse `xml:"urn:vim25 UpdateHostSubSpecificationResponse,omitempty"` + Res *types.UpdateHostSubSpecificationResponse `xml:"UpdateHostSubSpecificationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15603,9 +16503,29 @@ func UpdateHostSubSpecification(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type UpdateHppMultipathLunPolicyBody struct { + Req *types.UpdateHppMultipathLunPolicy `xml:"urn:vim25 UpdateHppMultipathLunPolicy,omitempty"` + Res *types.UpdateHppMultipathLunPolicyResponse `xml:"UpdateHppMultipathLunPolicyResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UpdateHppMultipathLunPolicyBody) Fault() *soap.Fault { return b.Fault_ } + +func UpdateHppMultipathLunPolicy(ctx context.Context, r soap.RoundTripper, req *types.UpdateHppMultipathLunPolicy) (*types.UpdateHppMultipathLunPolicyResponse, error) { + var reqBody, resBody UpdateHppMultipathLunPolicyBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UpdateInternetScsiAdvancedOptionsBody struct { Req *types.UpdateInternetScsiAdvancedOptions `xml:"urn:vim25 UpdateInternetScsiAdvancedOptions,omitempty"` - Res *types.UpdateInternetScsiAdvancedOptionsResponse `xml:"urn:vim25 UpdateInternetScsiAdvancedOptionsResponse,omitempty"` + Res *types.UpdateInternetScsiAdvancedOptionsResponse `xml:"UpdateInternetScsiAdvancedOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15625,7 +16545,7 @@ func UpdateInternetScsiAdvancedOptions(ctx context.Context, r soap.RoundTripper, type UpdateInternetScsiAliasBody struct { Req *types.UpdateInternetScsiAlias `xml:"urn:vim25 UpdateInternetScsiAlias,omitempty"` - Res *types.UpdateInternetScsiAliasResponse `xml:"urn:vim25 UpdateInternetScsiAliasResponse,omitempty"` + Res *types.UpdateInternetScsiAliasResponse `xml:"UpdateInternetScsiAliasResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15645,7 +16565,7 @@ func UpdateInternetScsiAlias(ctx context.Context, r soap.RoundTripper, req *type type UpdateInternetScsiAuthenticationPropertiesBody struct { Req *types.UpdateInternetScsiAuthenticationProperties `xml:"urn:vim25 UpdateInternetScsiAuthenticationProperties,omitempty"` - Res *types.UpdateInternetScsiAuthenticationPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiAuthenticationPropertiesResponse,omitempty"` + Res *types.UpdateInternetScsiAuthenticationPropertiesResponse `xml:"UpdateInternetScsiAuthenticationPropertiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15665,7 +16585,7 @@ func UpdateInternetScsiAuthenticationProperties(ctx context.Context, r soap.Roun type UpdateInternetScsiDigestPropertiesBody struct { Req *types.UpdateInternetScsiDigestProperties `xml:"urn:vim25 UpdateInternetScsiDigestProperties,omitempty"` - Res *types.UpdateInternetScsiDigestPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiDigestPropertiesResponse,omitempty"` + Res *types.UpdateInternetScsiDigestPropertiesResponse `xml:"UpdateInternetScsiDigestPropertiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15685,7 +16605,7 @@ func UpdateInternetScsiDigestProperties(ctx context.Context, r soap.RoundTripper type UpdateInternetScsiDiscoveryPropertiesBody struct { Req *types.UpdateInternetScsiDiscoveryProperties `xml:"urn:vim25 UpdateInternetScsiDiscoveryProperties,omitempty"` - Res *types.UpdateInternetScsiDiscoveryPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiDiscoveryPropertiesResponse,omitempty"` + Res *types.UpdateInternetScsiDiscoveryPropertiesResponse `xml:"UpdateInternetScsiDiscoveryPropertiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15705,7 +16625,7 @@ func UpdateInternetScsiDiscoveryProperties(ctx context.Context, r soap.RoundTrip type UpdateInternetScsiIPPropertiesBody struct { Req *types.UpdateInternetScsiIPProperties `xml:"urn:vim25 UpdateInternetScsiIPProperties,omitempty"` - Res *types.UpdateInternetScsiIPPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiIPPropertiesResponse,omitempty"` + Res *types.UpdateInternetScsiIPPropertiesResponse `xml:"UpdateInternetScsiIPPropertiesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15725,7 +16645,7 @@ func UpdateInternetScsiIPProperties(ctx context.Context, r soap.RoundTripper, re type UpdateInternetScsiNameBody struct { Req *types.UpdateInternetScsiName `xml:"urn:vim25 UpdateInternetScsiName,omitempty"` - Res *types.UpdateInternetScsiNameResponse `xml:"urn:vim25 UpdateInternetScsiNameResponse,omitempty"` + Res *types.UpdateInternetScsiNameResponse `xml:"UpdateInternetScsiNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15745,7 +16665,7 @@ func UpdateInternetScsiName(ctx context.Context, r soap.RoundTripper, req *types type UpdateIpConfigBody struct { Req *types.UpdateIpConfig `xml:"urn:vim25 UpdateIpConfig,omitempty"` - Res *types.UpdateIpConfigResponse `xml:"urn:vim25 UpdateIpConfigResponse,omitempty"` + Res *types.UpdateIpConfigResponse `xml:"UpdateIpConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15765,7 +16685,7 @@ func UpdateIpConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateI type UpdateIpPoolBody struct { Req *types.UpdateIpPool `xml:"urn:vim25 UpdateIpPool,omitempty"` - Res *types.UpdateIpPoolResponse `xml:"urn:vim25 UpdateIpPoolResponse,omitempty"` + Res *types.UpdateIpPoolResponse `xml:"UpdateIpPoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15785,7 +16705,7 @@ func UpdateIpPool(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpP type UpdateIpRouteConfigBody struct { Req *types.UpdateIpRouteConfig `xml:"urn:vim25 UpdateIpRouteConfig,omitempty"` - Res *types.UpdateIpRouteConfigResponse `xml:"urn:vim25 UpdateIpRouteConfigResponse,omitempty"` + Res *types.UpdateIpRouteConfigResponse `xml:"UpdateIpRouteConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15805,7 +16725,7 @@ func UpdateIpRouteConfig(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateIpRouteTableConfigBody struct { Req *types.UpdateIpRouteTableConfig `xml:"urn:vim25 UpdateIpRouteTableConfig,omitempty"` - Res *types.UpdateIpRouteTableConfigResponse `xml:"urn:vim25 UpdateIpRouteTableConfigResponse,omitempty"` + Res *types.UpdateIpRouteTableConfigResponse `xml:"UpdateIpRouteTableConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15825,7 +16745,7 @@ func UpdateIpRouteTableConfig(ctx context.Context, r soap.RoundTripper, req *typ type UpdateIpmiBody struct { Req *types.UpdateIpmi `xml:"urn:vim25 UpdateIpmi,omitempty"` - Res *types.UpdateIpmiResponse `xml:"urn:vim25 UpdateIpmiResponse,omitempty"` + Res *types.UpdateIpmiResponse `xml:"UpdateIpmiResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15845,7 +16765,7 @@ func UpdateIpmi(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpmi) type UpdateKmipServerBody struct { Req *types.UpdateKmipServer `xml:"urn:vim25 UpdateKmipServer,omitempty"` - Res *types.UpdateKmipServerResponse `xml:"urn:vim25 UpdateKmipServerResponse,omitempty"` + Res *types.UpdateKmipServerResponse `xml:"UpdateKmipServerResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15865,7 +16785,7 @@ func UpdateKmipServer(ctx context.Context, r soap.RoundTripper, req *types.Updat type UpdateKmsSignedCsrClientCertBody struct { Req *types.UpdateKmsSignedCsrClientCert `xml:"urn:vim25 UpdateKmsSignedCsrClientCert,omitempty"` - Res *types.UpdateKmsSignedCsrClientCertResponse `xml:"urn:vim25 UpdateKmsSignedCsrClientCertResponse,omitempty"` + Res *types.UpdateKmsSignedCsrClientCertResponse `xml:"UpdateKmsSignedCsrClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15885,7 +16805,7 @@ func UpdateKmsSignedCsrClientCert(ctx context.Context, r soap.RoundTripper, req type UpdateLicenseBody struct { Req *types.UpdateLicense `xml:"urn:vim25 UpdateLicense,omitempty"` - Res *types.UpdateLicenseResponse `xml:"urn:vim25 UpdateLicenseResponse,omitempty"` + Res *types.UpdateLicenseResponse `xml:"UpdateLicenseResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15905,7 +16825,7 @@ func UpdateLicense(ctx context.Context, r soap.RoundTripper, req *types.UpdateLi type UpdateLicenseLabelBody struct { Req *types.UpdateLicenseLabel `xml:"urn:vim25 UpdateLicenseLabel,omitempty"` - Res *types.UpdateLicenseLabelResponse `xml:"urn:vim25 UpdateLicenseLabelResponse,omitempty"` + Res *types.UpdateLicenseLabelResponse `xml:"UpdateLicenseLabelResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15925,7 +16845,7 @@ func UpdateLicenseLabel(ctx context.Context, r soap.RoundTripper, req *types.Upd type UpdateLinkedChildrenBody struct { Req *types.UpdateLinkedChildren `xml:"urn:vim25 UpdateLinkedChildren,omitempty"` - Res *types.UpdateLinkedChildrenResponse `xml:"urn:vim25 UpdateLinkedChildrenResponse,omitempty"` + Res *types.UpdateLinkedChildrenResponse `xml:"UpdateLinkedChildrenResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15945,7 +16865,7 @@ func UpdateLinkedChildren(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateLocalSwapDatastoreBody struct { Req *types.UpdateLocalSwapDatastore `xml:"urn:vim25 UpdateLocalSwapDatastore,omitempty"` - Res *types.UpdateLocalSwapDatastoreResponse `xml:"urn:vim25 UpdateLocalSwapDatastoreResponse,omitempty"` + Res *types.UpdateLocalSwapDatastoreResponse `xml:"UpdateLocalSwapDatastoreResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15965,7 +16885,7 @@ func UpdateLocalSwapDatastore(ctx context.Context, r soap.RoundTripper, req *typ type UpdateLockdownExceptionsBody struct { Req *types.UpdateLockdownExceptions `xml:"urn:vim25 UpdateLockdownExceptions,omitempty"` - Res *types.UpdateLockdownExceptionsResponse `xml:"urn:vim25 UpdateLockdownExceptionsResponse,omitempty"` + Res *types.UpdateLockdownExceptionsResponse `xml:"UpdateLockdownExceptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -15985,7 +16905,7 @@ func UpdateLockdownExceptions(ctx context.Context, r soap.RoundTripper, req *typ type UpdateModuleOptionStringBody struct { Req *types.UpdateModuleOptionString `xml:"urn:vim25 UpdateModuleOptionString,omitempty"` - Res *types.UpdateModuleOptionStringResponse `xml:"urn:vim25 UpdateModuleOptionStringResponse,omitempty"` + Res *types.UpdateModuleOptionStringResponse `xml:"UpdateModuleOptionStringResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16005,7 +16925,7 @@ func UpdateModuleOptionString(ctx context.Context, r soap.RoundTripper, req *typ type UpdateNetworkConfigBody struct { Req *types.UpdateNetworkConfig `xml:"urn:vim25 UpdateNetworkConfig,omitempty"` - Res *types.UpdateNetworkConfigResponse `xml:"urn:vim25 UpdateNetworkConfigResponse,omitempty"` + Res *types.UpdateNetworkConfigResponse `xml:"UpdateNetworkConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16025,7 +16945,7 @@ func UpdateNetworkConfig(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateNetworkResourcePoolBody struct { Req *types.UpdateNetworkResourcePool `xml:"urn:vim25 UpdateNetworkResourcePool,omitempty"` - Res *types.UpdateNetworkResourcePoolResponse `xml:"urn:vim25 UpdateNetworkResourcePoolResponse,omitempty"` + Res *types.UpdateNetworkResourcePoolResponse `xml:"UpdateNetworkResourcePoolResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16045,7 +16965,7 @@ func UpdateNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *ty type UpdateOptionsBody struct { Req *types.UpdateOptions `xml:"urn:vim25 UpdateOptions,omitempty"` - Res *types.UpdateOptionsResponse `xml:"urn:vim25 UpdateOptionsResponse,omitempty"` + Res *types.UpdateOptionsResponse `xml:"UpdateOptionsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16065,7 +16985,7 @@ func UpdateOptions(ctx context.Context, r soap.RoundTripper, req *types.UpdateOp type UpdatePassthruConfigBody struct { Req *types.UpdatePassthruConfig `xml:"urn:vim25 UpdatePassthruConfig,omitempty"` - Res *types.UpdatePassthruConfigResponse `xml:"urn:vim25 UpdatePassthruConfigResponse,omitempty"` + Res *types.UpdatePassthruConfigResponse `xml:"UpdatePassthruConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16085,7 +17005,7 @@ func UpdatePassthruConfig(ctx context.Context, r soap.RoundTripper, req *types.U type UpdatePerfIntervalBody struct { Req *types.UpdatePerfInterval `xml:"urn:vim25 UpdatePerfInterval,omitempty"` - Res *types.UpdatePerfIntervalResponse `xml:"urn:vim25 UpdatePerfIntervalResponse,omitempty"` + Res *types.UpdatePerfIntervalResponse `xml:"UpdatePerfIntervalResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16105,7 +17025,7 @@ func UpdatePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.Upd type UpdatePhysicalNicLinkSpeedBody struct { Req *types.UpdatePhysicalNicLinkSpeed `xml:"urn:vim25 UpdatePhysicalNicLinkSpeed,omitempty"` - Res *types.UpdatePhysicalNicLinkSpeedResponse `xml:"urn:vim25 UpdatePhysicalNicLinkSpeedResponse,omitempty"` + Res *types.UpdatePhysicalNicLinkSpeedResponse `xml:"UpdatePhysicalNicLinkSpeedResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16125,7 +17045,7 @@ func UpdatePhysicalNicLinkSpeed(ctx context.Context, r soap.RoundTripper, req *t type UpdatePortGroupBody struct { Req *types.UpdatePortGroup `xml:"urn:vim25 UpdatePortGroup,omitempty"` - Res *types.UpdatePortGroupResponse `xml:"urn:vim25 UpdatePortGroupResponse,omitempty"` + Res *types.UpdatePortGroupResponse `xml:"UpdatePortGroupResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16143,9 +17063,29 @@ func UpdatePortGroup(ctx context.Context, r soap.RoundTripper, req *types.Update return resBody.Res, nil } +type UpdateProductLockerLocation_TaskBody struct { + Req *types.UpdateProductLockerLocation_Task `xml:"urn:vim25 UpdateProductLockerLocation_Task,omitempty"` + Res *types.UpdateProductLockerLocation_TaskResponse `xml:"UpdateProductLockerLocation_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UpdateProductLockerLocation_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func UpdateProductLockerLocation_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateProductLockerLocation_Task) (*types.UpdateProductLockerLocation_TaskResponse, error) { + var reqBody, resBody UpdateProductLockerLocation_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UpdateProgressBody struct { Req *types.UpdateProgress `xml:"urn:vim25 UpdateProgress,omitempty"` - Res *types.UpdateProgressResponse `xml:"urn:vim25 UpdateProgressResponse,omitempty"` + Res *types.UpdateProgressResponse `xml:"UpdateProgressResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16165,7 +17105,7 @@ func UpdateProgress(ctx context.Context, r soap.RoundTripper, req *types.UpdateP type UpdateReferenceHostBody struct { Req *types.UpdateReferenceHost `xml:"urn:vim25 UpdateReferenceHost,omitempty"` - Res *types.UpdateReferenceHostResponse `xml:"urn:vim25 UpdateReferenceHostResponse,omitempty"` + Res *types.UpdateReferenceHostResponse `xml:"UpdateReferenceHostResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16185,7 +17125,7 @@ func UpdateReferenceHost(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateRulesetBody struct { Req *types.UpdateRuleset `xml:"urn:vim25 UpdateRuleset,omitempty"` - Res *types.UpdateRulesetResponse `xml:"urn:vim25 UpdateRulesetResponse,omitempty"` + Res *types.UpdateRulesetResponse `xml:"UpdateRulesetResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16205,7 +17145,7 @@ func UpdateRuleset(ctx context.Context, r soap.RoundTripper, req *types.UpdateRu type UpdateScsiLunDisplayNameBody struct { Req *types.UpdateScsiLunDisplayName `xml:"urn:vim25 UpdateScsiLunDisplayName,omitempty"` - Res *types.UpdateScsiLunDisplayNameResponse `xml:"urn:vim25 UpdateScsiLunDisplayNameResponse,omitempty"` + Res *types.UpdateScsiLunDisplayNameResponse `xml:"UpdateScsiLunDisplayNameResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16225,7 +17165,7 @@ func UpdateScsiLunDisplayName(ctx context.Context, r soap.RoundTripper, req *typ type UpdateSelfSignedClientCertBody struct { Req *types.UpdateSelfSignedClientCert `xml:"urn:vim25 UpdateSelfSignedClientCert,omitempty"` - Res *types.UpdateSelfSignedClientCertResponse `xml:"urn:vim25 UpdateSelfSignedClientCertResponse,omitempty"` + Res *types.UpdateSelfSignedClientCertResponse `xml:"UpdateSelfSignedClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16245,7 +17185,7 @@ func UpdateSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req *t type UpdateServiceConsoleVirtualNicBody struct { Req *types.UpdateServiceConsoleVirtualNic `xml:"urn:vim25 UpdateServiceConsoleVirtualNic,omitempty"` - Res *types.UpdateServiceConsoleVirtualNicResponse `xml:"urn:vim25 UpdateServiceConsoleVirtualNicResponse,omitempty"` + Res *types.UpdateServiceConsoleVirtualNicResponse `xml:"UpdateServiceConsoleVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16265,7 +17205,7 @@ func UpdateServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, re type UpdateServiceMessageBody struct { Req *types.UpdateServiceMessage `xml:"urn:vim25 UpdateServiceMessage,omitempty"` - Res *types.UpdateServiceMessageResponse `xml:"urn:vim25 UpdateServiceMessageResponse,omitempty"` + Res *types.UpdateServiceMessageResponse `xml:"UpdateServiceMessageResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16285,7 +17225,7 @@ func UpdateServiceMessage(ctx context.Context, r soap.RoundTripper, req *types.U type UpdateServicePolicyBody struct { Req *types.UpdateServicePolicy `xml:"urn:vim25 UpdateServicePolicy,omitempty"` - Res *types.UpdateServicePolicyResponse `xml:"urn:vim25 UpdateServicePolicyResponse,omitempty"` + Res *types.UpdateServicePolicyResponse `xml:"UpdateServicePolicyResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16305,7 +17245,7 @@ func UpdateServicePolicy(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateSoftwareInternetScsiEnabledBody struct { Req *types.UpdateSoftwareInternetScsiEnabled `xml:"urn:vim25 UpdateSoftwareInternetScsiEnabled,omitempty"` - Res *types.UpdateSoftwareInternetScsiEnabledResponse `xml:"urn:vim25 UpdateSoftwareInternetScsiEnabledResponse,omitempty"` + Res *types.UpdateSoftwareInternetScsiEnabledResponse `xml:"UpdateSoftwareInternetScsiEnabledResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16325,7 +17265,7 @@ func UpdateSoftwareInternetScsiEnabled(ctx context.Context, r soap.RoundTripper, type UpdateSystemResourcesBody struct { Req *types.UpdateSystemResources `xml:"urn:vim25 UpdateSystemResources,omitempty"` - Res *types.UpdateSystemResourcesResponse `xml:"urn:vim25 UpdateSystemResourcesResponse,omitempty"` + Res *types.UpdateSystemResourcesResponse `xml:"UpdateSystemResourcesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16345,7 +17285,7 @@ func UpdateSystemResources(ctx context.Context, r soap.RoundTripper, req *types. type UpdateSystemSwapConfigurationBody struct { Req *types.UpdateSystemSwapConfiguration `xml:"urn:vim25 UpdateSystemSwapConfiguration,omitempty"` - Res *types.UpdateSystemSwapConfigurationResponse `xml:"urn:vim25 UpdateSystemSwapConfigurationResponse,omitempty"` + Res *types.UpdateSystemSwapConfigurationResponse `xml:"UpdateSystemSwapConfigurationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16365,7 +17305,7 @@ func UpdateSystemSwapConfiguration(ctx context.Context, r soap.RoundTripper, req type UpdateSystemUsersBody struct { Req *types.UpdateSystemUsers `xml:"urn:vim25 UpdateSystemUsers,omitempty"` - Res *types.UpdateSystemUsersResponse `xml:"urn:vim25 UpdateSystemUsersResponse,omitempty"` + Res *types.UpdateSystemUsersResponse `xml:"UpdateSystemUsersResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16385,7 +17325,7 @@ func UpdateSystemUsers(ctx context.Context, r soap.RoundTripper, req *types.Upda type UpdateUserBody struct { Req *types.UpdateUser `xml:"urn:vim25 UpdateUser,omitempty"` - Res *types.UpdateUserResponse `xml:"urn:vim25 UpdateUserResponse,omitempty"` + Res *types.UpdateUserResponse `xml:"UpdateUserResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16405,7 +17345,7 @@ func UpdateUser(ctx context.Context, r soap.RoundTripper, req *types.UpdateUser) type UpdateVAppConfigBody struct { Req *types.UpdateVAppConfig `xml:"urn:vim25 UpdateVAppConfig,omitempty"` - Res *types.UpdateVAppConfigResponse `xml:"urn:vim25 UpdateVAppConfigResponse,omitempty"` + Res *types.UpdateVAppConfigResponse `xml:"UpdateVAppConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16425,7 +17365,7 @@ func UpdateVAppConfig(ctx context.Context, r soap.RoundTripper, req *types.Updat type UpdateVStorageInfrastructureObjectPolicy_TaskBody struct { Req *types.UpdateVStorageInfrastructureObjectPolicy_Task `xml:"urn:vim25 UpdateVStorageInfrastructureObjectPolicy_Task,omitempty"` - Res *types.UpdateVStorageInfrastructureObjectPolicy_TaskResponse `xml:"urn:vim25 UpdateVStorageInfrastructureObjectPolicy_TaskResponse,omitempty"` + Res *types.UpdateVStorageInfrastructureObjectPolicy_TaskResponse `xml:"UpdateVStorageInfrastructureObjectPolicy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16443,9 +17383,29 @@ func UpdateVStorageInfrastructureObjectPolicy_Task(ctx context.Context, r soap.R return resBody.Res, nil } +type UpdateVStorageObjectCrypto_TaskBody struct { + Req *types.UpdateVStorageObjectCrypto_Task `xml:"urn:vim25 UpdateVStorageObjectCrypto_Task,omitempty"` + Res *types.UpdateVStorageObjectCrypto_TaskResponse `xml:"UpdateVStorageObjectCrypto_TaskResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *UpdateVStorageObjectCrypto_TaskBody) Fault() *soap.Fault { return b.Fault_ } + +func UpdateVStorageObjectCrypto_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateVStorageObjectCrypto_Task) (*types.UpdateVStorageObjectCrypto_TaskResponse, error) { + var reqBody, resBody UpdateVStorageObjectCrypto_TaskBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type UpdateVStorageObjectPolicy_TaskBody struct { Req *types.UpdateVStorageObjectPolicy_Task `xml:"urn:vim25 UpdateVStorageObjectPolicy_Task,omitempty"` - Res *types.UpdateVStorageObjectPolicy_TaskResponse `xml:"urn:vim25 UpdateVStorageObjectPolicy_TaskResponse,omitempty"` + Res *types.UpdateVStorageObjectPolicy_TaskResponse `xml:"UpdateVStorageObjectPolicy_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16465,7 +17425,7 @@ func UpdateVStorageObjectPolicy_Task(ctx context.Context, r soap.RoundTripper, r type UpdateVVolVirtualMachineFiles_TaskBody struct { Req *types.UpdateVVolVirtualMachineFiles_Task `xml:"urn:vim25 UpdateVVolVirtualMachineFiles_Task,omitempty"` - Res *types.UpdateVVolVirtualMachineFiles_TaskResponse `xml:"urn:vim25 UpdateVVolVirtualMachineFiles_TaskResponse,omitempty"` + Res *types.UpdateVVolVirtualMachineFiles_TaskResponse `xml:"UpdateVVolVirtualMachineFiles_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16485,7 +17445,7 @@ func UpdateVVolVirtualMachineFiles_Task(ctx context.Context, r soap.RoundTripper type UpdateVirtualMachineFiles_TaskBody struct { Req *types.UpdateVirtualMachineFiles_Task `xml:"urn:vim25 UpdateVirtualMachineFiles_Task,omitempty"` - Res *types.UpdateVirtualMachineFiles_TaskResponse `xml:"urn:vim25 UpdateVirtualMachineFiles_TaskResponse,omitempty"` + Res *types.UpdateVirtualMachineFiles_TaskResponse `xml:"UpdateVirtualMachineFiles_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16505,7 +17465,7 @@ func UpdateVirtualMachineFiles_Task(ctx context.Context, r soap.RoundTripper, re type UpdateVirtualNicBody struct { Req *types.UpdateVirtualNic `xml:"urn:vim25 UpdateVirtualNic,omitempty"` - Res *types.UpdateVirtualNicResponse `xml:"urn:vim25 UpdateVirtualNicResponse,omitempty"` + Res *types.UpdateVirtualNicResponse `xml:"UpdateVirtualNicResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16525,7 +17485,7 @@ func UpdateVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.Updat type UpdateVirtualSwitchBody struct { Req *types.UpdateVirtualSwitch `xml:"urn:vim25 UpdateVirtualSwitch,omitempty"` - Res *types.UpdateVirtualSwitchResponse `xml:"urn:vim25 UpdateVirtualSwitchResponse,omitempty"` + Res *types.UpdateVirtualSwitchResponse `xml:"UpdateVirtualSwitchResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16545,7 +17505,7 @@ func UpdateVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.Up type UpdateVmfsUnmapBandwidthBody struct { Req *types.UpdateVmfsUnmapBandwidth `xml:"urn:vim25 UpdateVmfsUnmapBandwidth,omitempty"` - Res *types.UpdateVmfsUnmapBandwidthResponse `xml:"urn:vim25 UpdateVmfsUnmapBandwidthResponse,omitempty"` + Res *types.UpdateVmfsUnmapBandwidthResponse `xml:"UpdateVmfsUnmapBandwidthResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16565,7 +17525,7 @@ func UpdateVmfsUnmapBandwidth(ctx context.Context, r soap.RoundTripper, req *typ type UpdateVmfsUnmapPriorityBody struct { Req *types.UpdateVmfsUnmapPriority `xml:"urn:vim25 UpdateVmfsUnmapPriority,omitempty"` - Res *types.UpdateVmfsUnmapPriorityResponse `xml:"urn:vim25 UpdateVmfsUnmapPriorityResponse,omitempty"` + Res *types.UpdateVmfsUnmapPriorityResponse `xml:"UpdateVmfsUnmapPriorityResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16585,7 +17545,7 @@ func UpdateVmfsUnmapPriority(ctx context.Context, r soap.RoundTripper, req *type type UpdateVsan_TaskBody struct { Req *types.UpdateVsan_Task `xml:"urn:vim25 UpdateVsan_Task,omitempty"` - Res *types.UpdateVsan_TaskResponse `xml:"urn:vim25 UpdateVsan_TaskResponse,omitempty"` + Res *types.UpdateVsan_TaskResponse `xml:"UpdateVsan_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16605,7 +17565,7 @@ func UpdateVsan_Task(ctx context.Context, r soap.RoundTripper, req *types.Update type UpgradeIoFilter_TaskBody struct { Req *types.UpgradeIoFilter_Task `xml:"urn:vim25 UpgradeIoFilter_Task,omitempty"` - Res *types.UpgradeIoFilter_TaskResponse `xml:"urn:vim25 UpgradeIoFilter_TaskResponse,omitempty"` + Res *types.UpgradeIoFilter_TaskResponse `xml:"UpgradeIoFilter_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16625,7 +17585,7 @@ func UpgradeIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types.U type UpgradeTools_TaskBody struct { Req *types.UpgradeTools_Task `xml:"urn:vim25 UpgradeTools_Task,omitempty"` - Res *types.UpgradeTools_TaskResponse `xml:"urn:vim25 UpgradeTools_TaskResponse,omitempty"` + Res *types.UpgradeTools_TaskResponse `xml:"UpgradeTools_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16645,7 +17605,7 @@ func UpgradeTools_Task(ctx context.Context, r soap.RoundTripper, req *types.Upgr type UpgradeVM_TaskBody struct { Req *types.UpgradeVM_Task `xml:"urn:vim25 UpgradeVM_Task,omitempty"` - Res *types.UpgradeVM_TaskResponse `xml:"urn:vim25 UpgradeVM_TaskResponse,omitempty"` + Res *types.UpgradeVM_TaskResponse `xml:"UpgradeVM_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16665,7 +17625,7 @@ func UpgradeVM_Task(ctx context.Context, r soap.RoundTripper, req *types.Upgrade type UpgradeVmLayoutBody struct { Req *types.UpgradeVmLayout `xml:"urn:vim25 UpgradeVmLayout,omitempty"` - Res *types.UpgradeVmLayoutResponse `xml:"urn:vim25 UpgradeVmLayoutResponse,omitempty"` + Res *types.UpgradeVmLayoutResponse `xml:"UpgradeVmLayoutResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16685,7 +17645,7 @@ func UpgradeVmLayout(ctx context.Context, r soap.RoundTripper, req *types.Upgrad type UpgradeVmfsBody struct { Req *types.UpgradeVmfs `xml:"urn:vim25 UpgradeVmfs,omitempty"` - Res *types.UpgradeVmfsResponse `xml:"urn:vim25 UpgradeVmfsResponse,omitempty"` + Res *types.UpgradeVmfsResponse `xml:"UpgradeVmfsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16705,7 +17665,7 @@ func UpgradeVmfs(ctx context.Context, r soap.RoundTripper, req *types.UpgradeVmf type UpgradeVsanObjectsBody struct { Req *types.UpgradeVsanObjects `xml:"urn:vim25 UpgradeVsanObjects,omitempty"` - Res *types.UpgradeVsanObjectsResponse `xml:"urn:vim25 UpgradeVsanObjectsResponse,omitempty"` + Res *types.UpgradeVsanObjectsResponse `xml:"UpgradeVsanObjectsResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16725,7 +17685,7 @@ func UpgradeVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.Upg type UploadClientCertBody struct { Req *types.UploadClientCert `xml:"urn:vim25 UploadClientCert,omitempty"` - Res *types.UploadClientCertResponse `xml:"urn:vim25 UploadClientCertResponse,omitempty"` + Res *types.UploadClientCertResponse `xml:"UploadClientCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16745,7 +17705,7 @@ func UploadClientCert(ctx context.Context, r soap.RoundTripper, req *types.Uploa type UploadKmipServerCertBody struct { Req *types.UploadKmipServerCert `xml:"urn:vim25 UploadKmipServerCert,omitempty"` - Res *types.UploadKmipServerCertResponse `xml:"urn:vim25 UploadKmipServerCertResponse,omitempty"` + Res *types.UploadKmipServerCertResponse `xml:"UploadKmipServerCertResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16765,7 +17725,7 @@ func UploadKmipServerCert(ctx context.Context, r soap.RoundTripper, req *types.U type VStorageObjectCreateSnapshot_TaskBody struct { Req *types.VStorageObjectCreateSnapshot_Task `xml:"urn:vim25 VStorageObjectCreateSnapshot_Task,omitempty"` - Res *types.VStorageObjectCreateSnapshot_TaskResponse `xml:"urn:vim25 VStorageObjectCreateSnapshot_TaskResponse,omitempty"` + Res *types.VStorageObjectCreateSnapshot_TaskResponse `xml:"VStorageObjectCreateSnapshot_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16785,7 +17745,7 @@ func VStorageObjectCreateSnapshot_Task(ctx context.Context, r soap.RoundTripper, type ValidateCredentialsInGuestBody struct { Req *types.ValidateCredentialsInGuest `xml:"urn:vim25 ValidateCredentialsInGuest,omitempty"` - Res *types.ValidateCredentialsInGuestResponse `xml:"urn:vim25 ValidateCredentialsInGuestResponse,omitempty"` + Res *types.ValidateCredentialsInGuestResponse `xml:"ValidateCredentialsInGuestResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16803,9 +17763,29 @@ func ValidateCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *t return resBody.Res, nil } +type ValidateHCIConfigurationBody struct { + Req *types.ValidateHCIConfiguration `xml:"urn:vim25 ValidateHCIConfiguration,omitempty"` + Res *types.ValidateHCIConfigurationResponse `xml:"ValidateHCIConfigurationResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *ValidateHCIConfigurationBody) Fault() *soap.Fault { return b.Fault_ } + +func ValidateHCIConfiguration(ctx context.Context, r soap.RoundTripper, req *types.ValidateHCIConfiguration) (*types.ValidateHCIConfigurationResponse, error) { + var reqBody, resBody ValidateHCIConfigurationBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type ValidateHostBody struct { Req *types.ValidateHost `xml:"urn:vim25 ValidateHost,omitempty"` - Res *types.ValidateHostResponse `xml:"urn:vim25 ValidateHostResponse,omitempty"` + Res *types.ValidateHostResponse `xml:"ValidateHostResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16825,7 +17805,7 @@ func ValidateHost(ctx context.Context, r soap.RoundTripper, req *types.ValidateH type ValidateHostProfileComposition_TaskBody struct { Req *types.ValidateHostProfileComposition_Task `xml:"urn:vim25 ValidateHostProfileComposition_Task,omitempty"` - Res *types.ValidateHostProfileComposition_TaskResponse `xml:"urn:vim25 ValidateHostProfileComposition_TaskResponse,omitempty"` + Res *types.ValidateHostProfileComposition_TaskResponse `xml:"ValidateHostProfileComposition_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16845,7 +17825,7 @@ func ValidateHostProfileComposition_Task(ctx context.Context, r soap.RoundTrippe type ValidateMigrationBody struct { Req *types.ValidateMigration `xml:"urn:vim25 ValidateMigration,omitempty"` - Res *types.ValidateMigrationResponse `xml:"urn:vim25 ValidateMigrationResponse,omitempty"` + Res *types.ValidateMigrationResponse `xml:"ValidateMigrationResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16865,7 +17845,7 @@ func ValidateMigration(ctx context.Context, r soap.RoundTripper, req *types.Vali type ValidateStoragePodConfigBody struct { Req *types.ValidateStoragePodConfig `xml:"urn:vim25 ValidateStoragePodConfig,omitempty"` - Res *types.ValidateStoragePodConfigResponse `xml:"urn:vim25 ValidateStoragePodConfigResponse,omitempty"` + Res *types.ValidateStoragePodConfigResponse `xml:"ValidateStoragePodConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16883,9 +17863,29 @@ func ValidateStoragePodConfig(ctx context.Context, r soap.RoundTripper, req *typ return resBody.Res, nil } +type VstorageObjectVCenterQueryChangedDiskAreasBody struct { + Req *types.VstorageObjectVCenterQueryChangedDiskAreas `xml:"urn:vim25 VstorageObjectVCenterQueryChangedDiskAreas,omitempty"` + Res *types.VstorageObjectVCenterQueryChangedDiskAreasResponse `xml:"VstorageObjectVCenterQueryChangedDiskAreasResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *VstorageObjectVCenterQueryChangedDiskAreasBody) Fault() *soap.Fault { return b.Fault_ } + +func VstorageObjectVCenterQueryChangedDiskAreas(ctx context.Context, r soap.RoundTripper, req *types.VstorageObjectVCenterQueryChangedDiskAreas) (*types.VstorageObjectVCenterQueryChangedDiskAreasResponse, error) { + var reqBody, resBody VstorageObjectVCenterQueryChangedDiskAreasBody + + reqBody.Req = req + + if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { + return nil, err + } + + return resBody.Res, nil +} + type WaitForUpdatesBody struct { Req *types.WaitForUpdates `xml:"urn:vim25 WaitForUpdates,omitempty"` - Res *types.WaitForUpdatesResponse `xml:"urn:vim25 WaitForUpdatesResponse,omitempty"` + Res *types.WaitForUpdatesResponse `xml:"WaitForUpdatesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16905,7 +17905,7 @@ func WaitForUpdates(ctx context.Context, r soap.RoundTripper, req *types.WaitFor type WaitForUpdatesExBody struct { Req *types.WaitForUpdatesEx `xml:"urn:vim25 WaitForUpdatesEx,omitempty"` - Res *types.WaitForUpdatesExResponse `xml:"urn:vim25 WaitForUpdatesExResponse,omitempty"` + Res *types.WaitForUpdatesExResponse `xml:"WaitForUpdatesExResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16925,7 +17925,7 @@ func WaitForUpdatesEx(ctx context.Context, r soap.RoundTripper, req *types.WaitF type XmlToCustomizationSpecItemBody struct { Req *types.XmlToCustomizationSpecItem `xml:"urn:vim25 XmlToCustomizationSpecItem,omitempty"` - Res *types.XmlToCustomizationSpecItemResponse `xml:"urn:vim25 XmlToCustomizationSpecItemResponse,omitempty"` + Res *types.XmlToCustomizationSpecItemResponse `xml:"XmlToCustomizationSpecItemResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16945,7 +17945,7 @@ func XmlToCustomizationSpecItem(ctx context.Context, r soap.RoundTripper, req *t type ZeroFillVirtualDisk_TaskBody struct { Req *types.ZeroFillVirtualDisk_Task `xml:"urn:vim25 ZeroFillVirtualDisk_Task,omitempty"` - Res *types.ZeroFillVirtualDisk_TaskResponse `xml:"urn:vim25 ZeroFillVirtualDisk_TaskResponse,omitempty"` + Res *types.ZeroFillVirtualDisk_TaskResponse `xml:"ZeroFillVirtualDisk_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16965,7 +17965,7 @@ func ZeroFillVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *typ type ConfigureVcha_TaskBody struct { Req *types.ConfigureVcha_Task `xml:"urn:vim25 configureVcha_Task,omitempty"` - Res *types.ConfigureVcha_TaskResponse `xml:"urn:vim25 configureVcha_TaskResponse,omitempty"` + Res *types.ConfigureVcha_TaskResponse `xml:"configureVcha_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -16985,7 +17985,7 @@ func ConfigureVcha_Task(ctx context.Context, r soap.RoundTripper, req *types.Con type CreatePassiveNode_TaskBody struct { Req *types.CreatePassiveNode_Task `xml:"urn:vim25 createPassiveNode_Task,omitempty"` - Res *types.CreatePassiveNode_TaskResponse `xml:"urn:vim25 createPassiveNode_TaskResponse,omitempty"` + Res *types.CreatePassiveNode_TaskResponse `xml:"createPassiveNode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17005,7 +18005,7 @@ func CreatePassiveNode_Task(ctx context.Context, r soap.RoundTripper, req *types type CreateWitnessNode_TaskBody struct { Req *types.CreateWitnessNode_Task `xml:"urn:vim25 createWitnessNode_Task,omitempty"` - Res *types.CreateWitnessNode_TaskResponse `xml:"urn:vim25 createWitnessNode_TaskResponse,omitempty"` + Res *types.CreateWitnessNode_TaskResponse `xml:"createWitnessNode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17025,7 +18025,7 @@ func CreateWitnessNode_Task(ctx context.Context, r soap.RoundTripper, req *types type DeployVcha_TaskBody struct { Req *types.DeployVcha_Task `xml:"urn:vim25 deployVcha_Task,omitempty"` - Res *types.DeployVcha_TaskResponse `xml:"urn:vim25 deployVcha_TaskResponse,omitempty"` + Res *types.DeployVcha_TaskResponse `xml:"deployVcha_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17045,7 +18045,7 @@ func DeployVcha_Task(ctx context.Context, r soap.RoundTripper, req *types.Deploy type DestroyVcha_TaskBody struct { Req *types.DestroyVcha_Task `xml:"urn:vim25 destroyVcha_Task,omitempty"` - Res *types.DestroyVcha_TaskResponse `xml:"urn:vim25 destroyVcha_TaskResponse,omitempty"` + Res *types.DestroyVcha_TaskResponse `xml:"destroyVcha_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17065,7 +18065,7 @@ func DestroyVcha_Task(ctx context.Context, r soap.RoundTripper, req *types.Destr type FetchSoftwarePackagesBody struct { Req *types.FetchSoftwarePackages `xml:"urn:vim25 fetchSoftwarePackages,omitempty"` - Res *types.FetchSoftwarePackagesResponse `xml:"urn:vim25 fetchSoftwarePackagesResponse,omitempty"` + Res *types.FetchSoftwarePackagesResponse `xml:"fetchSoftwarePackagesResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17085,7 +18085,7 @@ func FetchSoftwarePackages(ctx context.Context, r soap.RoundTripper, req *types. type GetClusterModeBody struct { Req *types.GetClusterMode `xml:"urn:vim25 getClusterMode,omitempty"` - Res *types.GetClusterModeResponse `xml:"urn:vim25 getClusterModeResponse,omitempty"` + Res *types.GetClusterModeResponse `xml:"getClusterModeResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17105,7 +18105,7 @@ func GetClusterMode(ctx context.Context, r soap.RoundTripper, req *types.GetClus type GetVchaConfigBody struct { Req *types.GetVchaConfig `xml:"urn:vim25 getVchaConfig,omitempty"` - Res *types.GetVchaConfigResponse `xml:"urn:vim25 getVchaConfigResponse,omitempty"` + Res *types.GetVchaConfigResponse `xml:"getVchaConfigResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17125,7 +18125,7 @@ func GetVchaConfig(ctx context.Context, r soap.RoundTripper, req *types.GetVchaC type InitiateFailover_TaskBody struct { Req *types.InitiateFailover_Task `xml:"urn:vim25 initiateFailover_Task,omitempty"` - Res *types.InitiateFailover_TaskResponse `xml:"urn:vim25 initiateFailover_TaskResponse,omitempty"` + Res *types.InitiateFailover_TaskResponse `xml:"initiateFailover_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17145,7 +18145,7 @@ func InitiateFailover_Task(ctx context.Context, r soap.RoundTripper, req *types. type InstallDateBody struct { Req *types.InstallDate `xml:"urn:vim25 installDate,omitempty"` - Res *types.InstallDateResponse `xml:"urn:vim25 installDateResponse,omitempty"` + Res *types.InstallDateResponse `xml:"installDateResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17165,7 +18165,7 @@ func InstallDate(ctx context.Context, r soap.RoundTripper, req *types.InstallDat type PrepareVcha_TaskBody struct { Req *types.PrepareVcha_Task `xml:"urn:vim25 prepareVcha_Task,omitempty"` - Res *types.PrepareVcha_TaskResponse `xml:"urn:vim25 prepareVcha_TaskResponse,omitempty"` + Res *types.PrepareVcha_TaskResponse `xml:"prepareVcha_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17185,7 +18185,7 @@ func PrepareVcha_Task(ctx context.Context, r soap.RoundTripper, req *types.Prepa type QueryDatacenterConfigOptionDescriptorBody struct { Req *types.QueryDatacenterConfigOptionDescriptor `xml:"urn:vim25 queryDatacenterConfigOptionDescriptor,omitempty"` - Res *types.QueryDatacenterConfigOptionDescriptorResponse `xml:"urn:vim25 queryDatacenterConfigOptionDescriptorResponse,omitempty"` + Res *types.QueryDatacenterConfigOptionDescriptorResponse `xml:"queryDatacenterConfigOptionDescriptorResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17205,7 +18205,7 @@ func QueryDatacenterConfigOptionDescriptor(ctx context.Context, r soap.RoundTrip type ReloadVirtualMachineFromPath_TaskBody struct { Req *types.ReloadVirtualMachineFromPath_Task `xml:"urn:vim25 reloadVirtualMachineFromPath_Task,omitempty"` - Res *types.ReloadVirtualMachineFromPath_TaskResponse `xml:"urn:vim25 reloadVirtualMachineFromPath_TaskResponse,omitempty"` + Res *types.ReloadVirtualMachineFromPath_TaskResponse `xml:"reloadVirtualMachineFromPath_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17225,7 +18225,7 @@ func ReloadVirtualMachineFromPath_Task(ctx context.Context, r soap.RoundTripper, type SetClusterMode_TaskBody struct { Req *types.SetClusterMode_Task `xml:"urn:vim25 setClusterMode_Task,omitempty"` - Res *types.SetClusterMode_TaskResponse `xml:"urn:vim25 setClusterMode_TaskResponse,omitempty"` + Res *types.SetClusterMode_TaskResponse `xml:"setClusterMode_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17245,7 +18245,7 @@ func SetClusterMode_Task(ctx context.Context, r soap.RoundTripper, req *types.Se type SetCustomValueBody struct { Req *types.SetCustomValue `xml:"urn:vim25 setCustomValue,omitempty"` - Res *types.SetCustomValueResponse `xml:"urn:vim25 setCustomValueResponse,omitempty"` + Res *types.SetCustomValueResponse `xml:"setCustomValueResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } @@ -17265,7 +18265,7 @@ func SetCustomValue(ctx context.Context, r soap.RoundTripper, req *types.SetCust type UnregisterVApp_TaskBody struct { Req *types.UnregisterVApp_Task `xml:"urn:vim25 unregisterVApp_Task,omitempty"` - Res *types.UnregisterVApp_TaskResponse `xml:"urn:vim25 unregisterVApp_TaskResponse,omitempty"` + Res *types.UnregisterVApp_TaskResponse `xml:"unregisterVApp_TaskResponse,omitempty"` Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` } diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/mo.go b/vendor/github.com/vmware/govmomi/vim25/mo/mo.go index 4f19988e..b557c265 100644 --- a/vendor/github.com/vmware/govmomi/vim25/mo/mo.go +++ b/vendor/github.com/vmware/govmomi/vim25/mo/mo.go @@ -79,12 +79,13 @@ func init() { type ClusterComputeResource struct { ComputeResource - Configuration types.ClusterConfigInfo `mo:"configuration"` - Recommendation []types.ClusterRecommendation `mo:"recommendation"` - DrsRecommendation []types.ClusterDrsRecommendation `mo:"drsRecommendation"` - MigrationHistory []types.ClusterDrsMigration `mo:"migrationHistory"` - ActionHistory []types.ClusterActionHistory `mo:"actionHistory"` - DrsFault []types.ClusterDrsFaults `mo:"drsFault"` + Configuration types.ClusterConfigInfo `mo:"configuration"` + Recommendation []types.ClusterRecommendation `mo:"recommendation"` + DrsRecommendation []types.ClusterDrsRecommendation `mo:"drsRecommendation"` + HciConfig *types.ClusterComputeResourceHCIConfigInfo `mo:"hciConfig"` + MigrationHistory []types.ClusterDrsMigration `mo:"migrationHistory"` + ActionHistory []types.ClusterActionHistory `mo:"actionHistory"` + DrsFault []types.ClusterDrsFaults `mo:"drsFault"` } func init() { @@ -128,6 +129,7 @@ type ComputeResource struct { Summary types.BaseComputeResourceSummary `mo:"summary"` EnvironmentBrowser *types.ManagedObjectReference `mo:"environmentBrowser"` ConfigurationEx types.BaseComputeResourceConfigInfo `mo:"configurationEx"` + LifecycleManaged *bool `mo:"lifecycleManaged"` } func (m *ComputeResource) Entity() *ManagedEntity { @@ -441,6 +443,7 @@ type Folder struct { ChildType []string `mo:"childType"` ChildEntity []types.ManagedObjectReference `mo:"childEntity"` + Namespace *string `mo:"namespace"` } func (m *Folder) Entity() *ManagedEntity { @@ -577,6 +580,21 @@ func init() { t["HostActiveDirectoryAuthentication"] = reflect.TypeOf((*HostActiveDirectoryAuthentication)(nil)).Elem() } +type HostAssignableHardwareManager struct { + Self types.ManagedObjectReference + + Binding []types.HostAssignableHardwareBinding `mo:"binding"` + Config types.HostAssignableHardwareConfig `mo:"config"` +} + +func (m HostAssignableHardwareManager) Reference() types.ManagedObjectReference { + return m.Self +} + +func init() { + t["HostAssignableHardwareManager"] = reflect.TypeOf((*HostAssignableHardwareManager)(nil)).Elem() +} + type HostAuthenticationManager struct { Self types.ManagedObjectReference @@ -1265,10 +1283,10 @@ func init() { type Network struct { ManagedEntity - Name string `mo:"name"` Summary types.BaseNetworkSummary `mo:"summary"` Host []types.ManagedObjectReference `mo:"host"` Vm []types.ManagedObjectReference `mo:"vm"` + Name string `mo:"name"` } func (m *Network) Entity() *ManagedEntity { @@ -1444,6 +1462,7 @@ type ResourcePool struct { ResourcePool []types.ManagedObjectReference `mo:"resourcePool"` Vm []types.ManagedObjectReference `mo:"vm"` Config types.ResourceConfigSpec `mo:"config"` + Namespace *string `mo:"namespace"` ChildConfiguration []types.ResourceConfigSpec `mo:"childConfiguration"` } @@ -1556,6 +1575,18 @@ func init() { t["SimpleCommand"] = reflect.TypeOf((*SimpleCommand)(nil)).Elem() } +type SiteInfoManager struct { + Self types.ManagedObjectReference +} + +func (m SiteInfoManager) Reference() types.ManagedObjectReference { + return m.Self +} + +func init() { + t["SiteInfoManager"] = reflect.TypeOf((*SiteInfoManager)(nil)).Elem() +} + type StoragePod struct { Folder @@ -1567,6 +1598,18 @@ func init() { t["StoragePod"] = reflect.TypeOf((*StoragePod)(nil)).Elem() } +type StorageQueryManager struct { + Self types.ManagedObjectReference +} + +func (m StorageQueryManager) Reference() types.ManagedObjectReference { + return m.Self +} + +func init() { + t["StorageQueryManager"] = reflect.TypeOf((*StorageQueryManager)(nil)).Elem() +} + type StorageResourceManager struct { Self types.ManagedObjectReference } @@ -1615,6 +1658,18 @@ func init() { t["TaskManager"] = reflect.TypeOf((*TaskManager)(nil)).Elem() } +type TenantTenantManager struct { + Self types.ManagedObjectReference +} + +func (m TenantTenantManager) Reference() types.ManagedObjectReference { + return m.Self +} + +func init() { + t["TenantTenantManager"] = reflect.TypeOf((*TenantTenantManager)(nil)).Elem() +} + type UserDirectory struct { Self types.ManagedObjectReference @@ -1744,6 +1799,18 @@ func init() { t["VirtualMachineCompatibilityChecker"] = reflect.TypeOf((*VirtualMachineCompatibilityChecker)(nil)).Elem() } +type VirtualMachineGuestCustomizationManager struct { + Self types.ManagedObjectReference +} + +func (m VirtualMachineGuestCustomizationManager) Reference() types.ManagedObjectReference { + return m.Self +} + +func init() { + t["VirtualMachineGuestCustomizationManager"] = reflect.TypeOf((*VirtualMachineGuestCustomizationManager)(nil)).Elem() +} + type VirtualMachineProvisioningChecker struct { Self types.ManagedObjectReference } diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go b/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go index c470c0ac..e877da06 100644 --- a/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go +++ b/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go @@ -46,7 +46,7 @@ func ignoreMissingProperty(ref types.ManagedObjectReference, p types.MissingProp // it returns the first fault it finds there as error. If the 'MissingSet' // field is empty, it returns a pointer to a reflect.Value. It handles contain // nested properties, such as 'guest.ipAddress' or 'config.hardware'. -func ObjectContentToType(o types.ObjectContent) (interface{}, error) { +func ObjectContentToType(o types.ObjectContent, ptr ...bool) (interface{}, error) { // Expect no properties in the missing set for _, p := range o.MissingSet { if ignoreMissingProperty(o.Obj, p) { @@ -62,6 +62,9 @@ func ObjectContentToType(o types.ObjectContent) (interface{}, error) { return nil, err } + if len(ptr) == 1 && ptr[0] { + return v.Interface(), nil + } return v.Elem().Interface(), nil } @@ -81,9 +84,9 @@ func ApplyPropertyChange(obj Reference, changes []types.PropertyChange) { } } -// LoadRetrievePropertiesResponse converts the response of a call to -// RetrieveProperties to one or more managed objects. -func LoadRetrievePropertiesResponse(res *types.RetrievePropertiesResponse, dst interface{}) error { +// LoadObjectContent converts the response of a call to +// RetrieveProperties{Ex} to one or more managed objects. +func LoadObjectContent(content []types.ObjectContent, dst interface{}) error { rt := reflect.TypeOf(dst) if rt == nil || rt.Kind() != reflect.Ptr { panic("need pointer") @@ -104,7 +107,7 @@ func LoadRetrievePropertiesResponse(res *types.RetrievePropertiesResponse, dst i } if isSlice { - for _, p := range res.Returnval { + for _, p := range content { v, err := ObjectContentToType(p) if err != nil { return err @@ -123,10 +126,10 @@ func LoadRetrievePropertiesResponse(res *types.RetrievePropertiesResponse, dst i rv.Set(reflect.Append(rv, reflect.ValueOf(v))) } } else { - switch len(res.Returnval) { + switch len(content) { case 0: case 1: - v, err := ObjectContentToType(res.Returnval[0]) + v, err := ObjectContentToType(content[0]) if err != nil { return err } @@ -160,7 +163,7 @@ func RetrievePropertiesForRequest(ctx context.Context, r soap.RoundTripper, req return err } - return LoadRetrievePropertiesResponse(res, dst) + return LoadObjectContent(res.Returnval, dst) } // RetrieveProperties retrieves the properties of the managed object specified @@ -188,3 +191,65 @@ func RetrieveProperties(ctx context.Context, r soap.RoundTripper, pc, obj types. return RetrievePropertiesForRequest(ctx, r, req, dst) } + +var morType = reflect.TypeOf((*types.ManagedObjectReference)(nil)).Elem() + +// References returns all non-nil moref field values in the given struct. +// Only Anonymous struct fields are followed by default. The optional follow +// param will follow any struct fields when true. +func References(s interface{}, follow ...bool) []types.ManagedObjectReference { + var refs []types.ManagedObjectReference + rval := reflect.ValueOf(s) + rtype := rval.Type() + + if rval.Kind() == reflect.Ptr { + rval = rval.Elem() + rtype = rval.Type() + } + + for i := 0; i < rval.NumField(); i++ { + val := rval.Field(i) + finfo := rtype.Field(i) + + if finfo.Anonymous { + refs = append(refs, References(val.Interface(), follow...)...) + continue + } + if finfo.Name == "Self" { + continue + } + + ftype := val.Type() + + if ftype.Kind() == reflect.Slice { + if ftype.Elem() == morType { + s := val.Interface().([]types.ManagedObjectReference) + for i := range s { + refs = append(refs, s[i]) + } + } + continue + } + + if ftype.Kind() == reflect.Ptr { + if val.IsNil() { + continue + } + val = val.Elem() + ftype = val.Type() + } + + if ftype == morType { + refs = append(refs, val.Interface().(types.ManagedObjectReference)) + continue + } + + if len(follow) != 0 && follow[0] { + if ftype.Kind() == reflect.Struct && val.CanSet() { + refs = append(refs, References(val.Interface(), follow...)...) + } + } + } + + return refs +} diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go b/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go index 661f2422..5276d0b8 100644 --- a/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go +++ b/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go @@ -157,7 +157,7 @@ func (t *typeInfo) build(typ reflect.Type, fn string, fi []int) { var nilValue reflect.Value -// assignValue assignes a value 'pv' to the struct pointed to by 'val', given a +// assignValue assigns a value 'pv' to the struct pointed to by 'val', given a // slice of field indices. It recurses into the struct until it finds the field // specified by the indices. It creates new values for pointer types where // needed. diff --git a/vendor/github.com/vmware/govmomi/vim25/progress/reader.go b/vendor/github.com/vmware/govmomi/vim25/progress/reader.go index cb184cfe..e37cd13c 100644 --- a/vendor/github.com/vmware/govmomi/vim25/progress/reader.go +++ b/vendor/github.com/vmware/govmomi/vim25/progress/reader.go @@ -158,7 +158,7 @@ func bpsLoop(ch <-chan Report, dst *uint64) { // Setup timer for front of list to become stale. if e := l.Front(); e != nil { - dt := time.Second - time.Now().Sub(e.Value.(readerReport).t) + dt := time.Second - time.Since(e.Value.(readerReport).t) tch = time.After(dt) } diff --git a/vendor/github.com/vmware/govmomi/vim25/retry.go b/vendor/github.com/vmware/govmomi/vim25/retry.go index b8807eef..f10e2cb6 100644 --- a/vendor/github.com/vmware/govmomi/vim25/retry.go +++ b/vendor/github.com/vmware/govmomi/vim25/retry.go @@ -18,8 +18,6 @@ package vim25 import ( "context" - "net" - "net/url" "time" "github.com/vmware/govmomi/vim25/soap" @@ -32,22 +30,18 @@ type RetryFunc func(err error) (retry bool, delay time.Duration) // network error (for example: a connect timeout). func TemporaryNetworkError(n int) RetryFunc { return func(err error) (retry bool, delay time.Duration) { - var nerr net.Error var ok bool - // Never retry if this is not a network error. - switch rerr := err.(type) { - case *url.Error: - if nerr, ok = rerr.Err.(net.Error); !ok { - return false, 0 - } - case net.Error: - nerr = rerr - default: + t, ok := err.(interface { + // Temporary is implemented by url.Error and net.Error + Temporary() bool + }) + if !ok { + // Never retry if this is not a Temporary error. return false, 0 } - if !nerr.Temporary() { + if !t.Temporary() { return false, 0 } diff --git a/vendor/github.com/vmware/govmomi/vim25/soap/client.go b/vendor/github.com/vmware/govmomi/vim25/soap/client.go index 90b9fbe1..04e26f05 100644 --- a/vendor/github.com/vmware/govmomi/vim25/soap/client.go +++ b/vendor/github.com/vmware/govmomi/vim25/soap/client.go @@ -35,6 +35,7 @@ import ( "net/url" "os" "path/filepath" + "reflect" "regexp" "strings" "sync" @@ -70,6 +71,7 @@ type Client struct { Namespace string // Vim namespace Version string // Vim version + Types types.Func UserAgent string cookie string @@ -122,6 +124,8 @@ func NewClient(u *url.URL, insecure bool) *Client { u: u, k: insecure, d: newDebug(), + + Types: types.TypeFunc(), } // Initialize http.RoundTripper on client, so we can customize it below @@ -155,6 +159,10 @@ func NewClient(u *url.URL, insecure bool) *Client { return &c } +func (c *Client) DefaultTransport() *http.Transport { + return c.t +} + // NewServiceClient creates a NewClient with the given URL.Path and namespace. func (c *Client) NewServiceClient(path string, namespace string) *Client { vc := c.URL() @@ -169,7 +177,7 @@ func (c *Client) NewServiceClient(path string, namespace string) *Client { client := NewClient(u, c.k) client.Namespace = "urn:" + namespace - client.Transport.(*http.Transport).TLSClientConfig = c.Transport.(*http.Transport).TLSClientConfig + client.DefaultTransport().TLSClientConfig = c.DefaultTransport().TLSClientConfig if cert := c.Certificate(); cert != nil { client.SetCertificate(*cert) } @@ -195,6 +203,19 @@ func (c *Client) NewServiceClient(path string, namespace string) *Client { // Copy any query params (e.g. GOVMOMI_TUNNEL_PROXY_PORT used in testing) client.u.RawQuery = vc.RawQuery + client.UserAgent = c.UserAgent + + vimTypes := c.Types + client.Types = func(name string) (reflect.Type, bool) { + kind, ok := vimTypes(name) + if ok { + return kind, ok + } + // vim25/xml typeToString() does not have an option to include namespace prefix. + // Workaround this by re-trying the lookup with the namespace prefix. + return vimTypes(namespace + ":" + name) + } + return client } @@ -207,7 +228,7 @@ func (c *Client) SetRootCAs(file string) error { pool := x509.NewCertPool() for _, name := range filepath.SplitList(file) { - pem, err := ioutil.ReadFile(name) + pem, err := ioutil.ReadFile(filepath.Clean(name)) if err != nil { return err } @@ -277,7 +298,7 @@ func (c *Client) LoadThumbprints(file string) error { } func (c *Client) loadThumbprints(name string) error { - f, err := os.Open(name) + f, err := os.Open(filepath.Clean(name)) if err != nil { if os.IsNotExist(err) { return nil @@ -346,7 +367,7 @@ func (c *Client) dialTLS(network string, addr string) (net.Conn, error) { if thumbprint != peer { _ = conn.Close() - return nil, fmt.Errorf("Host %q thumbprint does not match %q", addr, thumbprint) + return nil, fmt.Errorf("host %q thumbprint does not match %q", addr, thumbprint) } return conn, nil @@ -424,6 +445,7 @@ type marshaledClient struct { Cookies []*http.Cookie URL *url.URL Insecure bool + Version string } func (c *Client) MarshalJSON() ([]byte, error) { @@ -431,6 +453,7 @@ func (c *Client) MarshalJSON() ([]byte, error) { Cookies: c.Jar.Cookies(c.u), URL: c.u, Insecure: c.k, + Version: c.Version, } return json.Marshal(m) @@ -445,6 +468,7 @@ func (c *Client) UnmarshalJSON(b []byte) error { } *c = *NewClient(m.URL, m.Insecure) + c.Version = m.Version c.Jar.SetCookies(m.URL, m.Cookies) return nil @@ -466,8 +490,9 @@ func (c *Client) Do(ctx context.Context, req *http.Request, f func(*http.Respons req.Header.Set(`User-Agent`, c.UserAgent) } + ext := "" if d.enabled() { - d.debugRequest(req) + ext = d.debugRequest(req) } tstart := time.Now() @@ -491,7 +516,7 @@ func (c *Client) Do(ctx context.Context, req *http.Request, f func(*http.Respons defer res.Body.Close() if d.enabled() { - d.debugResponse(res) + d.debugResponse(res, ext) } return f(res) @@ -511,6 +536,32 @@ func (c *Client) WithHeader(ctx context.Context, header Header) context.Context return context.WithValue(ctx, headerContext{}, header) } +type statusError struct { + res *http.Response +} + +// Temporary returns true for HTTP response codes that can be retried +// See vim25.TemporaryNetworkError +func (e *statusError) Temporary() bool { + switch e.res.StatusCode { + case http.StatusBadGateway: + return true + } + return false +} + +func (e *statusError) Error() string { + return e.res.Status +} + +func newStatusError(res *http.Response) error { + return &url.Error{ + Op: res.Request.Method, + URL: res.Request.URL.Path, + Err: &statusError{res}, + } +} + func (c *Client) RoundTrip(ctx context.Context, reqBody, resBody HasFault) error { var err error var b []byte @@ -566,11 +617,11 @@ func (c *Client) RoundTrip(ctx context.Context, reqBody, resBody HasFault) error case http.StatusInternalServerError: // Error, but typically includes a body explaining the error default: - return errors.New(res.Status) + return newStatusError(res) } dec := xml.NewDecoder(res.Body) - dec.TypeFunc = types.TypeFunc() + dec.TypeFunc = c.Types err = dec.Decode(&resEnv) if err != nil { return err @@ -681,7 +732,7 @@ func (c *Client) UploadFile(ctx context.Context, file string, u *url.URL, param return err } - f, err := os.Open(file) + f, err := os.Open(filepath.Clean(file)) if err != nil { return err } @@ -734,7 +785,7 @@ func (c *Client) Download(ctx context.Context, u *url.URL, param *Download) (io. switch res.StatusCode { case http.StatusOK: default: - err = errors.New(res.Status) + err = fmt.Errorf("download(%s): %s", u, res.Status) } if err != nil { diff --git a/vendor/github.com/vmware/govmomi/vim25/soap/debug.go b/vendor/github.com/vmware/govmomi/vim25/soap/debug.go index 844581b9..3d4b5770 100644 --- a/vendor/github.com/vmware/govmomi/vim25/soap/debug.go +++ b/vendor/github.com/vmware/govmomi/vim25/soap/debug.go @@ -21,7 +21,6 @@ import ( "io" "net/http" "net/http/httputil" - "strings" "sync/atomic" "time" @@ -71,49 +70,49 @@ func (d *debugRoundTrip) newFile(suffix string) io.WriteCloser { } func (d *debugRoundTrip) ext(h http.Header) string { + const json = "application/json" ext := "xml" - if strings.Contains(h.Get("Content-Type"), "/json") { + if h.Get("Accept") == json || h.Get("Content-Type") == json { ext = "json" } return ext } -func (d *debugRoundTrip) debugRequest(req *http.Request) { +func (d *debugRoundTrip) debugRequest(req *http.Request) string { if d == nil { - return + return "" } - var wc io.WriteCloser - // Capture headers - wc = d.newFile("req.headers") + var wc io.WriteCloser = d.newFile("req.headers") b, _ := httputil.DumpRequest(req, false) wc.Write(b) wc.Close() + ext := d.ext(req.Header) // Capture body - wc = d.newFile("req." + d.ext(req.Header)) + wc = d.newFile("req." + ext) req.Body = newTeeReader(req.Body, wc) // Delay closing until marked done d.cs = append(d.cs, wc) + + return ext } -func (d *debugRoundTrip) debugResponse(res *http.Response) { +func (d *debugRoundTrip) debugResponse(res *http.Response, ext string) { if d == nil { return } - var wc io.WriteCloser - // Capture headers - wc = d.newFile("res.headers") + var wc io.WriteCloser = d.newFile("res.headers") b, _ := httputil.DumpResponse(res, false) wc.Write(b) wc.Close() // Capture body - wc = d.newFile("res." + d.ext(res.Header)) + wc = d.newFile("res." + ext) res.Body = newTeeReader(res.Body, wc) // Delay closing until marked done diff --git a/vendor/github.com/vmware/govmomi/vim25/types/enum.go b/vendor/github.com/vmware/govmomi/vim25/types/enum.go index c8c59775..a356fff4 100644 --- a/vendor/github.com/vmware/govmomi/vim25/types/enum.go +++ b/vendor/github.com/vmware/govmomi/vim25/types/enum.go @@ -200,8 +200,7 @@ func init() { type CannotEnableVmcpForClusterReason string const ( - CannotEnableVmcpForClusterReasonAPDTimeoutDisabled = CannotEnableVmcpForClusterReason("APDTimeoutDisabled") - CannotEnableVmcpForClusterReasonIncompatibleHostVersion = CannotEnableVmcpForClusterReason("IncompatibleHostVersion") + CannotEnableVmcpForClusterReasonAPDTimeoutDisabled = CannotEnableVmcpForClusterReason("APDTimeoutDisabled") ) func init() { @@ -239,6 +238,8 @@ const ( CannotUseNetworkReasonMismatchedNetworkPolicies = CannotUseNetworkReason("MismatchedNetworkPolicies") CannotUseNetworkReasonMismatchedDvsVersionOrVendor = CannotUseNetworkReason("MismatchedDvsVersionOrVendor") CannotUseNetworkReasonVMotionToUnsupportedNetworkType = CannotUseNetworkReason("VMotionToUnsupportedNetworkType") + CannotUseNetworkReasonNetworkUnderMaintenance = CannotUseNetworkReason("NetworkUnderMaintenance") + CannotUseNetworkReasonMismatchedEnsMode = CannotUseNetworkReason("MismatchedEnsMode") ) func init() { @@ -259,6 +260,29 @@ func init() { t["CheckTestType"] = reflect.TypeOf((*CheckTestType)(nil)).Elem() } +type ClusterComputeResourceHCIWorkflowState string + +const ( + ClusterComputeResourceHCIWorkflowStateIn_progress = ClusterComputeResourceHCIWorkflowState("in_progress") + ClusterComputeResourceHCIWorkflowStateDone = ClusterComputeResourceHCIWorkflowState("done") + ClusterComputeResourceHCIWorkflowStateInvalid = ClusterComputeResourceHCIWorkflowState("invalid") +) + +func init() { + t["ClusterComputeResourceHCIWorkflowState"] = reflect.TypeOf((*ClusterComputeResourceHCIWorkflowState)(nil)).Elem() +} + +type ClusterCryptoConfigInfoCryptoMode string + +const ( + ClusterCryptoConfigInfoCryptoModeOnDemand = ClusterCryptoConfigInfoCryptoMode("onDemand") + ClusterCryptoConfigInfoCryptoModeForceEnable = ClusterCryptoConfigInfoCryptoMode("forceEnable") +) + +func init() { + t["ClusterCryptoConfigInfoCryptoMode"] = reflect.TypeOf((*ClusterCryptoConfigInfoCryptoMode)(nil)).Elem() +} + type ClusterDasAamNodeStateDasState string const ( @@ -494,6 +518,31 @@ func init() { t["ConfigSpecOperation"] = reflect.TypeOf((*ConfigSpecOperation)(nil)).Elem() } +type CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason string + +const ( + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateMissingInCache = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateMissingInCache") + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateClusterInvalid = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateClusterInvalid") + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateClusterUnreachable = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateClusterUnreachable") + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateMissingInKMS = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateMissingInKMS") + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateNotActiveOrEnabled = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateNotActiveOrEnabled") + CryptoManagerKmipCryptoKeyStatusKeyUnavailableReasonKeyStateManagedByTrustAuthority = CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason("KeyStateManagedByTrustAuthority") +) + +func init() { + t["CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason"] = reflect.TypeOf((*CryptoManagerKmipCryptoKeyStatusKeyUnavailableReason)(nil)).Elem() +} + +type CustomizationFailedReasonCode string + +const ( + CustomizationFailedReasonCodeUserDefinedScriptDisabled = CustomizationFailedReasonCode("userDefinedScriptDisabled") +) + +func init() { + t["CustomizationFailedReasonCode"] = reflect.TypeOf((*CustomizationFailedReasonCode)(nil)).Elem() +} + type CustomizationLicenseDataMode string const ( @@ -576,6 +625,8 @@ const ( DasConfigFaultDasConfigFaultReasonCreateConfigVvolFailed = DasConfigFaultDasConfigFaultReason("CreateConfigVvolFailed") DasConfigFaultDasConfigFaultReasonVSanNotSupportedOnHost = DasConfigFaultDasConfigFaultReason("VSanNotSupportedOnHost") DasConfigFaultDasConfigFaultReasonDasNetworkMisconfiguration = DasConfigFaultDasConfigFaultReason("DasNetworkMisconfiguration") + DasConfigFaultDasConfigFaultReasonSetDesiredImageSpecFailed = DasConfigFaultDasConfigFaultReason("SetDesiredImageSpecFailed") + DasConfigFaultDasConfigFaultReasonApplyHAVibsOnClusterFailed = DasConfigFaultDasConfigFaultReason("ApplyHAVibsOnClusterFailed") ) func init() { @@ -703,6 +754,17 @@ func init() { t["DisallowedChangeByServiceDisallowedChange"] = reflect.TypeOf((*DisallowedChangeByServiceDisallowedChange)(nil)).Elem() } +type DistributedVirtualPortgroupBackingType string + +const ( + DistributedVirtualPortgroupBackingTypeStandard = DistributedVirtualPortgroupBackingType("standard") + DistributedVirtualPortgroupBackingTypeNsx = DistributedVirtualPortgroupBackingType("nsx") +) + +func init() { + t["DistributedVirtualPortgroupBackingType"] = reflect.TypeOf((*DistributedVirtualPortgroupBackingType)(nil)).Elem() +} + type DistributedVirtualPortgroupMetaTagName string const ( @@ -760,6 +822,17 @@ func init() { t["DistributedVirtualSwitchHostMemberHostComponentState"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberHostComponentState)(nil)).Elem() } +type DistributedVirtualSwitchHostMemberTransportZoneType string + +const ( + DistributedVirtualSwitchHostMemberTransportZoneTypeVlan = DistributedVirtualSwitchHostMemberTransportZoneType("vlan") + DistributedVirtualSwitchHostMemberTransportZoneTypeOverlay = DistributedVirtualSwitchHostMemberTransportZoneType("overlay") +) + +func init() { + t["DistributedVirtualSwitchHostMemberTransportZoneType"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberTransportZoneType)(nil)).Elem() +} + type DistributedVirtualSwitchNetworkResourceControlVersion string const ( @@ -997,6 +1070,17 @@ func init() { t["FileSystemMountInfoVStorageSupportStatus"] = reflect.TypeOf((*FileSystemMountInfoVStorageSupportStatus)(nil)).Elem() } +type FolderDesiredHostState string + +const ( + FolderDesiredHostStateMaintenance = FolderDesiredHostState("maintenance") + FolderDesiredHostStateNon_maintenance = FolderDesiredHostState("non_maintenance") +) + +func init() { + t["FolderDesiredHostState"] = reflect.TypeOf((*FolderDesiredHostState)(nil)).Elem() +} + type FtIssuesOnHostHostSelectionType string const ( @@ -1213,6 +1297,7 @@ const ( HostCpuPackageVendorUnknown = HostCpuPackageVendor("unknown") HostCpuPackageVendorIntel = HostCpuPackageVendor("intel") HostCpuPackageVendorAmd = HostCpuPackageVendor("amd") + HostCpuPackageVendorHygon = HostCpuPackageVendor("hygon") ) func init() { @@ -1234,9 +1319,10 @@ func init() { type HostCryptoState string const ( - HostCryptoStateIncapable = HostCryptoState("incapable") - HostCryptoStatePrepared = HostCryptoState("prepared") - HostCryptoStateSafe = HostCryptoState("safe") + HostCryptoStateIncapable = HostCryptoState("incapable") + HostCryptoStatePrepared = HostCryptoState("prepared") + HostCryptoStateSafe = HostCryptoState("safe") + HostCryptoStatePendingIncapable = HostCryptoState("pendingIncapable") ) func init() { @@ -1260,6 +1346,17 @@ func init() { t["HostDasErrorEventHostDasErrorReason"] = reflect.TypeOf((*HostDasErrorEventHostDasErrorReason)(nil)).Elem() } +type HostDateTimeInfoProtocol string + +const ( + HostDateTimeInfoProtocolNtp = HostDateTimeInfoProtocol("ntp") + HostDateTimeInfoProtocolPtp = HostDateTimeInfoProtocol("ptp") +) + +func init() { + t["HostDateTimeInfoProtocol"] = reflect.TypeOf((*HostDateTimeInfoProtocol)(nil)).Elem() +} + type HostDigestInfoDigestMethodType string const ( @@ -1632,6 +1729,16 @@ func init() { t["HostLowLevelProvisioningManagerReloadTarget"] = reflect.TypeOf((*HostLowLevelProvisioningManagerReloadTarget)(nil)).Elem() } +type HostMaintenanceSpecPurpose string + +const ( + HostMaintenanceSpecPurposeHostUpgrade = HostMaintenanceSpecPurpose("hostUpgrade") +) + +func init() { + t["HostMaintenanceSpecPurpose"] = reflect.TypeOf((*HostMaintenanceSpecPurpose)(nil)).Elem() +} + type HostMountInfoInaccessibleReason string const ( @@ -1725,12 +1832,65 @@ func init() { t["HostNumericSensorType"] = reflect.TypeOf((*HostNumericSensorType)(nil)).Elem() } +type HostNvmeDiscoveryLogSubsystemType string + +const ( + HostNvmeDiscoveryLogSubsystemTypeDiscovery = HostNvmeDiscoveryLogSubsystemType("discovery") + HostNvmeDiscoveryLogSubsystemTypeNvm = HostNvmeDiscoveryLogSubsystemType("nvm") +) + +func init() { + t["HostNvmeDiscoveryLogSubsystemType"] = reflect.TypeOf((*HostNvmeDiscoveryLogSubsystemType)(nil)).Elem() +} + +type HostNvmeDiscoveryLogTransportRequirements string + +const ( + HostNvmeDiscoveryLogTransportRequirementsSecureChannelRequired = HostNvmeDiscoveryLogTransportRequirements("secureChannelRequired") + HostNvmeDiscoveryLogTransportRequirementsSecureChannelNotRequired = HostNvmeDiscoveryLogTransportRequirements("secureChannelNotRequired") + HostNvmeDiscoveryLogTransportRequirementsRequirementsNotSpecified = HostNvmeDiscoveryLogTransportRequirements("requirementsNotSpecified") +) + +func init() { + t["HostNvmeDiscoveryLogTransportRequirements"] = reflect.TypeOf((*HostNvmeDiscoveryLogTransportRequirements)(nil)).Elem() +} + +type HostNvmeTransportParametersNvmeAddressFamily string + +const ( + HostNvmeTransportParametersNvmeAddressFamilyIpv4 = HostNvmeTransportParametersNvmeAddressFamily("ipv4") + HostNvmeTransportParametersNvmeAddressFamilyIpv6 = HostNvmeTransportParametersNvmeAddressFamily("ipv6") + HostNvmeTransportParametersNvmeAddressFamilyInfiniBand = HostNvmeTransportParametersNvmeAddressFamily("infiniBand") + HostNvmeTransportParametersNvmeAddressFamilyFc = HostNvmeTransportParametersNvmeAddressFamily("fc") + HostNvmeTransportParametersNvmeAddressFamilyLoopback = HostNvmeTransportParametersNvmeAddressFamily("loopback") + HostNvmeTransportParametersNvmeAddressFamilyUnknown = HostNvmeTransportParametersNvmeAddressFamily("unknown") +) + +func init() { + t["HostNvmeTransportParametersNvmeAddressFamily"] = reflect.TypeOf((*HostNvmeTransportParametersNvmeAddressFamily)(nil)).Elem() +} + +type HostNvmeTransportType string + +const ( + HostNvmeTransportTypePcie = HostNvmeTransportType("pcie") + HostNvmeTransportTypeFibreChannel = HostNvmeTransportType("fibreChannel") + HostNvmeTransportTypeRdma = HostNvmeTransportType("rdma") + HostNvmeTransportTypeLoopback = HostNvmeTransportType("loopback") + HostNvmeTransportTypeUnsupported = HostNvmeTransportType("unsupported") +) + +func init() { + t["HostNvmeTransportType"] = reflect.TypeOf((*HostNvmeTransportType)(nil)).Elem() +} + type HostOpaqueSwitchOpaqueSwitchState string const ( - HostOpaqueSwitchOpaqueSwitchStateUp = HostOpaqueSwitchOpaqueSwitchState("up") - HostOpaqueSwitchOpaqueSwitchStateWarning = HostOpaqueSwitchOpaqueSwitchState("warning") - HostOpaqueSwitchOpaqueSwitchStateDown = HostOpaqueSwitchOpaqueSwitchState("down") + HostOpaqueSwitchOpaqueSwitchStateUp = HostOpaqueSwitchOpaqueSwitchState("up") + HostOpaqueSwitchOpaqueSwitchStateWarning = HostOpaqueSwitchOpaqueSwitchState("warning") + HostOpaqueSwitchOpaqueSwitchStateDown = HostOpaqueSwitchOpaqueSwitchState("down") + HostOpaqueSwitchOpaqueSwitchStateMaintenance = HostOpaqueSwitchOpaqueSwitchState("maintenance") ) func init() { @@ -1883,6 +2043,21 @@ func init() { t["HostProtocolEndpointProtocolEndpointType"] = reflect.TypeOf((*HostProtocolEndpointProtocolEndpointType)(nil)).Elem() } +type HostRdmaDeviceConnectionState string + +const ( + HostRdmaDeviceConnectionStateUnknown = HostRdmaDeviceConnectionState("unknown") + HostRdmaDeviceConnectionStateDown = HostRdmaDeviceConnectionState("down") + HostRdmaDeviceConnectionStateInit = HostRdmaDeviceConnectionState("init") + HostRdmaDeviceConnectionStateArmed = HostRdmaDeviceConnectionState("armed") + HostRdmaDeviceConnectionStateActive = HostRdmaDeviceConnectionState("active") + HostRdmaDeviceConnectionStateActiveDefer = HostRdmaDeviceConnectionState("activeDefer") +) + +func init() { + t["HostRdmaDeviceConnectionState"] = reflect.TypeOf((*HostRdmaDeviceConnectionState)(nil)).Elem() +} + type HostReplayUnsupportedReason string const ( @@ -1923,6 +2098,35 @@ func init() { t["HostServicePolicy"] = reflect.TypeOf((*HostServicePolicy)(nil)).Elem() } +type HostSgxInfoFlcModes string + +const ( + HostSgxInfoFlcModesOff = HostSgxInfoFlcModes("off") + HostSgxInfoFlcModesLocked = HostSgxInfoFlcModes("locked") + HostSgxInfoFlcModesUnlocked = HostSgxInfoFlcModes("unlocked") +) + +func init() { + t["HostSgxInfoFlcModes"] = reflect.TypeOf((*HostSgxInfoFlcModes)(nil)).Elem() +} + +type HostSgxInfoSgxStates string + +const ( + HostSgxInfoSgxStatesNotPresent = HostSgxInfoSgxStates("notPresent") + HostSgxInfoSgxStatesDisabledBIOS = HostSgxInfoSgxStates("disabledBIOS") + HostSgxInfoSgxStatesDisabledCFW101 = HostSgxInfoSgxStates("disabledCFW101") + HostSgxInfoSgxStatesDisabledCPUMismatch = HostSgxInfoSgxStates("disabledCPUMismatch") + HostSgxInfoSgxStatesDisabledNoFLC = HostSgxInfoSgxStates("disabledNoFLC") + HostSgxInfoSgxStatesDisabledNUMAUnsup = HostSgxInfoSgxStates("disabledNUMAUnsup") + HostSgxInfoSgxStatesDisabledMaxEPCRegs = HostSgxInfoSgxStates("disabledMaxEPCRegs") + HostSgxInfoSgxStatesEnabled = HostSgxInfoSgxStates("enabled") +) + +func init() { + t["HostSgxInfoSgxStates"] = reflect.TypeOf((*HostSgxInfoSgxStates)(nil)).Elem() +} + type HostSnmpAgentCapability string const ( @@ -1948,6 +2152,17 @@ func init() { t["HostStandbyMode"] = reflect.TypeOf((*HostStandbyMode)(nil)).Elem() } +type HostStorageProtocol string + +const ( + HostStorageProtocolScsi = HostStorageProtocol("scsi") + HostStorageProtocolNvme = HostStorageProtocol("nvme") +) + +func init() { + t["HostStorageProtocol"] = reflect.TypeOf((*HostStorageProtocol)(nil)).Elem() +} + type HostSystemConnectionState string const ( @@ -1963,9 +2178,11 @@ func init() { type HostSystemIdentificationInfoIdentifier string const ( - HostSystemIdentificationInfoIdentifierAssetTag = HostSystemIdentificationInfoIdentifier("AssetTag") - HostSystemIdentificationInfoIdentifierServiceTag = HostSystemIdentificationInfoIdentifier("ServiceTag") - HostSystemIdentificationInfoIdentifierOemSpecificString = HostSystemIdentificationInfoIdentifier("OemSpecificString") + HostSystemIdentificationInfoIdentifierAssetTag = HostSystemIdentificationInfoIdentifier("AssetTag") + HostSystemIdentificationInfoIdentifierServiceTag = HostSystemIdentificationInfoIdentifier("ServiceTag") + HostSystemIdentificationInfoIdentifierOemSpecificString = HostSystemIdentificationInfoIdentifier("OemSpecificString") + HostSystemIdentificationInfoIdentifierEnclosureSerialNumberTag = HostSystemIdentificationInfoIdentifier("EnclosureSerialNumberTag") + HostSystemIdentificationInfoIdentifierSerialNumberTag = HostSystemIdentificationInfoIdentifier("SerialNumberTag") ) func init() { @@ -2044,6 +2261,8 @@ const ( HostVirtualNicManagerNicTypeVsan = HostVirtualNicManagerNicType("vsan") HostVirtualNicManagerNicTypeVSphereProvisioning = HostVirtualNicManagerNicType("vSphereProvisioning") HostVirtualNicManagerNicTypeVsanWitness = HostVirtualNicManagerNicType("vsanWitness") + HostVirtualNicManagerNicTypeVSphereBackupNFC = HostVirtualNicManagerNicType("vSphereBackupNFC") + HostVirtualNicManagerNicTypePtp = HostVirtualNicManagerNicType("ptp") ) func init() { @@ -2206,6 +2425,18 @@ func init() { t["IscsiPortInfoPathStatus"] = reflect.TypeOf((*IscsiPortInfoPathStatus)(nil)).Elem() } +type KmipClusterInfoKmsManagementType string + +const ( + KmipClusterInfoKmsManagementTypeUnknown = KmipClusterInfoKmsManagementType("unknown") + KmipClusterInfoKmsManagementTypeVCenter = KmipClusterInfoKmsManagementType("vCenter") + KmipClusterInfoKmsManagementTypeTrustAuthority = KmipClusterInfoKmsManagementType("trustAuthority") +) + +func init() { + t["KmipClusterInfoKmsManagementType"] = reflect.TypeOf((*KmipClusterInfoKmsManagementType)(nil)).Elem() +} + type LatencySensitivitySensitivityLevel string const ( @@ -2487,6 +2718,32 @@ func init() { t["NvdimmInterleaveSetState"] = reflect.TypeOf((*NvdimmInterleaveSetState)(nil)).Elem() } +type NvdimmNamespaceDetailsHealthStatus string + +const ( + NvdimmNamespaceDetailsHealthStatusNormal = NvdimmNamespaceDetailsHealthStatus("normal") + NvdimmNamespaceDetailsHealthStatusMissing = NvdimmNamespaceDetailsHealthStatus("missing") + NvdimmNamespaceDetailsHealthStatusLabelMissing = NvdimmNamespaceDetailsHealthStatus("labelMissing") + NvdimmNamespaceDetailsHealthStatusInterleaveBroken = NvdimmNamespaceDetailsHealthStatus("interleaveBroken") + NvdimmNamespaceDetailsHealthStatusLabelInconsistent = NvdimmNamespaceDetailsHealthStatus("labelInconsistent") +) + +func init() { + t["NvdimmNamespaceDetailsHealthStatus"] = reflect.TypeOf((*NvdimmNamespaceDetailsHealthStatus)(nil)).Elem() +} + +type NvdimmNamespaceDetailsState string + +const ( + NvdimmNamespaceDetailsStateInvalid = NvdimmNamespaceDetailsState("invalid") + NvdimmNamespaceDetailsStateNotInUse = NvdimmNamespaceDetailsState("notInUse") + NvdimmNamespaceDetailsStateInUse = NvdimmNamespaceDetailsState("inUse") +) + +func init() { + t["NvdimmNamespaceDetailsState"] = reflect.TypeOf((*NvdimmNamespaceDetailsState)(nil)).Elem() +} + type NvdimmNamespaceHealthStatus string const ( @@ -2651,6 +2908,7 @@ const ( PerformanceManagerUnitWatt = PerformanceManagerUnit("watt") PerformanceManagerUnitJoule = PerformanceManagerUnit("joule") PerformanceManagerUnitTeraBytes = PerformanceManagerUnit("teraBytes") + PerformanceManagerUnitCelsius = PerformanceManagerUnit("celsius") ) func init() { @@ -2841,6 +3099,9 @@ const ( RecommendationReasonCodeHostExitDegradation = RecommendationReasonCode("hostExitDegradation") RecommendationReasonCodeMaxVmsConstraint = RecommendationReasonCode("maxVmsConstraint") RecommendationReasonCodeFtConstraints = RecommendationReasonCode("ftConstraints") + RecommendationReasonCodeVmHostAffinityPolicy = RecommendationReasonCode("vmHostAffinityPolicy") + RecommendationReasonCodeVmHostAntiAffinityPolicy = RecommendationReasonCode("vmHostAntiAffinityPolicy") + RecommendationReasonCodeVmAntiAffinityPolicy = RecommendationReasonCode("vmAntiAffinityPolicy") ) func init() { @@ -2943,6 +3204,17 @@ func init() { t["ReplicationVmState"] = reflect.TypeOf((*ReplicationVmState)(nil)).Elem() } +type ResourceConfigSpecScaleSharesBehavior string + +const ( + ResourceConfigSpecScaleSharesBehaviorDisabled = ResourceConfigSpecScaleSharesBehavior("disabled") + ResourceConfigSpecScaleSharesBehaviorScaleCpuAndMemoryShares = ResourceConfigSpecScaleSharesBehavior("scaleCpuAndMemoryShares") +) + +func init() { + t["ResourceConfigSpecScaleSharesBehavior"] = reflect.TypeOf((*ResourceConfigSpecScaleSharesBehavior)(nil)).Elem() +} + type ScheduledHardwareUpgradeInfoHardwareUpgradePolicy string const ( @@ -4042,6 +4314,7 @@ const ( VirtualMachineGuestOsIdentifierWindows9_64Guest = VirtualMachineGuestOsIdentifier("windows9_64Guest") VirtualMachineGuestOsIdentifierWindows9Server64Guest = VirtualMachineGuestOsIdentifier("windows9Server64Guest") VirtualMachineGuestOsIdentifierWindowsHyperVGuest = VirtualMachineGuestOsIdentifier("windowsHyperVGuest") + VirtualMachineGuestOsIdentifierWindows2019srv_64Guest = VirtualMachineGuestOsIdentifier("windows2019srv_64Guest") VirtualMachineGuestOsIdentifierFreebsdGuest = VirtualMachineGuestOsIdentifier("freebsdGuest") VirtualMachineGuestOsIdentifierFreebsd64Guest = VirtualMachineGuestOsIdentifier("freebsd64Guest") VirtualMachineGuestOsIdentifierFreebsd11Guest = VirtualMachineGuestOsIdentifier("freebsd11Guest") @@ -4110,6 +4383,8 @@ const ( VirtualMachineGuestOsIdentifierDebian9_64Guest = VirtualMachineGuestOsIdentifier("debian9_64Guest") VirtualMachineGuestOsIdentifierDebian10Guest = VirtualMachineGuestOsIdentifier("debian10Guest") VirtualMachineGuestOsIdentifierDebian10_64Guest = VirtualMachineGuestOsIdentifier("debian10_64Guest") + VirtualMachineGuestOsIdentifierDebian11Guest = VirtualMachineGuestOsIdentifier("debian11Guest") + VirtualMachineGuestOsIdentifierDebian11_64Guest = VirtualMachineGuestOsIdentifier("debian11_64Guest") VirtualMachineGuestOsIdentifierAsianux3Guest = VirtualMachineGuestOsIdentifier("asianux3Guest") VirtualMachineGuestOsIdentifierAsianux3_64Guest = VirtualMachineGuestOsIdentifier("asianux3_64Guest") VirtualMachineGuestOsIdentifierAsianux4Guest = VirtualMachineGuestOsIdentifier("asianux4Guest") @@ -4163,10 +4438,14 @@ const ( VirtualMachineGuestOsIdentifierDarwin16_64Guest = VirtualMachineGuestOsIdentifier("darwin16_64Guest") VirtualMachineGuestOsIdentifierDarwin17_64Guest = VirtualMachineGuestOsIdentifier("darwin17_64Guest") VirtualMachineGuestOsIdentifierDarwin18_64Guest = VirtualMachineGuestOsIdentifier("darwin18_64Guest") + VirtualMachineGuestOsIdentifierDarwin19_64Guest = VirtualMachineGuestOsIdentifier("darwin19_64Guest") VirtualMachineGuestOsIdentifierVmkernelGuest = VirtualMachineGuestOsIdentifier("vmkernelGuest") VirtualMachineGuestOsIdentifierVmkernel5Guest = VirtualMachineGuestOsIdentifier("vmkernel5Guest") VirtualMachineGuestOsIdentifierVmkernel6Guest = VirtualMachineGuestOsIdentifier("vmkernel6Guest") VirtualMachineGuestOsIdentifierVmkernel65Guest = VirtualMachineGuestOsIdentifier("vmkernel65Guest") + VirtualMachineGuestOsIdentifierVmkernel7Guest = VirtualMachineGuestOsIdentifier("vmkernel7Guest") + VirtualMachineGuestOsIdentifierAmazonlinux2_64Guest = VirtualMachineGuestOsIdentifier("amazonlinux2_64Guest") + VirtualMachineGuestOsIdentifierCrxPod1Guest = VirtualMachineGuestOsIdentifier("crxPod1Guest") VirtualMachineGuestOsIdentifierOtherGuest = VirtualMachineGuestOsIdentifier("otherGuest") VirtualMachineGuestOsIdentifierOtherGuest64 = VirtualMachineGuestOsIdentifier("otherGuest64") ) @@ -4358,6 +4637,17 @@ func init() { t["VirtualMachineScsiPassthroughType"] = reflect.TypeOf((*VirtualMachineScsiPassthroughType)(nil)).Elem() } +type VirtualMachineSgxInfoFlcModes string + +const ( + VirtualMachineSgxInfoFlcModesLocked = VirtualMachineSgxInfoFlcModes("locked") + VirtualMachineSgxInfoFlcModesUnlocked = VirtualMachineSgxInfoFlcModes("unlocked") +) + +func init() { + t["VirtualMachineSgxInfoFlcModes"] = reflect.TypeOf((*VirtualMachineSgxInfoFlcModes)(nil)).Elem() +} + type VirtualMachineStandbyActionType string const ( @@ -4383,11 +4673,12 @@ func init() { type VirtualMachineTicketType string const ( - VirtualMachineTicketTypeMks = VirtualMachineTicketType("mks") - VirtualMachineTicketTypeDevice = VirtualMachineTicketType("device") - VirtualMachineTicketTypeGuestControl = VirtualMachineTicketType("guestControl") - VirtualMachineTicketTypeWebmks = VirtualMachineTicketType("webmks") - VirtualMachineTicketTypeGuestIntegrity = VirtualMachineTicketType("guestIntegrity") + VirtualMachineTicketTypeMks = VirtualMachineTicketType("mks") + VirtualMachineTicketTypeDevice = VirtualMachineTicketType("device") + VirtualMachineTicketTypeGuestControl = VirtualMachineTicketType("guestControl") + VirtualMachineTicketTypeWebmks = VirtualMachineTicketType("webmks") + VirtualMachineTicketTypeGuestIntegrity = VirtualMachineTicketType("guestIntegrity") + VirtualMachineTicketTypeWebRemoteDevice = VirtualMachineTicketType("webRemoteDevice") ) func init() { @@ -4482,11 +4773,12 @@ func init() { type VirtualMachineUsbInfoSpeed string const ( - VirtualMachineUsbInfoSpeedLow = VirtualMachineUsbInfoSpeed("low") - VirtualMachineUsbInfoSpeedFull = VirtualMachineUsbInfoSpeed("full") - VirtualMachineUsbInfoSpeedHigh = VirtualMachineUsbInfoSpeed("high") - VirtualMachineUsbInfoSpeedSuperSpeed = VirtualMachineUsbInfoSpeed("superSpeed") - VirtualMachineUsbInfoSpeedUnknownSpeed = VirtualMachineUsbInfoSpeed("unknownSpeed") + VirtualMachineUsbInfoSpeedLow = VirtualMachineUsbInfoSpeed("low") + VirtualMachineUsbInfoSpeedFull = VirtualMachineUsbInfoSpeed("full") + VirtualMachineUsbInfoSpeedHigh = VirtualMachineUsbInfoSpeed("high") + VirtualMachineUsbInfoSpeedSuperSpeed = VirtualMachineUsbInfoSpeed("superSpeed") + VirtualMachineUsbInfoSpeedSuperSpeedPlus = VirtualMachineUsbInfoSpeed("superSpeedPlus") + VirtualMachineUsbInfoSpeedUnknownSpeed = VirtualMachineUsbInfoSpeed("unknownSpeed") ) func init() { diff --git a/vendor/github.com/vmware/govmomi/vim25/types/if.go b/vendor/github.com/vmware/govmomi/vim25/types/if.go index 7576198e..9b377c96 100644 --- a/vendor/github.com/vmware/govmomi/vim25/types/if.go +++ b/vendor/github.com/vmware/govmomi/vim25/types/if.go @@ -214,6 +214,18 @@ func init() { t["BaseClusterAction"] = reflect.TypeOf((*ClusterAction)(nil)).Elem() } +func (b *ClusterComputeResourceValidationResultBase) GetClusterComputeResourceValidationResultBase() *ClusterComputeResourceValidationResultBase { + return b +} + +type BaseClusterComputeResourceValidationResultBase interface { + GetClusterComputeResourceValidationResultBase() *ClusterComputeResourceValidationResultBase +} + +func init() { + t["BaseClusterComputeResourceValidationResultBase"] = reflect.TypeOf((*ClusterComputeResourceValidationResultBase)(nil)).Elem() +} + func (b *ClusterDasAdmissionControlInfo) GetClusterDasAdmissionControlInfo() *ClusterDasAdmissionControlInfo { return b } @@ -1412,6 +1424,28 @@ func init() { t["BaseHostMultipathInfoLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoLogicalUnitPolicy)(nil)).Elem() } +func (b *HostNvmeSpec) GetHostNvmeSpec() *HostNvmeSpec { return b } + +type BaseHostNvmeSpec interface { + GetHostNvmeSpec() *HostNvmeSpec +} + +func init() { + t["BaseHostNvmeSpec"] = reflect.TypeOf((*HostNvmeSpec)(nil)).Elem() +} + +func (b *HostNvmeTransportParameters) GetHostNvmeTransportParameters() *HostNvmeTransportParameters { + return b +} + +type BaseHostNvmeTransportParameters interface { + GetHostNvmeTransportParameters() *HostNvmeTransportParameters +} + +func init() { + t["BaseHostNvmeTransportParameters"] = reflect.TypeOf((*HostNvmeTransportParameters)(nil)).Elem() +} + func (b *HostPciPassthruConfig) GetHostPciPassthruConfig() *HostPciPassthruConfig { return b } type BaseHostPciPassthruConfig interface { @@ -1464,6 +1498,16 @@ func init() { t["BaseHostProfilesEntityCustomizations"] = reflect.TypeOf((*HostProfilesEntityCustomizations)(nil)).Elem() } +func (b *HostRdmaDeviceBacking) GetHostRdmaDeviceBacking() *HostRdmaDeviceBacking { return b } + +type BaseHostRdmaDeviceBacking interface { + GetHostRdmaDeviceBacking() *HostRdmaDeviceBacking +} + +func init() { + t["BaseHostRdmaDeviceBacking"] = reflect.TypeOf((*HostRdmaDeviceBacking)(nil)).Elem() +} + func (b *HostSriovDevicePoolInfo) GetHostSriovDevicePoolInfo() *HostSriovDevicePoolInfo { return b } type BaseHostSriovDevicePoolInfo interface { diff --git a/vendor/github.com/vmware/govmomi/vim25/types/types.go b/vendor/github.com/vmware/govmomi/vim25/types/types.go index e990e273..e10cf821 100644 --- a/vendor/github.com/vmware/govmomi/vim25/types/types.go +++ b/vendor/github.com/vmware/govmomi/vim25/types/types.go @@ -21,6 +21,23 @@ import ( "time" ) +type AbandonHciWorkflow AbandonHciWorkflowRequestType + +func init() { + t["AbandonHciWorkflow"] = reflect.TypeOf((*AbandonHciWorkflow)(nil)).Elem() +} + +type AbandonHciWorkflowRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["AbandonHciWorkflowRequestType"] = reflect.TypeOf((*AbandonHciWorkflowRequestType)(nil)).Elem() +} + +type AbandonHciWorkflowResponse struct { +} + type AbdicateDomOwnership AbdicateDomOwnershipRequestType func init() { @@ -40,6 +57,26 @@ type AbdicateDomOwnershipResponse struct { Returnval []string `xml:"returnval,omitempty"` } +type AbortCustomizationRequestType struct { + This ManagedObjectReference `xml:"_this"` + Vm ManagedObjectReference `xml:"vm"` + Auth BaseGuestAuthentication `xml:"auth,typeattr"` +} + +func init() { + t["AbortCustomizationRequestType"] = reflect.TypeOf((*AbortCustomizationRequestType)(nil)).Elem() +} + +type AbortCustomization_Task AbortCustomizationRequestType + +func init() { + t["AbortCustomization_Task"] = reflect.TypeOf((*AbortCustomization_Task)(nil)).Elem() +} + +type AbortCustomization_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type AboutInfo struct { DynamicData @@ -1028,6 +1065,7 @@ type AlarmState struct { AcknowledgedByUser string `xml:"acknowledgedByUser,omitempty"` AcknowledgedTime *time.Time `xml:"acknowledgedTime"` EventKey int32 `xml:"eventKey,omitempty"` + Disabled *bool `xml:"disabled"` } func init() { @@ -1709,6 +1747,62 @@ func init() { t["ArrayOfClusterAttemptedVmInfo"] = reflect.TypeOf((*ArrayOfClusterAttemptedVmInfo)(nil)).Elem() } +type ArrayOfClusterComputeResourceDVSSetting struct { + ClusterComputeResourceDVSSetting []ClusterComputeResourceDVSSetting `xml:"ClusterComputeResourceDVSSetting,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceDVSSetting"] = reflect.TypeOf((*ArrayOfClusterComputeResourceDVSSetting)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceDVSSettingDVPortgroupToServiceMapping struct { + ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping []ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping `xml:"ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceDVSSettingDVPortgroupToServiceMapping"] = reflect.TypeOf((*ArrayOfClusterComputeResourceDVSSettingDVPortgroupToServiceMapping)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceDvsProfile struct { + ClusterComputeResourceDvsProfile []ClusterComputeResourceDvsProfile `xml:"ClusterComputeResourceDvsProfile,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceDvsProfile"] = reflect.TypeOf((*ArrayOfClusterComputeResourceDvsProfile)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping struct { + ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping []ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping `xml:"ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping"] = reflect.TypeOf((*ArrayOfClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceHostConfigurationInput struct { + ClusterComputeResourceHostConfigurationInput []ClusterComputeResourceHostConfigurationInput `xml:"ClusterComputeResourceHostConfigurationInput,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceHostConfigurationInput"] = reflect.TypeOf((*ArrayOfClusterComputeResourceHostConfigurationInput)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceHostVmkNicInfo struct { + ClusterComputeResourceHostVmkNicInfo []ClusterComputeResourceHostVmkNicInfo `xml:"ClusterComputeResourceHostVmkNicInfo,omitempty"` +} + +func init() { + t["ArrayOfClusterComputeResourceHostVmkNicInfo"] = reflect.TypeOf((*ArrayOfClusterComputeResourceHostVmkNicInfo)(nil)).Elem() +} + +type ArrayOfClusterComputeResourceValidationResultBase struct { + ClusterComputeResourceValidationResultBase []BaseClusterComputeResourceValidationResultBase `xml:"ClusterComputeResourceValidationResultBase,omitempty,typeattr"` +} + +func init() { + t["ArrayOfClusterComputeResourceValidationResultBase"] = reflect.TypeOf((*ArrayOfClusterComputeResourceValidationResultBase)(nil)).Elem() +} + type ArrayOfClusterDasAamNodeState struct { ClusterDasAamNodeState []ClusterDasAamNodeState `xml:"ClusterDasAamNodeState,omitempty"` } @@ -1989,6 +2083,14 @@ func init() { t["ArrayOfCryptoManagerKmipClusterStatus"] = reflect.TypeOf((*ArrayOfCryptoManagerKmipClusterStatus)(nil)).Elem() } +type ArrayOfCryptoManagerKmipCryptoKeyStatus struct { + CryptoManagerKmipCryptoKeyStatus []CryptoManagerKmipCryptoKeyStatus `xml:"CryptoManagerKmipCryptoKeyStatus,omitempty"` +} + +func init() { + t["ArrayOfCryptoManagerKmipCryptoKeyStatus"] = reflect.TypeOf((*ArrayOfCryptoManagerKmipCryptoKeyStatus)(nil)).Elem() +} + type ArrayOfCryptoManagerKmipServerStatus struct { CryptoManagerKmipServerStatus []CryptoManagerKmipServerStatus `xml:"CryptoManagerKmipServerStatus,omitempty"` } @@ -2093,6 +2195,14 @@ func init() { t["ArrayOfDasHeartbeatDatastoreInfo"] = reflect.TypeOf((*ArrayOfDasHeartbeatDatastoreInfo)(nil)).Elem() } +type ArrayOfDatacenterBasicConnectInfo struct { + DatacenterBasicConnectInfo []DatacenterBasicConnectInfo `xml:"DatacenterBasicConnectInfo,omitempty"` +} + +func init() { + t["ArrayOfDatacenterBasicConnectInfo"] = reflect.TypeOf((*ArrayOfDatacenterBasicConnectInfo)(nil)).Elem() +} + type ArrayOfDatacenterMismatchArgument struct { DatacenterMismatchArgument []DatacenterMismatchArgument `xml:"DatacenterMismatchArgument,omitempty"` } @@ -2165,6 +2275,14 @@ func init() { t["ArrayOfDistributedVirtualPortgroupInfo"] = reflect.TypeOf((*ArrayOfDistributedVirtualPortgroupInfo)(nil)).Elem() } +type ArrayOfDistributedVirtualPortgroupProblem struct { + DistributedVirtualPortgroupProblem []DistributedVirtualPortgroupProblem `xml:"DistributedVirtualPortgroupProblem,omitempty"` +} + +func init() { + t["ArrayOfDistributedVirtualPortgroupProblem"] = reflect.TypeOf((*ArrayOfDistributedVirtualPortgroupProblem)(nil)).Elem() +} + type ArrayOfDistributedVirtualSwitchHostMember struct { DistributedVirtualSwitchHostMember []DistributedVirtualSwitchHostMember `xml:"DistributedVirtualSwitchHostMember,omitempty"` } @@ -2189,6 +2307,14 @@ func init() { t["ArrayOfDistributedVirtualSwitchHostMemberPnicSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostMemberPnicSpec)(nil)).Elem() } +type ArrayOfDistributedVirtualSwitchHostMemberTransportZoneInfo struct { + DistributedVirtualSwitchHostMemberTransportZoneInfo []DistributedVirtualSwitchHostMemberTransportZoneInfo `xml:"DistributedVirtualSwitchHostMemberTransportZoneInfo,omitempty"` +} + +func init() { + t["ArrayOfDistributedVirtualSwitchHostMemberTransportZoneInfo"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostMemberTransportZoneInfo)(nil)).Elem() +} + type ArrayOfDistributedVirtualSwitchHostProductSpec struct { DistributedVirtualSwitchHostProductSpec []DistributedVirtualSwitchHostProductSpec `xml:"DistributedVirtualSwitchHostProductSpec,omitempty"` } @@ -2581,6 +2707,22 @@ func init() { t["ArrayOfFirewallProfileRulesetProfile"] = reflect.TypeOf((*ArrayOfFirewallProfileRulesetProfile)(nil)).Elem() } +type ArrayOfFolderFailedHostResult struct { + FolderFailedHostResult []FolderFailedHostResult `xml:"FolderFailedHostResult,omitempty"` +} + +func init() { + t["ArrayOfFolderFailedHostResult"] = reflect.TypeOf((*ArrayOfFolderFailedHostResult)(nil)).Elem() +} + +type ArrayOfFolderNewHostSpec struct { + FolderNewHostSpec []FolderNewHostSpec `xml:"FolderNewHostSpec,omitempty"` +} + +func init() { + t["ArrayOfFolderNewHostSpec"] = reflect.TypeOf((*ArrayOfFolderNewHostSpec)(nil)).Elem() +} + type ArrayOfGuestAliases struct { GuestAliases []GuestAliases `xml:"GuestAliases,omitempty"` } @@ -2629,6 +2771,14 @@ func init() { t["ArrayOfGuestInfoNamespaceGenerationInfo"] = reflect.TypeOf((*ArrayOfGuestInfoNamespaceGenerationInfo)(nil)).Elem() } +type ArrayOfGuestInfoVirtualDiskMapping struct { + GuestInfoVirtualDiskMapping []GuestInfoVirtualDiskMapping `xml:"GuestInfoVirtualDiskMapping,omitempty"` +} + +func init() { + t["ArrayOfGuestInfoVirtualDiskMapping"] = reflect.TypeOf((*ArrayOfGuestInfoVirtualDiskMapping)(nil)).Elem() +} + type ArrayOfGuestMappedAliases struct { GuestMappedAliases []GuestMappedAliases `xml:"GuestMappedAliases,omitempty"` } @@ -2733,6 +2883,22 @@ func init() { t["ArrayOfHostActiveDirectory"] = reflect.TypeOf((*ArrayOfHostActiveDirectory)(nil)).Elem() } +type ArrayOfHostAssignableHardwareBinding struct { + HostAssignableHardwareBinding []HostAssignableHardwareBinding `xml:"HostAssignableHardwareBinding,omitempty"` +} + +func init() { + t["ArrayOfHostAssignableHardwareBinding"] = reflect.TypeOf((*ArrayOfHostAssignableHardwareBinding)(nil)).Elem() +} + +type ArrayOfHostAssignableHardwareConfigAttributeOverride struct { + HostAssignableHardwareConfigAttributeOverride []HostAssignableHardwareConfigAttributeOverride `xml:"HostAssignableHardwareConfigAttributeOverride,omitempty"` +} + +func init() { + t["ArrayOfHostAssignableHardwareConfigAttributeOverride"] = reflect.TypeOf((*ArrayOfHostAssignableHardwareConfigAttributeOverride)(nil)).Elem() +} + type ArrayOfHostAuthenticationStoreInfo struct { HostAuthenticationStoreInfo []BaseHostAuthenticationStoreInfo `xml:"HostAuthenticationStoreInfo,omitempty,typeattr"` } @@ -2765,6 +2931,14 @@ func init() { t["ArrayOfHostConnectInfoNetworkInfo"] = reflect.TypeOf((*ArrayOfHostConnectInfoNetworkInfo)(nil)).Elem() } +type ArrayOfHostConnectSpec struct { + HostConnectSpec []HostConnectSpec `xml:"HostConnectSpec,omitempty"` +} + +func init() { + t["ArrayOfHostConnectSpec"] = reflect.TypeOf((*ArrayOfHostConnectSpec)(nil)).Elem() +} + type ArrayOfHostCpuIdInfo struct { HostCpuIdInfo []HostCpuIdInfo `xml:"HostCpuIdInfo,omitempty"` } @@ -3205,6 +3379,38 @@ func init() { t["ArrayOfHostNumericSensorInfo"] = reflect.TypeOf((*ArrayOfHostNumericSensorInfo)(nil)).Elem() } +type ArrayOfHostNvmeController struct { + HostNvmeController []HostNvmeController `xml:"HostNvmeController,omitempty"` +} + +func init() { + t["ArrayOfHostNvmeController"] = reflect.TypeOf((*ArrayOfHostNvmeController)(nil)).Elem() +} + +type ArrayOfHostNvmeDiscoveryLogEntry struct { + HostNvmeDiscoveryLogEntry []HostNvmeDiscoveryLogEntry `xml:"HostNvmeDiscoveryLogEntry,omitempty"` +} + +func init() { + t["ArrayOfHostNvmeDiscoveryLogEntry"] = reflect.TypeOf((*ArrayOfHostNvmeDiscoveryLogEntry)(nil)).Elem() +} + +type ArrayOfHostNvmeNamespace struct { + HostNvmeNamespace []HostNvmeNamespace `xml:"HostNvmeNamespace,omitempty"` +} + +func init() { + t["ArrayOfHostNvmeNamespace"] = reflect.TypeOf((*ArrayOfHostNvmeNamespace)(nil)).Elem() +} + +type ArrayOfHostNvmeTopologyInterface struct { + HostNvmeTopologyInterface []HostNvmeTopologyInterface `xml:"HostNvmeTopologyInterface,omitempty"` +} + +func init() { + t["ArrayOfHostNvmeTopologyInterface"] = reflect.TypeOf((*ArrayOfHostNvmeTopologyInterface)(nil)).Elem() +} + type ArrayOfHostOpaqueNetworkInfo struct { HostOpaqueNetworkInfo []HostOpaqueNetworkInfo `xml:"HostOpaqueNetworkInfo,omitempty"` } @@ -3437,6 +3643,14 @@ func init() { t["ArrayOfHostProxySwitchHostLagConfig"] = reflect.TypeOf((*ArrayOfHostProxySwitchHostLagConfig)(nil)).Elem() } +type ArrayOfHostRdmaDevice struct { + HostRdmaDevice []HostRdmaDevice `xml:"HostRdmaDevice,omitempty"` +} + +func init() { + t["ArrayOfHostRdmaDevice"] = reflect.TypeOf((*ArrayOfHostRdmaDevice)(nil)).Elem() +} + type ArrayOfHostRuntimeInfoNetStackInstanceRuntimeInfo struct { HostRuntimeInfoNetStackInstanceRuntimeInfo []HostRuntimeInfoNetStackInstanceRuntimeInfo `xml:"HostRuntimeInfoNetStackInstanceRuntimeInfo,omitempty"` } @@ -4149,6 +4363,14 @@ func init() { t["ArrayOfNvdimmInterleaveSetInfo"] = reflect.TypeOf((*ArrayOfNvdimmInterleaveSetInfo)(nil)).Elem() } +type ArrayOfNvdimmNamespaceDetails struct { + NvdimmNamespaceDetails []NvdimmNamespaceDetails `xml:"NvdimmNamespaceDetails,omitempty"` +} + +func init() { + t["ArrayOfNvdimmNamespaceDetails"] = reflect.TypeOf((*ArrayOfNvdimmNamespaceDetails)(nil)).Elem() +} + type ArrayOfNvdimmNamespaceInfo struct { NvdimmNamespaceInfo []NvdimmNamespaceInfo `xml:"NvdimmNamespaceInfo,omitempty"` } @@ -4909,6 +5131,14 @@ func init() { t["ArrayOfUpdateVirtualMachineFilesResultFailedVmFileInfo"] = reflect.TypeOf((*ArrayOfUpdateVirtualMachineFilesResultFailedVmFileInfo)(nil)).Elem() } +type ArrayOfUri struct { + Uri []string `xml:"uri,omitempty"` +} + +func init() { + t["ArrayOfUri"] = reflect.TypeOf((*ArrayOfUri)(nil)).Elem() +} + type ArrayOfUsbScanCodeSpecKeyEvent struct { UsbScanCodeSpecKeyEvent []UsbScanCodeSpecKeyEvent `xml:"UsbScanCodeSpecKeyEvent,omitempty"` } @@ -5253,6 +5483,14 @@ func init() { t["ArrayOfVirtualMachineConfigOptionDescriptor"] = reflect.TypeOf((*ArrayOfVirtualMachineConfigOptionDescriptor)(nil)).Elem() } +type ArrayOfVirtualMachineConfigSpec struct { + VirtualMachineConfigSpec []VirtualMachineConfigSpec `xml:"VirtualMachineConfigSpec,omitempty"` +} + +func init() { + t["ArrayOfVirtualMachineConfigSpec"] = reflect.TypeOf((*ArrayOfVirtualMachineConfigSpec)(nil)).Elem() +} + type ArrayOfVirtualMachineCpuIdInfoSpec struct { VirtualMachineCpuIdInfoSpec []VirtualMachineCpuIdInfoSpec `xml:"VirtualMachineCpuIdInfoSpec,omitempty"` } @@ -5293,6 +5531,14 @@ func init() { t["ArrayOfVirtualMachineDisplayTopology"] = reflect.TypeOf((*ArrayOfVirtualMachineDisplayTopology)(nil)).Elem() } +type ArrayOfVirtualMachineDynamicPassthroughInfo struct { + VirtualMachineDynamicPassthroughInfo []VirtualMachineDynamicPassthroughInfo `xml:"VirtualMachineDynamicPassthroughInfo,omitempty"` +} + +func init() { + t["ArrayOfVirtualMachineDynamicPassthroughInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineDynamicPassthroughInfo)(nil)).Elem() +} + type ArrayOfVirtualMachineFeatureRequirement struct { VirtualMachineFeatureRequirement []VirtualMachineFeatureRequirement `xml:"VirtualMachineFeatureRequirement,omitempty"` } @@ -5437,6 +5683,14 @@ func init() { t["ArrayOfVirtualMachinePciSharedGpuPassthroughInfo"] = reflect.TypeOf((*ArrayOfVirtualMachinePciSharedGpuPassthroughInfo)(nil)).Elem() } +type ArrayOfVirtualMachinePrecisionClockInfo struct { + VirtualMachinePrecisionClockInfo []VirtualMachinePrecisionClockInfo `xml:"VirtualMachinePrecisionClockInfo,omitempty"` +} + +func init() { + t["ArrayOfVirtualMachinePrecisionClockInfo"] = reflect.TypeOf((*ArrayOfVirtualMachinePrecisionClockInfo)(nil)).Elem() +} + type ArrayOfVirtualMachineProfileDetailsDiskProfileDetails struct { VirtualMachineProfileDetailsDiskProfileDetails []VirtualMachineProfileDetailsDiskProfileDetails `xml:"VirtualMachineProfileDetailsDiskProfileDetails,omitempty"` } @@ -5557,6 +5811,14 @@ func init() { t["ArrayOfVirtualMachineVMCIDeviceFilterSpec"] = reflect.TypeOf((*ArrayOfVirtualMachineVMCIDeviceFilterSpec)(nil)).Elem() } +type ArrayOfVirtualMachineVcpuConfig struct { + VirtualMachineVcpuConfig []VirtualMachineVcpuConfig `xml:"VirtualMachineVcpuConfig,omitempty"` +} + +func init() { + t["ArrayOfVirtualMachineVcpuConfig"] = reflect.TypeOf((*ArrayOfVirtualMachineVcpuConfig)(nil)).Elem() +} + type ArrayOfVirtualNicManagerNetConfig struct { VirtualNicManagerNetConfig []VirtualNicManagerNetConfig `xml:"VirtualNicManagerNetConfig,omitempty"` } @@ -5565,6 +5827,14 @@ func init() { t["ArrayOfVirtualNicManagerNetConfig"] = reflect.TypeOf((*ArrayOfVirtualNicManagerNetConfig)(nil)).Elem() } +type ArrayOfVirtualPCIPassthroughAllowedDevice struct { + VirtualPCIPassthroughAllowedDevice []VirtualPCIPassthroughAllowedDevice `xml:"VirtualPCIPassthroughAllowedDevice,omitempty"` +} + +func init() { + t["ArrayOfVirtualPCIPassthroughAllowedDevice"] = reflect.TypeOf((*ArrayOfVirtualPCIPassthroughAllowedDevice)(nil)).Elem() +} + type ArrayOfVirtualSCSISharing struct { VirtualSCSISharing []VirtualSCSISharing `xml:"VirtualSCSISharing,omitempty"` } @@ -6146,6 +6416,7 @@ type BaseConfigInfoFileBackingInfo struct { BackingObjectId string `xml:"backingObjectId,omitempty"` Parent BaseBaseConfigInfoFileBackingInfo `xml:"parent,omitempty,typeattr"` DeltaSizeInMB int64 `xml:"deltaSizeInMB,omitempty"` + KeyId *CryptoKeyId `xml:"keyId,omitempty"` } func init() { @@ -6163,6 +6434,69 @@ func init() { t["BaseConfigInfoRawDiskMappingBackingInfo"] = reflect.TypeOf((*BaseConfigInfoRawDiskMappingBackingInfo)(nil)).Elem() } +type BatchAddHostsToClusterRequestType struct { + This ManagedObjectReference `xml:"_this"` + Cluster ManagedObjectReference `xml:"cluster"` + NewHosts []FolderNewHostSpec `xml:"newHosts,omitempty"` + ExistingHosts []ManagedObjectReference `xml:"existingHosts,omitempty"` + CompResSpec BaseComputeResourceConfigSpec `xml:"compResSpec,omitempty,typeattr"` + DesiredState string `xml:"desiredState,omitempty"` +} + +func init() { + t["BatchAddHostsToClusterRequestType"] = reflect.TypeOf((*BatchAddHostsToClusterRequestType)(nil)).Elem() +} + +type BatchAddHostsToCluster_Task BatchAddHostsToClusterRequestType + +func init() { + t["BatchAddHostsToCluster_Task"] = reflect.TypeOf((*BatchAddHostsToCluster_Task)(nil)).Elem() +} + +type BatchAddHostsToCluster_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + +type BatchAddStandaloneHostsRequestType struct { + This ManagedObjectReference `xml:"_this"` + NewHosts []FolderNewHostSpec `xml:"newHosts,omitempty"` + CompResSpec BaseComputeResourceConfigSpec `xml:"compResSpec,omitempty,typeattr"` + AddConnected bool `xml:"addConnected"` +} + +func init() { + t["BatchAddStandaloneHostsRequestType"] = reflect.TypeOf((*BatchAddStandaloneHostsRequestType)(nil)).Elem() +} + +type BatchAddStandaloneHosts_Task BatchAddStandaloneHostsRequestType + +func init() { + t["BatchAddStandaloneHosts_Task"] = reflect.TypeOf((*BatchAddStandaloneHosts_Task)(nil)).Elem() +} + +type BatchAddStandaloneHosts_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + +type BatchQueryConnectInfo BatchQueryConnectInfoRequestType + +func init() { + t["BatchQueryConnectInfo"] = reflect.TypeOf((*BatchQueryConnectInfo)(nil)).Elem() +} + +type BatchQueryConnectInfoRequestType struct { + This ManagedObjectReference `xml:"_this"` + HostSpecs []HostConnectSpec `xml:"hostSpecs,omitempty"` +} + +func init() { + t["BatchQueryConnectInfoRequestType"] = reflect.TypeOf((*BatchQueryConnectInfoRequestType)(nil)).Elem() +} + +type BatchQueryConnectInfoResponse struct { + Returnval []DatacenterBasicConnectInfo `xml:"returnval,omitempty"` +} + type BatchResult struct { DynamicData @@ -6879,6 +7213,11 @@ type Capability struct { SupportedEVCMode []EVCMode `xml:"supportedEVCMode,omitempty"` NetworkBackupAndRestoreSupported *bool `xml:"networkBackupAndRestoreSupported"` FtDrsWithoutEvcSupported *bool `xml:"ftDrsWithoutEvcSupported"` + HciWorkflowSupported *bool `xml:"hciWorkflowSupported"` + ComputePolicyVersion int32 `xml:"computePolicyVersion,omitempty"` + ClusterPlacementSupported *bool `xml:"clusterPlacementSupported"` + LifecycleManagementSupported *bool `xml:"lifecycleManagementSupported"` + ScalableSharesSupported *bool `xml:"scalableSharesSupported"` } func init() { @@ -7058,6 +7397,26 @@ func init() { type ChangeOwnerResponse struct { } +type ChangePassword ChangePasswordRequestType + +func init() { + t["ChangePassword"] = reflect.TypeOf((*ChangePassword)(nil)).Elem() +} + +type ChangePasswordRequestType struct { + This ManagedObjectReference `xml:"_this"` + User string `xml:"user"` + OldPassword string `xml:"oldPassword"` + NewPassword string `xml:"newPassword"` +} + +func init() { + t["ChangePasswordRequestType"] = reflect.TypeOf((*ChangePasswordRequestType)(nil)).Elem() +} + +type ChangePasswordResponse struct { +} + type ChangesInfoEventArgument struct { DynamicData @@ -7724,23 +8083,190 @@ func init() { t["ClusterComplianceCheckedEvent"] = reflect.TypeOf((*ClusterComplianceCheckedEvent)(nil)).Elem() } +type ClusterComputeResourceClusterConfigResult struct { + DynamicData + + FailedHosts []FolderFailedHostResult `xml:"failedHosts,omitempty"` + ConfiguredHosts []ManagedObjectReference `xml:"configuredHosts,omitempty"` +} + +func init() { + t["ClusterComputeResourceClusterConfigResult"] = reflect.TypeOf((*ClusterComputeResourceClusterConfigResult)(nil)).Elem() +} + +type ClusterComputeResourceDVSConfigurationValidation struct { + ClusterComputeResourceValidationResultBase + + IsDvsValid bool `xml:"isDvsValid"` + IsDvpgValid bool `xml:"isDvpgValid"` +} + +func init() { + t["ClusterComputeResourceDVSConfigurationValidation"] = reflect.TypeOf((*ClusterComputeResourceDVSConfigurationValidation)(nil)).Elem() +} + +type ClusterComputeResourceDVSSetting struct { + DynamicData + + DvSwitch ManagedObjectReference `xml:"dvSwitch"` + PnicDevices []string `xml:"pnicDevices,omitempty"` + DvPortgroupSetting []ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping `xml:"dvPortgroupSetting,omitempty"` +} + +func init() { + t["ClusterComputeResourceDVSSetting"] = reflect.TypeOf((*ClusterComputeResourceDVSSetting)(nil)).Elem() +} + +type ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping struct { + DynamicData + + DvPortgroup ManagedObjectReference `xml:"dvPortgroup"` + Service string `xml:"service"` +} + +func init() { + t["ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping"] = reflect.TypeOf((*ClusterComputeResourceDVSSettingDVPortgroupToServiceMapping)(nil)).Elem() +} + +type ClusterComputeResourceDvsProfile struct { + DynamicData + + DvsName string `xml:"dvsName,omitempty"` + DvSwitch *ManagedObjectReference `xml:"dvSwitch,omitempty"` + PnicDevices []string `xml:"pnicDevices,omitempty"` + DvPortgroupMapping []ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping `xml:"dvPortgroupMapping,omitempty"` +} + +func init() { + t["ClusterComputeResourceDvsProfile"] = reflect.TypeOf((*ClusterComputeResourceDvsProfile)(nil)).Elem() +} + +type ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping struct { + DynamicData + + DvPortgroupSpec *DVPortgroupConfigSpec `xml:"dvPortgroupSpec,omitempty"` + DvPortgroup *ManagedObjectReference `xml:"dvPortgroup,omitempty"` + Service string `xml:"service"` +} + +func init() { + t["ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping"] = reflect.TypeOf((*ClusterComputeResourceDvsProfileDVPortgroupSpecToServiceMapping)(nil)).Elem() +} + +type ClusterComputeResourceHCIConfigInfo struct { + DynamicData + + WorkflowState string `xml:"workflowState"` + DvsSetting []ClusterComputeResourceDVSSetting `xml:"dvsSetting,omitempty"` + ConfiguredHosts []ManagedObjectReference `xml:"configuredHosts,omitempty"` + HostConfigProfile *ClusterComputeResourceHostConfigurationProfile `xml:"hostConfigProfile,omitempty"` +} + +func init() { + t["ClusterComputeResourceHCIConfigInfo"] = reflect.TypeOf((*ClusterComputeResourceHCIConfigInfo)(nil)).Elem() +} + +type ClusterComputeResourceHCIConfigSpec struct { + DynamicData + + DvsProf []ClusterComputeResourceDvsProfile `xml:"dvsProf,omitempty"` + HostConfigProfile *ClusterComputeResourceHostConfigurationProfile `xml:"hostConfigProfile,omitempty"` + VSanConfigSpec *SDDCBase `xml:"vSanConfigSpec,omitempty"` + VcProf *ClusterComputeResourceVCProfile `xml:"vcProf,omitempty"` +} + +func init() { + t["ClusterComputeResourceHCIConfigSpec"] = reflect.TypeOf((*ClusterComputeResourceHCIConfigSpec)(nil)).Elem() +} + +type ClusterComputeResourceHostConfigurationInput struct { + DynamicData + + Host ManagedObjectReference `xml:"host"` + HostVmkNics []ClusterComputeResourceHostVmkNicInfo `xml:"hostVmkNics,omitempty"` + AllowedInNonMaintenanceMode *bool `xml:"allowedInNonMaintenanceMode"` +} + +func init() { + t["ClusterComputeResourceHostConfigurationInput"] = reflect.TypeOf((*ClusterComputeResourceHostConfigurationInput)(nil)).Elem() +} + +type ClusterComputeResourceHostConfigurationProfile struct { + DynamicData + + DateTimeConfig *HostDateTimeConfig `xml:"dateTimeConfig,omitempty"` + LockdownMode HostLockdownMode `xml:"lockdownMode,omitempty"` +} + +func init() { + t["ClusterComputeResourceHostConfigurationProfile"] = reflect.TypeOf((*ClusterComputeResourceHostConfigurationProfile)(nil)).Elem() +} + +type ClusterComputeResourceHostConfigurationValidation struct { + ClusterComputeResourceValidationResultBase + + Host ManagedObjectReference `xml:"host"` + IsDvsSettingValid *bool `xml:"isDvsSettingValid"` + IsVmknicSettingValid *bool `xml:"isVmknicSettingValid"` + IsNtpSettingValid *bool `xml:"isNtpSettingValid"` + IsLockdownModeValid *bool `xml:"isLockdownModeValid"` +} + +func init() { + t["ClusterComputeResourceHostConfigurationValidation"] = reflect.TypeOf((*ClusterComputeResourceHostConfigurationValidation)(nil)).Elem() +} + +type ClusterComputeResourceHostVmkNicInfo struct { + DynamicData + + NicSpec HostVirtualNicSpec `xml:"nicSpec"` + Service string `xml:"service"` +} + +func init() { + t["ClusterComputeResourceHostVmkNicInfo"] = reflect.TypeOf((*ClusterComputeResourceHostVmkNicInfo)(nil)).Elem() +} + type ClusterComputeResourceSummary struct { ComputeResourceSummary - CurrentFailoverLevel int32 `xml:"currentFailoverLevel"` - AdmissionControlInfo BaseClusterDasAdmissionControlInfo `xml:"admissionControlInfo,omitempty,typeattr"` - NumVmotions int32 `xml:"numVmotions"` - TargetBalance int32 `xml:"targetBalance,omitempty"` - CurrentBalance int32 `xml:"currentBalance,omitempty"` - UsageSummary *ClusterUsageSummary `xml:"usageSummary,omitempty"` - CurrentEVCModeKey string `xml:"currentEVCModeKey,omitempty"` - DasData BaseClusterDasData `xml:"dasData,omitempty,typeattr"` + CurrentFailoverLevel int32 `xml:"currentFailoverLevel"` + AdmissionControlInfo BaseClusterDasAdmissionControlInfo `xml:"admissionControlInfo,omitempty,typeattr"` + NumVmotions int32 `xml:"numVmotions"` + TargetBalance int32 `xml:"targetBalance,omitempty"` + CurrentBalance int32 `xml:"currentBalance,omitempty"` + DrsScore int32 `xml:"drsScore,omitempty"` + NumVmsPerDrsScoreBucket []int32 `xml:"numVmsPerDrsScoreBucket,omitempty"` + UsageSummary *ClusterUsageSummary `xml:"usageSummary,omitempty"` + CurrentEVCModeKey string `xml:"currentEVCModeKey,omitempty"` + DasData BaseClusterDasData `xml:"dasData,omitempty,typeattr"` } func init() { t["ClusterComputeResourceSummary"] = reflect.TypeOf((*ClusterComputeResourceSummary)(nil)).Elem() } +type ClusterComputeResourceVCProfile struct { + DynamicData + + ClusterSpec *ClusterConfigSpecEx `xml:"clusterSpec,omitempty"` + EvcModeKey string `xml:"evcModeKey,omitempty"` +} + +func init() { + t["ClusterComputeResourceVCProfile"] = reflect.TypeOf((*ClusterComputeResourceVCProfile)(nil)).Elem() +} + +type ClusterComputeResourceValidationResultBase struct { + DynamicData + + Info []LocalizableMessage `xml:"info,omitempty"` +} + +func init() { + t["ClusterComputeResourceValidationResultBase"] = reflect.TypeOf((*ClusterComputeResourceValidationResultBase)(nil)).Elem() +} + type ClusterConfigInfo struct { DynamicData @@ -7772,6 +8298,7 @@ type ClusterConfigInfoEx struct { Group []BaseClusterGroupInfo `xml:"group,omitempty,typeattr"` InfraUpdateHaConfig *ClusterInfraUpdateHaConfigInfo `xml:"infraUpdateHaConfig,omitempty"` ProactiveDrsConfig *ClusterProactiveDrsConfigInfo `xml:"proactiveDrsConfig,omitempty"` + CryptoConfig *ClusterCryptoConfigInfo `xml:"cryptoConfig,omitempty"` } func init() { @@ -7809,6 +8336,8 @@ type ClusterConfigSpecEx struct { GroupSpec []ClusterGroupSpec `xml:"groupSpec,omitempty"` InfraUpdateHaConfig *ClusterInfraUpdateHaConfigInfo `xml:"infraUpdateHaConfig,omitempty"` ProactiveDrsConfig *ClusterProactiveDrsConfigInfo `xml:"proactiveDrsConfig,omitempty"` + InHciWorkflow *bool `xml:"inHciWorkflow"` + CryptoConfig *ClusterCryptoConfigInfo `xml:"cryptoConfig,omitempty"` } func init() { @@ -7825,6 +8354,16 @@ func init() { t["ClusterCreatedEvent"] = reflect.TypeOf((*ClusterCreatedEvent)(nil)).Elem() } +type ClusterCryptoConfigInfo struct { + DynamicData + + CryptoMode string `xml:"cryptoMode,omitempty"` +} + +func init() { + t["ClusterCryptoConfigInfo"] = reflect.TypeOf((*ClusterCryptoConfigInfo)(nil)).Elem() +} + type ClusterDasAamHostInfo struct { ClusterDasHostInfo @@ -7860,7 +8399,7 @@ func init() { type ClusterDasAdmissionControlPolicy struct { DynamicData - ResourceReductionToToleratePercent int32 `xml:"resourceReductionToToleratePercent,omitempty"` + ResourceReductionToToleratePercent *int32 `xml:"resourceReductionToToleratePercent"` } func init() { @@ -8110,6 +8649,7 @@ type ClusterDrsConfigInfo struct { EnableVmBehaviorOverrides *bool `xml:"enableVmBehaviorOverrides"` DefaultVmBehavior DrsBehavior `xml:"defaultVmBehavior,omitempty"` VmotionRate int32 `xml:"vmotionRate,omitempty"` + ScaleDescendantsShares string `xml:"scaleDescendantsShares,omitempty"` Option []BaseOptionValue `xml:"option,omitempty,typeattr"` } @@ -8945,9 +9485,10 @@ func init() { type ComputeResourceConfigSpec struct { DynamicData - VmSwapPlacement string `xml:"vmSwapPlacement,omitempty"` - SpbmEnabled *bool `xml:"spbmEnabled"` - DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` + VmSwapPlacement string `xml:"vmSwapPlacement,omitempty"` + SpbmEnabled *bool `xml:"spbmEnabled"` + DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` + DesiredSoftwareSpec *DesiredSoftwareSpec `xml:"desiredSoftwareSpec,omitempty"` } func init() { @@ -9013,6 +9554,7 @@ type ConfigTarget struct { NumCpus int32 `xml:"numCpus"` NumCpuCores int32 `xml:"numCpuCores"` NumNumaNodes int32 `xml:"numNumaNodes"` + MaxCpusPerHost int32 `xml:"maxCpusPerHost,omitempty"` SmcPresent *bool `xml:"smcPresent"` Datastore []VirtualMachineDatastoreInfo `xml:"datastore,omitempty"` Network []VirtualMachineNetworkInfo `xml:"network,omitempty"` @@ -9030,6 +9572,7 @@ type ConfigTarget struct { ScsiDisk []VirtualMachineScsiDiskDeviceInfo `xml:"scsiDisk,omitempty"` IdeDisk []VirtualMachineIdeDiskDeviceInfo `xml:"ideDisk,omitempty"` MaxMemMBOptimalPerf int32 `xml:"maxMemMBOptimalPerf"` + SupportedMaxMemMB int32 `xml:"supportedMaxMemMB,omitempty"` ResourcePool *ResourcePoolRuntimeInfo `xml:"resourcePool,omitempty"` AutoVmotion *bool `xml:"autoVmotion"` PciPassthrough []BaseVirtualMachinePciPassthroughInfo `xml:"pciPassthrough,omitempty,typeattr"` @@ -9037,6 +9580,9 @@ type ConfigTarget struct { VFlashModule []VirtualMachineVFlashModuleInfo `xml:"vFlashModule,omitempty"` SharedGpuPassthroughTypes []VirtualMachinePciSharedGpuPassthroughInfo `xml:"sharedGpuPassthroughTypes,omitempty"` AvailablePersistentMemoryReservationMB int64 `xml:"availablePersistentMemoryReservationMB,omitempty"` + DynamicPassthrough []VirtualMachineDynamicPassthroughInfo `xml:"dynamicPassthrough,omitempty"` + SgxTargetInfo *VirtualMachineSgxTargetInfo `xml:"sgxTargetInfo,omitempty"` + PrecisionClockInfo []VirtualMachinePrecisionClockInfo `xml:"precisionClockInfo,omitempty"` } func init() { @@ -9119,6 +9665,26 @@ type ConfigureEvcMode_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type ConfigureHCIRequestType struct { + This ManagedObjectReference `xml:"_this"` + ClusterSpec ClusterComputeResourceHCIConfigSpec `xml:"clusterSpec"` + HostInputs []ClusterComputeResourceHostConfigurationInput `xml:"hostInputs,omitempty"` +} + +func init() { + t["ConfigureHCIRequestType"] = reflect.TypeOf((*ConfigureHCIRequestType)(nil)).Elem() +} + +type ConfigureHCI_Task ConfigureHCIRequestType + +func init() { + t["ConfigureHCI_Task"] = reflect.TypeOf((*ConfigureHCI_Task)(nil)).Elem() +} + +type ConfigureHCI_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type ConfigureHostCacheRequestType struct { This ManagedObjectReference `xml:"_this"` Spec HostCacheConfigurationSpec `xml:"spec"` @@ -9259,6 +9825,24 @@ func init() { t["ConflictingDatastoreFoundFault"] = reflect.TypeOf((*ConflictingDatastoreFoundFault)(nil)).Elem() } +type ConnectNvmeController ConnectNvmeControllerRequestType + +func init() { + t["ConnectNvmeController"] = reflect.TypeOf((*ConnectNvmeController)(nil)).Elem() +} + +type ConnectNvmeControllerRequestType struct { + This ManagedObjectReference `xml:"_this"` + ConnectSpec HostNvmeConnectSpec `xml:"connectSpec"` +} + +func init() { + t["ConnectNvmeControllerRequestType"] = reflect.TypeOf((*ConnectNvmeControllerRequestType)(nil)).Elem() +} + +type ConnectNvmeControllerResponse struct { +} + type ConnectedIso struct { OvfExport @@ -10023,6 +10607,43 @@ type CreateNvdimmNamespace_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type CreateNvdimmPMemNamespaceRequestType struct { + This ManagedObjectReference `xml:"_this"` + CreateSpec NvdimmPMemNamespaceCreateSpec `xml:"createSpec"` +} + +func init() { + t["CreateNvdimmPMemNamespaceRequestType"] = reflect.TypeOf((*CreateNvdimmPMemNamespaceRequestType)(nil)).Elem() +} + +type CreateNvdimmPMemNamespace_Task CreateNvdimmPMemNamespaceRequestType + +func init() { + t["CreateNvdimmPMemNamespace_Task"] = reflect.TypeOf((*CreateNvdimmPMemNamespace_Task)(nil)).Elem() +} + +type CreateNvdimmPMemNamespace_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + +type CreateNvmeOverRdmaAdapter CreateNvmeOverRdmaAdapterRequestType + +func init() { + t["CreateNvmeOverRdmaAdapter"] = reflect.TypeOf((*CreateNvmeOverRdmaAdapter)(nil)).Elem() +} + +type CreateNvmeOverRdmaAdapterRequestType struct { + This ManagedObjectReference `xml:"_this"` + RdmaDeviceName string `xml:"rdmaDeviceName"` +} + +func init() { + t["CreateNvmeOverRdmaAdapterRequestType"] = reflect.TypeOf((*CreateNvmeOverRdmaAdapterRequestType)(nil)).Elem() +} + +type CreateNvmeOverRdmaAdapterResponse struct { +} + type CreateObjectScheduledTask CreateObjectScheduledTaskRequestType func init() { @@ -10516,6 +11137,23 @@ func init() { t["CryptoKeyResult"] = reflect.TypeOf((*CryptoKeyResult)(nil)).Elem() } +type CryptoManagerHostDisable CryptoManagerHostDisableRequestType + +func init() { + t["CryptoManagerHostDisable"] = reflect.TypeOf((*CryptoManagerHostDisable)(nil)).Elem() +} + +type CryptoManagerHostDisableRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["CryptoManagerHostDisableRequestType"] = reflect.TypeOf((*CryptoManagerHostDisableRequestType)(nil)).Elem() +} + +type CryptoManagerHostDisableResponse struct { +} + type CryptoManagerHostEnable CryptoManagerHostEnableRequestType func init() { @@ -10573,6 +11211,8 @@ type CryptoManagerKmipClusterStatus struct { DynamicData ClusterId KeyProviderId `xml:"clusterId"` + OverallStatus ManagedEntityStatus `xml:"overallStatus,omitempty"` + ManagementType string `xml:"managementType,omitempty"` Servers []CryptoManagerKmipServerStatus `xml:"servers"` ClientCertInfo *CryptoManagerKmipCertificateInfo `xml:"clientCertInfo,omitempty"` } @@ -10581,6 +11221,21 @@ func init() { t["CryptoManagerKmipClusterStatus"] = reflect.TypeOf((*CryptoManagerKmipClusterStatus)(nil)).Elem() } +type CryptoManagerKmipCryptoKeyStatus struct { + DynamicData + + KeyId CryptoKeyId `xml:"keyId"` + KeyAvailable *bool `xml:"keyAvailable"` + Reason string `xml:"reason,omitempty"` + EncryptedVMs []ManagedObjectReference `xml:"encryptedVMs,omitempty"` + AffectedHosts []ManagedObjectReference `xml:"affectedHosts,omitempty"` + ReferencedByTags []string `xml:"referencedByTags,omitempty"` +} + +func init() { + t["CryptoManagerKmipCryptoKeyStatus"] = reflect.TypeOf((*CryptoManagerKmipCryptoKeyStatus)(nil)).Elem() +} + type CryptoManagerKmipServerCertInfo struct { DynamicData @@ -10879,6 +11534,8 @@ func init() { type CustomizationFailed struct { CustomizationEvent + + Reason string `xml:"reason,omitempty"` } func init() { @@ -11064,6 +11721,7 @@ type CustomizationLinuxPrep struct { Domain string `xml:"domain"` TimeZone string `xml:"timeZone,omitempty"` HwClockUTC *bool `xml:"hwClockUTC"` + ScriptText string `xml:"scriptText,omitempty"` } func init() { @@ -11311,6 +11969,28 @@ func init() { t["CustomizationWinOptions"] = reflect.TypeOf((*CustomizationWinOptions)(nil)).Elem() } +type CustomizeGuestRequestType struct { + This ManagedObjectReference `xml:"_this"` + Vm ManagedObjectReference `xml:"vm"` + Auth BaseGuestAuthentication `xml:"auth,typeattr"` + Spec CustomizationSpec `xml:"spec"` + ConfigParams []BaseOptionValue `xml:"configParams,omitempty,typeattr"` +} + +func init() { + t["CustomizeGuestRequestType"] = reflect.TypeOf((*CustomizeGuestRequestType)(nil)).Elem() +} + +type CustomizeGuest_Task CustomizeGuestRequestType + +func init() { + t["CustomizeGuest_Task"] = reflect.TypeOf((*CustomizeGuest_Task)(nil)).Elem() +} + +type CustomizeGuest_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type CustomizeVMRequestType struct { This ManagedObjectReference `xml:"_this"` Spec CustomizationSpec `xml:"spec"` @@ -11433,6 +12113,7 @@ type DVPortgroupConfigInfo struct { DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,omitempty,typeattr"` Description string `xml:"description,omitempty"` Type string `xml:"type"` + BackingType string `xml:"backingType,omitempty"` Policy BaseDVPortgroupPolicy `xml:"policy,typeattr"` PortNameFormat string `xml:"portNameFormat,omitempty"` Scope []ManagedObjectReference `xml:"scope,omitempty"` @@ -11441,6 +12122,10 @@ type DVPortgroupConfigInfo struct { AutoExpand *bool `xml:"autoExpand"` VmVnicNetworkResourcePoolKey string `xml:"vmVnicNetworkResourcePoolKey,omitempty"` Uplink *bool `xml:"uplink"` + TransportZoneUuid string `xml:"transportZoneUuid,omitempty"` + TransportZoneName string `xml:"transportZoneName,omitempty"` + LogicalSwitchUuid string `xml:"logicalSwitchUuid,omitempty"` + SegmentId string `xml:"segmentId,omitempty"` } func init() { @@ -11457,11 +12142,16 @@ type DVPortgroupConfigSpec struct { DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,omitempty,typeattr"` Description string `xml:"description,omitempty"` Type string `xml:"type,omitempty"` + BackingType string `xml:"backingType,omitempty"` Scope []ManagedObjectReference `xml:"scope,omitempty"` Policy BaseDVPortgroupPolicy `xml:"policy,omitempty,typeattr"` VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` AutoExpand *bool `xml:"autoExpand"` VmVnicNetworkResourcePoolKey string `xml:"vmVnicNetworkResourcePoolKey,omitempty"` + TransportZoneUuid string `xml:"transportZoneUuid,omitempty"` + TransportZoneName string `xml:"transportZoneName,omitempty"` + LogicalSwitchUuid string `xml:"logicalSwitchUuid,omitempty"` + SegmentId string `xml:"segmentId,omitempty"` } func init() { @@ -12187,6 +12877,23 @@ func init() { t["DatabaseSizeParam"] = reflect.TypeOf((*DatabaseSizeParam)(nil)).Elem() } +type DatacenterBasicConnectInfo struct { + DynamicData + + Hostname string `xml:"hostname,omitempty"` + Error *LocalizedMethodFault `xml:"error,omitempty"` + ServerIp string `xml:"serverIp,omitempty"` + NumVm int32 `xml:"numVm,omitempty"` + NumPoweredOnVm int32 `xml:"numPoweredOnVm,omitempty"` + HostProductInfo *AboutInfo `xml:"hostProductInfo,omitempty"` + HardwareVendor string `xml:"hardwareVendor,omitempty"` + HardwareModel string `xml:"hardwareModel,omitempty"` +} + +func init() { + t["DatacenterBasicConnectInfo"] = reflect.TypeOf((*DatacenterBasicConnectInfo)(nil)).Elem() +} + type DatacenterConfigInfo struct { DynamicData @@ -12288,6 +12995,7 @@ type DatastoreCapability struct { VsanSparseSupported *bool `xml:"vsanSparseSupported"` UpitSupported *bool `xml:"upitSupported"` VmdkExpandSupported *bool `xml:"vmdkExpandSupported"` + ClusteredVmdkSupported *bool `xml:"clusteredVmdkSupported"` } func init() { @@ -12459,6 +13167,7 @@ type DatastoreInfo struct { MaxMemoryFileSize int64 `xml:"maxMemoryFileSize,omitempty"` Timestamp *time.Time `xml:"timestamp"` ContainerId string `xml:"containerId,omitempty"` + AliasOf string `xml:"aliasOf,omitempty"` } func init() { @@ -13069,6 +13778,38 @@ func init() { type DeselectVnicResponse struct { } +type DesiredSoftwareSpec struct { + DynamicData + + BaseImageSpec DesiredSoftwareSpecBaseImageSpec `xml:"baseImageSpec"` + VendorAddOnSpec *DesiredSoftwareSpecVendorAddOnSpec `xml:"vendorAddOnSpec,omitempty"` +} + +func init() { + t["DesiredSoftwareSpec"] = reflect.TypeOf((*DesiredSoftwareSpec)(nil)).Elem() +} + +type DesiredSoftwareSpecBaseImageSpec struct { + DynamicData + + Version string `xml:"version"` +} + +func init() { + t["DesiredSoftwareSpecBaseImageSpec"] = reflect.TypeOf((*DesiredSoftwareSpecBaseImageSpec)(nil)).Elem() +} + +type DesiredSoftwareSpecVendorAddOnSpec struct { + DynamicData + + Name string `xml:"name"` + Version string `xml:"version"` +} + +func init() { + t["DesiredSoftwareSpecVendorAddOnSpec"] = reflect.TypeOf((*DesiredSoftwareSpecVendorAddOnSpec)(nil)).Elem() +} + type DestinationSwitchFull struct { CannotAccessNetwork } @@ -13575,6 +14316,43 @@ func init() { t["DisableAdminNotSupportedFault"] = reflect.TypeOf((*DisableAdminNotSupportedFault)(nil)).Elem() } +type DisableAlarm DisableAlarmRequestType + +func init() { + t["DisableAlarm"] = reflect.TypeOf((*DisableAlarm)(nil)).Elem() +} + +type DisableAlarmRequestType struct { + This ManagedObjectReference `xml:"_this"` + Alarm ManagedObjectReference `xml:"alarm"` + Entity ManagedObjectReference `xml:"entity"` +} + +func init() { + t["DisableAlarmRequestType"] = reflect.TypeOf((*DisableAlarmRequestType)(nil)).Elem() +} + +type DisableAlarmResponse struct { +} + +type DisableClusteredVmdkSupport DisableClusteredVmdkSupportRequestType + +func init() { + t["DisableClusteredVmdkSupport"] = reflect.TypeOf((*DisableClusteredVmdkSupport)(nil)).Elem() +} + +type DisableClusteredVmdkSupportRequestType struct { + This ManagedObjectReference `xml:"_this"` + Datastore ManagedObjectReference `xml:"datastore"` +} + +func init() { + t["DisableClusteredVmdkSupportRequestType"] = reflect.TypeOf((*DisableClusteredVmdkSupportRequestType)(nil)).Elem() +} + +type DisableClusteredVmdkSupportResponse struct { +} + type DisableEvcModeRequestType struct { This ManagedObjectReference `xml:"_this"` } @@ -13784,6 +14562,24 @@ type DisconnectHost_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type DisconnectNvmeController DisconnectNvmeControllerRequestType + +func init() { + t["DisconnectNvmeController"] = reflect.TypeOf((*DisconnectNvmeController)(nil)).Elem() +} + +type DisconnectNvmeControllerRequestType struct { + This ManagedObjectReference `xml:"_this"` + DisconnectSpec HostNvmeDisconnectSpec `xml:"disconnectSpec"` +} + +func init() { + t["DisconnectNvmeControllerRequestType"] = reflect.TypeOf((*DisconnectNvmeControllerRequestType)(nil)).Elem() +} + +type DisconnectNvmeControllerResponse struct { +} + type DisconnectedHostsBlockingEVC struct { EVCConfigFault } @@ -13816,6 +14612,25 @@ func init() { type DiscoverFcoeHbasResponse struct { } +type DiscoverNvmeControllers DiscoverNvmeControllersRequestType + +func init() { + t["DiscoverNvmeControllers"] = reflect.TypeOf((*DiscoverNvmeControllers)(nil)).Elem() +} + +type DiscoverNvmeControllersRequestType struct { + This ManagedObjectReference `xml:"_this"` + DiscoverSpec HostNvmeDiscoverSpec `xml:"discoverSpec"` +} + +func init() { + t["DiscoverNvmeControllersRequestType"] = reflect.TypeOf((*DiscoverNvmeControllersRequestType)(nil)).Elem() +} + +type DiscoverNvmeControllersResponse struct { + Returnval HostNvmeDiscoveryLog `xml:"returnval"` +} + type DiskChangeExtent struct { DynamicData @@ -13839,6 +14654,17 @@ func init() { t["DiskChangeInfo"] = reflect.TypeOf((*DiskChangeInfo)(nil)).Elem() } +type DiskCryptoSpec struct { + DynamicData + + Parent *DiskCryptoSpec `xml:"parent,omitempty"` + Crypto BaseCryptoSpec `xml:"crypto,typeattr"` +} + +func init() { + t["DiskCryptoSpec"] = reflect.TypeOf((*DiskCryptoSpec)(nil)).Elem() +} + type DiskHasPartitions struct { VsanDiskFault } @@ -13972,6 +14798,8 @@ type DistributedVirtualPort struct { ConnectionCookie int32 `xml:"connectionCookie,omitempty"` LastStatusChange time.Time `xml:"lastStatusChange"` HostLocalPort *bool `xml:"hostLocalPort"` + ExternalId string `xml:"externalId,omitempty"` + SegmentPortId string `xml:"segmentPortId,omitempty"` } func init() { @@ -13989,12 +14817,37 @@ type DistributedVirtualPortgroupInfo struct { UplinkPortgroup bool `xml:"uplinkPortgroup"` Portgroup ManagedObjectReference `xml:"portgroup"` NetworkReservationSupported *bool `xml:"networkReservationSupported"` + BackingType string `xml:"backingType,omitempty"` + LogicalSwitchUuid string `xml:"logicalSwitchUuid,omitempty"` + SegmentId string `xml:"segmentId,omitempty"` } func init() { t["DistributedVirtualPortgroupInfo"] = reflect.TypeOf((*DistributedVirtualPortgroupInfo)(nil)).Elem() } +type DistributedVirtualPortgroupNsxPortgroupOperationResult struct { + DynamicData + + Portgroups []ManagedObjectReference `xml:"portgroups,omitempty"` + Problems []DistributedVirtualPortgroupProblem `xml:"problems,omitempty"` +} + +func init() { + t["DistributedVirtualPortgroupNsxPortgroupOperationResult"] = reflect.TypeOf((*DistributedVirtualPortgroupNsxPortgroupOperationResult)(nil)).Elem() +} + +type DistributedVirtualPortgroupProblem struct { + DynamicData + + LogicalSwitchUuid string `xml:"logicalSwitchUuid"` + Fault LocalizedMethodFault `xml:"fault"` +} + +func init() { + t["DistributedVirtualPortgroupProblem"] = reflect.TypeOf((*DistributedVirtualPortgroupProblem)(nil)).Elem() +} + type DistributedVirtualSwitchHostMember struct { DynamicData @@ -14021,10 +14874,15 @@ func init() { type DistributedVirtualSwitchHostMemberConfigInfo struct { DynamicData - Host *ManagedObjectReference `xml:"host,omitempty"` - MaxProxySwitchPorts int32 `xml:"maxProxySwitchPorts"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - Backing BaseDistributedVirtualSwitchHostMemberBacking `xml:"backing,typeattr"` + Host *ManagedObjectReference `xml:"host,omitempty"` + MaxProxySwitchPorts int32 `xml:"maxProxySwitchPorts"` + VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` + Backing BaseDistributedVirtualSwitchHostMemberBacking `xml:"backing,typeattr"` + NsxSwitch *bool `xml:"nsxSwitch"` + EnsEnabled *bool `xml:"ensEnabled"` + EnsInterruptEnabled *bool `xml:"ensInterruptEnabled"` + TransportZones []DistributedVirtualSwitchHostMemberTransportZoneInfo `xml:"transportZones,omitempty"` + NsxtUsedUplinkNames []string `xml:"nsxtUsedUplinkNames,omitempty"` } func init() { @@ -14078,6 +14936,17 @@ func init() { t["DistributedVirtualSwitchHostMemberRuntimeState"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberRuntimeState)(nil)).Elem() } +type DistributedVirtualSwitchHostMemberTransportZoneInfo struct { + DynamicData + + Uuid string `xml:"uuid"` + Type string `xml:"type"` +} + +func init() { + t["DistributedVirtualSwitchHostMemberTransportZoneInfo"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberTransportZoneInfo)(nil)).Elem() +} + type DistributedVirtualSwitchHostProductSpec struct { DynamicData @@ -14230,6 +15099,7 @@ type DistributedVirtualSwitchPortCriteria struct { Connected *bool `xml:"connected"` Active *bool `xml:"active"` UplinkPort *bool `xml:"uplinkPort"` + NsxPort *bool `xml:"nsxPort"` Scope *ManagedObjectReference `xml:"scope,omitempty"` PortgroupKey []string `xml:"portgroupKey,omitempty"` Inside *bool `xml:"inside"` @@ -14319,6 +15189,24 @@ func init() { t["DomainNotFoundFault"] = reflect.TypeOf((*DomainNotFoundFault)(nil)).Elem() } +type DownloadDescriptionTree DownloadDescriptionTreeRequestType + +func init() { + t["DownloadDescriptionTree"] = reflect.TypeOf((*DownloadDescriptionTree)(nil)).Elem() +} + +type DownloadDescriptionTreeRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["DownloadDescriptionTreeRequestType"] = reflect.TypeOf((*DownloadDescriptionTreeRequestType)(nil)).Elem() +} + +type DownloadDescriptionTreeResponse struct { + Returnval []byte `xml:"returnval"` +} + type DrsDisabledEvent struct { ClusterEvent } @@ -15774,6 +16662,12 @@ func init() { t["ElementDescription"] = reflect.TypeOf((*ElementDescription)(nil)).Elem() } +type EnableAlarm EnableAlarmRequestType + +func init() { + t["EnableAlarm"] = reflect.TypeOf((*EnableAlarm)(nil)).Elem() +} + type EnableAlarmActions EnableAlarmActionsRequestType func init() { @@ -15793,6 +16687,37 @@ func init() { type EnableAlarmActionsResponse struct { } +type EnableAlarmRequestType struct { + This ManagedObjectReference `xml:"_this"` + Alarm ManagedObjectReference `xml:"alarm"` + Entity ManagedObjectReference `xml:"entity"` +} + +func init() { + t["EnableAlarmRequestType"] = reflect.TypeOf((*EnableAlarmRequestType)(nil)).Elem() +} + +type EnableAlarmResponse struct { +} + +type EnableClusteredVmdkSupport EnableClusteredVmdkSupportRequestType + +func init() { + t["EnableClusteredVmdkSupport"] = reflect.TypeOf((*EnableClusteredVmdkSupport)(nil)).Elem() +} + +type EnableClusteredVmdkSupportRequestType struct { + This ManagedObjectReference `xml:"_this"` + Datastore ManagedObjectReference `xml:"datastore"` +} + +func init() { + t["EnableClusteredVmdkSupportRequestType"] = reflect.TypeOf((*EnableClusteredVmdkSupportRequestType)(nil)).Elem() +} + +type EnableClusteredVmdkSupportResponse struct { +} + type EnableCrypto EnableCryptoRequestType func init() { @@ -16724,6 +17649,26 @@ type ExtendDisk_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type ExtendHCIRequestType struct { + This ManagedObjectReference `xml:"_this"` + HostInputs []ClusterComputeResourceHostConfigurationInput `xml:"hostInputs,omitempty"` + VSanConfigSpec *SDDCBase `xml:"vSanConfigSpec,omitempty"` +} + +func init() { + t["ExtendHCIRequestType"] = reflect.TypeOf((*ExtendHCIRequestType)(nil)).Elem() +} + +type ExtendHCI_Task ExtendHCIRequestType + +func init() { + t["ExtendHCI_Task"] = reflect.TypeOf((*ExtendHCI_Task)(nil)).Elem() +} + +type ExtendHCI_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type ExtendVffs ExtendVffsRequestType func init() { @@ -17993,6 +18938,29 @@ func init() { t["FloppyImageFileQuery"] = reflect.TypeOf((*FloppyImageFileQuery)(nil)).Elem() } +type FolderBatchAddHostsToClusterResult struct { + DynamicData + + HostsAddedToCluster []ManagedObjectReference `xml:"hostsAddedToCluster,omitempty"` + HostsFailedInventoryAdd []FolderFailedHostResult `xml:"hostsFailedInventoryAdd,omitempty"` + HostsFailedMoveToCluster []FolderFailedHostResult `xml:"hostsFailedMoveToCluster,omitempty"` +} + +func init() { + t["FolderBatchAddHostsToClusterResult"] = reflect.TypeOf((*FolderBatchAddHostsToClusterResult)(nil)).Elem() +} + +type FolderBatchAddStandaloneHostsResult struct { + DynamicData + + AddedHosts []ManagedObjectReference `xml:"addedHosts,omitempty"` + HostsFailedInventoryAdd []FolderFailedHostResult `xml:"hostsFailedInventoryAdd,omitempty"` +} + +func init() { + t["FolderBatchAddStandaloneHostsResult"] = reflect.TypeOf((*FolderBatchAddStandaloneHostsResult)(nil)).Elem() +} + type FolderEventArgument struct { EntityEventArgument @@ -18003,6 +18971,19 @@ func init() { t["FolderEventArgument"] = reflect.TypeOf((*FolderEventArgument)(nil)).Elem() } +type FolderFailedHostResult struct { + DynamicData + + HostName string `xml:"hostName,omitempty"` + Host *ManagedObjectReference `xml:"host,omitempty"` + Context LocalizableMessage `xml:"context"` + Fault LocalizedMethodFault `xml:"fault"` +} + +func init() { + t["FolderFailedHostResult"] = reflect.TypeOf((*FolderFailedHostResult)(nil)).Elem() +} + type FolderFileInfo struct { FileInfo } @@ -18019,6 +19000,17 @@ func init() { t["FolderFileQuery"] = reflect.TypeOf((*FolderFileQuery)(nil)).Elem() } +type FolderNewHostSpec struct { + DynamicData + + HostCnxSpec HostConnectSpec `xml:"hostCnxSpec"` + EsxLicense string `xml:"esxLicense,omitempty"` +} + +func init() { + t["FolderNewHostSpec"] = reflect.TypeOf((*FolderNewHostSpec)(nil)).Elem() +} + type FormatVffs FormatVffsRequestType func init() { @@ -18546,6 +19538,26 @@ type GetCustomizationSpecResponse struct { Returnval CustomizationSpecItem `xml:"returnval"` } +type GetDefaultKmsCluster GetDefaultKmsClusterRequestType + +func init() { + t["GetDefaultKmsCluster"] = reflect.TypeOf((*GetDefaultKmsCluster)(nil)).Elem() +} + +type GetDefaultKmsClusterRequestType struct { + This ManagedObjectReference `xml:"_this"` + Entity *ManagedObjectReference `xml:"entity,omitempty"` + DefaultsToParent *bool `xml:"defaultsToParent"` +} + +func init() { + t["GetDefaultKmsClusterRequestType"] = reflect.TypeOf((*GetDefaultKmsClusterRequestType)(nil)).Elem() +} + +type GetDefaultKmsClusterResponse struct { + Returnval *KeyProviderId `xml:"returnval,omitempty"` +} + type GetPublicKey GetPublicKeyRequestType func init() { @@ -18582,6 +19594,24 @@ type GetResourceUsageResponse struct { Returnval ClusterResourceUsageSummary `xml:"returnval"` } +type GetSiteInfo GetSiteInfoRequestType + +func init() { + t["GetSiteInfo"] = reflect.TypeOf((*GetSiteInfo)(nil)).Elem() +} + +type GetSiteInfoRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["GetSiteInfoRequestType"] = reflect.TypeOf((*GetSiteInfoRequestType)(nil)).Elem() +} + +type GetSiteInfoResponse struct { + Returnval SiteInfo `xml:"returnval"` +} + type GetVchaClusterHealth GetVchaClusterHealthRequestType func init() { @@ -18752,9 +19782,11 @@ func init() { type GuestDiskInfo struct { DynamicData - DiskPath string `xml:"diskPath,omitempty"` - Capacity int64 `xml:"capacity,omitempty"` - FreeSpace int64 `xml:"freeSpace,omitempty"` + DiskPath string `xml:"diskPath,omitempty"` + Capacity int64 `xml:"capacity,omitempty"` + FreeSpace int64 `xml:"freeSpace,omitempty"` + FilesystemType string `xml:"filesystemType,omitempty"` + Mappings []GuestInfoVirtualDiskMapping `xml:"mappings,omitempty"` } func init() { @@ -18812,6 +19844,7 @@ type GuestInfo struct { InteractiveGuestOperationsReady *bool `xml:"interactiveGuestOperationsReady"` GuestStateChangeSupported *bool `xml:"guestStateChangeSupported"` GenerationInfo []GuestInfoNamespaceGenerationInfo `xml:"generationInfo,omitempty"` + HwVersion string `xml:"hwVersion,omitempty"` } func init() { @@ -18829,6 +19862,16 @@ func init() { t["GuestInfoNamespaceGenerationInfo"] = reflect.TypeOf((*GuestInfoNamespaceGenerationInfo)(nil)).Elem() } +type GuestInfoVirtualDiskMapping struct { + DynamicData + + Key int32 `xml:"key"` +} + +func init() { + t["GuestInfoVirtualDiskMapping"] = reflect.TypeOf((*GuestInfoVirtualDiskMapping)(nil)).Elem() +} + type GuestListFileInfo struct { DynamicData @@ -18973,7 +20016,9 @@ type GuestOsDescriptor struct { NumRecommendedCoresPerSocket int32 `xml:"numRecommendedCoresPerSocket,omitempty"` VvtdSupported *BoolOption `xml:"vvtdSupported,omitempty"` VbsSupported *BoolOption `xml:"vbsSupported,omitempty"` + VsgxSupported *BoolOption `xml:"vsgxSupported,omitempty"` SupportsTPM20 *bool `xml:"supportsTPM20"` + VwdtSupported *bool `xml:"vwdtSupported"` } func init() { @@ -19704,6 +20749,39 @@ func init() { t["HostApplyProfile"] = reflect.TypeOf((*HostApplyProfile)(nil)).Elem() } +type HostAssignableHardwareBinding struct { + DynamicData + + InstanceId string `xml:"instanceId"` + Vm ManagedObjectReference `xml:"vm"` +} + +func init() { + t["HostAssignableHardwareBinding"] = reflect.TypeOf((*HostAssignableHardwareBinding)(nil)).Elem() +} + +type HostAssignableHardwareConfig struct { + DynamicData + + AttributeOverride []HostAssignableHardwareConfigAttributeOverride `xml:"attributeOverride,omitempty"` +} + +func init() { + t["HostAssignableHardwareConfig"] = reflect.TypeOf((*HostAssignableHardwareConfig)(nil)).Elem() +} + +type HostAssignableHardwareConfigAttributeOverride struct { + DynamicData + + InstanceId string `xml:"instanceId"` + Name string `xml:"name"` + Value AnyType `xml:"value,typeattr"` +} + +func init() { + t["HostAssignableHardwareConfigAttributeOverride"] = reflect.TypeOf((*HostAssignableHardwareConfigAttributeOverride)(nil)).Elem() +} + type HostAuthenticationManagerInfo struct { DynamicData @@ -19925,6 +21003,16 @@ type HostCapability struct { VmCreateDateSupported *bool `xml:"vmCreateDateSupported"` Vmfs3EOLSupported *bool `xml:"vmfs3EOLSupported"` FtVmcpSupported *bool `xml:"ftVmcpSupported"` + QuickBootSupported *bool `xml:"quickBootSupported"` + AssignableHardwareSupported *bool `xml:"assignableHardwareSupported"` + UseFeatureReqsForOldHWv *bool `xml:"useFeatureReqsForOldHWv"` + MarkPerenniallyReservedSupported *bool `xml:"markPerenniallyReservedSupported"` + HppPspSupported *bool `xml:"hppPspSupported"` + DeviceRebindWithoutRebootSupported *bool `xml:"deviceRebindWithoutRebootSupported"` + StoragePolicyChangeSupported *bool `xml:"storagePolicyChangeSupported"` + PrecisionTimeProtocolSupported *bool `xml:"precisionTimeProtocolSupported"` + RemoteDeviceVMotionSupported *bool `xml:"remoteDeviceVMotionSupported"` + MaxSupportedVmMemory int32 `xml:"maxSupportedVmMemory,omitempty"` } func init() { @@ -20221,12 +21309,15 @@ type HostConfigInfo struct { DomainList []string `xml:"domainList,omitempty"` ScriptCheckSum []byte `xml:"scriptCheckSum,omitempty"` HostConfigCheckSum []byte `xml:"hostConfigCheckSum,omitempty"` + DescriptionTreeCheckSum []byte `xml:"descriptionTreeCheckSum,omitempty"` GraphicsInfo []HostGraphicsInfo `xml:"graphicsInfo,omitempty"` SharedPassthruGpuTypes []string `xml:"sharedPassthruGpuTypes,omitempty"` GraphicsConfig *HostGraphicsConfig `xml:"graphicsConfig,omitempty"` SharedGpuCapabilities []HostSharedGpuCapabilities `xml:"sharedGpuCapabilities,omitempty"` IoFilterInfo []HostIoFilterInfo `xml:"ioFilterInfo,omitempty"` SriovDevicePool []BaseHostSriovDevicePoolInfo `xml:"sriovDevicePool,omitempty,typeattr"` + AssignableHardwareBinding []HostAssignableHardwareBinding `xml:"assignableHardwareBinding,omitempty"` + AssignableHardwareConfig *HostAssignableHardwareConfig `xml:"assignableHardwareConfig,omitempty"` } func init() { @@ -20274,6 +21365,7 @@ type HostConfigManager struct { CertificateManager *ManagedObjectReference `xml:"certificateManager,omitempty"` CryptoManager *ManagedObjectReference `xml:"cryptoManager,omitempty"` NvdimmSystem *ManagedObjectReference `xml:"nvdimmSystem,omitempty"` + AssignableHardwareManager *ManagedObjectReference `xml:"assignableHardwareManager,omitempty"` } func init() { @@ -20301,6 +21393,7 @@ type HostConfigSpec struct { ActiveDirectory []HostActiveDirectory `xml:"activeDirectory,omitempty"` GenericConfig []KeyAnyValue `xml:"genericConfig,omitempty"` GraphicsConfig *HostGraphicsConfig `xml:"graphicsConfig,omitempty"` + AssignableHardwareConfig *HostAssignableHardwareConfig `xml:"assignableHardwareConfig,omitempty"` } func init() { @@ -20679,8 +21772,9 @@ func init() { type HostDateTimeInfo struct { DynamicData - TimeZone HostDateTimeSystemTimeZone `xml:"timeZone"` - NtpConfig *HostNtpConfig `xml:"ntpConfig,omitempty"` + TimeZone HostDateTimeSystemTimeZone `xml:"timeZone"` + SystemClockProtocol string `xml:"systemClockProtocol,omitempty"` + NtpConfig *HostNtpConfig `xml:"ntpConfig,omitempty"` } func init() { @@ -21512,6 +22606,7 @@ type HostHardwareInfo struct { BiosInfo *HostBIOSInfo `xml:"biosInfo,omitempty"` ReliableMemoryInfo *HostReliableMemoryInfo `xml:"reliableMemoryInfo,omitempty"` PersistentMemoryInfo *HostPersistentMemoryInfo `xml:"persistentMemoryInfo,omitempty"` + SgxInfo *HostSgxInfo `xml:"sgxInfo,omitempty"` } func init() { @@ -21572,13 +22667,14 @@ func init() { type HostHostBusAdapter struct { DynamicData - Key string `xml:"key,omitempty"` - Device string `xml:"device"` - Bus int32 `xml:"bus"` - Status string `xml:"status"` - Model string `xml:"model"` - Driver string `xml:"driver,omitempty"` - Pci string `xml:"pci,omitempty"` + Key string `xml:"key,omitempty"` + Device string `xml:"device"` + Bus int32 `xml:"bus"` + Status string `xml:"status"` + Model string `xml:"model"` + Driver string `xml:"driver,omitempty"` + Pci string `xml:"pci,omitempty"` + StorageProtocol string `xml:"storageProtocol,omitempty"` } func init() { @@ -22446,6 +23542,7 @@ type HostMaintenanceSpec struct { DynamicData VsanMode *VsanHostDecommissionMode `xml:"vsanMode,omitempty"` + Purpose string `xml:"purpose,omitempty"` } func init() { @@ -22468,6 +23565,8 @@ type HostMemberRuntimeInfo struct { Host ManagedObjectReference `xml:"host"` Status string `xml:"status,omitempty"` StatusDetail string `xml:"statusDetail,omitempty"` + NsxtStatus string `xml:"nsxtStatus,omitempty"` + NsxtStatusDetail string `xml:"nsxtStatusDetail,omitempty"` HealthCheckResult []BaseHostMemberHealthCheckResult `xml:"healthCheckResult,omitempty,typeattr"` } @@ -22558,6 +23657,20 @@ func init() { t["HostMultipathInfoFixedLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoFixedLogicalUnitPolicy)(nil)).Elem() } +type HostMultipathInfoHppLogicalUnitPolicy struct { + HostMultipathInfoLogicalUnitPolicy + + Bytes int64 `xml:"bytes,omitempty"` + Iops int64 `xml:"iops,omitempty"` + Path string `xml:"path,omitempty"` + LatencyEvalTime int64 `xml:"latencyEvalTime,omitempty"` + SamplingIosPerPath int64 `xml:"samplingIosPerPath,omitempty"` +} + +func init() { + t["HostMultipathInfoHppLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoHppLogicalUnitPolicy)(nil)).Elem() +} + type HostMultipathInfoLogicalUnit struct { DynamicData @@ -22859,6 +23972,7 @@ type HostNetworkInfo struct { ProxySwitch []HostProxySwitch `xml:"proxySwitch,omitempty"` Portgroup []HostPortGroup `xml:"portgroup,omitempty"` Pnic []PhysicalNic `xml:"pnic,omitempty"` + RdmaDevice []HostRdmaDevice `xml:"rdmaDevice,omitempty"` Vnic []HostVirtualNic `xml:"vnic,omitempty"` ConsoleVnic []HostVirtualNic `xml:"consoleVnic,omitempty"` DnsConfig BaseHostDnsConfig `xml:"dnsConfig,omitempty,typeattr"` @@ -22872,6 +23986,7 @@ type HostNetworkInfo struct { NetStackInstance []HostNetStackInstance `xml:"netStackInstance,omitempty"` OpaqueSwitch []HostOpaqueSwitch `xml:"opaqueSwitch,omitempty"` OpaqueNetwork []HostOpaqueNetworkInfo `xml:"opaqueNetwork,omitempty"` + NsxTransportNodeId string `xml:"nsxTransportNodeId,omitempty"` } func init() { @@ -23101,6 +24216,184 @@ func init() { t["HostNumericSensorInfo"] = reflect.TypeOf((*HostNumericSensorInfo)(nil)).Elem() } +type HostNvmeConnectSpec struct { + HostNvmeSpec + + Subnqn string `xml:"subnqn"` + ControllerId int32 `xml:"controllerId,omitempty"` + AdminQueueSize int32 `xml:"adminQueueSize,omitempty"` + KeepAliveTimeout int32 `xml:"keepAliveTimeout,omitempty"` +} + +func init() { + t["HostNvmeConnectSpec"] = reflect.TypeOf((*HostNvmeConnectSpec)(nil)).Elem() +} + +type HostNvmeController struct { + DynamicData + + Key string `xml:"key"` + ControllerNumber int32 `xml:"controllerNumber"` + Subnqn string `xml:"subnqn"` + Name string `xml:"name"` + AssociatedAdapter string `xml:"associatedAdapter"` + TransportType string `xml:"transportType"` + FusedOperationSupported bool `xml:"fusedOperationSupported"` + NumberOfQueues int32 `xml:"numberOfQueues"` + QueueSize int32 `xml:"queueSize"` + AttachedNamespace []HostNvmeNamespace `xml:"attachedNamespace,omitempty"` + VendorId string `xml:"vendorId,omitempty"` + Model string `xml:"model,omitempty"` + SerialNumber string `xml:"serialNumber,omitempty"` + FirmwareVersion string `xml:"firmwareVersion,omitempty"` +} + +func init() { + t["HostNvmeController"] = reflect.TypeOf((*HostNvmeController)(nil)).Elem() +} + +type HostNvmeDisconnectSpec struct { + DynamicData + + HbaName string `xml:"hbaName"` + Subnqn string `xml:"subnqn,omitempty"` + ControllerNumber int32 `xml:"controllerNumber,omitempty"` +} + +func init() { + t["HostNvmeDisconnectSpec"] = reflect.TypeOf((*HostNvmeDisconnectSpec)(nil)).Elem() +} + +type HostNvmeDiscoverSpec struct { + HostNvmeSpec + + AutoConnect *bool `xml:"autoConnect"` +} + +func init() { + t["HostNvmeDiscoverSpec"] = reflect.TypeOf((*HostNvmeDiscoverSpec)(nil)).Elem() +} + +type HostNvmeDiscoveryLog struct { + DynamicData + + Entry []HostNvmeDiscoveryLogEntry `xml:"entry,omitempty"` + Complete bool `xml:"complete"` +} + +func init() { + t["HostNvmeDiscoveryLog"] = reflect.TypeOf((*HostNvmeDiscoveryLog)(nil)).Elem() +} + +type HostNvmeDiscoveryLogEntry struct { + DynamicData + + Subnqn string `xml:"subnqn"` + SubsystemType string `xml:"subsystemType"` + SubsystemPortId int32 `xml:"subsystemPortId"` + ControllerId int32 `xml:"controllerId"` + AdminQueueMaxSize int32 `xml:"adminQueueMaxSize"` + TransportParameters BaseHostNvmeTransportParameters `xml:"transportParameters,typeattr"` + TransportRequirements string `xml:"transportRequirements"` + Connected bool `xml:"connected"` +} + +func init() { + t["HostNvmeDiscoveryLogEntry"] = reflect.TypeOf((*HostNvmeDiscoveryLogEntry)(nil)).Elem() +} + +type HostNvmeNamespace struct { + DynamicData + + Key string `xml:"key"` + Name string `xml:"name"` + Id int32 `xml:"id"` + BlockSize int32 `xml:"blockSize"` + CapacityInBlocks int64 `xml:"capacityInBlocks"` +} + +func init() { + t["HostNvmeNamespace"] = reflect.TypeOf((*HostNvmeNamespace)(nil)).Elem() +} + +type HostNvmeOpaqueTransportParameters struct { + HostNvmeTransportParameters + + Trtype string `xml:"trtype"` + Traddr string `xml:"traddr"` + Adrfam string `xml:"adrfam"` + Trsvcid string `xml:"trsvcid"` + Tsas []byte `xml:"tsas"` +} + +func init() { + t["HostNvmeOpaqueTransportParameters"] = reflect.TypeOf((*HostNvmeOpaqueTransportParameters)(nil)).Elem() +} + +type HostNvmeOverFibreChannelParameters struct { + HostNvmeTransportParameters + + NodeWorldWideName int64 `xml:"nodeWorldWideName"` + PortWorldWideName int64 `xml:"portWorldWideName"` +} + +func init() { + t["HostNvmeOverFibreChannelParameters"] = reflect.TypeOf((*HostNvmeOverFibreChannelParameters)(nil)).Elem() +} + +type HostNvmeOverRdmaParameters struct { + HostNvmeTransportParameters + + Address string `xml:"address"` + AddressFamily string `xml:"addressFamily,omitempty"` + PortNumber int32 `xml:"portNumber,omitempty"` +} + +func init() { + t["HostNvmeOverRdmaParameters"] = reflect.TypeOf((*HostNvmeOverRdmaParameters)(nil)).Elem() +} + +type HostNvmeSpec struct { + DynamicData + + HbaName string `xml:"hbaName"` + TransportParameters BaseHostNvmeTransportParameters `xml:"transportParameters,typeattr"` +} + +func init() { + t["HostNvmeSpec"] = reflect.TypeOf((*HostNvmeSpec)(nil)).Elem() +} + +type HostNvmeTopology struct { + DynamicData + + Adapter []HostNvmeTopologyInterface `xml:"adapter,omitempty"` +} + +func init() { + t["HostNvmeTopology"] = reflect.TypeOf((*HostNvmeTopology)(nil)).Elem() +} + +type HostNvmeTopologyInterface struct { + DynamicData + + Key string `xml:"key"` + Adapter string `xml:"adapter"` + ConnectedController []HostNvmeController `xml:"connectedController,omitempty"` +} + +func init() { + t["HostNvmeTopologyInterface"] = reflect.TypeOf((*HostNvmeTopologyInterface)(nil)).Elem() +} + +type HostNvmeTransportParameters struct { + DynamicData +} + +func init() { + t["HostNvmeTransportParameters"] = reflect.TypeOf((*HostNvmeTransportParameters)(nil)).Elem() +} + type HostOpaqueNetworkInfo struct { DynamicData @@ -23283,6 +24576,7 @@ type HostPciPassthruConfig struct { Id string `xml:"id"` PassthruEnabled bool `xml:"passthruEnabled"` + ApplyNow *bool `xml:"applyNow"` } func init() { @@ -23303,6 +24597,22 @@ func init() { t["HostPciPassthruInfo"] = reflect.TypeOf((*HostPciPassthruInfo)(nil)).Elem() } +type HostPcieHba struct { + HostHostBusAdapter +} + +func init() { + t["HostPcieHba"] = reflect.TypeOf((*HostPcieHba)(nil)).Elem() +} + +type HostPcieTargetTransport struct { + HostTargetTransport +} + +func init() { + t["HostPcieTargetTransport"] = reflect.TypeOf((*HostPcieTargetTransport)(nil)).Elem() +} + type HostPersistentMemoryInfo struct { DynamicData @@ -23738,18 +25048,25 @@ func init() { type HostProxySwitch struct { DynamicData - DvsUuid string `xml:"dvsUuid"` - DvsName string `xml:"dvsName"` - Key string `xml:"key"` - NumPorts int32 `xml:"numPorts"` - ConfigNumPorts int32 `xml:"configNumPorts,omitempty"` - NumPortsAvailable int32 `xml:"numPortsAvailable"` - UplinkPort []KeyValue `xml:"uplinkPort,omitempty"` - Mtu int32 `xml:"mtu,omitempty"` - Pnic []string `xml:"pnic,omitempty"` - Spec HostProxySwitchSpec `xml:"spec"` - HostLag []HostProxySwitchHostLagConfig `xml:"hostLag,omitempty"` - NetworkReservationSupported *bool `xml:"networkReservationSupported"` + DvsUuid string `xml:"dvsUuid"` + DvsName string `xml:"dvsName"` + Key string `xml:"key"` + NumPorts int32 `xml:"numPorts"` + ConfigNumPorts int32 `xml:"configNumPorts,omitempty"` + NumPortsAvailable int32 `xml:"numPortsAvailable"` + UplinkPort []KeyValue `xml:"uplinkPort,omitempty"` + Mtu int32 `xml:"mtu,omitempty"` + Pnic []string `xml:"pnic,omitempty"` + Spec HostProxySwitchSpec `xml:"spec"` + HostLag []HostProxySwitchHostLagConfig `xml:"hostLag,omitempty"` + NetworkReservationSupported *bool `xml:"networkReservationSupported"` + NsxtEnabled *bool `xml:"nsxtEnabled"` + EnsEnabled *bool `xml:"ensEnabled"` + EnsInterruptEnabled *bool `xml:"ensInterruptEnabled"` + TransportZones []DistributedVirtualSwitchHostMemberTransportZoneInfo `xml:"transportZones,omitempty"` + NsxUsedUplinkPort []string `xml:"nsxUsedUplinkPort,omitempty"` + NsxtStatus string `xml:"nsxtStatus,omitempty"` + NsxtStatusDetail string `xml:"nsxtStatusDetail,omitempty"` } func init() { @@ -23790,6 +25107,82 @@ func init() { t["HostProxySwitchSpec"] = reflect.TypeOf((*HostProxySwitchSpec)(nil)).Elem() } +type HostRdmaDevice struct { + DynamicData + + Key string `xml:"key"` + Device string `xml:"device"` + Driver string `xml:"driver,omitempty"` + Description string `xml:"description,omitempty"` + Backing BaseHostRdmaDeviceBacking `xml:"backing,omitempty,typeattr"` + ConnectionInfo HostRdmaDeviceConnectionInfo `xml:"connectionInfo"` + Capability HostRdmaDeviceCapability `xml:"capability"` +} + +func init() { + t["HostRdmaDevice"] = reflect.TypeOf((*HostRdmaDevice)(nil)).Elem() +} + +type HostRdmaDeviceBacking struct { + DynamicData +} + +func init() { + t["HostRdmaDeviceBacking"] = reflect.TypeOf((*HostRdmaDeviceBacking)(nil)).Elem() +} + +type HostRdmaDeviceCapability struct { + DynamicData + + RoceV1Capable bool `xml:"roceV1Capable"` + RoceV2Capable bool `xml:"roceV2Capable"` + IWarpCapable bool `xml:"iWarpCapable"` +} + +func init() { + t["HostRdmaDeviceCapability"] = reflect.TypeOf((*HostRdmaDeviceCapability)(nil)).Elem() +} + +type HostRdmaDeviceConnectionInfo struct { + DynamicData + + State string `xml:"state"` + Mtu int32 `xml:"mtu"` + SpeedInMbps int32 `xml:"speedInMbps"` +} + +func init() { + t["HostRdmaDeviceConnectionInfo"] = reflect.TypeOf((*HostRdmaDeviceConnectionInfo)(nil)).Elem() +} + +type HostRdmaDevicePnicBacking struct { + HostRdmaDeviceBacking + + PairedUplink string `xml:"pairedUplink"` +} + +func init() { + t["HostRdmaDevicePnicBacking"] = reflect.TypeOf((*HostRdmaDevicePnicBacking)(nil)).Elem() +} + +type HostRdmaHba struct { + HostHostBusAdapter + + AssociatedRdmaDevice string `xml:"associatedRdmaDevice,omitempty"` +} + +func init() { + t["HostRdmaHba"] = reflect.TypeOf((*HostRdmaHba)(nil)).Elem() +} + +type HostRdmaTargetTransport struct { + HostTargetTransport +} + +func init() { + t["HostRdmaTargetTransport"] = reflect.TypeOf((*HostRdmaTargetTransport)(nil)).Elem() +} + type HostReconcileDatastoreInventoryRequestType struct { This ManagedObjectReference `xml:"_this"` Datastore ManagedObjectReference `xml:"datastore"` @@ -23949,6 +25342,50 @@ func init() { t["HostRetrieveVStorageObject"] = reflect.TypeOf((*HostRetrieveVStorageObject)(nil)).Elem() } +type HostRetrieveVStorageObjectMetadata HostRetrieveVStorageObjectMetadataRequestType + +func init() { + t["HostRetrieveVStorageObjectMetadata"] = reflect.TypeOf((*HostRetrieveVStorageObjectMetadata)(nil)).Elem() +} + +type HostRetrieveVStorageObjectMetadataRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + SnapshotId *ID `xml:"snapshotId,omitempty"` + Prefix string `xml:"prefix,omitempty"` +} + +func init() { + t["HostRetrieveVStorageObjectMetadataRequestType"] = reflect.TypeOf((*HostRetrieveVStorageObjectMetadataRequestType)(nil)).Elem() +} + +type HostRetrieveVStorageObjectMetadataResponse struct { + Returnval []KeyValue `xml:"returnval,omitempty"` +} + +type HostRetrieveVStorageObjectMetadataValue HostRetrieveVStorageObjectMetadataValueRequestType + +func init() { + t["HostRetrieveVStorageObjectMetadataValue"] = reflect.TypeOf((*HostRetrieveVStorageObjectMetadataValue)(nil)).Elem() +} + +type HostRetrieveVStorageObjectMetadataValueRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + SnapshotId *ID `xml:"snapshotId,omitempty"` + Key string `xml:"key"` +} + +func init() { + t["HostRetrieveVStorageObjectMetadataValueRequestType"] = reflect.TypeOf((*HostRetrieveVStorageObjectMetadataValueRequestType)(nil)).Elem() +} + +type HostRetrieveVStorageObjectMetadataValueResponse struct { + Returnval string `xml:"returnval"` +} + type HostRetrieveVStorageObjectRequestType struct { This ManagedObjectReference `xml:"_this"` Id ID `xml:"id"` @@ -24239,6 +25676,19 @@ func init() { type HostSetVStorageObjectControlFlagsResponse struct { } +type HostSgxInfo struct { + DynamicData + + SgxState string `xml:"sgxState"` + TotalEpcMemory int64 `xml:"totalEpcMemory"` + FlcMode string `xml:"flcMode"` + LePubKeyHash string `xml:"lePubKeyHash,omitempty"` +} + +func init() { + t["HostSgxInfo"] = reflect.TypeOf((*HostSgxInfo)(nil)).Elem() +} + type HostSharedGpuCapabilities struct { DynamicData @@ -24358,6 +25808,14 @@ func init() { t["HostSpecification"] = reflect.TypeOf((*HostSpecification)(nil)).Elem() } +type HostSpecificationChangedEvent struct { + HostEvent +} + +func init() { + t["HostSpecificationChangedEvent"] = reflect.TypeOf((*HostSpecificationChangedEvent)(nil)).Elem() +} + type HostSpecificationOperationFailed struct { VimFault @@ -24374,6 +25832,24 @@ func init() { t["HostSpecificationOperationFailedFault"] = reflect.TypeOf((*HostSpecificationOperationFailedFault)(nil)).Elem() } +type HostSpecificationRequireEvent struct { + HostEvent +} + +func init() { + t["HostSpecificationRequireEvent"] = reflect.TypeOf((*HostSpecificationRequireEvent)(nil)).Elem() +} + +type HostSpecificationUpdateEvent struct { + HostEvent + + HostSpec HostSpecification `xml:"hostSpec"` +} + +func init() { + t["HostSpecificationUpdateEvent"] = reflect.TypeOf((*HostSpecificationUpdateEvent)(nil)).Elem() +} + type HostSriovConfig struct { HostPciPassthruConfig @@ -24458,6 +25934,7 @@ type HostStorageDeviceInfo struct { HostBusAdapter []BaseHostHostBusAdapter `xml:"hostBusAdapter,omitempty,typeattr"` ScsiLun []BaseScsiLun `xml:"scsiLun,omitempty,typeattr"` ScsiTopology *HostScsiTopology `xml:"scsiTopology,omitempty"` + NvmeTopology *HostNvmeTopology `xml:"nvmeTopology,omitempty"` MultipathInfo *HostMultipathInfo `xml:"multipathInfo,omitempty"` PlugStoreTopology *HostPlugStoreTopology `xml:"plugStoreTopology,omitempty"` SoftwareInternetScsiEnabled bool `xml:"softwareInternetScsiEnabled"` @@ -24534,6 +26011,26 @@ func init() { t["HostSubSpecification"] = reflect.TypeOf((*HostSubSpecification)(nil)).Elem() } +type HostSubSpecificationDeleteEvent struct { + HostEvent + + SubSpecName string `xml:"subSpecName"` +} + +func init() { + t["HostSubSpecificationDeleteEvent"] = reflect.TypeOf((*HostSubSpecificationDeleteEvent)(nil)).Elem() +} + +type HostSubSpecificationUpdateEvent struct { + HostEvent + + HostSubSpec HostSubSpecification `xml:"hostSubSpec"` +} + +func init() { + t["HostSubSpecificationUpdateEvent"] = reflect.TypeOf((*HostSubSpecificationUpdateEvent)(nil)).Elem() +} + type HostSyncFailedEvent struct { HostEvent @@ -24861,6 +26358,28 @@ func init() { t["HostUnresolvedVmfsVolumeResolveStatus"] = reflect.TypeOf((*HostUnresolvedVmfsVolumeResolveStatus)(nil)).Elem() } +type HostUpdateVStorageObjectMetadataRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + Metadata []KeyValue `xml:"metadata,omitempty"` + DeleteKeys []string `xml:"deleteKeys,omitempty"` +} + +func init() { + t["HostUpdateVStorageObjectMetadataRequestType"] = reflect.TypeOf((*HostUpdateVStorageObjectMetadataRequestType)(nil)).Elem() +} + +type HostUpdateVStorageObjectMetadata_Task HostUpdateVStorageObjectMetadataRequestType + +func init() { + t["HostUpdateVStorageObjectMetadata_Task"] = reflect.TypeOf((*HostUpdateVStorageObjectMetadata_Task)(nil)).Elem() +} + +type HostUpdateVStorageObjectMetadata_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type HostUpgradeFailedEvent struct { HostEvent } @@ -25008,6 +26527,39 @@ func init() { t["HostVMotionInfo"] = reflect.TypeOf((*HostVMotionInfo)(nil)).Elem() } +type HostVMotionManagerDstInstantCloneResult struct { + DynamicData + + DstVmId int32 `xml:"dstVmId,omitempty"` + StartTime int64 `xml:"startTime,omitempty"` + CptLoadTime int64 `xml:"cptLoadTime,omitempty"` + CptLoadDoneTime int64 `xml:"cptLoadDoneTime,omitempty"` + ReplicateMemDoneTime int64 `xml:"replicateMemDoneTime,omitempty"` + EndTime int64 `xml:"endTime,omitempty"` + CptXferTime int64 `xml:"cptXferTime,omitempty"` + CptCacheUsed int64 `xml:"cptCacheUsed,omitempty"` + DevCptStreamSize int64 `xml:"devCptStreamSize,omitempty"` + DevCptStreamTime int64 `xml:"devCptStreamTime,omitempty"` +} + +func init() { + t["HostVMotionManagerDstInstantCloneResult"] = reflect.TypeOf((*HostVMotionManagerDstInstantCloneResult)(nil)).Elem() +} + +type HostVMotionManagerSrcInstantCloneResult struct { + DynamicData + + StartTime int64 `xml:"startTime,omitempty"` + QuiesceTime int64 `xml:"quiesceTime,omitempty"` + QuiesceDoneTime int64 `xml:"quiesceDoneTime,omitempty"` + ResumeDoneTime int64 `xml:"resumeDoneTime,omitempty"` + EndTime int64 `xml:"endTime,omitempty"` +} + +func init() { + t["HostVMotionManagerSrcInstantCloneResult"] = reflect.TypeOf((*HostVMotionManagerSrcInstantCloneResult)(nil)).Elem() +} + type HostVMotionNetConfig struct { DynamicData @@ -25256,6 +26808,7 @@ type HostVirtualNicSpec struct { ExternalId string `xml:"externalId,omitempty"` PinnedPnic string `xml:"pinnedPnic,omitempty"` IpRouteSpec *HostVirtualNicIpRouteSpec `xml:"ipRouteSpec,omitempty"` + SystemOwned *bool `xml:"systemOwned"` } func init() { @@ -27319,7 +28872,7 @@ func init() { type InvalidOperationOnSecondaryVm struct { VmFaultToleranceIssue - InstanceUuid string `xml:"instanceUuid,omitempty"` + InstanceUuid string `xml:"instanceUuid"` } func init() { @@ -27716,6 +29269,25 @@ func init() { t["IpRouteProfile"] = reflect.TypeOf((*IpRouteProfile)(nil)).Elem() } +type IsKmsClusterActive IsKmsClusterActiveRequestType + +func init() { + t["IsKmsClusterActive"] = reflect.TypeOf((*IsKmsClusterActive)(nil)).Elem() +} + +type IsKmsClusterActiveRequestType struct { + This ManagedObjectReference `xml:"_this"` + Cluster *KeyProviderId `xml:"cluster,omitempty"` +} + +func init() { + t["IsKmsClusterActiveRequestType"] = reflect.TypeOf((*IsKmsClusterActiveRequestType)(nil)).Elem() +} + +type IsKmsClusterActiveResponse struct { + Returnval bool `xml:"returnval"` +} + type IsSharedGraphicsActive IsSharedGraphicsActiveRequestType func init() { @@ -28083,6 +29655,22 @@ func init() { t["KeyAnyValue"] = reflect.TypeOf((*KeyAnyValue)(nil)).Elem() } +type KeyNotFound struct { + VimFault + + Key string `xml:"key"` +} + +func init() { + t["KeyNotFound"] = reflect.TypeOf((*KeyNotFound)(nil)).Elem() +} + +type KeyNotFoundFault KeyNotFound + +func init() { + t["KeyNotFoundFault"] = reflect.TypeOf((*KeyNotFoundFault)(nil)).Elem() +} + type KeyProviderId struct { DynamicData @@ -28107,9 +29695,11 @@ func init() { type KmipClusterInfo struct { DynamicData - ClusterId KeyProviderId `xml:"clusterId"` - Servers []KmipServerInfo `xml:"servers,omitempty"` - UseAsDefault bool `xml:"useAsDefault"` + ClusterId KeyProviderId `xml:"clusterId"` + Servers []KmipServerInfo `xml:"servers,omitempty"` + UseAsDefault bool `xml:"useAsDefault"` + ManagementType string `xml:"managementType,omitempty"` + UseAsEntityDefault []ManagedObjectReference `xml:"useAsEntityDefault,omitempty"` } func init() { @@ -28754,6 +30344,27 @@ type ListKmipServersResponse struct { Returnval []KmipClusterInfo `xml:"returnval,omitempty"` } +type ListKmsClusters ListKmsClustersRequestType + +func init() { + t["ListKmsClusters"] = reflect.TypeOf((*ListKmsClusters)(nil)).Elem() +} + +type ListKmsClustersRequestType struct { + This ManagedObjectReference `xml:"_this"` + IncludeKmsServers *bool `xml:"includeKmsServers"` + ManagementTypeFilter int32 `xml:"managementTypeFilter,omitempty"` + StatusFilter int32 `xml:"statusFilter,omitempty"` +} + +func init() { + t["ListKmsClustersRequestType"] = reflect.TypeOf((*ListKmsClustersRequestType)(nil)).Elem() +} + +type ListKmsClustersResponse struct { + Returnval []KmipClusterInfo `xml:"returnval,omitempty"` +} + type ListProcessesInGuest ListProcessesInGuestRequestType func init() { @@ -29495,6 +31106,63 @@ func init() { type MarkForRemovalResponse struct { } +type MarkPerenniallyReserved MarkPerenniallyReservedRequestType + +func init() { + t["MarkPerenniallyReserved"] = reflect.TypeOf((*MarkPerenniallyReserved)(nil)).Elem() +} + +type MarkPerenniallyReservedExRequestType struct { + This ManagedObjectReference `xml:"_this"` + LunUuid []string `xml:"lunUuid,omitempty"` + State bool `xml:"state"` +} + +func init() { + t["MarkPerenniallyReservedExRequestType"] = reflect.TypeOf((*MarkPerenniallyReservedExRequestType)(nil)).Elem() +} + +type MarkPerenniallyReservedEx_Task MarkPerenniallyReservedExRequestType + +func init() { + t["MarkPerenniallyReservedEx_Task"] = reflect.TypeOf((*MarkPerenniallyReservedEx_Task)(nil)).Elem() +} + +type MarkPerenniallyReservedEx_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + +type MarkPerenniallyReservedRequestType struct { + This ManagedObjectReference `xml:"_this"` + LunUuid string `xml:"lunUuid"` + State bool `xml:"state"` +} + +func init() { + t["MarkPerenniallyReservedRequestType"] = reflect.TypeOf((*MarkPerenniallyReservedRequestType)(nil)).Elem() +} + +type MarkPerenniallyReservedResponse struct { +} + +type MarkServiceProviderEntities MarkServiceProviderEntitiesRequestType + +func init() { + t["MarkServiceProviderEntities"] = reflect.TypeOf((*MarkServiceProviderEntities)(nil)).Elem() +} + +type MarkServiceProviderEntitiesRequestType struct { + This ManagedObjectReference `xml:"_this"` + Entity []ManagedObjectReference `xml:"entity,omitempty"` +} + +func init() { + t["MarkServiceProviderEntitiesRequestType"] = reflect.TypeOf((*MarkServiceProviderEntitiesRequestType)(nil)).Elem() +} + +type MarkServiceProviderEntitiesResponse struct { +} + type MemoryFileFormatNotSupportedByDatastore struct { UnsupportedDatastore @@ -31006,6 +32674,7 @@ type NetworkProfile struct { DvsHostNic []DvsHostVNicProfile `xml:"dvsHostNic,omitempty"` NsxHostNic []NsxHostVNicProfile `xml:"nsxHostNic,omitempty"` NetStackInstance []NetStackInstanceProfile `xml:"netStackInstance,omitempty"` + OpaqueSwitch *OpaqueSwitchProfile `xml:"opaqueSwitch,omitempty"` } func init() { @@ -31037,7 +32706,7 @@ type NetworkSummary struct { Network *ManagedObjectReference `xml:"network,omitempty"` Name string `xml:"name"` Accessible bool `xml:"accessible"` - IpPoolName string `xml:"ipPoolName,omitempty"` + IpPoolName string `xml:"ipPoolName"` IpPoolId int32 `xml:"ipPoolId,omitempty"` } @@ -32101,6 +33770,22 @@ func init() { t["NvdimmNamespaceDeleteSpec"] = reflect.TypeOf((*NvdimmNamespaceDeleteSpec)(nil)).Elem() } +type NvdimmNamespaceDetails struct { + DynamicData + + Uuid string `xml:"uuid"` + FriendlyName string `xml:"friendlyName"` + Size int64 `xml:"size"` + Type string `xml:"type"` + NamespaceHealthStatus string `xml:"namespaceHealthStatus"` + InterleavesetID int32 `xml:"interleavesetID"` + State string `xml:"state"` +} + +func init() { + t["NvdimmNamespaceDetails"] = reflect.TypeOf((*NvdimmNamespaceDetails)(nil)).Elem() +} + type NvdimmNamespaceInfo struct { DynamicData @@ -32118,6 +33803,18 @@ func init() { t["NvdimmNamespaceInfo"] = reflect.TypeOf((*NvdimmNamespaceInfo)(nil)).Elem() } +type NvdimmPMemNamespaceCreateSpec struct { + DynamicData + + FriendlyName string `xml:"friendlyName,omitempty"` + Size int64 `xml:"size"` + InterleavesetID int32 `xml:"interleavesetID"` +} + +func init() { + t["NvdimmPMemNamespaceCreateSpec"] = reflect.TypeOf((*NvdimmPMemNamespaceCreateSpec)(nil)).Elem() +} + type NvdimmRegionInfo struct { DynamicData @@ -32160,6 +33857,7 @@ type NvdimmSystemInfo struct { ISetInfo []NvdimmInterleaveSetInfo `xml:"iSetInfo,omitempty"` Namespace []NvdimmGuid `xml:"namespace,omitempty"` NsInfo []NvdimmNamespaceInfo `xml:"nsInfo,omitempty"` + NsDetails []NvdimmNamespaceDetails `xml:"nsDetails,omitempty"` } func init() { @@ -32245,6 +33943,14 @@ func init() { t["OpaqueNetworkTargetInfo"] = reflect.TypeOf((*OpaqueNetworkTargetInfo)(nil)).Elem() } +type OpaqueSwitchProfile struct { + ApplyProfile +} + +func init() { + t["OpaqueSwitchProfile"] = reflect.TypeOf((*OpaqueSwitchProfile)(nil)).Elem() +} + type OpenInventoryViewFolder OpenInventoryViewFolderRequestType func init() { @@ -33972,6 +35678,20 @@ func init() { t["PassiveNodeNetworkSpec"] = reflect.TypeOf((*PassiveNodeNetworkSpec)(nil)).Elem() } +type PasswordExpired struct { + InvalidLogin +} + +func init() { + t["PasswordExpired"] = reflect.TypeOf((*PasswordExpired)(nil)).Elem() +} + +type PasswordExpiredFault PasswordExpired + +func init() { + t["PasswordExpiredFault"] = reflect.TypeOf((*PasswordExpiredFault)(nil)).Elem() +} + type PasswordField struct { DynamicData @@ -34491,6 +36211,8 @@ type PhysicalNic struct { ResourcePoolSchedulerDisallowedReason []string `xml:"resourcePoolSchedulerDisallowedReason,omitempty"` AutoNegotiateSupported *bool `xml:"autoNegotiateSupported"` EnhancedNetworkingStackSupported *bool `xml:"enhancedNetworkingStackSupported"` + EnsInterruptSupported *bool `xml:"ensInterruptSupported"` + RdmaDevice string `xml:"rdmaDevice,omitempty"` } func init() { @@ -34623,6 +36345,7 @@ type PhysicalNicSpec struct { Ip *HostIpConfig `xml:"ip,omitempty"` LinkSpeed *PhysicalNicLinkInfo `xml:"linkSpeed,omitempty"` EnableEnhancedNetworkingStack *bool `xml:"enableEnhancedNetworkingStack"` + EnsInterruptEnabled *bool `xml:"ensInterruptEnabled"` } func init() { @@ -36066,6 +37789,26 @@ type QueryConnectionInfoViaSpecResponse struct { Returnval HostConnectInfo `xml:"returnval"` } +type QueryCryptoKeyStatus QueryCryptoKeyStatusRequestType + +func init() { + t["QueryCryptoKeyStatus"] = reflect.TypeOf((*QueryCryptoKeyStatus)(nil)).Elem() +} + +type QueryCryptoKeyStatusRequestType struct { + This ManagedObjectReference `xml:"_this"` + KeyIds []CryptoKeyId `xml:"keyIds,omitempty"` + CheckKeyBitMap int32 `xml:"checkKeyBitMap"` +} + +func init() { + t["QueryCryptoKeyStatusRequestType"] = reflect.TypeOf((*QueryCryptoKeyStatusRequestType)(nil)).Elem() +} + +type QueryCryptoKeyStatusResponse struct { + Returnval []CryptoManagerKmipCryptoKeyStatus `xml:"returnval,omitempty"` +} + type QueryDatastorePerformanceSummary QueryDatastorePerformanceSummaryRequestType func init() { @@ -36561,6 +38304,25 @@ type QueryHostStatusResponse struct { Returnval VsanHostClusterStatus `xml:"returnval"` } +type QueryHostsWithAttachedLun QueryHostsWithAttachedLunRequestType + +func init() { + t["QueryHostsWithAttachedLun"] = reflect.TypeOf((*QueryHostsWithAttachedLun)(nil)).Elem() +} + +type QueryHostsWithAttachedLunRequestType struct { + This ManagedObjectReference `xml:"_this"` + LunUuid string `xml:"lunUuid"` +} + +func init() { + t["QueryHostsWithAttachedLunRequestType"] = reflect.TypeOf((*QueryHostsWithAttachedLunRequestType)(nil)).Elem() +} + +type QueryHostsWithAttachedLunResponse struct { + Returnval []ManagedObjectReference `xml:"returnval,omitempty"` +} + type QueryIORMConfigOption QueryIORMConfigOptionRequestType func init() { @@ -37135,6 +38897,24 @@ type QueryPolicyMetadataResponse struct { Returnval []ProfilePolicyMetadata `xml:"returnval,omitempty"` } +type QueryProductLockerLocation QueryProductLockerLocationRequestType + +func init() { + t["QueryProductLockerLocation"] = reflect.TypeOf((*QueryProductLockerLocation)(nil)).Elem() +} + +type QueryProductLockerLocationRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["QueryProductLockerLocationRequestType"] = reflect.TypeOf((*QueryProductLockerLocationRequestType)(nil)).Elem() +} + +type QueryProductLockerLocationResponse struct { + Returnval string `xml:"returnval"` +} + type QueryProfileStructure QueryProfileStructureRequestType func init() { @@ -38860,6 +40640,25 @@ func init() { type RegisterKmipServerResponse struct { } +type RegisterKmsCluster RegisterKmsClusterRequestType + +func init() { + t["RegisterKmsCluster"] = reflect.TypeOf((*RegisterKmsCluster)(nil)).Elem() +} + +type RegisterKmsClusterRequestType struct { + This ManagedObjectReference `xml:"_this"` + ClusterId KeyProviderId `xml:"clusterId"` + ManagementType string `xml:"managementType,omitempty"` +} + +func init() { + t["RegisterKmsClusterRequestType"] = reflect.TypeOf((*RegisterKmsClusterRequestType)(nil)).Elem() +} + +type RegisterKmsClusterResponse struct { +} + type RegisterVMRequestType struct { This ManagedObjectReference `xml:"_this"` Path string `xml:"path"` @@ -39505,6 +41304,24 @@ func init() { type RemoveNetworkResourcePoolResponse struct { } +type RemoveNvmeOverRdmaAdapter RemoveNvmeOverRdmaAdapterRequestType + +func init() { + t["RemoveNvmeOverRdmaAdapter"] = reflect.TypeOf((*RemoveNvmeOverRdmaAdapter)(nil)).Elem() +} + +type RemoveNvmeOverRdmaAdapterRequestType struct { + This ManagedObjectReference `xml:"_this"` + HbaDeviceName string `xml:"hbaDeviceName"` +} + +func init() { + t["RemoveNvmeOverRdmaAdapterRequestType"] = reflect.TypeOf((*RemoveNvmeOverRdmaAdapterRequestType)(nil)).Elem() +} + +type RemoveNvmeOverRdmaAdapterResponse struct { +} + type RemovePerfInterval RemovePerfIntervalRequestType func init() { @@ -40005,10 +41822,10 @@ func init() { type ReplicationVmFault struct { ReplicationFault - Reason string `xml:"reason,omitempty"` - State string `xml:"state,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` + Reason string `xml:"reason"` + State string `xml:"state,omitempty"` + InstanceId string `xml:"instanceId,omitempty"` + Vm ManagedObjectReference `xml:"vm"` } func init() { @@ -40430,11 +42247,12 @@ func init() { type ResourceConfigSpec struct { DynamicData - Entity *ManagedObjectReference `xml:"entity,omitempty"` - ChangeVersion string `xml:"changeVersion,omitempty"` - LastModified *time.Time `xml:"lastModified"` - CpuAllocation ResourceAllocationInfo `xml:"cpuAllocation"` - MemoryAllocation ResourceAllocationInfo `xml:"memoryAllocation"` + Entity *ManagedObjectReference `xml:"entity,omitempty"` + ChangeVersion string `xml:"changeVersion,omitempty"` + LastModified *time.Time `xml:"lastModified"` + CpuAllocation ResourceAllocationInfo `xml:"cpuAllocation"` + MemoryAllocation ResourceAllocationInfo `xml:"memoryAllocation"` + ScaleDescendantsShares string `xml:"scaleDescendantsShares,omitempty"` } func init() { @@ -40577,9 +42395,10 @@ func init() { type ResourcePoolRuntimeInfo struct { DynamicData - Memory ResourcePoolResourceUsage `xml:"memory"` - Cpu ResourcePoolResourceUsage `xml:"cpu"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` + Memory ResourcePoolResourceUsage `xml:"memory"` + Cpu ResourcePoolResourceUsage `xml:"cpu"` + OverallStatus ManagedEntityStatus `xml:"overallStatus"` + SharesScalable string `xml:"sharesScalable,omitempty"` } func init() { @@ -40861,6 +42680,24 @@ type RetrieveDiskPartitionInfoResponse struct { Returnval []HostDiskPartitionInfo `xml:"returnval,omitempty"` } +type RetrieveDynamicPassthroughInfo RetrieveDynamicPassthroughInfoRequestType + +func init() { + t["RetrieveDynamicPassthroughInfo"] = reflect.TypeOf((*RetrieveDynamicPassthroughInfo)(nil)).Elem() +} + +type RetrieveDynamicPassthroughInfoRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["RetrieveDynamicPassthroughInfoRequestType"] = reflect.TypeOf((*RetrieveDynamicPassthroughInfoRequestType)(nil)).Elem() +} + +type RetrieveDynamicPassthroughInfoResponse struct { + Returnval []VirtualMachineDynamicPassthroughInfo `xml:"returnval,omitempty"` +} + type RetrieveEntityPermissions RetrieveEntityPermissionsRequestType func init() { @@ -40900,6 +42737,24 @@ type RetrieveEntityScheduledTaskResponse struct { Returnval []ManagedObjectReference `xml:"returnval,omitempty"` } +type RetrieveFreeEpcMemory RetrieveFreeEpcMemoryRequestType + +func init() { + t["RetrieveFreeEpcMemory"] = reflect.TypeOf((*RetrieveFreeEpcMemory)(nil)).Elem() +} + +type RetrieveFreeEpcMemoryRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["RetrieveFreeEpcMemoryRequestType"] = reflect.TypeOf((*RetrieveFreeEpcMemoryRequestType)(nil)).Elem() +} + +type RetrieveFreeEpcMemoryResponse struct { + Returnval int64 `xml:"returnval"` +} + type RetrieveHardwareUptime RetrieveHardwareUptimeRequestType func init() { @@ -41187,6 +43042,45 @@ type RetrieveServiceContentResponse struct { Returnval ServiceContent `xml:"returnval"` } +type RetrieveServiceProviderEntities RetrieveServiceProviderEntitiesRequestType + +func init() { + t["RetrieveServiceProviderEntities"] = reflect.TypeOf((*RetrieveServiceProviderEntities)(nil)).Elem() +} + +type RetrieveServiceProviderEntitiesRequestType struct { + This ManagedObjectReference `xml:"_this"` +} + +func init() { + t["RetrieveServiceProviderEntitiesRequestType"] = reflect.TypeOf((*RetrieveServiceProviderEntitiesRequestType)(nil)).Elem() +} + +type RetrieveServiceProviderEntitiesResponse struct { + Returnval []ManagedObjectReference `xml:"returnval,omitempty"` +} + +type RetrieveSnapshotDetails RetrieveSnapshotDetailsRequestType + +func init() { + t["RetrieveSnapshotDetails"] = reflect.TypeOf((*RetrieveSnapshotDetails)(nil)).Elem() +} + +type RetrieveSnapshotDetailsRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + SnapshotId ID `xml:"snapshotId"` +} + +func init() { + t["RetrieveSnapshotDetailsRequestType"] = reflect.TypeOf((*RetrieveSnapshotDetailsRequestType)(nil)).Elem() +} + +type RetrieveSnapshotDetailsResponse struct { + Returnval VStorageObjectSnapshotDetails `xml:"returnval"` +} + type RetrieveSnapshotInfo RetrieveSnapshotInfoRequestType func init() { @@ -41861,25 +43755,27 @@ func init() { type ScsiLun struct { HostDevice - Key string `xml:"key,omitempty"` - Uuid string `xml:"uuid"` - Descriptor []ScsiLunDescriptor `xml:"descriptor,omitempty"` - CanonicalName string `xml:"canonicalName,omitempty"` - DisplayName string `xml:"displayName,omitempty"` - LunType string `xml:"lunType"` - Vendor string `xml:"vendor,omitempty"` - Model string `xml:"model,omitempty"` - Revision string `xml:"revision,omitempty"` - ScsiLevel int32 `xml:"scsiLevel,omitempty"` - SerialNumber string `xml:"serialNumber,omitempty"` - DurableName *ScsiLunDurableName `xml:"durableName,omitempty"` - AlternateName []ScsiLunDurableName `xml:"alternateName,omitempty"` - StandardInquiry []byte `xml:"standardInquiry,omitempty"` - QueueDepth int32 `xml:"queueDepth,omitempty"` - OperationalState []string `xml:"operationalState"` - Capabilities *ScsiLunCapabilities `xml:"capabilities,omitempty"` - VStorageSupport string `xml:"vStorageSupport,omitempty"` - ProtocolEndpoint *bool `xml:"protocolEndpoint"` + Key string `xml:"key,omitempty"` + Uuid string `xml:"uuid"` + Descriptor []ScsiLunDescriptor `xml:"descriptor,omitempty"` + CanonicalName string `xml:"canonicalName,omitempty"` + DisplayName string `xml:"displayName,omitempty"` + LunType string `xml:"lunType"` + Vendor string `xml:"vendor,omitempty"` + Model string `xml:"model,omitempty"` + Revision string `xml:"revision,omitempty"` + ScsiLevel int32 `xml:"scsiLevel,omitempty"` + SerialNumber string `xml:"serialNumber,omitempty"` + DurableName *ScsiLunDurableName `xml:"durableName,omitempty"` + AlternateName []ScsiLunDurableName `xml:"alternateName,omitempty"` + StandardInquiry []byte `xml:"standardInquiry,omitempty"` + QueueDepth int32 `xml:"queueDepth,omitempty"` + OperationalState []string `xml:"operationalState"` + Capabilities *ScsiLunCapabilities `xml:"capabilities,omitempty"` + VStorageSupport string `xml:"vStorageSupport,omitempty"` + ProtocolEndpoint *bool `xml:"protocolEndpoint"` + PerenniallyReserved *bool `xml:"perenniallyReserved"` + ClusteredVmdkSupported *bool `xml:"clusteredVmdkSupported"` } func init() { @@ -42004,7 +43900,7 @@ func init() { type SecondaryVmAlreadyRegistered struct { VmFaultToleranceIssue - InstanceUuid string `xml:"instanceUuid,omitempty"` + InstanceUuid string `xml:"instanceUuid"` } func init() { @@ -42020,7 +43916,7 @@ func init() { type SecondaryVmNotRegistered struct { VmFaultToleranceIssue - InstanceUuid string `xml:"instanceUuid,omitempty"` + InstanceUuid string `xml:"instanceUuid"` } func init() { @@ -42244,6 +44140,7 @@ type ServiceContent struct { TaskManager *ManagedObjectReference `xml:"taskManager,omitempty"` ExtensionManager *ManagedObjectReference `xml:"extensionManager,omitempty"` CustomizationSpecManager *ManagedObjectReference `xml:"customizationSpecManager,omitempty"` + GuestCustomizationManager *ManagedObjectReference `xml:"guestCustomizationManager,omitempty"` CustomFieldsManager *ManagedObjectReference `xml:"customFieldsManager,omitempty"` AccountManager *ManagedObjectReference `xml:"accountManager,omitempty"` DiagnosticManager *ManagedObjectReference `xml:"diagnosticManager,omitempty"` @@ -42274,6 +44171,9 @@ type ServiceContent struct { HealthUpdateManager *ManagedObjectReference `xml:"healthUpdateManager,omitempty"` FailoverClusterConfigurator *ManagedObjectReference `xml:"failoverClusterConfigurator,omitempty"` FailoverClusterManager *ManagedObjectReference `xml:"failoverClusterManager,omitempty"` + TenantManager *ManagedObjectReference `xml:"tenantManager,omitempty"` + SiteInfoManager *ManagedObjectReference `xml:"siteInfoManager,omitempty"` + StorageQueryManager *ManagedObjectReference `xml:"storageQueryManager,omitempty"` } func init() { @@ -42454,6 +44354,43 @@ func init() { type SetCollectorPageSizeResponse struct { } +type SetCryptoMode SetCryptoModeRequestType + +func init() { + t["SetCryptoMode"] = reflect.TypeOf((*SetCryptoMode)(nil)).Elem() +} + +type SetCryptoModeRequestType struct { + This ManagedObjectReference `xml:"_this"` + CryptoMode string `xml:"cryptoMode"` +} + +func init() { + t["SetCryptoModeRequestType"] = reflect.TypeOf((*SetCryptoModeRequestType)(nil)).Elem() +} + +type SetCryptoModeResponse struct { +} + +type SetDefaultKmsCluster SetDefaultKmsClusterRequestType + +func init() { + t["SetDefaultKmsCluster"] = reflect.TypeOf((*SetDefaultKmsCluster)(nil)).Elem() +} + +type SetDefaultKmsClusterRequestType struct { + This ManagedObjectReference `xml:"_this"` + Entity *ManagedObjectReference `xml:"entity,omitempty"` + ClusterId *KeyProviderId `xml:"clusterId,omitempty"` +} + +func init() { + t["SetDefaultKmsClusterRequestType"] = reflect.TypeOf((*SetDefaultKmsClusterRequestType)(nil)).Elem() +} + +type SetDefaultKmsClusterResponse struct { +} + type SetDisplayTopology SetDisplayTopologyRequestType func init() { @@ -42870,6 +44807,14 @@ func init() { t["SingleMac"] = reflect.TypeOf((*SingleMac)(nil)).Elem() } +type SiteInfo struct { + DynamicData +} + +func init() { + t["SiteInfo"] = reflect.TypeOf((*SiteInfo)(nil)).Elem() +} + type SnapshotCloneNotSupported struct { SnapshotCopyNotSupported } @@ -43102,6 +45047,20 @@ func init() { t["SoftwarePackageCapability"] = reflect.TypeOf((*SoftwarePackageCapability)(nil)).Elem() } +type SolutionUserRequired struct { + SecurityError +} + +func init() { + t["SolutionUserRequired"] = reflect.TypeOf((*SolutionUserRequired)(nil)).Elem() +} + +type SolutionUserRequiredFault SolutionUserRequired + +func init() { + t["SolutionUserRequiredFault"] = reflect.TypeOf((*SolutionUserRequiredFault)(nil)).Elem() +} + type SourceNodeSpec struct { DynamicData @@ -43186,6 +45145,26 @@ func init() { type StandbyGuestResponse struct { } +type StartGuestNetworkRequestType struct { + This ManagedObjectReference `xml:"_this"` + Vm ManagedObjectReference `xml:"vm"` + Auth BaseGuestAuthentication `xml:"auth,typeattr"` +} + +func init() { + t["StartGuestNetworkRequestType"] = reflect.TypeOf((*StartGuestNetworkRequestType)(nil)).Elem() +} + +type StartGuestNetwork_Task StartGuestNetworkRequestType + +func init() { + t["StartGuestNetwork_Task"] = reflect.TypeOf((*StartGuestNetwork_Task)(nil)).Elem() +} + +type StartGuestNetwork_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type StartProgramInGuest StartProgramInGuestRequestType func init() { @@ -45169,6 +47148,24 @@ type UnmapVmfsVolumeEx_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type UnmarkServiceProviderEntities UnmarkServiceProviderEntitiesRequestType + +func init() { + t["UnmarkServiceProviderEntities"] = reflect.TypeOf((*UnmarkServiceProviderEntities)(nil)).Elem() +} + +type UnmarkServiceProviderEntitiesRequestType struct { + This ManagedObjectReference `xml:"_this"` + Entity []ManagedObjectReference `xml:"entity,omitempty"` +} + +func init() { + t["UnmarkServiceProviderEntitiesRequestType"] = reflect.TypeOf((*UnmarkServiceProviderEntitiesRequestType)(nil)).Elem() +} + +type UnmarkServiceProviderEntitiesResponse struct { +} + type UnmountDiskMappingRequestType struct { This ManagedObjectReference `xml:"_this"` Mapping []VsanHostDiskMapping `xml:"mapping"` @@ -45348,6 +47345,24 @@ func init() { type UnregisterHealthUpdateProviderResponse struct { } +type UnregisterKmsCluster UnregisterKmsClusterRequestType + +func init() { + t["UnregisterKmsCluster"] = reflect.TypeOf((*UnregisterKmsCluster)(nil)).Elem() +} + +type UnregisterKmsClusterRequestType struct { + This ManagedObjectReference `xml:"_this"` + ClusterId KeyProviderId `xml:"clusterId"` +} + +func init() { + t["UnregisterKmsClusterRequestType"] = reflect.TypeOf((*UnregisterKmsClusterRequestType)(nil)).Elem() +} + +type UnregisterKmsClusterResponse struct { +} + type UnregisterVM UnregisterVMRequestType func init() { @@ -45475,6 +47490,24 @@ type UpdateAnswerFile_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type UpdateAssignableHardwareConfig UpdateAssignableHardwareConfigRequestType + +func init() { + t["UpdateAssignableHardwareConfig"] = reflect.TypeOf((*UpdateAssignableHardwareConfig)(nil)).Elem() +} + +type UpdateAssignableHardwareConfigRequestType struct { + This ManagedObjectReference `xml:"_this"` + Config HostAssignableHardwareConfig `xml:"config"` +} + +func init() { + t["UpdateAssignableHardwareConfigRequestType"] = reflect.TypeOf((*UpdateAssignableHardwareConfigRequestType)(nil)).Elem() +} + +type UpdateAssignableHardwareConfigResponse struct { +} + type UpdateAssignedLicense UpdateAssignedLicenseRequestType func init() { @@ -45919,6 +47952,25 @@ func init() { type UpdateHostSubSpecificationResponse struct { } +type UpdateHppMultipathLunPolicy UpdateHppMultipathLunPolicyRequestType + +func init() { + t["UpdateHppMultipathLunPolicy"] = reflect.TypeOf((*UpdateHppMultipathLunPolicy)(nil)).Elem() +} + +type UpdateHppMultipathLunPolicyRequestType struct { + This ManagedObjectReference `xml:"_this"` + LunId string `xml:"lunId"` + Policy HostMultipathInfoHppLogicalUnitPolicy `xml:"policy"` +} + +func init() { + t["UpdateHppMultipathLunPolicyRequestType"] = reflect.TypeOf((*UpdateHppMultipathLunPolicyRequestType)(nil)).Elem() +} + +type UpdateHppMultipathLunPolicyResponse struct { +} + type UpdateInternetScsiAdvancedOptions UpdateInternetScsiAdvancedOptionsRequestType func init() { @@ -46427,6 +48479,25 @@ func init() { type UpdatePortGroupResponse struct { } +type UpdateProductLockerLocationRequestType struct { + This ManagedObjectReference `xml:"_this"` + Path string `xml:"path"` +} + +func init() { + t["UpdateProductLockerLocationRequestType"] = reflect.TypeOf((*UpdateProductLockerLocationRequestType)(nil)).Elem() +} + +type UpdateProductLockerLocation_Task UpdateProductLockerLocationRequestType + +func init() { + t["UpdateProductLockerLocation_Task"] = reflect.TypeOf((*UpdateProductLockerLocation_Task)(nil)).Elem() +} + +type UpdateProductLockerLocation_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type UpdateProgress UpdateProgressRequestType func init() { @@ -46715,6 +48786,28 @@ type UpdateVStorageInfrastructureObjectPolicy_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type UpdateVStorageObjectCryptoRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` + DisksCrypto *DiskCryptoSpec `xml:"disksCrypto,omitempty"` +} + +func init() { + t["UpdateVStorageObjectCryptoRequestType"] = reflect.TypeOf((*UpdateVStorageObjectCryptoRequestType)(nil)).Elem() +} + +type UpdateVStorageObjectCrypto_Task UpdateVStorageObjectCryptoRequestType + +func init() { + t["UpdateVStorageObjectCrypto_Task"] = reflect.TypeOf((*UpdateVStorageObjectCrypto_Task)(nil)).Elem() +} + +type UpdateVStorageObjectCrypto_TaskResponse struct { + Returnval ManagedObjectReference `xml:"returnval"` +} + type UpdateVStorageObjectPolicyRequestType struct { This ManagedObjectReference `xml:"_this"` Id ID `xml:"id"` @@ -47855,6 +49948,7 @@ type VMwareDVSFeatureCapability struct { MulticastSnoopingSupported *bool `xml:"multicastSnoopingSupported"` VspanCapability *VMwareDVSVspanCapability `xml:"vspanCapability,omitempty"` LacpCapability *VMwareDvsLacpCapability `xml:"lacpCapability,omitempty"` + NsxSupported *bool `xml:"nsxSupported"` } func init() { @@ -47903,6 +49997,7 @@ type VMwareDVSPortSetting struct { TxUplink *BoolPolicy `xml:"txUplink,omitempty"` LacpPolicy *VMwareUplinkLacpPolicy `xml:"lacpPolicy,omitempty"` MacManagementPolicy *DVSMacManagementPolicy `xml:"macManagementPolicy,omitempty"` + VNI *IntPolicy `xml:"VNI,omitempty"` } func init() { @@ -47916,6 +50011,7 @@ type VMwareDVSPortgroupPolicy struct { UplinkTeamingOverrideAllowed bool `xml:"uplinkTeamingOverrideAllowed"` SecurityPolicyOverrideAllowed bool `xml:"securityPolicyOverrideAllowed"` IpfixOverrideAllowed *bool `xml:"ipfixOverrideAllowed"` + MacManagementOverrideAllowed *bool `xml:"macManagementOverrideAllowed"` } func init() { @@ -48226,6 +50322,17 @@ type VStorageObjectCreateSnapshot_TaskResponse struct { Returnval ManagedObjectReference `xml:"returnval"` } +type VStorageObjectSnapshotDetails struct { + DynamicData + + Path string `xml:"path,omitempty"` + ChangedBlockTrackingId string `xml:"changedBlockTrackingId,omitempty"` +} + +func init() { + t["VStorageObjectSnapshotDetails"] = reflect.TypeOf((*VStorageObjectSnapshotDetails)(nil)).Elem() +} + type VStorageObjectSnapshotInfo struct { DynamicData @@ -48285,6 +50392,7 @@ type VVolVmConfigFileUpdateResultFailedVmConfigFileInfo struct { DynamicData TargetConfigVVolId string `xml:"targetConfigVVolId"` + DsPath string `xml:"dsPath,omitempty"` Fault LocalizedMethodFault `xml:"fault"` } @@ -48311,6 +50419,26 @@ func init() { type ValidateCredentialsInGuestResponse struct { } +type ValidateHCIConfiguration ValidateHCIConfigurationRequestType + +func init() { + t["ValidateHCIConfiguration"] = reflect.TypeOf((*ValidateHCIConfiguration)(nil)).Elem() +} + +type ValidateHCIConfigurationRequestType struct { + This ManagedObjectReference `xml:"_this"` + HciConfigSpec *ClusterComputeResourceHCIConfigSpec `xml:"hciConfigSpec,omitempty"` + Hosts []ManagedObjectReference `xml:"hosts,omitempty"` +} + +func init() { + t["ValidateHCIConfigurationRequestType"] = reflect.TypeOf((*ValidateHCIConfigurationRequestType)(nil)).Elem() +} + +type ValidateHCIConfigurationResponse struct { + Returnval []BaseClusterComputeResourceValidationResultBase `xml:"returnval,omitempty,typeattr"` +} + type ValidateHost ValidateHostRequestType func init() { @@ -49711,25 +51839,28 @@ func init() { type VirtualHardwareOption struct { DynamicData - HwVersion int32 `xml:"hwVersion"` - VirtualDeviceOption []BaseVirtualDeviceOption `xml:"virtualDeviceOption,typeattr"` - DeviceListReadonly bool `xml:"deviceListReadonly"` - NumCPU []int32 `xml:"numCPU"` - NumCoresPerSocket *IntOption `xml:"numCoresPerSocket,omitempty"` - NumCpuReadonly bool `xml:"numCpuReadonly"` - MemoryMB LongOption `xml:"memoryMB"` - NumPCIControllers IntOption `xml:"numPCIControllers"` - NumIDEControllers IntOption `xml:"numIDEControllers"` - NumUSBControllers IntOption `xml:"numUSBControllers"` - NumUSBXHCIControllers *IntOption `xml:"numUSBXHCIControllers,omitempty"` - NumSIOControllers IntOption `xml:"numSIOControllers"` - NumPS2Controllers IntOption `xml:"numPS2Controllers"` - LicensingLimit []string `xml:"licensingLimit,omitempty"` - NumSupportedWwnPorts *IntOption `xml:"numSupportedWwnPorts,omitempty"` - NumSupportedWwnNodes *IntOption `xml:"numSupportedWwnNodes,omitempty"` - ResourceConfigOption *ResourceConfigOption `xml:"resourceConfigOption,omitempty"` - NumNVDIMMControllers *IntOption `xml:"numNVDIMMControllers,omitempty"` - NumTPMDevices *IntOption `xml:"numTPMDevices,omitempty"` + HwVersion int32 `xml:"hwVersion"` + VirtualDeviceOption []BaseVirtualDeviceOption `xml:"virtualDeviceOption,typeattr"` + DeviceListReadonly bool `xml:"deviceListReadonly"` + NumCPU []int32 `xml:"numCPU"` + NumCoresPerSocket *IntOption `xml:"numCoresPerSocket,omitempty"` + NumCpuReadonly bool `xml:"numCpuReadonly"` + MemoryMB LongOption `xml:"memoryMB"` + NumPCIControllers IntOption `xml:"numPCIControllers"` + NumIDEControllers IntOption `xml:"numIDEControllers"` + NumUSBControllers IntOption `xml:"numUSBControllers"` + NumUSBXHCIControllers *IntOption `xml:"numUSBXHCIControllers,omitempty"` + NumSIOControllers IntOption `xml:"numSIOControllers"` + NumPS2Controllers IntOption `xml:"numPS2Controllers"` + LicensingLimit []string `xml:"licensingLimit,omitempty"` + NumSupportedWwnPorts *IntOption `xml:"numSupportedWwnPorts,omitempty"` + NumSupportedWwnNodes *IntOption `xml:"numSupportedWwnNodes,omitempty"` + ResourceConfigOption *ResourceConfigOption `xml:"resourceConfigOption,omitempty"` + NumNVDIMMControllers *IntOption `xml:"numNVDIMMControllers,omitempty"` + NumTPMDevices *IntOption `xml:"numTPMDevices,omitempty"` + NumWDTDevices *IntOption `xml:"numWDTDevices,omitempty"` + NumPrecisionClockDevices *IntOption `xml:"numPrecisionClockDevices,omitempty"` + EpcMemoryMB *LongOption `xml:"epcMemoryMB,omitempty"` } func init() { @@ -50012,6 +52143,7 @@ type VirtualMachineConfigInfo struct { ConsolePreferences *VirtualMachineConsolePreferences `xml:"consolePreferences,omitempty"` DefaultPowerOps VirtualMachineDefaultPowerOpInfo `xml:"defaultPowerOps"` Hardware VirtualHardware `xml:"hardware"` + VcpuConfig []VirtualMachineVcpuConfig `xml:"vcpuConfig,omitempty"` CpuAllocation *ResourceAllocationInfo `xml:"cpuAllocation,omitempty"` MemoryAllocation *ResourceAllocationInfo `xml:"memoryAllocation,omitempty"` LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` @@ -50051,6 +52183,9 @@ type VirtualMachineConfigInfo struct { KeyId *CryptoKeyId `xml:"keyId,omitempty"` GuestIntegrityInfo *VirtualMachineGuestIntegrityInfo `xml:"guestIntegrityInfo,omitempty"` MigrateEncryption string `xml:"migrateEncryption,omitempty"` + SgxInfo *VirtualMachineSgxInfo `xml:"sgxInfo,omitempty"` + ContentLibItemInfo *VirtualMachineContentLibraryItemInfo `xml:"contentLibItemInfo,omitempty"` + GuestMonitoringModeInfo *VirtualMachineGuestMonitoringModeInfo `xml:"guestMonitoringModeInfo,omitempty"` } func init() { @@ -50119,66 +52254,69 @@ func init() { type VirtualMachineConfigSpec struct { DynamicData - ChangeVersion string `xml:"changeVersion,omitempty"` - Name string `xml:"name,omitempty"` - Version string `xml:"version,omitempty"` - CreateDate *time.Time `xml:"createDate"` - Uuid string `xml:"uuid,omitempty"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - NpivNodeWorldWideName []int64 `xml:"npivNodeWorldWideName,omitempty"` - NpivPortWorldWideName []int64 `xml:"npivPortWorldWideName,omitempty"` - NpivWorldWideNameType string `xml:"npivWorldWideNameType,omitempty"` - NpivDesiredNodeWwns int16 `xml:"npivDesiredNodeWwns,omitempty"` - NpivDesiredPortWwns int16 `xml:"npivDesiredPortWwns,omitempty"` - NpivTemporaryDisabled *bool `xml:"npivTemporaryDisabled"` - NpivOnNonRdmDisks *bool `xml:"npivOnNonRdmDisks"` - NpivWorldWideNameOp string `xml:"npivWorldWideNameOp,omitempty"` - LocationId string `xml:"locationId,omitempty"` - GuestId string `xml:"guestId,omitempty"` - AlternateGuestName string `xml:"alternateGuestName,omitempty"` - Annotation string `xml:"annotation,omitempty"` - Files *VirtualMachineFileInfo `xml:"files,omitempty"` - Tools *ToolsConfigInfo `xml:"tools,omitempty"` - Flags *VirtualMachineFlagInfo `xml:"flags,omitempty"` - ConsolePreferences *VirtualMachineConsolePreferences `xml:"consolePreferences,omitempty"` - PowerOpInfo *VirtualMachineDefaultPowerOpInfo `xml:"powerOpInfo,omitempty"` - NumCPUs int32 `xml:"numCPUs,omitempty"` - NumCoresPerSocket int32 `xml:"numCoresPerSocket,omitempty"` - MemoryMB int64 `xml:"memoryMB,omitempty"` - MemoryHotAddEnabled *bool `xml:"memoryHotAddEnabled"` - CpuHotAddEnabled *bool `xml:"cpuHotAddEnabled"` - CpuHotRemoveEnabled *bool `xml:"cpuHotRemoveEnabled"` - VirtualICH7MPresent *bool `xml:"virtualICH7MPresent"` - VirtualSMCPresent *bool `xml:"virtualSMCPresent"` - DeviceChange []BaseVirtualDeviceConfigSpec `xml:"deviceChange,omitempty,typeattr"` - CpuAllocation *ResourceAllocationInfo `xml:"cpuAllocation,omitempty"` - MemoryAllocation *ResourceAllocationInfo `xml:"memoryAllocation,omitempty"` - LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` - CpuAffinity *VirtualMachineAffinityInfo `xml:"cpuAffinity,omitempty"` - MemoryAffinity *VirtualMachineAffinityInfo `xml:"memoryAffinity,omitempty"` - NetworkShaper *VirtualMachineNetworkShaperInfo `xml:"networkShaper,omitempty"` - CpuFeatureMask []VirtualMachineCpuIdInfoSpec `xml:"cpuFeatureMask,omitempty"` - ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` - SwapPlacement string `xml:"swapPlacement,omitempty"` - BootOptions *VirtualMachineBootOptions `xml:"bootOptions,omitempty"` - VAppConfig BaseVmConfigSpec `xml:"vAppConfig,omitempty,typeattr"` - FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` - RepConfig *ReplicationConfigSpec `xml:"repConfig,omitempty"` - VAppConfigRemoved *bool `xml:"vAppConfigRemoved"` - VAssertsEnabled *bool `xml:"vAssertsEnabled"` - ChangeTrackingEnabled *bool `xml:"changeTrackingEnabled"` - Firmware string `xml:"firmware,omitempty"` - MaxMksConnections int32 `xml:"maxMksConnections,omitempty"` - GuestAutoLockEnabled *bool `xml:"guestAutoLockEnabled"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` - MemoryReservationLockedToMax *bool `xml:"memoryReservationLockedToMax"` - NestedHVEnabled *bool `xml:"nestedHVEnabled"` - VPMCEnabled *bool `xml:"vPMCEnabled"` - ScheduledHardwareUpgradeInfo *ScheduledHardwareUpgradeInfo `xml:"scheduledHardwareUpgradeInfo,omitempty"` - VmProfile []BaseVirtualMachineProfileSpec `xml:"vmProfile,omitempty,typeattr"` - MessageBusTunnelEnabled *bool `xml:"messageBusTunnelEnabled"` - Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` - MigrateEncryption string `xml:"migrateEncryption,omitempty"` + ChangeVersion string `xml:"changeVersion,omitempty"` + Name string `xml:"name,omitempty"` + Version string `xml:"version,omitempty"` + CreateDate *time.Time `xml:"createDate"` + Uuid string `xml:"uuid,omitempty"` + InstanceUuid string `xml:"instanceUuid,omitempty"` + NpivNodeWorldWideName []int64 `xml:"npivNodeWorldWideName,omitempty"` + NpivPortWorldWideName []int64 `xml:"npivPortWorldWideName,omitempty"` + NpivWorldWideNameType string `xml:"npivWorldWideNameType,omitempty"` + NpivDesiredNodeWwns int16 `xml:"npivDesiredNodeWwns,omitempty"` + NpivDesiredPortWwns int16 `xml:"npivDesiredPortWwns,omitempty"` + NpivTemporaryDisabled *bool `xml:"npivTemporaryDisabled"` + NpivOnNonRdmDisks *bool `xml:"npivOnNonRdmDisks"` + NpivWorldWideNameOp string `xml:"npivWorldWideNameOp,omitempty"` + LocationId string `xml:"locationId,omitempty"` + GuestId string `xml:"guestId,omitempty"` + AlternateGuestName string `xml:"alternateGuestName,omitempty"` + Annotation string `xml:"annotation,omitempty"` + Files *VirtualMachineFileInfo `xml:"files,omitempty"` + Tools *ToolsConfigInfo `xml:"tools,omitempty"` + Flags *VirtualMachineFlagInfo `xml:"flags,omitempty"` + ConsolePreferences *VirtualMachineConsolePreferences `xml:"consolePreferences,omitempty"` + PowerOpInfo *VirtualMachineDefaultPowerOpInfo `xml:"powerOpInfo,omitempty"` + NumCPUs int32 `xml:"numCPUs,omitempty"` + VcpuConfig []VirtualMachineVcpuConfig `xml:"vcpuConfig,omitempty"` + NumCoresPerSocket int32 `xml:"numCoresPerSocket,omitempty"` + MemoryMB int64 `xml:"memoryMB,omitempty"` + MemoryHotAddEnabled *bool `xml:"memoryHotAddEnabled"` + CpuHotAddEnabled *bool `xml:"cpuHotAddEnabled"` + CpuHotRemoveEnabled *bool `xml:"cpuHotRemoveEnabled"` + VirtualICH7MPresent *bool `xml:"virtualICH7MPresent"` + VirtualSMCPresent *bool `xml:"virtualSMCPresent"` + DeviceChange []BaseVirtualDeviceConfigSpec `xml:"deviceChange,omitempty,typeattr"` + CpuAllocation *ResourceAllocationInfo `xml:"cpuAllocation,omitempty"` + MemoryAllocation *ResourceAllocationInfo `xml:"memoryAllocation,omitempty"` + LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` + CpuAffinity *VirtualMachineAffinityInfo `xml:"cpuAffinity,omitempty"` + MemoryAffinity *VirtualMachineAffinityInfo `xml:"memoryAffinity,omitempty"` + NetworkShaper *VirtualMachineNetworkShaperInfo `xml:"networkShaper,omitempty"` + CpuFeatureMask []VirtualMachineCpuIdInfoSpec `xml:"cpuFeatureMask,omitempty"` + ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` + SwapPlacement string `xml:"swapPlacement,omitempty"` + BootOptions *VirtualMachineBootOptions `xml:"bootOptions,omitempty"` + VAppConfig BaseVmConfigSpec `xml:"vAppConfig,omitempty,typeattr"` + FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` + RepConfig *ReplicationConfigSpec `xml:"repConfig,omitempty"` + VAppConfigRemoved *bool `xml:"vAppConfigRemoved"` + VAssertsEnabled *bool `xml:"vAssertsEnabled"` + ChangeTrackingEnabled *bool `xml:"changeTrackingEnabled"` + Firmware string `xml:"firmware,omitempty"` + MaxMksConnections int32 `xml:"maxMksConnections,omitempty"` + GuestAutoLockEnabled *bool `xml:"guestAutoLockEnabled"` + ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` + MemoryReservationLockedToMax *bool `xml:"memoryReservationLockedToMax"` + NestedHVEnabled *bool `xml:"nestedHVEnabled"` + VPMCEnabled *bool `xml:"vPMCEnabled"` + ScheduledHardwareUpgradeInfo *ScheduledHardwareUpgradeInfo `xml:"scheduledHardwareUpgradeInfo,omitempty"` + VmProfile []BaseVirtualMachineProfileSpec `xml:"vmProfile,omitempty,typeattr"` + MessageBusTunnelEnabled *bool `xml:"messageBusTunnelEnabled"` + Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` + MigrateEncryption string `xml:"migrateEncryption,omitempty"` + SgxInfo *VirtualMachineSgxInfo `xml:"sgxInfo,omitempty"` + GuestMonitoringModeInfo *VirtualMachineGuestMonitoringModeInfo `xml:"guestMonitoringModeInfo,omitempty"` } func init() { @@ -50208,6 +52346,7 @@ type VirtualMachineConfigSummary struct { ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` TpmPresent *bool `xml:"tpmPresent"` NumVmiopBackings int32 `xml:"numVmiopBackings,omitempty"` + HwVersion string `xml:"hwVersion,omitempty"` } func init() { @@ -50226,6 +52365,17 @@ func init() { t["VirtualMachineConsolePreferences"] = reflect.TypeOf((*VirtualMachineConsolePreferences)(nil)).Elem() } +type VirtualMachineContentLibraryItemInfo struct { + DynamicData + + ContentLibraryItemUuid string `xml:"contentLibraryItemUuid"` + ContentLibraryItemVersion string `xml:"contentLibraryItemVersion,omitempty"` +} + +func init() { + t["VirtualMachineContentLibraryItemInfo"] = reflect.TypeOf((*VirtualMachineContentLibraryItemInfo)(nil)).Elem() +} + type VirtualMachineCpuIdInfoSpec struct { ArrayUpdateSpec @@ -50360,6 +52510,20 @@ func init() { t["VirtualMachineDisplayTopology"] = reflect.TypeOf((*VirtualMachineDisplayTopology)(nil)).Elem() } +type VirtualMachineDynamicPassthroughInfo struct { + VirtualMachineTargetInfo + + VendorName string `xml:"vendorName"` + DeviceName string `xml:"deviceName"` + CustomLabel string `xml:"customLabel,omitempty"` + VendorId int32 `xml:"vendorId"` + DeviceId int32 `xml:"deviceId"` +} + +func init() { + t["VirtualMachineDynamicPassthroughInfo"] = reflect.TypeOf((*VirtualMachineDynamicPassthroughInfo)(nil)).Elem() +} + type VirtualMachineEmptyProfileSpec struct { VirtualMachineProfileSpec } @@ -50550,6 +52714,17 @@ func init() { t["VirtualMachineGuestIntegrityInfo"] = reflect.TypeOf((*VirtualMachineGuestIntegrityInfo)(nil)).Elem() } +type VirtualMachineGuestMonitoringModeInfo struct { + DynamicData + + GmmFile string `xml:"gmmFile,omitempty"` + GmmAppliance string `xml:"gmmAppliance,omitempty"` +} + +func init() { + t["VirtualMachineGuestMonitoringModeInfo"] = reflect.TypeOf((*VirtualMachineGuestMonitoringModeInfo)(nil)).Elem() +} + type VirtualMachineGuestQuiesceSpec struct { DynamicData @@ -50571,6 +52746,7 @@ type VirtualMachineGuestSummary struct { ToolsRunningStatus string `xml:"toolsRunningStatus,omitempty"` HostName string `xml:"hostName,omitempty"` IpAddress string `xml:"ipAddress,omitempty"` + HwVersion string `xml:"hwVersion,omitempty"` } func init() { @@ -50778,6 +52954,16 @@ func init() { t["VirtualMachinePciSharedGpuPassthroughInfo"] = reflect.TypeOf((*VirtualMachinePciSharedGpuPassthroughInfo)(nil)).Elem() } +type VirtualMachinePrecisionClockInfo struct { + VirtualMachineTargetInfo + + SystemClockProtocol string `xml:"systemClockProtocol,omitempty"` +} + +func init() { + t["VirtualMachinePrecisionClockInfo"] = reflect.TypeOf((*VirtualMachinePrecisionClockInfo)(nil)).Elem() +} + type VirtualMachineProfileDetails struct { DynamicData @@ -50848,6 +53034,7 @@ type VirtualMachineQuickStats struct { OverallCpuUsage int32 `xml:"overallCpuUsage,omitempty"` OverallCpuDemand int32 `xml:"overallCpuDemand,omitempty"` + OverallCpuReadiness int32 `xml:"overallCpuReadiness,omitempty"` GuestMemoryUsage int32 `xml:"guestMemoryUsage,omitempty"` HostMemoryUsage int32 `xml:"hostMemoryUsage,omitempty"` GuestHeartbeatStatus ManagedEntityStatus `xml:"guestHeartbeatStatus"` @@ -50855,6 +53042,7 @@ type VirtualMachineQuickStats struct { DistributedMemoryEntitlement int32 `xml:"distributedMemoryEntitlement,omitempty"` StaticCpuEntitlement int32 `xml:"staticCpuEntitlement,omitempty"` StaticMemoryEntitlement int32 `xml:"staticMemoryEntitlement,omitempty"` + GrantedMemory int32 `xml:"grantedMemory,omitempty"` PrivateMemory int32 `xml:"privateMemory,omitempty"` SharedMemory int32 `xml:"sharedMemory,omitempty"` SwappedMemory int32 `xml:"swappedMemory,omitempty"` @@ -50885,6 +53073,7 @@ type VirtualMachineRelocateSpec struct { Transform VirtualMachineRelocateTransformation `xml:"transform,omitempty"` DeviceChange []BaseVirtualDeviceConfigSpec `xml:"deviceChange,omitempty,typeattr"` Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` + CryptoSpec BaseCryptoSpec `xml:"cryptoSpec,omitempty,typeattr"` } func init() { @@ -50894,17 +53083,29 @@ func init() { type VirtualMachineRelocateSpecDiskLocator struct { DynamicData - DiskId int32 `xml:"diskId"` - Datastore ManagedObjectReference `xml:"datastore"` - DiskMoveType string `xml:"diskMoveType,omitempty"` - DiskBackingInfo BaseVirtualDeviceBackingInfo `xml:"diskBackingInfo,omitempty,typeattr"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` + DiskId int32 `xml:"diskId"` + Datastore ManagedObjectReference `xml:"datastore"` + DiskMoveType string `xml:"diskMoveType,omitempty"` + DiskBackingInfo BaseVirtualDeviceBackingInfo `xml:"diskBackingInfo,omitempty,typeattr"` + Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` + Backing *VirtualMachineRelocateSpecDiskLocatorBackingSpec `xml:"backing,omitempty"` } func init() { t["VirtualMachineRelocateSpecDiskLocator"] = reflect.TypeOf((*VirtualMachineRelocateSpecDiskLocator)(nil)).Elem() } +type VirtualMachineRelocateSpecDiskLocatorBackingSpec struct { + DynamicData + + Parent *VirtualMachineRelocateSpecDiskLocatorBackingSpec `xml:"parent,omitempty"` + Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` +} + +func init() { + t["VirtualMachineRelocateSpecDiskLocatorBackingSpec"] = reflect.TypeOf((*VirtualMachineRelocateSpecDiskLocatorBackingSpec)(nil)).Elem() +} + type VirtualMachineRuntimeInfo struct { DynamicData @@ -50986,6 +53187,30 @@ func init() { t["VirtualMachineSerialInfo"] = reflect.TypeOf((*VirtualMachineSerialInfo)(nil)).Elem() } +type VirtualMachineSgxInfo struct { + DynamicData + + EpcSize int64 `xml:"epcSize"` + FlcMode string `xml:"flcMode,omitempty"` + LePubKeyHash string `xml:"lePubKeyHash,omitempty"` +} + +func init() { + t["VirtualMachineSgxInfo"] = reflect.TypeOf((*VirtualMachineSgxInfo)(nil)).Elem() +} + +type VirtualMachineSgxTargetInfo struct { + VirtualMachineTargetInfo + + MaxEpcSize int64 `xml:"maxEpcSize"` + FlcModes []string `xml:"flcModes,omitempty"` + LePubKeyHashes []string `xml:"lePubKeyHashes,omitempty"` +} + +func init() { + t["VirtualMachineSgxTargetInfo"] = reflect.TypeOf((*VirtualMachineSgxTargetInfo)(nil)).Elem() +} + type VirtualMachineSnapshotInfo struct { DynamicData @@ -51118,6 +53343,7 @@ type VirtualMachineTicket struct { Host string `xml:"host,omitempty"` Port int32 `xml:"port,omitempty"` SslThumbprint string `xml:"sslThumbprint,omitempty"` + Url string `xml:"url,omitempty"` } func init() { @@ -51235,6 +53461,16 @@ func init() { t["VirtualMachineVMIROM"] = reflect.TypeOf((*VirtualMachineVMIROM)(nil)).Elem() } +type VirtualMachineVcpuConfig struct { + DynamicData + + LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` +} + +func init() { + t["VirtualMachineVcpuConfig"] = reflect.TypeOf((*VirtualMachineVcpuConfig)(nil)).Elem() +} + type VirtualMachineVideoCard struct { VirtualDevice @@ -51395,6 +53631,20 @@ func init() { t["VirtualPCIPassthrough"] = reflect.TypeOf((*VirtualPCIPassthrough)(nil)).Elem() } +type VirtualPCIPassthroughAllowedDevice struct { + DynamicData + + VendorId int32 `xml:"vendorId"` + DeviceId int32 `xml:"deviceId"` + SubVendorId int32 `xml:"subVendorId,omitempty"` + SubDeviceId int32 `xml:"subDeviceId,omitempty"` + RevisionId int16 `xml:"revisionId,omitempty"` +} + +func init() { + t["VirtualPCIPassthroughAllowedDevice"] = reflect.TypeOf((*VirtualPCIPassthroughAllowedDevice)(nil)).Elem() +} + type VirtualPCIPassthroughDeviceBackingInfo struct { VirtualDeviceDeviceBackingInfo @@ -51416,6 +53666,26 @@ func init() { t["VirtualPCIPassthroughDeviceBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughDeviceBackingOption)(nil)).Elem() } +type VirtualPCIPassthroughDynamicBackingInfo struct { + VirtualDeviceDeviceBackingInfo + + AllowedDevice []VirtualPCIPassthroughAllowedDevice `xml:"allowedDevice,omitempty"` + CustomLabel string `xml:"customLabel,omitempty"` + AssignedId string `xml:"assignedId,omitempty"` +} + +func init() { + t["VirtualPCIPassthroughDynamicBackingInfo"] = reflect.TypeOf((*VirtualPCIPassthroughDynamicBackingInfo)(nil)).Elem() +} + +type VirtualPCIPassthroughDynamicBackingOption struct { + VirtualDeviceDeviceBackingOption +} + +func init() { + t["VirtualPCIPassthroughDynamicBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughDynamicBackingOption)(nil)).Elem() +} + type VirtualPCIPassthroughOption struct { VirtualDeviceOption } @@ -51582,6 +53852,42 @@ func init() { t["VirtualPointingDeviceOption"] = reflect.TypeOf((*VirtualPointingDeviceOption)(nil)).Elem() } +type VirtualPrecisionClock struct { + VirtualDevice +} + +func init() { + t["VirtualPrecisionClock"] = reflect.TypeOf((*VirtualPrecisionClock)(nil)).Elem() +} + +type VirtualPrecisionClockOption struct { + VirtualDeviceOption +} + +func init() { + t["VirtualPrecisionClockOption"] = reflect.TypeOf((*VirtualPrecisionClockOption)(nil)).Elem() +} + +type VirtualPrecisionClockSystemClockBackingInfo struct { + VirtualDeviceBackingInfo + + Protocol string `xml:"protocol,omitempty"` +} + +func init() { + t["VirtualPrecisionClockSystemClockBackingInfo"] = reflect.TypeOf((*VirtualPrecisionClockSystemClockBackingInfo)(nil)).Elem() +} + +type VirtualPrecisionClockSystemClockBackingOption struct { + VirtualDeviceBackingOption + + Protocol ChoiceOption `xml:"protocol"` +} + +func init() { + t["VirtualPrecisionClockSystemClockBackingOption"] = reflect.TypeOf((*VirtualPrecisionClockSystemClockBackingOption)(nil)).Elem() +} + type VirtualSATAController struct { VirtualController } @@ -52137,6 +54443,27 @@ func init() { t["VirtualVmxnetOption"] = reflect.TypeOf((*VirtualVmxnetOption)(nil)).Elem() } +type VirtualWDT struct { + VirtualDevice + + RunOnBoot bool `xml:"runOnBoot"` + Running bool `xml:"running"` +} + +func init() { + t["VirtualWDT"] = reflect.TypeOf((*VirtualWDT)(nil)).Elem() +} + +type VirtualWDTOption struct { + VirtualDeviceOption + + RunOnBoot BoolOption `xml:"runOnBoot"` +} + +func init() { + t["VirtualWDTOption"] = reflect.TypeOf((*VirtualWDTOption)(nil)).Elem() +} + type VlanProfile struct { ApplyProfile } @@ -54651,8 +56978,9 @@ func init() { type VslmCloneSpec struct { VslmMigrateSpec - Name string `xml:"name"` - KeepAfterDeleteVm *bool `xml:"keepAfterDeleteVm"` + Name string `xml:"name"` + KeepAfterDeleteVm *bool `xml:"keepAfterDeleteVm"` + Metadata []KeyValue `xml:"metadata,omitempty"` } func init() { @@ -54667,6 +56995,8 @@ type VslmCreateSpec struct { BackingSpec BaseVslmCreateSpecBackingSpec `xml:"backingSpec,typeattr"` CapacityInMB int64 `xml:"capacityInMB"` Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` + Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` + Metadata []KeyValue `xml:"metadata,omitempty"` } func init() { @@ -54711,6 +57041,7 @@ type VslmMigrateSpec struct { BackingSpec BaseVslmCreateSpecBackingSpec `xml:"backingSpec,typeattr"` Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` Consolidate *bool `xml:"consolidate"` + DisksCrypto *DiskCryptoSpec `xml:"disksCrypto,omitempty"` } func init() { @@ -54872,6 +57203,29 @@ func init() { t["VspanSameSessionPortConflictFault"] = reflect.TypeOf((*VspanSameSessionPortConflictFault)(nil)).Elem() } +type VstorageObjectVCenterQueryChangedDiskAreas VstorageObjectVCenterQueryChangedDiskAreasRequestType + +func init() { + t["VstorageObjectVCenterQueryChangedDiskAreas"] = reflect.TypeOf((*VstorageObjectVCenterQueryChangedDiskAreas)(nil)).Elem() +} + +type VstorageObjectVCenterQueryChangedDiskAreasRequestType struct { + This ManagedObjectReference `xml:"_this"` + Id ID `xml:"id"` + Datastore ManagedObjectReference `xml:"datastore"` + SnapshotId ID `xml:"snapshotId"` + StartOffset int64 `xml:"startOffset"` + ChangeId string `xml:"changeId"` +} + +func init() { + t["VstorageObjectVCenterQueryChangedDiskAreasRequestType"] = reflect.TypeOf((*VstorageObjectVCenterQueryChangedDiskAreasRequestType)(nil)).Elem() +} + +type VstorageObjectVCenterQueryChangedDiskAreasResponse struct { + Returnval DiskChangeInfo `xml:"returnval"` +} + type VvolDatastoreInfo struct { DatastoreInfo diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE b/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE index 74487567..6a66aea5 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE +++ b/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012 The Go Authors. All rights reserved. +Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go b/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go index 39bbac1d..92c63717 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go +++ b/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go @@ -16,7 +16,7 @@ import ( ) const ( - // A generic XML header suitable for use with the output of Marshal. + // Header is a generic XML header suitable for use with the output of Marshal. // This is not automatically added to any output of this package, // it is provided as a convenience. Header = `` + "\n" @@ -24,21 +24,21 @@ const ( // Marshal returns the XML encoding of v. // -// Marshal handles an array or slice by marshalling each of the elements. -// Marshal handles a pointer by marshalling the value it points at or, if the -// pointer is nil, by writing nothing. Marshal handles an interface value by -// marshalling the value it contains or, if the interface value is nil, by -// writing nothing. Marshal handles all other data by writing one or more XML +// Marshal handles an array or slice by marshaling each of the elements. +// Marshal handles a pointer by marshaling the value it points at or, if the +// pointer is nil, by writing nothing. Marshal handles an interface value by +// marshaling the value it contains or, if the interface value is nil, by +// writing nothing. Marshal handles all other data by writing one or more XML // elements containing the data. // // The name for the XML elements is taken from, in order of preference: // - the tag on the XMLName field, if the data is a struct -// - the value of the XMLName field of type xml.Name +// - the value of the XMLName field of type Name // - the tag of the struct field used to obtain the data // - the name of the struct field used to obtain the data -// - the name of the marshalled type +// - the name of the marshaled type // -// The XML element for a struct contains marshalled elements for each of the +// The XML element for a struct contains marshaled elements for each of the // exported fields of the struct, with these exceptions: // - the XMLName field, described above, is omitted. // - a field with tag "-" is omitted. @@ -48,10 +48,12 @@ const ( // field name in the XML element. // - a field with tag ",chardata" is written as character data, // not as an XML element. +// - a field with tag ",cdata" is written as character data +// wrapped in one or more tags, not as an XML element. // - a field with tag ",innerxml" is written verbatim, not subject -// to the usual marshalling procedure. +// to the usual marshaling procedure. // - a field with tag ",comment" is written as an XML comment, not -// subject to the usual marshalling procedure. It must not contain +// subject to the usual marshaling procedure. It must not contain // the "--" string within it. // - a field with a tag including the "omitempty" option is omitted // if the field value is empty. The empty values are false, 0, any @@ -59,11 +61,18 @@ const ( // string of length zero. // - an anonymous struct field is handled as if the fields of its // value were part of the outer struct. +// - a field implementing Marshaler is written by calling its MarshalXML +// method. +// - a field implementing encoding.TextMarshaler is written by encoding the +// result of its MarshalText method as text. // // If a field uses a tag "a>b>c", then the element c will be nested inside -// parent elements a and b. Fields that appear next to each other that name +// parent elements a and b. Fields that appear next to each other that name // the same parent will be enclosed in one XML element. // +// If the XML name for a struct field is defined by both the field tag and the +// struct's XMLName field, the names must match. +// // See MarshalIndent for an example. // // Marshal will return an error if asked to marshal a channel, function, or map. @@ -173,9 +182,9 @@ func (enc *Encoder) EncodeElement(v interface{}, start StartElement) error { } var ( - endComment = []byte("-->") - endProcInst = []byte("?>") - endDirective = []byte(">") + begComment = []byte("") + endProcInst = []byte("?>") ) // EncodeToken writes the given XML token to the stream. @@ -191,6 +200,7 @@ var ( // EncodeToken allows writing a ProcInst with Target set to "xml" only as the first token // in the stream. func (enc *Encoder) EncodeToken(t Token) error { + p := &enc.p switch t := t.(type) { case StartElement: @@ -202,7 +212,7 @@ func (enc *Encoder) EncodeToken(t Token) error { return err } case CharData: - EscapeText(p, t) + escapeText(p, t, false) case Comment: if bytes.Contains(t, endComment) { return fmt.Errorf("xml: EncodeToken of Comment containing --> marker") @@ -213,7 +223,7 @@ func (enc *Encoder) EncodeToken(t Token) error { return p.cachedWriteError() case ProcInst: // First token to be encoded which is also a ProcInst with target of xml - // is the xml declaration. The only ProcInst where target of xml is allowed. + // is the xml declaration. The only ProcInst where target of xml is allowed. if t.Target == "xml" && p.Buffered() != 0 { return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded") } @@ -231,16 +241,59 @@ func (enc *Encoder) EncodeToken(t Token) error { } p.WriteString("?>") case Directive: - if bytes.Contains(t, endDirective) { - return fmt.Errorf("xml: EncodeToken of Directive containing > marker") + if !isValidDirective(t) { + return fmt.Errorf("xml: EncodeToken of Directive containing wrong < or > markers") } p.WriteString("") + default: + return fmt.Errorf("xml: EncodeToken of invalid token type") + } return p.cachedWriteError() } +// isValidDirective reports whether dir is a valid directive text, +// meaning angle brackets are matched, ignoring comments and strings. +func isValidDirective(dir Directive) bool { + var ( + depth int + inquote uint8 + incomment bool + ) + for i, c := range dir { + switch { + case incomment: + if c == '>' { + if n := 1 + i - len(endComment); n >= 0 && bytes.Equal(dir[n:i+1], endComment) { + incomment = false + } + } + // Just ignore anything in comment + case inquote != 0: + if c == inquote { + inquote = 0 + } + // Just ignore anything within quotes + case c == '\'' || c == '"': + inquote = c + case c == '<': + if i+len(begComment) < len(dir) && bytes.Equal(dir[i:i+len(begComment)], begComment) { + incomment = true + } else { + depth++ + } + case c == '>': + if depth == 0 { + return false + } + depth-- + } + } + return depth == 0 && inquote == 0 && !incomment +} + // Flush flushes any buffered XML to the underlying writer. // See the EncodeToken documentation for details about when it is necessary. func (enc *Encoder) Flush() error { @@ -274,7 +327,7 @@ func (p *printer) createAttrPrefix(url string) string { // (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns", // but users should not be trying to use that one directly - that's our job.) if url == xmlURL { - return "xml" + return xmlPrefix } // Need to define a new name space. @@ -453,7 +506,6 @@ func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplat continue } fv := finfo.value(val) - name := Name{Space: finfo.xmlns, Local: finfo.name} if finfo.flags&fOmitEmpty != 0 && isEmptyValue(fv) { continue @@ -463,69 +515,10 @@ func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplat continue } - if fv.CanInterface() && fv.Type().Implements(marshalerAttrType) { - attr, err := fv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - if err != nil { - return err - } - if attr.Name.Local != "" { - start.Attr = append(start.Attr, attr) - } - continue - } - - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) { - attr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - if err != nil { - return err - } - if attr.Name.Local != "" { - start.Attr = append(start.Attr, attr) - } - continue - } - } - - if fv.CanInterface() && fv.Type().Implements(textMarshalerType) { - text, err := fv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - start.Attr = append(start.Attr, Attr{name, string(text)}) - continue - } - - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - text, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - start.Attr = append(start.Attr, Attr{name, string(text)}) - continue - } - } - - // Dereference or skip nil pointer, interface values. - switch fv.Kind() { - case reflect.Ptr, reflect.Interface: - if fv.IsNil() { - continue - } - fv = fv.Elem() - } - - s, b, err := p.marshalSimple(fv.Type(), fv) - if err != nil { + name := Name{Space: finfo.xmlns, Local: finfo.name} + if err := p.marshalAttr(&start, name, fv); err != nil { return err } - if b != nil { - s = string(b) - } - start.Attr = append(start.Attr, Attr{name, s}) } if err := p.writeStart(&start); err != nil { @@ -555,6 +548,90 @@ func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplat return p.cachedWriteError() } +// marshalAttr marshals an attribute with the given name and value, adding to start.Attr. +func (p *printer) marshalAttr(start *StartElement, name Name, val reflect.Value) error { + if val.CanInterface() && val.Type().Implements(marshalerAttrType) { + attr, err := val.Interface().(MarshalerAttr).MarshalXMLAttr(name) + if err != nil { + return err + } + if attr.Name.Local != "" { + start.Attr = append(start.Attr, attr) + } + return nil + } + + if val.CanAddr() { + pv := val.Addr() + if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) { + attr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name) + if err != nil { + return err + } + if attr.Name.Local != "" { + start.Attr = append(start.Attr, attr) + } + return nil + } + } + + if val.CanInterface() && val.Type().Implements(textMarshalerType) { + text, err := val.Interface().(encoding.TextMarshaler).MarshalText() + if err != nil { + return err + } + start.Attr = append(start.Attr, Attr{name, string(text)}) + return nil + } + + if val.CanAddr() { + pv := val.Addr() + if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { + text, err := pv.Interface().(encoding.TextMarshaler).MarshalText() + if err != nil { + return err + } + start.Attr = append(start.Attr, Attr{name, string(text)}) + return nil + } + } + + // Dereference or skip nil pointer, interface values. + switch val.Kind() { + case reflect.Ptr, reflect.Interface: + if val.IsNil() { + return nil + } + val = val.Elem() + } + + // Walk slices. + if val.Kind() == reflect.Slice && val.Type().Elem().Kind() != reflect.Uint8 { + n := val.Len() + for i := 0; i < n; i++ { + if err := p.marshalAttr(start, name, val.Index(i)); err != nil { + return err + } + } + return nil + } + + if val.Type() == attrType { + start.Attr = append(start.Attr, val.Interface().(Attr)) + return nil + } + + s, b, err := p.marshalSimple(val.Type(), val) + if err != nil { + return err + } + if b != nil { + s = string(b) + } + start.Attr = append(start.Attr, Attr{name, s}) + return nil +} + // defaultStart returns the default start element to use, // given the reflect type, field info, and start template. func defaultStart(typ reflect.Type, finfo *fieldInfo, startTemplate *StartElement) StartElement { @@ -716,6 +793,20 @@ func (p *printer) marshalSimple(typ reflect.Type, val reflect.Value) (string, [] var ddBytes = []byte("--") +// indirect drills into interfaces and pointers, returning the pointed-at value. +// If it encounters a nil interface or pointer, indirect returns that nil value. +// This can turn into an infinite loop given a cyclic chain, +// but it matches the Go 1 behavior. +func indirect(vf reflect.Value) reflect.Value { + for vf.Kind() == reflect.Interface || vf.Kind() == reflect.Ptr { + if vf.IsNil() { + return vf + } + vf = vf.Elem() + } + return vf +} + func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { s := parentStack{p: p} for i := range tinfo.fields { @@ -725,22 +816,23 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { } vf := finfo.value(val) - // Dereference or skip nil pointer, interface values. - switch vf.Kind() { - case reflect.Ptr, reflect.Interface: - if !vf.IsNil() { - vf = vf.Elem() - } - } - switch finfo.flags & fMode { - case fCharData: + case fCDATA, fCharData: + emit := EscapeText + if finfo.flags&fMode == fCDATA { + emit = emitCDATA + } + if err := s.trim(finfo.parents); err != nil { + return err + } if vf.CanInterface() && vf.Type().Implements(textMarshalerType) { data, err := vf.Interface().(encoding.TextMarshaler).MarshalText() if err != nil { return err } - Escape(p, data) + if err := emit(p, data); err != nil { + return err + } continue } if vf.CanAddr() { @@ -750,27 +842,39 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { if err != nil { return err } - Escape(p, data) + if err := emit(p, data); err != nil { + return err + } continue } } + var scratch [64]byte + vf = indirect(vf) switch vf.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - Escape(p, strconv.AppendInt(scratch[:0], vf.Int(), 10)) + if err := emit(p, strconv.AppendInt(scratch[:0], vf.Int(), 10)); err != nil { + return err + } case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - Escape(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10)) + if err := emit(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10)); err != nil { + return err + } case reflect.Float32, reflect.Float64: - Escape(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits())) + if err := emit(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits())); err != nil { + return err + } case reflect.Bool: - Escape(p, strconv.AppendBool(scratch[:0], vf.Bool())) + if err := emit(p, strconv.AppendBool(scratch[:0], vf.Bool())); err != nil { + return err + } case reflect.String: - if err := EscapeText(p, []byte(vf.String())); err != nil { + if err := emit(p, []byte(vf.String())); err != nil { return err } case reflect.Slice: if elem, ok := vf.Interface().([]byte); ok { - if err := EscapeText(p, elem); err != nil { + if err := emit(p, elem); err != nil { return err } } @@ -778,6 +882,10 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { continue case fComment: + if err := s.trim(finfo.parents); err != nil { + return err + } + vf = indirect(vf) k := vf.Kind() if !(k == reflect.String || k == reflect.Slice && vf.Type().Elem().Kind() == reflect.Uint8) { return fmt.Errorf("xml: bad type for comment field of %s", val.Type()) @@ -792,14 +900,14 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { switch k { case reflect.String: s := vf.String() - dashDash = strings.Index(s, "--") >= 0 + dashDash = strings.Contains(s, "--") dashLast = s[len(s)-1] == '-' if !dashDash { p.WriteString(s) } case reflect.Slice: b := vf.Bytes() - dashDash = bytes.Index(b, ddBytes) >= 0 + dashDash = bytes.Contains(b, ddBytes) dashLast = b[len(b)-1] == '-' if !dashDash { p.Write(b) @@ -818,6 +926,7 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { continue case fInnerXml: + vf = indirect(vf) iface := vf.Interface() switch raw := iface.(type) { case []byte: @@ -891,8 +1000,8 @@ type parentStack struct { } // trim updates the XML context to match the longest common prefix of the stack -// and the given parents. A closing tag will be written for every parent -// popped. Passing a zero slice or nil will close all the elements. +// and the given parents. A closing tag will be written for every parent +// popped. Passing a zero slice or nil will close all the elements. func (s *parentStack) trim(parents []string) error { split := 0 for ; split < len(parents) && split < len(s.stack); split++ { @@ -905,7 +1014,7 @@ func (s *parentStack) trim(parents []string) error { return err } } - s.stack = parents[:split] + s.stack = s.stack[:split] return nil } @@ -920,7 +1029,7 @@ func (s *parentStack) push(parents []string) error { return nil } -// A MarshalXMLError is returned when Marshal encounters a type +// UnsupportedTypeError is returned when Marshal encounters a type // that cannot be converted into XML. type UnsupportedTypeError struct { Type reflect.Type diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/read.go b/vendor/github.com/vmware/govmomi/vim25/xml/read.go index fe35fce6..60f71582 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/read.go +++ b/vendor/github.com/vmware/govmomi/vim25/xml/read.go @@ -1,4 +1,4 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -27,7 +27,7 @@ import ( // discarded. // // Because Unmarshal uses the reflect package, it can only assign -// to exported (upper case) fields. Unmarshal uses a case-sensitive +// to exported (upper case) fields. Unmarshal uses a case-sensitive // comparison to match XML element names to tag values and struct // field names. // @@ -37,9 +37,9 @@ import ( // // * If the struct has a field of type []byte or string with tag // ",innerxml", Unmarshal accumulates the raw XML nested inside the -// element in that field. The rest of the rules still apply. +// element in that field. The rest of the rules still apply. // -// * If the struct has a field named XMLName of type xml.Name, +// * If the struct has a field named XMLName of type Name, // Unmarshal records the element name in that field. // // * If the XMLName field has an associated tag of the form @@ -52,6 +52,11 @@ import ( // the explicit name in a struct field tag of the form "name,attr", // Unmarshal records the attribute value in that field. // +// * If the XML element has an attribute not handled by the previous +// rule and the struct has a field with an associated tag containing +// ",any,attr", Unmarshal records the attribute value in the first +// such field. +// // * If the XML element contains character data, that data is // accumulated in the first struct field that has tag ",chardata". // The struct field may have type []byte or string. @@ -59,7 +64,7 @@ import ( // // * If the XML element contains comments, they are accumulated in // the first struct field that has tag ",comment". The struct -// field may have type []byte or string. If there is no such +// field may have type []byte or string. If there is no such // field, the comments are discarded. // // * If the XML element contains a sub-element whose name matches @@ -85,7 +90,12 @@ import ( // * An anonymous struct field is handled as if the fields of its // value were part of the outer struct. // -// * A struct field with tag "-" is never unmarshalled into. +// * A struct field with tag "-" is never unmarshaled into. +// +// If Unmarshal encounters a field type that implements the Unmarshaler +// interface, Unmarshal calls its UnmarshalXML method to produce the value from +// the XML element. Otherwise, if the value implements +// encoding.TextUnmarshaler, Unmarshal calls that value's UnmarshalText method. // // Unmarshal maps an XML element to a string or []byte by saving the // concatenation of that element's character data in the string or @@ -94,34 +104,42 @@ import ( // Unmarshal maps an attribute value to a string or []byte by saving // the value in the string or slice. // -// Unmarshal maps an XML element to a slice by extending the length of -// the slice and mapping the element to the newly created value. +// Unmarshal maps an attribute value to an Attr by saving the attribute, +// including its name, in the Attr. +// +// Unmarshal maps an XML element or attribute value to a slice by +// extending the length of the slice and mapping the element or attribute +// to the newly created value. // // Unmarshal maps an XML element or attribute value to a bool by -// setting it to the boolean value represented by the string. +// setting it to the boolean value represented by the string. Whitespace +// is trimmed and ignored. // // Unmarshal maps an XML element or attribute value to an integer or // floating-point field by setting the field to the result of -// interpreting the string value in decimal. There is no check for -// overflow. +// interpreting the string value in decimal. There is no check for +// overflow. Whitespace is trimmed and ignored. // -// Unmarshal maps an XML element to an xml.Name by recording the -// element name. +// Unmarshal maps an XML element to a Name by recording the element +// name. // // Unmarshal maps an XML element to a pointer by setting the pointer // to a freshly allocated value and then mapping the element to that value. // +// A missing element or empty attribute value will be unmarshaled as a zero value. +// If the field is a slice, a zero value will be appended to the field. Otherwise, the +// field will be set to its zero value. func Unmarshal(data []byte, v interface{}) error { return NewDecoder(bytes.NewReader(data)).Decode(v) } -// Decode works like xml.Unmarshal, except it reads the decoder +// Decode works like Unmarshal, except it reads the decoder // stream to find the start element. func (d *Decoder) Decode(v interface{}) error { return d.DecodeElement(v, nil) } -// DecodeElement works like xml.Unmarshal except that it takes +// DecodeElement works like Unmarshal except that it takes // a pointer to the start XML element to decode into v. // It is useful when a client reads some raw XML tokens itself // but also wants to defer to Unmarshal for some elements. @@ -133,7 +151,7 @@ func (d *Decoder) DecodeElement(v interface{}, start *StartElement) error { return d.unmarshal(val.Elem(), start) } -// An UnmarshalError represents an error in the unmarshalling process. +// An UnmarshalError represents an error in the unmarshaling process. type UnmarshalError string func (e UnmarshalError) Error() string { return string(e) } @@ -148,7 +166,7 @@ func (e UnmarshalError) Error() string { return string(e) } // UnmarshalXML must consume exactly one XML element. // One common implementation strategy is to unmarshal into // a separate value with a layout matching the expected XML -// using d.DecodeElement, and then to copy the data from +// using d.DecodeElement, and then to copy the data from // that value into the receiver. // Another common strategy is to use d.Token to process the // XML object one token at a time. @@ -180,19 +198,19 @@ func receiverType(val interface{}) string { // unmarshalInterface unmarshals a single XML element into val. // start is the opening tag of the element. -func (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error { +func (d *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error { // Record that decoder must stop at end tag corresponding to start. - p.pushEOF() + d.pushEOF() - p.unmarshalDepth++ - err := val.UnmarshalXML(p, *start) - p.unmarshalDepth-- + d.unmarshalDepth++ + err := val.UnmarshalXML(d, *start) + d.unmarshalDepth-- if err != nil { - p.popEOF() + d.popEOF() return err } - if !p.popEOF() { + if !d.popEOF() { return fmt.Errorf("xml: %s.UnmarshalXML did not consume entire <%s> element", receiverType(val), start.Name.Local) } @@ -202,11 +220,11 @@ func (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error // unmarshalTextInterface unmarshals a single XML element into val. // The chardata contained in the element (but not its children) // is passed to the text unmarshaler. -func (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *StartElement) error { +func (d *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler) error { var buf []byte depth := 1 for depth > 0 { - t, err := p.Token() + t, err := d.Token() if err != nil { return err } @@ -225,14 +243,13 @@ func (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *St } // unmarshalAttr unmarshals a single XML attribute into val. -func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { +func (d *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { if val.Kind() == reflect.Ptr { if val.IsNil() { val.Set(reflect.New(val.Type().Elem())) } val = val.Elem() } - if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) { // This is an unmarshaler with a non-pointer receiver, // so it's likely to be incorrect, but we do what we're told. @@ -258,11 +275,30 @@ func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { } } - copyValue(val, []byte(attr.Value)) - return nil + if val.Type().Kind() == reflect.Slice && val.Type().Elem().Kind() != reflect.Uint8 { + // Slice of element values. + // Grow slice. + n := val.Len() + val.Set(reflect.Append(val, reflect.Zero(val.Type().Elem()))) + + // Recur to read element into slice. + if err := d.unmarshalAttr(val.Index(n), attr); err != nil { + val.SetLen(n) + return err + } + return nil + } + + if val.Type() == attrType { + val.Set(reflect.ValueOf(attr)) + return nil + } + + return copyValue(val, []byte(attr.Value)) } var ( + attrType = reflect.TypeOf(Attr{}) unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() unmarshalerAttrType = reflect.TypeOf((*UnmarshalerAttr)(nil)).Elem() textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() @@ -271,21 +307,9 @@ var ( // Find reflect.Type for an element's type attribute. func (p *Decoder) typeForElement(val reflect.Value, start *StartElement) reflect.Type { t := "" - for i, a := range start.Attr { + for _, a := range start.Attr { if a.Name == xmlSchemaInstance || a.Name == xsiType { t = a.Value - // HACK: ensure xsi:type is last in the list to avoid using that value for - // a "type" attribute, such as ManagedObjectReference.Type for example. - // Note that xsi:type is already the last attribute in VC/ESX responses. - // This is only an issue with govmomi simulator generated responses. - // Proper fix will require finding a few needles in this xml package haystack. - // Note: govmomi uses xmlSchemaInstance, other clients (e.g. rbvmomi) use xsiType. - // They are the same thing to XML parsers, but not to this hack here. - x := len(start.Attr) - 1 - if i != x { - start.Attr[i] = start.Attr[x] - start.Attr[x] = a - } break } } @@ -312,11 +336,11 @@ func (p *Decoder) typeForElement(val reflect.Value, start *StartElement) reflect } // Unmarshal a single XML element into val. -func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { +func (d *Decoder) unmarshal(val reflect.Value, start *StartElement) error { // Find start element if we need it. if start == nil { for { - tok, err := p.Token() + tok, err := d.Token() if err != nil { return err } @@ -329,10 +353,10 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { // Try to figure out type for empty interface values. if val.Kind() == reflect.Interface && val.IsNil() { - typ := p.typeForElement(val, start) + typ := d.typeForElement(val, start) if typ != nil { pval := reflect.New(typ).Elem() - err := p.unmarshal(pval, start) + err := d.unmarshal(pval, start) if err != nil { return err } @@ -371,24 +395,24 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { if val.CanInterface() && val.Type().Implements(unmarshalerType) { // This is an unmarshaler with a non-pointer receiver, // so it's likely to be incorrect, but we do what we're told. - return p.unmarshalInterface(val.Interface().(Unmarshaler), start) + return d.unmarshalInterface(val.Interface().(Unmarshaler), start) } if val.CanAddr() { pv := val.Addr() if pv.CanInterface() && pv.Type().Implements(unmarshalerType) { - return p.unmarshalInterface(pv.Interface().(Unmarshaler), start) + return d.unmarshalInterface(pv.Interface().(Unmarshaler), start) } } if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler), start) + return d.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler)) } if val.CanAddr() { pv := val.Addr() if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler), start) + return d.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler)) } } @@ -414,7 +438,7 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { // TODO: For now, simply ignore the field. In the near // future we may choose to unmarshal the start // element on it, if not nil. - return p.Skip() + return d.Skip() case reflect.Slice: typ := v.Type() @@ -427,19 +451,10 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { // Slice of element values. // Grow slice. n := v.Len() - if n >= v.Cap() { - ncap := 2 * n - if ncap < 4 { - ncap = 4 - } - new := reflect.MakeSlice(typ, n, ncap) - reflect.Copy(new, v) - v.Set(new) - } - v.SetLen(n + 1) + v.Set(reflect.Append(val, reflect.Zero(v.Type().Elem()))) // Recur to read element into slice. - if err := p.unmarshal(v.Index(n), start); err != nil { + if err := d.unmarshal(v.Index(n), start); err != nil { v.SetLen(n) return err } @@ -483,23 +498,45 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { } // Assign attributes. - // Also, determine whether we need to save character data or comments. - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - switch finfo.flags & fMode { - case fAttr: - strv := finfo.value(sv) - // Look for attribute. - for _, a := range start.Attr { + for _, a := range start.Attr { + handled := false + any := -1 + for i := range tinfo.fields { + finfo := &tinfo.fields[i] + switch finfo.flags & fMode { + case fAttr: + strv := finfo.value(sv) if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) { - if err := p.unmarshalAttr(strv, a); err != nil { - return err + needTypeAttr := (finfo.flags & fTypeAttr) != 0 + // HACK: avoid using xsi:type value for a "type" attribute, such as ManagedObjectReference.Type for example. + if needTypeAttr || (a.Name != xmlSchemaInstance && a.Name != xsiType) { + if err := d.unmarshalAttr(strv, a); err != nil { + return err + } } - break + handled = true } + + case fAny | fAttr: + if any == -1 { + any = i + } + } + } + if !handled && any >= 0 { + finfo := &tinfo.fields[any] + strv := finfo.value(sv) + if err := d.unmarshalAttr(strv, a); err != nil { + return err } + } + } - case fCharData: + // Determine whether we need to save character data or comments. + for i := range tinfo.fields { + finfo := &tinfo.fields[i] + switch finfo.flags & fMode { + case fCDATA, fCharData: if !saveData.IsValid() { saveData = finfo.value(sv) } @@ -517,11 +554,11 @@ func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { case fInnerXml: if !saveXML.IsValid() { saveXML = finfo.value(sv) - if p.saved == nil { + if d.saved == nil { saveXMLIndex = 0 - p.saved = new(bytes.Buffer) + d.saved = new(bytes.Buffer) } else { - saveXMLIndex = p.savedOffset() + saveXMLIndex = d.savedOffset() } } } @@ -534,9 +571,9 @@ Loop: for { var savedOffset int if saveXML.IsValid() { - savedOffset = p.savedOffset() + savedOffset = d.savedOffset() } - tok, err := p.Token() + tok, err := d.Token() if err != nil { return err } @@ -544,28 +581,28 @@ Loop: case StartElement: consumed := false if sv.IsValid() { - consumed, err = p.unmarshalPath(tinfo, sv, nil, &t) + consumed, err = d.unmarshalPath(tinfo, sv, nil, &t) if err != nil { return err } if !consumed && saveAny.IsValid() { consumed = true - if err := p.unmarshal(saveAny, &t); err != nil { + if err := d.unmarshal(saveAny, &t); err != nil { return err } } } if !consumed { - if err := p.Skip(); err != nil { + if err := d.Skip(); err != nil { return err } } case EndElement: if saveXML.IsValid() { - saveXMLData = p.saved.Bytes()[saveXMLIndex:savedOffset] + saveXMLData = d.saved.Bytes()[saveXMLIndex:savedOffset] if saveXMLIndex == 0 { - p.saved = nil + d.saved = nil } } break Loop @@ -614,7 +651,9 @@ Loop: case reflect.String: t.SetString(string(saveXMLData)) case reflect.Slice: - t.Set(reflect.ValueOf(saveXMLData)) + if t.Type().Elem().Kind() == reflect.Uint8 { + t.Set(reflect.ValueOf(saveXMLData)) + } } return nil @@ -637,7 +676,11 @@ func copyValue(dst reflect.Value, src []byte) (err error) { default: return errors.New("cannot unmarshal into " + dst0.Type().String()) case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - itmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits()) + if len(src) == 0 { + dst.SetInt(0) + return nil + } + itmp, err := strconv.ParseInt(strings.TrimSpace(string(src)), 10, dst.Type().Bits()) if err != nil { return err } @@ -663,19 +706,32 @@ func copyValue(dst reflect.Value, src []byte) (err error) { utmp = uint64(uint64(itmp)) } } else { - utmp, err = strconv.ParseUint(string(src), 10, dst.Type().Bits()) + if len(src) == 0 { + dst.SetUint(0) + return nil + } + + utmp, err = strconv.ParseUint(strings.TrimSpace(string(src)), 10, dst.Type().Bits()) if err != nil { return err } } dst.SetUint(utmp) case reflect.Float32, reflect.Float64: - ftmp, err := strconv.ParseFloat(string(src), dst.Type().Bits()) + if len(src) == 0 { + dst.SetFloat(0) + return nil + } + ftmp, err := strconv.ParseFloat(strings.TrimSpace(string(src)), dst.Type().Bits()) if err != nil { return err } dst.SetFloat(ftmp) case reflect.Bool: + if len(src) == 0 { + dst.SetBool(false) + return nil + } value, err := strconv.ParseBool(strings.TrimSpace(string(src))) if err != nil { return err @@ -698,7 +754,7 @@ func copyValue(dst reflect.Value, src []byte) (err error) { // The consumed result tells whether XML elements have been consumed // from the Decoder until start's matching end element, or if it's // still untouched because start is uninteresting for sv's fields. -func (p *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) { +func (d *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) { recurse := false Loop: for i := range tinfo.fields { @@ -713,7 +769,7 @@ Loop: } if len(finfo.parents) == len(parents) && finfo.name == start.Name.Local { // It's a perfect match, unmarshal the field. - return true, p.unmarshal(finfo.value(sv), start) + return true, d.unmarshal(finfo.value(sv), start) } if len(finfo.parents) > len(parents) && finfo.parents[len(parents)] == start.Name.Local { // It's a prefix for the field. Break and recurse @@ -736,18 +792,18 @@ Loop: // prefix. Recurse and attempt to match these. for { var tok Token - tok, err = p.Token() + tok, err = d.Token() if err != nil { return true, err } switch t := tok.(type) { case StartElement: - consumed2, err := p.unmarshalPath(tinfo, sv, parents, &t) + consumed2, err := d.unmarshalPath(tinfo, sv, parents, &t) if err != nil { return true, err } if !consumed2 { - if err := p.Skip(); err != nil { + if err := d.Skip(); err != nil { return true, err } } diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go b/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go index 086e83b6..0d240b1e 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go +++ b/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go @@ -1,4 +1,4 @@ -// Copyright 2011 The Go Authors. All rights reserved. +// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -31,6 +31,7 @@ type fieldFlags int const ( fElement fieldFlags = 1 << iota fAttr + fCDATA fCharData fInnerXml fComment @@ -39,29 +40,28 @@ const ( fOmitEmpty fTypeAttr - fMode = fElement | fAttr | fCharData | fInnerXml | fComment | fAny + fMode = fElement | fAttr | fCDATA | fCharData | fInnerXml | fComment | fAny + + xmlName = "XMLName" ) -var tinfoMap = make(map[reflect.Type]*typeInfo) -var tinfoLock sync.RWMutex +var tinfoMap sync.Map // map[reflect.Type]*typeInfo var nameType = reflect.TypeOf(Name{}) // getTypeInfo returns the typeInfo structure with details necessary -// for marshalling and unmarshalling typ. +// for marshaling and unmarshaling typ. func getTypeInfo(typ reflect.Type) (*typeInfo, error) { - tinfoLock.RLock() - tinfo, ok := tinfoMap[typ] - tinfoLock.RUnlock() - if ok { - return tinfo, nil + if ti, ok := tinfoMap.Load(typ); ok { + return ti.(*typeInfo), nil } - tinfo = &typeInfo{} + + tinfo := &typeInfo{} if typ.Kind() == reflect.Struct && typ != nameType { n := typ.NumField() for i := 0; i < n; i++ { f := typ.Field(i) - if f.PkgPath != "" || f.Tag.Get("xml") == "-" { + if (f.PkgPath != "" && !f.Anonymous) || f.Tag.Get("xml") == "-" { continue // Private field } @@ -94,7 +94,7 @@ func getTypeInfo(typ reflect.Type) (*typeInfo, error) { return nil, err } - if f.Name == "XMLName" { + if f.Name == xmlName { tinfo.xmlname = finfo continue } @@ -105,10 +105,9 @@ func getTypeInfo(typ reflect.Type) (*typeInfo, error) { } } } - tinfoLock.Lock() - tinfoMap[typ] = tinfo - tinfoLock.Unlock() - return tinfo, nil + + ti, _ := tinfoMap.LoadOrStore(typ, tinfo) + return ti.(*typeInfo), nil } // structFieldInfo builds and returns a fieldInfo for f. @@ -131,6 +130,8 @@ func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, erro switch flag { case "attr": finfo.flags |= fAttr + case "cdata": + finfo.flags |= fCDATA case "chardata": finfo.flags |= fCharData case "innerxml": @@ -151,8 +152,8 @@ func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, erro switch mode := finfo.flags & fMode; mode { case 0: finfo.flags |= fElement - case fAttr, fCharData, fInnerXml, fComment, fAny: - if f.Name == "XMLName" || tag != "" && mode != fAttr { + case fAttr, fCDATA, fCharData, fInnerXml, fComment, fAny, fAny | fAttr: + if f.Name == xmlName || tag != "" && mode != fAttr { valid = false } default: @@ -177,7 +178,7 @@ func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, erro f.Name, typ, f.Tag.Get("xml")) } - if f.Name == "XMLName" { + if f.Name == xmlName { // The XMLName field records the XML element name. Don't // process it as usual because its name should default to // empty rather than to the field name. @@ -214,7 +215,7 @@ func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, erro } // If the field type has an XMLName field, the names must match - // so that the behavior of both marshalling and unmarshalling + // so that the behavior of both marshaling and unmarshaling // is straightforward and unambiguous. if finfo.flags&fElement != 0 { ftyp := f.Type @@ -239,11 +240,11 @@ func lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) { } for i, n := 0, typ.NumField(); i < n; i++ { f := typ.Field(i) - if f.Name != "XMLName" { + if f.Name != xmlName { continue } finfo, err := structFieldInfo(typ, &f) - if finfo.name != "" && err == nil { + if err == nil && finfo.name != "" { return finfo } // Also consider errors as a non-existent field tag @@ -334,7 +335,7 @@ Loop: return nil } -// A TagPathError represents an error in the unmarshalling process +// A TagPathError represents an error in the unmarshaling process // caused by the use of field tags with conflicting paths. type TagPathError struct { Struct reflect.Type diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/xml.go b/vendor/github.com/vmware/govmomi/vim25/xml/xml.go index 6c6c5c82..50117a00 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/xml.go +++ b/vendor/github.com/vmware/govmomi/vim25/xml/xml.go @@ -7,8 +7,8 @@ package xml // References: -// Annotated XML spec: http://www.xml.com/axml/testaxml.htm -// XML name spaces: http://www.w3.org/TR/REC-xml-names/ +// Annotated XML spec: https://www.xml.com/axml/testaxml.htm +// XML name spaces: https://www.w3.org/TR/REC-xml-names/ // TODO(rsc): // Test error handling. @@ -61,6 +61,7 @@ type StartElement struct { Attr []Attr } +// Copy creates a new copy of StartElement. func (e StartElement) Copy() StartElement { attrs := make([]Attr, len(e.Attr)) copy(attrs, e.Attr) @@ -89,12 +90,14 @@ func makeCopy(b []byte) []byte { return b1 } +// Copy creates a new copy of CharData. func (c CharData) Copy() CharData { return CharData(makeCopy(c)) } // A Comment represents an XML comment of the form . // The bytes do not include the comment markers. type Comment []byte +// Copy creates a new copy of Comment. func (c Comment) Copy() Comment { return Comment(makeCopy(c)) } // A ProcInst represents an XML processing instruction of the form @@ -103,6 +106,7 @@ type ProcInst struct { Inst []byte } +// Copy creates a new copy of ProcInst. func (p ProcInst) Copy() ProcInst { p.Inst = makeCopy(p.Inst) return p @@ -112,6 +116,7 @@ func (p ProcInst) Copy() ProcInst { // The bytes do not include the markers. type Directive []byte +// Copy creates a new copy of Directive. func (d Directive) Copy() Directive { return Directive(makeCopy(d)) } // CopyToken returns a copy of a Token. @@ -131,6 +136,23 @@ func CopyToken(t Token) Token { return t } +// A TokenReader is anything that can decode a stream of XML tokens, including a +// Decoder. +// +// When Token encounters an error or end-of-file condition after successfully +// reading a token, it returns the token. It may return the (non-nil) error from +// the same call or return the error (and a nil token) from a subsequent call. +// An instance of this general case is that a TokenReader returning a non-nil +// token at the end of the token stream may return either io.EOF or a nil error. +// The next Read should return nil, io.EOF. +// +// Implementations of Token are discouraged from returning a nil token with a +// nil error. Callers should treat a return of nil, nil as indicating that +// nothing happened; in particular it does not indicate EOF. +type TokenReader interface { + Token() (Token, error) +} + // A Decoder represents an XML parser reading a particular input stream. // The parser assumes that its input is encoded in UTF-8. type Decoder struct { @@ -146,9 +168,9 @@ type Decoder struct { // // Setting: // - // d.Strict = false; - // d.AutoClose = HTMLAutoClose; - // d.Entity = HTMLEntity + // d.Strict = false + // d.AutoClose = xml.HTMLAutoClose + // d.Entity = xml.HTMLEntity // // creates a parser that can handle typical HTML. // @@ -177,7 +199,7 @@ type Decoder struct { // charset-conversion readers, converting from the provided // non-UTF-8 charset into UTF-8. If CharsetReader is nil or // returns an error, parsing stops with an error. One of the - // the CharsetReader's result values must be non-nil. + // CharsetReader's result values must be non-nil. CharsetReader func(charset string, input io.Reader) (io.Reader, error) // DefaultSpace sets the default name space used for unadorned tags, @@ -189,6 +211,7 @@ type Decoder struct { TypeFunc func(string) (reflect.Type, bool) r io.ByteReader + t TokenReader buf bytes.Buffer saved *bytes.Buffer stk *stack @@ -200,6 +223,7 @@ type Decoder struct { ns map[string]string err error line int + offset int64 unmarshalDepth int } @@ -217,12 +241,28 @@ func NewDecoder(r io.Reader) *Decoder { return d } +// NewTokenDecoder creates a new XML parser using an underlying token stream. +func NewTokenDecoder(t TokenReader) *Decoder { + // Is it already a Decoder? + if d, ok := t.(*Decoder); ok { + return d + } + d := &Decoder{ + ns: make(map[string]string), + t: t, + nextByte: -1, + line: 1, + Strict: true, + } + return d +} + // Token returns the next XML token in the input stream. // At the end of the input stream, Token returns nil, io.EOF. // // Slices of bytes in the returned token data refer to the // parser's internal buffer and remain valid only until the next -// call to Token. To acquire a copy of the bytes, call CopyToken +// call to Token. To acquire a copy of the bytes, call CopyToken // or the token's Copy method. // // Token expands self-closing elements such as
@@ -230,25 +270,30 @@ func NewDecoder(r io.Reader) *Decoder { // // Token guarantees that the StartElement and EndElement // tokens it returns are properly nested and matched: -// if Token encounters an unexpected end element, +// if Token encounters an unexpected end element +// or EOF before all expected end elements, // it will return an error. // // Token implements XML name spaces as described by -// http://www.w3.org/TR/REC-xml-names/. Each of the +// https://www.w3.org/TR/REC-xml-names/. Each of the // Name structures contained in the Token has the Space // set to the URL identifying its name space when known. // If Token encounters an unrecognized name space prefix, // it uses the prefix as the Space rather than report an error. -func (d *Decoder) Token() (t Token, err error) { +func (d *Decoder) Token() (Token, error) { + var t Token + var err error if d.stk != nil && d.stk.kind == stkEOF { - err = io.EOF - return + return nil, io.EOF } if d.nextToken != nil { t = d.nextToken d.nextToken = nil } else if t, err = d.rawToken(); err != nil { - return + if err == io.EOF && d.stk != nil && d.stk.kind != stkEOF { + err = d.syntaxError("unexpected EOF") + } + return t, err } if !d.Strict { @@ -264,12 +309,12 @@ func (d *Decoder) Token() (t Token, err error) { // to the other attribute names, so process // the translations first. for _, a := range t1.Attr { - if a.Name.Space == "xmlns" { + if a.Name.Space == xmlnsPrefix { v, ok := d.ns[a.Name.Local] d.pushNs(a.Name.Local, v, ok) d.ns[a.Name.Local] = a.Value } - if a.Name.Space == "" && a.Name.Local == "xmlns" { + if a.Name.Space == "" && a.Name.Local == xmlnsPrefix { // Default space for untagged names v, ok := d.ns[""] d.pushNs("", v, ok) @@ -291,23 +336,27 @@ func (d *Decoder) Token() (t Token, err error) { } t = t1 } - return + return t, err } -const xmlURL = "http://www.w3.org/XML/1998/namespace" +const ( + xmlURL = "http://www.w3.org/XML/1998/namespace" + xmlnsPrefix = "xmlns" + xmlPrefix = "xml" +) // Apply name space translation to name n. // The default name space (for Space=="") // applies only to element names, not to attribute names. func (d *Decoder) translate(n *Name, isElementName bool) { switch { - case n.Space == "xmlns": + case n.Space == xmlnsPrefix: return case n.Space == "" && !isElementName: return - case n.Space == "xml": + case n.Space == xmlPrefix: n.Space = xmlURL - case n.Space == "" && n.Local == "xmlns": + case n.Space == "" && n.Local == xmlnsPrefix: return } if v, ok := d.ns[n.Space]; ok { @@ -330,7 +379,7 @@ func (d *Decoder) switchToReader(r io.Reader) { } // Parsing state - stack holds old name space translations -// and the current set of open elements. The translations to pop when +// and the current set of open elements. The translations to pop when // ending a given tag are *below* it on the stack, which is // more work but forced on us by XML. type stack struct { @@ -501,6 +550,9 @@ func (d *Decoder) RawToken() (Token, error) { } func (d *Decoder) rawToken() (Token, error) { + if d.t != nil { + return d.t.Token() + } if d.err != nil { return nil, d.err } @@ -552,7 +604,6 @@ func (d *Decoder) rawToken() (Token, error) { case '?': // if target == "xml" { - enc := procInstEncoding(string(data)) - if enc != "" && enc != "utf-8" && enc != "UTF-8" { + content := string(data) + ver := procInst("version", content) + if ver != "" && ver != "1.0" { + d.err = fmt.Errorf("xml: unsupported version %q; only version 1.0 is supported", ver) + return nil, d.err + } + enc := procInst("encoding", content) + if enc != "" && enc != "utf-8" && enc != "UTF-8" && !strings.EqualFold(enc, "utf-8") { if d.CharsetReader == nil { d.err = fmt.Errorf("xml: encoding %q declared but Decoder.CharsetReader is nil", enc) return nil, d.err @@ -619,7 +676,12 @@ func (d *Decoder) rawToken() (Token, error) { return nil, d.err } d.buf.WriteByte(b) - if b0 == '-' && b1 == '-' && b == '>' { + if b0 == '-' && b1 == '-' { + if b != '>' { + d.err = d.syntaxError( + `invalid sequence "--" not allowed in comments`) + return nil, d.err + } break } b0, b1 = b1, b @@ -726,7 +788,7 @@ func (d *Decoder) rawToken() (Token, error) { return nil, d.err } - attr = make([]Attr, 0, 4) + attr = []Attr{} for { d.space() if b, ok = d.mustgetc(); !ok { @@ -748,14 +810,7 @@ func (d *Decoder) rawToken() (Token, error) { } d.ungetc(b) - n := len(attr) - if n >= cap(attr) { - nattr := make([]Attr, n, 2*cap(attr)) - copy(nattr, attr) - attr = nattr - } - attr = attr[0 : n+1] - a := &attr[n] + a := Attr{} if a.Name, ok = d.nsname(); !ok { if d.err == nil { d.err = d.syntaxError("expected attribute name in element") @@ -770,10 +825,9 @@ func (d *Decoder) rawToken() (Token, error) { if d.Strict { d.err = d.syntaxError("attribute name without = in element") return nil, d.err - } else { - d.ungetc(b) - a.Value = a.Name.Local } + d.ungetc(b) + a.Value = a.Name.Local } else { d.space() data := d.attrval() @@ -782,6 +836,7 @@ func (d *Decoder) rawToken() (Token, error) { } a.Value = string(data) } + attr = append(attr, a) } if empty { d.needClose = true @@ -812,7 +867,7 @@ func (d *Decoder) attrval() []byte { if !ok { return nil } - // http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.2 + // https://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.2 if 'a' <= b && b <= 'z' || 'A' <= b && b <= 'Z' || '0' <= b && b <= '9' || b == '_' || b == ':' || b == '-' { d.buf.WriteByte(b) @@ -863,9 +918,17 @@ func (d *Decoder) getc() (b byte, ok bool) { if b == '\n' { d.line++ } + d.offset++ return b, true } +// InputOffset returns the input stream byte offset of the current decoder position. +// The offset gives the location of the end of the most recently returned token +// and the beginning of the next token. +func (d *Decoder) InputOffset() int64 { + return d.offset +} + // Return saved offset. // If we did ungetc (nextByte >= 0), have to back up one. func (d *Decoder) savedOffset() int { @@ -895,6 +958,7 @@ func (d *Decoder) ungetc(b byte) { d.line-- } d.nextByte = int(b) + d.offset-- } var entity = map[string]int{ @@ -1002,7 +1066,6 @@ Input: if d.err != nil { return nil } - ok = false } if b, ok = d.mustgetc(); !ok { return nil @@ -1075,13 +1138,13 @@ Input: } // Decide whether the given rune is in the XML Character Range, per -// the Char production of http://www.xml.com/axml/testaxml.htm, +// the Char production of https://www.xml.com/axml/testaxml.htm, // Section 2.2 Characters. func isInCharacterRange(r rune) (inrange bool) { return r == 0x09 || r == 0x0A || r == 0x0D || - r >= 0x20 && r <= 0xDF77 || + r >= 0x20 && r <= 0xD7FF || r >= 0xE000 && r <= 0xFFFD || r >= 0x10000 && r <= 0x10FFFF } @@ -1113,12 +1176,12 @@ func (d *Decoder) name() (s string, ok bool) { } // Now we check the characters. - s = d.buf.String() - if !isName([]byte(s)) { - d.err = d.syntaxError("invalid XML name: " + s) + b := d.buf.Bytes() + if !isName(b) { + d.err = d.syntaxError("invalid XML name: " + string(b)) return "", false } - return s, true + return string(b), true } // Read a name and append its bytes to d.buf. @@ -1204,8 +1267,8 @@ func isNameString(s string) bool { } // These tables were generated by cut and paste from Appendix B of -// the XML spec at http://www.xml.com/axml/testaxml.htm -// and then reformatting. First corresponds to (Letter | '_' | ':') +// the XML spec at https://www.xml.com/axml/testaxml.htm +// and then reformatting. First corresponds to (Letter | '_' | ':') // and second corresponds to NameChar. var first = &unicode.RangeTable{ @@ -1522,7 +1585,9 @@ var second = &unicode.RangeTable{ // HTMLEntity is an entity map containing translations for the // standard HTML entity characters. -var HTMLEntity = htmlEntity +// +// See the Decoder.Strict and Decoder.Entity fields' documentation. +var HTMLEntity map[string]string = htmlEntity var htmlEntity = map[string]string{ /* @@ -1789,7 +1854,9 @@ var htmlEntity = map[string]string{ // HTMLAutoClose is the set of HTML elements that // should be considered to close automatically. -var HTMLAutoClose = htmlAutoClose +// +// See the Decoder.Strict and Decoder.Entity fields' documentation. +var HTMLAutoClose []string = htmlAutoClose var htmlAutoClose = []string{ /* @@ -1812,20 +1879,27 @@ var htmlAutoClose = []string{ } var ( - esc_quot = []byte(""") // shorter than """ - esc_apos = []byte("'") // shorter than "'" - esc_amp = []byte("&") - esc_lt = []byte("<") - esc_gt = []byte(">") - esc_tab = []byte(" ") - esc_nl = []byte(" ") - esc_cr = []byte(" ") - esc_fffd = []byte("\uFFFD") // Unicode replacement character + escQuot = []byte(""") // shorter than """ + escApos = []byte("'") // shorter than "'" + escAmp = []byte("&") + escLT = []byte("<") + escGT = []byte(">") + escTab = []byte(" ") + escNL = []byte(" ") + escCR = []byte(" ") + escFFFD = []byte("\uFFFD") // Unicode replacement character ) // EscapeText writes to w the properly escaped XML equivalent // of the plain text data s. func EscapeText(w io.Writer, s []byte) error { + return escapeText(w, s, true) +} + +// escapeText writes to w the properly escaped XML equivalent +// of the plain text data s. If escapeNewline is true, newline +// characters will be escaped. +func escapeText(w io.Writer, s []byte, escapeNewline bool) error { var esc []byte last := 0 for i := 0; i < len(s); { @@ -1833,24 +1907,27 @@ func EscapeText(w io.Writer, s []byte) error { i += width switch r { case '"': - esc = esc_quot + esc = escQuot case '\'': - esc = esc_apos + esc = escApos case '&': - esc = esc_amp + esc = escAmp case '<': - esc = esc_lt + esc = escLT case '>': - esc = esc_gt + esc = escGT case '\t': - esc = esc_tab + esc = escTab case '\n': - esc = esc_nl + if !escapeNewline { + continue + } + esc = escNL case '\r': - esc = esc_cr + esc = escCR default: if !isInCharacterRange(r) || (r == 0xFFFD && width == 1) { - esc = esc_fffd + esc = escFFFD break } continue @@ -1863,10 +1940,8 @@ func EscapeText(w io.Writer, s []byte) error { } last = i } - if _, err := w.Write(s[last:]); err != nil { - return err - } - return nil + _, err := w.Write(s[last:]) + return err } // EscapeString writes to p the properly escaped XML equivalent @@ -1879,24 +1954,24 @@ func (p *printer) EscapeString(s string) { i += width switch r { case '"': - esc = esc_quot + esc = escQuot case '\'': - esc = esc_apos + esc = escApos case '&': - esc = esc_amp + esc = escAmp case '<': - esc = esc_lt + esc = escLT case '>': - esc = esc_gt + esc = escGT case '\t': - esc = esc_tab + esc = escTab case '\n': - esc = esc_nl + esc = escNL case '\r': - esc = esc_cr + esc = escCR default: if !isInCharacterRange(r) || (r == 0xFFFD && width == 1) { - esc = esc_fffd + esc = escFFFD break } continue @@ -1915,16 +1990,55 @@ func Escape(w io.Writer, s []byte) { EscapeText(w, s) } -// procInstEncoding parses the `encoding="..."` or `encoding='...'` +var ( + cdataStart = []byte("") + cdataEscape = []byte("]]]]>") +) + +// emitCDATA writes to w the CDATA-wrapped plain text data s. +// It escapes CDATA directives nested in s. +func emitCDATA(w io.Writer, s []byte) error { + if len(s) == 0 { + return nil + } + if _, err := w.Write(cdataStart); err != nil { + return err + } + for { + i := bytes.Index(s, cdataEnd) + if i >= 0 && i+len(cdataEnd) <= len(s) { + // Found a nested CDATA directive end. + if _, err := w.Write(s[:i]); err != nil { + return err + } + if _, err := w.Write(cdataEscape); err != nil { + return err + } + i += len(cdataEnd) + } else { + if _, err := w.Write(s); err != nil { + return err + } + break + } + s = s[i:] + } + _, err := w.Write(cdataEnd) + return err +} + +// procInst parses the `param="..."` or `param='...'` // value out of the provided string, returning "" if not found. -func procInstEncoding(s string) string { +func procInst(param, s string) string { // TODO: this parsing is somewhat lame and not exact. // It works for all actual cases, though. - idx := strings.Index(s, "encoding=") + param = param + "=" + idx := strings.Index(s, param) if idx == -1 { return "" } - v := s[idx+len("encoding="):] + v := s[idx+len(param):] if v == "" { return "" } diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go deleted file mode 100644 index 30f632c5..00000000 --- a/vendor/golang.org/x/sync/semaphore/semaphore.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package semaphore provides a weighted semaphore implementation. -package semaphore // import "golang.org/x/sync/semaphore" - -import ( - "container/list" - "context" - "sync" -) - -type waiter struct { - n int64 - ready chan<- struct{} // Closed when semaphore acquired. -} - -// NewWeighted creates a new weighted semaphore with the given -// maximum combined weight for concurrent access. -func NewWeighted(n int64) *Weighted { - w := &Weighted{size: n} - return w -} - -// Weighted provides a way to bound concurrent access to a resource. -// The callers can request access with a given weight. -type Weighted struct { - size int64 - cur int64 - mu sync.Mutex - waiters list.List -} - -// Acquire acquires the semaphore with a weight of n, blocking until resources -// are available or ctx is done. On success, returns nil. On failure, returns -// ctx.Err() and leaves the semaphore unchanged. -// -// If ctx is already done, Acquire may still succeed without blocking. -func (s *Weighted) Acquire(ctx context.Context, n int64) error { - s.mu.Lock() - if s.size-s.cur >= n && s.waiters.Len() == 0 { - s.cur += n - s.mu.Unlock() - return nil - } - - if n > s.size { - // Don't make other Acquire calls block on one that's doomed to fail. - s.mu.Unlock() - <-ctx.Done() - return ctx.Err() - } - - ready := make(chan struct{}) - w := waiter{n: n, ready: ready} - elem := s.waiters.PushBack(w) - s.mu.Unlock() - - select { - case <-ctx.Done(): - err := ctx.Err() - s.mu.Lock() - select { - case <-ready: - // Acquired the semaphore after we were canceled. Rather than trying to - // fix up the queue, just pretend we didn't notice the cancelation. - err = nil - default: - isFront := s.waiters.Front() == elem - s.waiters.Remove(elem) - // If we're at the front and there're extra tokens left, notify other waiters. - if isFront && s.size > s.cur { - s.notifyWaiters() - } - } - s.mu.Unlock() - return err - - case <-ready: - return nil - } -} - -// TryAcquire acquires the semaphore with a weight of n without blocking. -// On success, returns true. On failure, returns false and leaves the semaphore unchanged. -func (s *Weighted) TryAcquire(n int64) bool { - s.mu.Lock() - success := s.size-s.cur >= n && s.waiters.Len() == 0 - if success { - s.cur += n - } - s.mu.Unlock() - return success -} - -// Release releases the semaphore with a weight of n. -func (s *Weighted) Release(n int64) { - s.mu.Lock() - s.cur -= n - if s.cur < 0 { - s.mu.Unlock() - panic("semaphore: released more than held") - } - s.notifyWaiters() - s.mu.Unlock() -} - -func (s *Weighted) notifyWaiters() { - for { - next := s.waiters.Front() - if next == nil { - break // No more waiters blocked. - } - - w := next.Value.(waiter) - if s.size-s.cur < w.n { - // Not enough tokens for the next waiter. We could keep going (to try to - // find a waiter with a smaller request), but under load that could cause - // starvation for large requests; instead, we leave all remaining waiters - // blocked. - // - // Consider a semaphore used as a read-write lock, with N tokens, N - // readers, and one writer. Each reader can Acquire(1) to obtain a read - // lock. The writer can Acquire(N) to obtain a write lock, excluding all - // of the readers. If we allow the readers to jump ahead in the queue, - // the writer will starve — there is always one token available for every - // reader. - break - } - - s.cur += w.n - s.waiters.Remove(next) - close(w.ready) - } -} diff --git a/vendor/modules.txt b/vendor/modules.txt index ae1d7f62..92bd1e35 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -188,7 +188,7 @@ github.com/spf13/cobra github.com/spf13/pflag # github.com/stretchr/testify v1.6.1 ## explicit -# github.com/vmware/govmomi v0.20.3 +# github.com/vmware/govmomi v0.23.1 ## explicit github.com/vmware/govmomi github.com/vmware/govmomi/find @@ -203,6 +203,7 @@ github.com/vmware/govmomi/pbm/methods github.com/vmware/govmomi/pbm/types github.com/vmware/govmomi/property github.com/vmware/govmomi/session +github.com/vmware/govmomi/session/keepalive github.com/vmware/govmomi/sts github.com/vmware/govmomi/sts/internal github.com/vmware/govmomi/task @@ -282,7 +283,6 @@ golang.org/x/oauth2 golang.org/x/oauth2/internal # golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 ## explicit -golang.org/x/sync/semaphore golang.org/x/sync/singleflight # golang.org/x/sys v0.0.0-20201112073958-5cba982894dd ## explicit From f903610bbb3747a99ee2ff96ef8b98320a0e98b0 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Sat, 6 Feb 2021 05:56:08 +0000 Subject: [PATCH 02/26] Updating vsphere-problem-detector builder & base images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/5a1293dd0f380abf50c12d65c36655486d7745d0/images/vsphere-problem-detector.yml --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a9e18f80..137d198b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.8 AS builder WORKDIR /go/src/github.com/openshift/vsphere-problem-detector COPY . . ENV GO_PACKAGE github.com/openshift/vsphere-problem-detector RUN make -FROM registry.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.8:base COPY --from=builder /go/src/github.com/openshift/vsphere-problem-detector/vsphere-problem-detector /usr/bin/ ENTRYPOINT ["/usr/bin/vsphere-problem-detector"] LABEL io.openshift.release.operator=true From fa245467042a9b692233516a6ba3f949f17efed7 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:44:28 +0100 Subject: [PATCH 03/26] Bump govc version to 0.23.1 To get the latest simulator --- go.mod | 1 - vendor/github.com/vmware/govmomi/ovf/cim.go | 128 + vendor/github.com/vmware/govmomi/ovf/doc.go | 25 + vendor/github.com/vmware/govmomi/ovf/env.go | 99 + .../github.com/vmware/govmomi/ovf/envelope.go | 200 + .../github.com/vmware/govmomi/ovf/manager.go | 103 + vendor/github.com/vmware/govmomi/ovf/ovf.go | 35 + .../simulator/authorization_manager.go | 280 + .../simulator/cluster_compute_resource.go | 382 + .../vmware/govmomi/simulator/container.go | 408 + .../simulator/custom_fields_manager.go | 199 + .../simulator/customization_spec_manager.go | 349 + .../vmware/govmomi/simulator/datacenter.go | 198 + .../vmware/govmomi/simulator/datastore.go | 90 + .../vmware/govmomi/simulator/doc.go | 22 + .../vmware/govmomi/simulator/dvs.go | 281 + .../vmware/govmomi/simulator/entity.go | 46 + .../govmomi/simulator/environment_browser.go | 225 + .../simulator/esx/authorization_manager.go | 85 + .../govmomi/simulator/esx/datacenter.go | 60 + .../vmware/govmomi/simulator/esx/doc.go | 20 + .../govmomi/simulator/esx/event_manager.go | 248 + .../govmomi/simulator/esx/host_config_info.go | 1115 + .../simulator/esx/host_firewall_system.go | 1425 + .../simulator/esx/host_hardware_info.go | 864 + .../simulator/esx/host_storage_device_info.go | 346 + .../govmomi/simulator/esx/host_system.go | 1801 ++ .../simulator/esx/performance_manager.go | 15057 +++++++++++ .../simulator/esx/performance_manager_data.go | 1213 + .../govmomi/simulator/esx/resource_pool.go | 165 + .../govmomi/simulator/esx/root_folder.go | 76 + .../govmomi/simulator/esx/service_content.go | 86 + .../vmware/govmomi/simulator/esx/setting.go | 33 + .../govmomi/simulator/esx/task_manager.go | 10412 ++++++++ .../govmomi/simulator/esx/virtual_device.go | 242 + .../vmware/govmomi/simulator/event_manager.go | 494 + .../vmware/govmomi/simulator/file_manager.go | 252 + .../vmware/govmomi/simulator/folder.go | 690 + .../vmware/govmomi/simulator/guest_id.go | 171 + .../vmware/govmomi/simulator/guest_id.sh | 35 + .../simulator/guest_operations_manager.go | 111 + .../simulator/host_datastore_browser.go | 252 + .../simulator/host_datastore_system.go | 174 + .../govmomi/simulator/host_firewall_system.go | 87 + .../simulator/host_local_account_manager.go | 72 + .../govmomi/simulator/host_network_system.go | 212 + .../govmomi/simulator/host_storage_system.go | 134 + .../vmware/govmomi/simulator/host_system.go | 269 + .../govmomi/simulator/http_nfc_lease.go | 137 + .../govmomi/simulator/internal/server.go | 343 + .../govmomi/simulator/internal/testcert.go | 41 + .../govmomi/simulator/internal/types.go | 73 + .../govmomi/simulator/ip_pool_manager.go | 387 + .../govmomi/simulator/license_manager.go | 188 + .../vmware/govmomi/simulator/model.go | 824 + .../vmware/govmomi/simulator/object.go | 79 + .../govmomi/simulator/option_manager.go | 110 + .../vmware/govmomi/simulator/os_unix.go | 38 + .../vmware/govmomi/simulator/os_windows.go | 26 + .../vmware/govmomi/simulator/ovf_manager.go | 292 + .../govmomi/simulator/performance_manager.go | 255 + .../vmware/govmomi/simulator/portgroup.go | 73 + .../govmomi/simulator/property_collector.go | 841 + .../govmomi/simulator/property_filter.go | 108 + .../vmware/govmomi/simulator/registry.go | 558 + .../vmware/govmomi/simulator/resource_pool.go | 402 + .../vmware/govmomi/simulator/search_index.go | 256 + .../govmomi/simulator/service_instance.go | 95 + .../govmomi/simulator/session_manager.go | 454 + .../vmware/govmomi/simulator/simulator.go | 920 + .../vmware/govmomi/simulator/snapshot.go | 167 + .../simulator/storage_resource_manager.go | 184 + .../vmware/govmomi/simulator/task.go | 109 + .../vmware/govmomi/simulator/task_manager.go | 64 + .../govmomi/simulator/user_directory.go | 104 + .../vmware/govmomi/simulator/view_manager.go | 267 + .../govmomi/simulator/virtual_disk_manager.go | 220 + .../govmomi/simulator/virtual_machine.go | 2122 ++ .../vmware/govmomi/simulator/vpx/doc.go | 20 + .../simulator/vpx/performance_manager.go | 21801 ++++++++++++++++ .../simulator/vpx/performance_manager_data.go | 1877 ++ .../govmomi/simulator/vpx/root_folder.go | 64 + .../govmomi/simulator/vpx/service_content.go | 86 + .../vmware/govmomi/simulator/vpx/setting.go | 76 + .../govmomi/simulator/vpx/task_manager.go | 11133 ++++++++ .../simulator/vstorage_object_manager.go | 451 + vendor/modules.txt | 6 +- 87 files changed, 84521 insertions(+), 2 deletions(-) create mode 100644 vendor/github.com/vmware/govmomi/ovf/cim.go create mode 100644 vendor/github.com/vmware/govmomi/ovf/doc.go create mode 100644 vendor/github.com/vmware/govmomi/ovf/env.go create mode 100644 vendor/github.com/vmware/govmomi/ovf/envelope.go create mode 100644 vendor/github.com/vmware/govmomi/ovf/manager.go create mode 100644 vendor/github.com/vmware/govmomi/ovf/ovf.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/authorization_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/container.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/custom_fields_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/customization_spec_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/datacenter.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/datastore.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/doc.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/dvs.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/entity.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/environment_browser.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/authorization_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/doc.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/event_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/host_storage_device_info.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/host_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/performance_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/performance_manager_data.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/service_content.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/setting.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/task_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/event_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/file_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/folder.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/guest_id.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/guest_id.sh create mode 100644 vendor/github.com/vmware/govmomi/simulator/guest_operations_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_local_account_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_network_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_storage_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/host_system.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/http_nfc_lease.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/internal/server.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/internal/testcert.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/internal/types.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/ip_pool_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/license_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/model.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/object.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/option_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/os_unix.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/os_windows.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/ovf_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/performance_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/portgroup.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/property_collector.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/property_filter.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/registry.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/resource_pool.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/search_index.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/service_instance.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/session_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/simulator.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/snapshot.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/storage_resource_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/task.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/task_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/user_directory.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/view_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/virtual_disk_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/virtual_machine.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/doc.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager_data.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/setting.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vpx/task_manager.go create mode 100644 vendor/github.com/vmware/govmomi/simulator/vstorage_object_manager.go diff --git a/go.mod b/go.mod index 21d9a25e..a0588e43 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,6 @@ require ( golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect - golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect golang.org/x/sys v0.0.0-20201112073958-5cba982894dd // indirect golang.org/x/text v0.3.4 // indirect golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect diff --git a/vendor/github.com/vmware/govmomi/ovf/cim.go b/vendor/github.com/vmware/govmomi/ovf/cim.go new file mode 100644 index 00000000..42769995 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/cim.go @@ -0,0 +1,128 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package ovf + +import ( + "github.com/vmware/govmomi/vim25/types" +) + +/* +Source: http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.24.0/CIM_VirtualSystemSettingData.xsd +*/ + +type CIMVirtualSystemSettingData struct { + ElementName string `xml:"ElementName"` + InstanceID string `xml:"InstanceID"` + + AutomaticRecoveryAction *uint8 `xml:"AutomaticRecoveryAction"` + AutomaticShutdownAction *uint8 `xml:"AutomaticShutdownAction"` + AutomaticStartupAction *uint8 `xml:"AutomaticStartupAction"` + AutomaticStartupActionDelay *string `xml:"AutomaticStartupActionDelay>Interval"` + AutomaticStartupActionSequenceNumber *uint16 `xml:"AutomaticStartupActionSequenceNumber"` + Caption *string `xml:"Caption"` + ConfigurationDataRoot *string `xml:"ConfigurationDataRoot"` + ConfigurationFile *string `xml:"ConfigurationFile"` + ConfigurationID *string `xml:"ConfigurationID"` + CreationTime *string `xml:"CreationTime"` + Description *string `xml:"Description"` + LogDataRoot *string `xml:"LogDataRoot"` + Notes []string `xml:"Notes"` + RecoveryFile *string `xml:"RecoveryFile"` + SnapshotDataRoot *string `xml:"SnapshotDataRoot"` + SuspendDataRoot *string `xml:"SuspendDataRoot"` + SwapFileDataRoot *string `xml:"SwapFileDataRoot"` + VirtualSystemIdentifier *string `xml:"VirtualSystemIdentifier"` + VirtualSystemType *string `xml:"VirtualSystemType"` +} + +/* +Source: http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.24.0/CIM_ResourceAllocationSettingData.xsd +*/ + +type CIMResourceAllocationSettingData struct { + ElementName string `xml:"ElementName"` + InstanceID string `xml:"InstanceID"` + + ResourceType *uint16 `xml:"ResourceType"` + OtherResourceType *string `xml:"OtherResourceType"` + ResourceSubType *string `xml:"ResourceSubType"` + + AddressOnParent *string `xml:"AddressOnParent"` + Address *string `xml:"Address"` + AllocationUnits *string `xml:"AllocationUnits"` + AutomaticAllocation *bool `xml:"AutomaticAllocation"` + AutomaticDeallocation *bool `xml:"AutomaticDeallocation"` + Caption *string `xml:"Caption"` + Connection []string `xml:"Connection"` + ConsumerVisibility *uint16 `xml:"ConsumerVisibility"` + Description *string `xml:"Description"` + HostResource []string `xml:"HostResource"` + Limit *uint64 `xml:"Limit"` + MappingBehavior *uint `xml:"MappingBehavior"` + Parent *string `xml:"Parent"` + PoolID *string `xml:"PoolID"` + Reservation *uint64 `xml:"Reservation"` + VirtualQuantity *uint `xml:"VirtualQuantity"` + VirtualQuantityUnits *string `xml:"VirtualQuantityUnits"` + Weight *uint `xml:"Weight"` +} + +/* +Source: http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.24.0/CIM_StorageAllocationSettingData.xsd +*/ +type CIMStorageAllocationSettingData struct { + ElementName string `xml:"ElementName"` + InstanceID string `xml:"InstanceID"` + + ResourceType *uint16 `xml:"ResourceType"` + OtherResourceType *string `xml:"OtherResourceType"` + ResourceSubType *string `xml:"ResourceSubType"` + + Access *uint16 `xml:"Access"` + Address *string `xml:"Address"` + AddressOnParent *string `xml:"AddressOnParent"` + AllocationUnits *string `xml:"AllocationUnits"` + AutomaticAllocation *bool `xml:"AutomaticAllocation"` + AutomaticDeallocation *bool `xml:"AutomaticDeallocation"` + Caption *string `xml:"Caption"` + ChangeableType *uint16 `xml:"ChangeableType"` + ComponentSetting []types.AnyType `xml:"ComponentSetting"` + ConfigurationName *string `xml:"ConfigurationName"` + Connection []string `xml:"Connection"` + ConsumerVisibility *uint16 `xml:"ConsumerVisibility"` + Description *string `xml:"Description"` + Generation *uint64 `xml:"Generation"` + HostExtentName *string `xml:"HostExtentName"` + HostExtentNameFormat *uint16 `xml:"HostExtentNameFormat"` + HostExtentNameNamespace *uint16 `xml:"HostExtentNameNamespace"` + HostExtentStartingAddress *uint64 `xml:"HostExtentStartingAddress"` + HostResource []string `xml:"HostResource"` + HostResourceBlockSize *uint64 `xml:"HostResourceBlockSize"` + Limit *uint64 `xml:"Limit"` + MappingBehavior *uint `xml:"MappingBehavior"` + OtherHostExtentNameFormat *string `xml:"OtherHostExtentNameFormat"` + OtherHostExtentNameNamespace *string `xml:"OtherHostExtentNameNamespace"` + Parent *string `xml:"Parent"` + PoolID *string `xml:"PoolID"` + Reservation *uint64 `xml:"Reservation"` + SoID *string `xml:"SoID"` + SoOrgID *string `xml:"SoOrgID"` + VirtualQuantity *uint `xml:"VirtualQuantity"` + VirtualQuantityUnits *string `xml:"VirtualQuantityUnits"` + VirtualResourceBlockSize *uint64 `xml:"VirtualResourceBlockSize"` + Weight *uint `xml:"Weight"` +} diff --git a/vendor/github.com/vmware/govmomi/ovf/doc.go b/vendor/github.com/vmware/govmomi/ovf/doc.go new file mode 100644 index 00000000..6284b1ac --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/doc.go @@ -0,0 +1,25 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package ovf provides functionality to unmarshal and inspect the structure +of an OVF file. It is not a complete implementation of the specification and +is intended to be used to import virtual infrastructure into vSphere. + +For a complete specification of the OVF standard, refer to: +https://www.dmtf.org/sites/default/files/standards/documents/DSP0243_2.1.0.pdf +*/ +package ovf diff --git a/vendor/github.com/vmware/govmomi/ovf/env.go b/vendor/github.com/vmware/govmomi/ovf/env.go new file mode 100644 index 00000000..3ec1b99d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/env.go @@ -0,0 +1,99 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package ovf + +import ( + "bytes" + "fmt" + + "github.com/vmware/govmomi/vim25/xml" +) + +const ( + ovfEnvHeader = `` + ovfEnvPlatformSection = ` + %s + %s + %s + %s + ` + ovfEnvPropertyHeader = `` + ovfEnvPropertyEntry = `` + ovfEnvPropertyFooter = `` + ovfEnvFooter = `` +) + +type Env struct { + XMLName xml.Name `xml:"http://schemas.dmtf.org/ovf/environment/1 Environment"` + ID string `xml:"id,attr"` + EsxID string `xml:"http://www.vmware.com/schema/ovfenv esxId,attr"` + + Platform *PlatformSection `xml:"PlatformSection"` + Property *PropertySection `xml:"PropertySection"` +} + +type PlatformSection struct { + Kind string `xml:"Kind"` + Version string `xml:"Version"` + Vendor string `xml:"Vendor"` + Locale string `xml:"Locale"` +} + +type PropertySection struct { + Properties []EnvProperty `xml:"Property"` +} + +type EnvProperty struct { + Key string `xml:"key,attr"` + Value string `xml:"value,attr"` +} + +// Marshal marshals Env to xml by using xml.Marshal. +func (e Env) Marshal() (string, error) { + x, err := xml.Marshal(e) + if err != nil { + return "", err + } + + return fmt.Sprintf("%s%s", xml.Header, x), nil +} + +// MarshalManual manually marshals Env to xml suitable for a vApp guest. +// It exists to overcome the lack of expressiveness in Go's XML namespaces. +func (e Env) MarshalManual() string { + var buffer bytes.Buffer + + buffer.WriteString(xml.Header) + buffer.WriteString(fmt.Sprintf(ovfEnvHeader, e.EsxID)) + buffer.WriteString(fmt.Sprintf(ovfEnvPlatformSection, e.Platform.Kind, e.Platform.Version, e.Platform.Vendor, e.Platform.Locale)) + + buffer.WriteString(fmt.Sprint(ovfEnvPropertyHeader)) + for _, p := range e.Property.Properties { + buffer.WriteString(fmt.Sprintf(ovfEnvPropertyEntry, p.Key, p.Value)) + } + buffer.WriteString(fmt.Sprint(ovfEnvPropertyFooter)) + + buffer.WriteString(fmt.Sprint(ovfEnvFooter)) + + return buffer.String() +} diff --git a/vendor/github.com/vmware/govmomi/ovf/envelope.go b/vendor/github.com/vmware/govmomi/ovf/envelope.go new file mode 100644 index 00000000..fa4690d8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/envelope.go @@ -0,0 +1,200 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package ovf + +type Envelope struct { + References []File `xml:"References>File"` + + // Package level meta-data + Annotation *AnnotationSection `xml:"AnnotationSection"` + Product *ProductSection `xml:"ProductSection"` + Network *NetworkSection `xml:"NetworkSection"` + Disk *DiskSection `xml:"DiskSection"` + OperatingSystem *OperatingSystemSection `xml:"OperatingSystemSection"` + Eula *EulaSection `xml:"EulaSection"` + VirtualHardware *VirtualHardwareSection `xml:"VirtualHardwareSection"` + ResourceAllocation *ResourceAllocationSection `xml:"ResourceAllocationSection"` + DeploymentOption *DeploymentOptionSection `xml:"DeploymentOptionSection"` + + // Content: A VirtualSystem or a VirtualSystemCollection + VirtualSystem *VirtualSystem `xml:"VirtualSystem"` +} + +type VirtualSystem struct { + Content + + Annotation []AnnotationSection `xml:"AnnotationSection"` + Product []ProductSection `xml:"ProductSection"` + OperatingSystem []OperatingSystemSection `xml:"OperatingSystemSection"` + Eula []EulaSection `xml:"EulaSection"` + VirtualHardware []VirtualHardwareSection `xml:"VirtualHardwareSection"` +} + +type File struct { + ID string `xml:"id,attr"` + Href string `xml:"href,attr"` + Size uint `xml:"size,attr"` + Compression *string `xml:"compression,attr"` + ChunkSize *int `xml:"chunkSize,attr"` +} + +type Content struct { + ID string `xml:"id,attr"` + Info string `xml:"Info"` + Name *string `xml:"Name"` +} + +type Section struct { + Required *bool `xml:"required,attr"` + Info string `xml:"Info"` +} + +type AnnotationSection struct { + Section + + Annotation string `xml:"Annotation"` +} + +type ProductSection struct { + Section + + Class *string `xml:"class,attr"` + Instance *string `xml:"instance,attr"` + + Product string `xml:"Product"` + Vendor string `xml:"Vendor"` + Version string `xml:"Version"` + FullVersion string `xml:"FullVersion"` + ProductURL string `xml:"ProductUrl"` + VendorURL string `xml:"VendorUrl"` + AppURL string `xml:"AppUrl"` + Property []Property `xml:"Property"` +} + +type Property struct { + Key string `xml:"key,attr"` + Type string `xml:"type,attr"` + Qualifiers *string `xml:"qualifiers,attr"` + UserConfigurable *bool `xml:"userConfigurable,attr"` + Default *string `xml:"value,attr"` + Password *bool `xml:"password,attr"` + + Label *string `xml:"Label"` + Description *string `xml:"Description"` + + Values []PropertyConfigurationValue `xml:"Value"` +} + +type PropertyConfigurationValue struct { + Value string `xml:"value,attr"` + Configuration *string `xml:"configuration,attr"` +} + +type NetworkSection struct { + Section + + Networks []Network `xml:"Network"` +} + +type Network struct { + Name string `xml:"name,attr"` + + Description string `xml:"Description"` +} + +type DiskSection struct { + Section + + Disks []VirtualDiskDesc `xml:"Disk"` +} + +type VirtualDiskDesc struct { + DiskID string `xml:"diskId,attr"` + FileRef *string `xml:"fileRef,attr"` + Capacity string `xml:"capacity,attr"` + CapacityAllocationUnits *string `xml:"capacityAllocationUnits,attr"` + Format *string `xml:"format,attr"` + PopulatedSize *int `xml:"populatedSize,attr"` + ParentRef *string `xml:"parentRef,attr"` +} + +type OperatingSystemSection struct { + Section + + ID int16 `xml:"id,attr"` + Version *string `xml:"version,attr"` + OSType *string `xml:"osType,attr"` + + Description *string `xml:"Description"` +} + +type EulaSection struct { + Section + + License string `xml:"License"` +} + +type VirtualHardwareSection struct { + Section + + ID *string `xml:"id,attr"` + Transport *string `xml:"transport,attr"` + + System *VirtualSystemSettingData `xml:"System"` + Item []ResourceAllocationSettingData `xml:"Item"` + StorageItem []StorageAllocationSettingData `xml:"StorageItem"` +} + +type VirtualSystemSettingData struct { + CIMVirtualSystemSettingData +} + +type ResourceAllocationSettingData struct { + CIMResourceAllocationSettingData + + Required *bool `xml:"required,attr"` + Configuration *string `xml:"configuration,attr"` + Bound *string `xml:"bound,attr"` +} + +type StorageAllocationSettingData struct { + CIMStorageAllocationSettingData + + Required *bool `xml:"required,attr"` + Configuration *string `xml:"configuration,attr"` + Bound *string `xml:"bound,attr"` +} + +type ResourceAllocationSection struct { + Section + + Item []ResourceAllocationSettingData `xml:"Item"` +} + +type DeploymentOptionSection struct { + Section + + Configuration []DeploymentOptionConfiguration `xml:"Configuration"` +} + +type DeploymentOptionConfiguration struct { + ID string `xml:"id,attr"` + Default *bool `xml:"default,attr"` + + Label string `xml:"Label"` + Description string `xml:"Description"` +} diff --git a/vendor/github.com/vmware/govmomi/ovf/manager.go b/vendor/github.com/vmware/govmomi/ovf/manager.go new file mode 100644 index 00000000..3ee2afdd --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/manager.go @@ -0,0 +1,103 @@ +/* +Copyright (c) 2015-2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package ovf + +import ( + "context" + + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +type Manager struct { + types.ManagedObjectReference + + c *vim25.Client +} + +func NewManager(c *vim25.Client) *Manager { + return &Manager{*c.ServiceContent.OvfManager, c} +} + +// CreateDescriptor wraps methods.CreateDescriptor +func (m *Manager) CreateDescriptor(ctx context.Context, obj mo.Reference, cdp types.OvfCreateDescriptorParams) (*types.OvfCreateDescriptorResult, error) { + req := types.CreateDescriptor{ + This: m.Reference(), + Obj: obj.Reference(), + Cdp: cdp, + } + + res, err := methods.CreateDescriptor(ctx, m.c, &req) + if err != nil { + return nil, err + } + + return &res.Returnval, nil +} + +// CreateImportSpec wraps methods.CreateImportSpec +func (m *Manager) CreateImportSpec(ctx context.Context, ovfDescriptor string, resourcePool mo.Reference, datastore mo.Reference, cisp types.OvfCreateImportSpecParams) (*types.OvfCreateImportSpecResult, error) { + req := types.CreateImportSpec{ + This: m.Reference(), + OvfDescriptor: ovfDescriptor, + ResourcePool: resourcePool.Reference(), + Datastore: datastore.Reference(), + Cisp: cisp, + } + + res, err := methods.CreateImportSpec(ctx, m.c, &req) + if err != nil { + return nil, err + } + + return &res.Returnval, nil +} + +// ParseDescriptor wraps methods.ParseDescriptor +func (m *Manager) ParseDescriptor(ctx context.Context, ovfDescriptor string, pdp types.OvfParseDescriptorParams) (*types.OvfParseDescriptorResult, error) { + req := types.ParseDescriptor{ + This: m.Reference(), + OvfDescriptor: ovfDescriptor, + Pdp: pdp, + } + + res, err := methods.ParseDescriptor(ctx, m.c, &req) + if err != nil { + return nil, err + } + + return &res.Returnval, nil +} + +// ValidateHost wraps methods.ValidateHost +func (m *Manager) ValidateHost(ctx context.Context, ovfDescriptor string, host mo.Reference, vhp types.OvfValidateHostParams) (*types.OvfValidateHostResult, error) { + req := types.ValidateHost{ + This: m.Reference(), + OvfDescriptor: ovfDescriptor, + Host: host.Reference(), + Vhp: vhp, + } + + res, err := methods.ValidateHost(ctx, m.c, &req) + if err != nil { + return nil, err + } + + return &res.Returnval, nil +} diff --git a/vendor/github.com/vmware/govmomi/ovf/ovf.go b/vendor/github.com/vmware/govmomi/ovf/ovf.go new file mode 100644 index 00000000..bd279e75 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/ovf/ovf.go @@ -0,0 +1,35 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package ovf + +import ( + "io" + + "github.com/vmware/govmomi/vim25/xml" +) + +func Unmarshal(r io.Reader) (*Envelope, error) { + var e Envelope + + dec := xml.NewDecoder(r) + err := dec.Decode(&e) + if err != nil { + return nil, err + } + + return &e, nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/authorization_manager.go b/vendor/github.com/vmware/govmomi/simulator/authorization_manager.go new file mode 100644 index 00000000..0aceb071 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/authorization_manager.go @@ -0,0 +1,280 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type AuthorizationManager struct { + mo.AuthorizationManager + + permissions map[types.ManagedObjectReference][]types.Permission + privileges map[string]struct{} + system []string + nextID int32 +} + +func (m *AuthorizationManager) init(r *Registry) { + if len(m.RoleList) == 0 { + m.RoleList = make([]types.AuthorizationRole, len(esx.RoleList)) + copy(m.RoleList, esx.RoleList) + } + + m.permissions = make(map[types.ManagedObjectReference][]types.Permission) + + l := object.AuthorizationRoleList(m.RoleList) + m.system = l.ByName("ReadOnly").Privilege + admin := l.ByName("Admin") + m.privileges = make(map[string]struct{}, len(admin.Privilege)) + + for _, id := range admin.Privilege { + m.privileges[id] = struct{}{} + } + + root := r.content().RootFolder + + for _, u := range DefaultUserGroup { + m.permissions[root] = append(m.permissions[root], types.Permission{ + Entity: &root, + Principal: u.Principal, + Group: u.Group, + RoleId: admin.RoleId, + Propagate: true, + }) + } +} + +func (m *AuthorizationManager) RetrieveEntityPermissions(req *types.RetrieveEntityPermissions) soap.HasFault { + e := Map.Get(req.Entity).(mo.Entity) + + p := m.permissions[e.Reference()] + + if req.Inherited { + for { + parent := e.Entity().Parent + if parent == nil { + break + } + + e = Map.Get(parent.Reference()).(mo.Entity) + + p = append(p, m.permissions[e.Reference()]...) + } + } + + return &methods.RetrieveEntityPermissionsBody{ + Res: &types.RetrieveEntityPermissionsResponse{ + Returnval: p, + }, + } +} + +func (m *AuthorizationManager) RetrieveAllPermissions(req *types.RetrieveAllPermissions) soap.HasFault { + var p []types.Permission + + for _, v := range m.permissions { + p = append(p, v...) + } + + return &methods.RetrieveAllPermissionsBody{ + Res: &types.RetrieveAllPermissionsResponse{ + Returnval: p, + }, + } +} + +func (m *AuthorizationManager) RemoveEntityPermission(req *types.RemoveEntityPermission) soap.HasFault { + var p []types.Permission + + for _, v := range m.permissions[req.Entity] { + if v.Group == req.IsGroup && v.Principal == req.User { + continue + } + p = append(p, v) + } + + m.permissions[req.Entity] = p + + return &methods.RemoveEntityPermissionBody{ + Res: &types.RemoveEntityPermissionResponse{}, + } +} + +func (m *AuthorizationManager) SetEntityPermissions(req *types.SetEntityPermissions) soap.HasFault { + m.permissions[req.Entity] = req.Permission + + return &methods.SetEntityPermissionsBody{ + Res: &types.SetEntityPermissionsResponse{}, + } +} + +func (m *AuthorizationManager) RetrieveRolePermissions(req *types.RetrieveRolePermissions) soap.HasFault { + var p []types.Permission + + for _, set := range m.permissions { + for _, v := range set { + if v.RoleId == req.RoleId { + p = append(p, v) + } + } + } + + return &methods.RetrieveRolePermissionsBody{ + Res: &types.RetrieveRolePermissionsResponse{ + Returnval: p, + }, + } +} + +func (m *AuthorizationManager) HasPrivilegeOnEntities(req *types.HasPrivilegeOnEntities) soap.HasFault { + var p []types.EntityPrivilege + + for _, e := range req.Entity { + priv := types.EntityPrivilege{Entity: e} + + for _, id := range req.PrivId { + priv.PrivAvailability = append(priv.PrivAvailability, types.PrivilegeAvailability{ + PrivId: id, + IsGranted: true, + }) + } + + p = append(p, priv) + } + + return &methods.HasPrivilegeOnEntitiesBody{ + Res: &types.HasPrivilegeOnEntitiesResponse{ + Returnval: p, + }, + } +} + +func (m *AuthorizationManager) AddAuthorizationRole(req *types.AddAuthorizationRole) soap.HasFault { + body := &methods.AddAuthorizationRoleBody{} + + for _, role := range m.RoleList { + if role.Name == req.Name { + body.Fault_ = Fault("", &types.AlreadyExists{}) + return body + } + } + + ids, err := m.privIDs(req.PrivIds) + if err != nil { + body.Fault_ = err + return body + } + + m.RoleList = append(m.RoleList, types.AuthorizationRole{ + Info: &types.Description{ + Label: req.Name, + Summary: req.Name, + }, + RoleId: m.nextID, + Privilege: ids, + Name: req.Name, + System: false, + }) + + m.nextID++ + + body.Res = &types.AddAuthorizationRoleResponse{} + + return body +} + +func (m *AuthorizationManager) UpdateAuthorizationRole(req *types.UpdateAuthorizationRole) soap.HasFault { + body := &methods.UpdateAuthorizationRoleBody{} + + for _, role := range m.RoleList { + if role.Name == req.NewName && role.RoleId != req.RoleId { + body.Fault_ = Fault("", &types.AlreadyExists{}) + return body + } + } + + for i, role := range m.RoleList { + if role.RoleId == req.RoleId { + if len(req.PrivIds) != 0 { + ids, err := m.privIDs(req.PrivIds) + if err != nil { + body.Fault_ = err + return body + } + m.RoleList[i].Privilege = ids + } + + m.RoleList[i].Name = req.NewName + + body.Res = &types.UpdateAuthorizationRoleResponse{} + return body + } + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} + +func (m *AuthorizationManager) RemoveAuthorizationRole(req *types.RemoveAuthorizationRole) soap.HasFault { + body := &methods.RemoveAuthorizationRoleBody{} + + for i, role := range m.RoleList { + if role.RoleId == req.RoleId { + m.RoleList = append(m.RoleList[:i], m.RoleList[i+1:]...) + + body.Res = &types.RemoveAuthorizationRoleResponse{} + return body + } + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} + +func (m *AuthorizationManager) privIDs(ids []string) ([]string, *soap.Fault) { + system := make(map[string]struct{}, len(m.system)) + + for _, id := range ids { + if _, ok := m.privileges[id]; !ok { + return nil, Fault("", &types.InvalidArgument{InvalidProperty: "privIds"}) + } + + if strings.HasPrefix(id, "System.") { + system[id] = struct{}{} + } + } + + for _, id := range m.system { + if _, ok := system[id]; ok { + continue + } + + ids = append(ids, id) + } + + return ids, nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go b/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go new file mode 100644 index 00000000..906261d3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go @@ -0,0 +1,382 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "log" + "math/rand" + "sync/atomic" + "time" + + "github.com/google/uuid" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type ClusterComputeResource struct { + mo.ClusterComputeResource + + ruleKey int32 +} + +func (c *ClusterComputeResource) RenameTask(req *types.Rename_Task) soap.HasFault { + return RenameTask(c, req) +} + +type addHost struct { + *ClusterComputeResource + + req *types.AddHost_Task +} + +func (add *addHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + spec := add.req.Spec + + if spec.HostName == "" { + return nil, &types.NoHost{} + } + + host := NewHostSystem(esx.HostSystem) + host.configure(spec, add.req.AsConnected) + + cr := add.ClusterComputeResource + Map.PutEntity(cr, Map.NewEntity(host)) + host.Summary.Host = &host.Self + + cr.Host = append(cr.Host, host.Reference()) + addComputeResource(cr.Summary.GetComputeResourceSummary(), host) + host.Network = cr.Network[:1] // VM Network + + return host.Reference(), nil +} + +func (c *ClusterComputeResource) AddHostTask(add *types.AddHost_Task) soap.HasFault { + return &methods.AddHost_TaskBody{ + Res: &types.AddHost_TaskResponse{ + Returnval: NewTask(&addHost{c, add}).Run(), + }, + } +} + +func (c *ClusterComputeResource) updateRules(cfg *types.ClusterConfigInfoEx, cspec *types.ClusterConfigSpecEx) types.BaseMethodFault { + for _, spec := range cspec.RulesSpec { + var i int + exists := false + + match := func(info types.BaseClusterRuleInfo) bool { + return info.GetClusterRuleInfo().Name == spec.Info.GetClusterRuleInfo().Name + } + + if spec.Operation == types.ArrayUpdateOperationRemove { + match = func(rule types.BaseClusterRuleInfo) bool { + return rule.GetClusterRuleInfo().Key == spec.ArrayUpdateSpec.RemoveKey.(int32) + } + } + + for i = range cfg.Rule { + if match(cfg.Rule[i].GetClusterRuleInfo()) { + exists = true + break + } + } + + switch spec.Operation { + case types.ArrayUpdateOperationAdd: + if exists { + return new(types.InvalidArgument) + } + info := spec.Info.GetClusterRuleInfo() + info.Key = atomic.AddInt32(&c.ruleKey, 1) + info.RuleUuid = uuid.New().String() + cfg.Rule = append(cfg.Rule, spec.Info) + case types.ArrayUpdateOperationEdit: + if !exists { + return new(types.InvalidArgument) + } + cfg.Rule[i] = spec.Info + case types.ArrayUpdateOperationRemove: + if !exists { + return new(types.InvalidArgument) + } + cfg.Rule = append(cfg.Rule[:i], cfg.Rule[i+1:]...) + } + } + + return nil +} + +func (c *ClusterComputeResource) updateGroups(cfg *types.ClusterConfigInfoEx, cspec *types.ClusterConfigSpecEx) types.BaseMethodFault { + for _, spec := range cspec.GroupSpec { + var i int + exists := false + + match := func(info types.BaseClusterGroupInfo) bool { + return info.GetClusterGroupInfo().Name == spec.Info.GetClusterGroupInfo().Name + } + + if spec.Operation == types.ArrayUpdateOperationRemove { + match = func(info types.BaseClusterGroupInfo) bool { + return info.GetClusterGroupInfo().Name == spec.ArrayUpdateSpec.RemoveKey.(string) + } + } + + for i = range cfg.Group { + if match(cfg.Group[i].GetClusterGroupInfo()) { + exists = true + break + } + } + + switch spec.Operation { + case types.ArrayUpdateOperationAdd: + if exists { + return new(types.InvalidArgument) + } + cfg.Group = append(cfg.Group, spec.Info) + case types.ArrayUpdateOperationEdit: + if !exists { + return new(types.InvalidArgument) + } + cfg.Group[i] = spec.Info + case types.ArrayUpdateOperationRemove: + if !exists { + return new(types.InvalidArgument) + } + cfg.Group = append(cfg.Group[:i], cfg.Group[i+1:]...) + } + } + + return nil +} + +func (c *ClusterComputeResource) updateOverridesDAS(cfg *types.ClusterConfigInfoEx, cspec *types.ClusterConfigSpecEx) types.BaseMethodFault { + for _, spec := range cspec.DasVmConfigSpec { + var i int + var key types.ManagedObjectReference + exists := false + + if spec.Operation == types.ArrayUpdateOperationRemove { + key = spec.RemoveKey.(types.ManagedObjectReference) + } else { + key = spec.Info.Key + } + + for i = range cfg.DasVmConfig { + if cfg.DasVmConfig[i].Key == key { + exists = true + break + } + } + + switch spec.Operation { + case types.ArrayUpdateOperationAdd: + if exists { + return new(types.InvalidArgument) + } + cfg.DasVmConfig = append(cfg.DasVmConfig, *spec.Info) + case types.ArrayUpdateOperationEdit: + if !exists { + return new(types.InvalidArgument) + } + src := spec.Info.DasSettings + if src == nil { + return new(types.InvalidArgument) + } + dst := cfg.DasVmConfig[i].DasSettings + if src.RestartPriority != "" { + dst.RestartPriority = src.RestartPriority + } + if src.RestartPriorityTimeout != 0 { + dst.RestartPriorityTimeout = src.RestartPriorityTimeout + } + case types.ArrayUpdateOperationRemove: + if !exists { + return new(types.InvalidArgument) + } + cfg.DasVmConfig = append(cfg.DasVmConfig[:i], cfg.DasVmConfig[i+1:]...) + } + } + + return nil +} + +func (c *ClusterComputeResource) updateOverridesDRS(cfg *types.ClusterConfigInfoEx, cspec *types.ClusterConfigSpecEx) types.BaseMethodFault { + for _, spec := range cspec.DrsVmConfigSpec { + var i int + var key types.ManagedObjectReference + exists := false + + if spec.Operation == types.ArrayUpdateOperationRemove { + key = spec.RemoveKey.(types.ManagedObjectReference) + } else { + key = spec.Info.Key + } + + for i = range cfg.DrsVmConfig { + if cfg.DrsVmConfig[i].Key == key { + exists = true + break + } + } + + switch spec.Operation { + case types.ArrayUpdateOperationAdd: + if exists { + return new(types.InvalidArgument) + } + cfg.DrsVmConfig = append(cfg.DrsVmConfig, *spec.Info) + case types.ArrayUpdateOperationEdit: + if !exists { + return new(types.InvalidArgument) + } + if spec.Info.Enabled != nil { + cfg.DrsVmConfig[i].Enabled = spec.Info.Enabled + } + if spec.Info.Behavior != "" { + cfg.DrsVmConfig[i].Behavior = spec.Info.Behavior + } + case types.ArrayUpdateOperationRemove: + if !exists { + return new(types.InvalidArgument) + } + cfg.DrsVmConfig = append(cfg.DrsVmConfig[:i], cfg.DrsVmConfig[i+1:]...) + } + } + + return nil +} + +func (c *ClusterComputeResource) ReconfigureComputeResourceTask(req *types.ReconfigureComputeResource_Task) soap.HasFault { + task := CreateTask(c, "reconfigureCluster", func(*Task) (types.AnyType, types.BaseMethodFault) { + spec, ok := req.Spec.(*types.ClusterConfigSpecEx) + if !ok { + return nil, new(types.InvalidArgument) + } + + updates := []func(*types.ClusterConfigInfoEx, *types.ClusterConfigSpecEx) types.BaseMethodFault{ + c.updateRules, + c.updateGroups, + c.updateOverridesDAS, + c.updateOverridesDRS, + } + + for _, update := range updates { + if err := update(c.ConfigurationEx.(*types.ClusterConfigInfoEx), spec); err != nil { + return nil, err + } + } + + return nil, nil + }) + + return &methods.ReconfigureComputeResource_TaskBody{ + Res: &types.ReconfigureComputeResource_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (c *ClusterComputeResource) PlaceVm(ctx *Context, req *types.PlaceVm) soap.HasFault { + body := new(methods.PlaceVmBody) + + if len(c.Host) == 0 { + body.Fault_ = Fault("", new(types.InvalidState)) + return body + } + + res := types.ClusterRecommendation{ + Key: "1", + Type: "V1", + Time: time.Now(), + Rating: 1, + Reason: string(types.RecommendationReasonCodeXvmotionPlacement), + ReasonText: string(types.RecommendationReasonCodeXvmotionPlacement), + Target: &c.Self, + } + + hosts := req.PlacementSpec.Hosts + if len(hosts) == 0 { + hosts = c.Host + } + + datastores := req.PlacementSpec.Datastores + if len(datastores) == 0 { + datastores = c.Datastore + } + + spec := &types.VirtualMachineRelocateSpec{ + Datastore: &datastores[rand.Intn(len(c.Datastore))], + Host: &hosts[rand.Intn(len(c.Host))], + Pool: c.ResourcePool, + } + + switch types.PlacementSpecPlacementType(req.PlacementSpec.PlacementType) { + case types.PlacementSpecPlacementTypeClone, types.PlacementSpecPlacementTypeCreate: + res.Action = append(res.Action, &types.PlacementAction{ + Vm: req.PlacementSpec.Vm, + TargetHost: spec.Host, + RelocateSpec: spec, + }) + default: + log.Printf("unsupported placement type: %s", req.PlacementSpec.PlacementType) + body.Fault_ = Fault("", new(types.NotSupported)) + return body + } + + body.Res = &types.PlaceVmResponse{ + Returnval: types.PlacementResult{ + Recommendations: []types.ClusterRecommendation{res}, + }, + } + + return body +} + +func CreateClusterComputeResource(ctx *Context, f *Folder, name string, spec types.ClusterConfigSpecEx) (*ClusterComputeResource, types.BaseMethodFault) { + if e := Map.FindByName(name, f.ChildEntity); e != nil { + return nil, &types.DuplicateName{ + Name: e.Entity().Name, + Object: e.Reference(), + } + } + + cluster := &ClusterComputeResource{} + cluster.EnvironmentBrowser = newEnvironmentBrowser() + cluster.Name = name + cluster.Network = Map.getEntityDatacenter(f).defaultNetwork() + cluster.Summary = &types.ClusterComputeResourceSummary{ + UsageSummary: new(types.ClusterUsageSummary), + } + + config := &types.ClusterConfigInfoEx{} + cluster.ConfigurationEx = config + + config.VmSwapPlacement = string(types.VirtualMachineConfigInfoSwapPlacementTypeVmDirectory) + config.DrsConfig.Enabled = types.NewBool(true) + + pool := NewResourcePool() + Map.PutEntity(cluster, Map.NewEntity(pool)) + cluster.ResourcePool = &pool.Self + + folderPutChild(ctx, &f.Folder, cluster) + pool.Owner = cluster.Self + + return cluster, nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/container.go b/vendor/github.com/vmware/govmomi/simulator/container.go new file mode 100644 index 00000000..e0298980 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/container.go @@ -0,0 +1,408 @@ +/* +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "archive/tar" + "bytes" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "log" + "net/http" + "os/exec" + "path" + "strconv" + "strings" + "time" + + "github.com/google/uuid" + + "github.com/vmware/govmomi/vim25/types" +) + +var ( + shell = "/bin/sh" +) + +func init() { + if sh, err := exec.LookPath("bash"); err != nil { + shell = sh + } +} + +// container provides methods to manage a container within a simulator VM lifecycle. +type container struct { + id string + name string +} + +type networkSettings struct { + Gateway string + IPAddress string + IPPrefixLen int + MacAddress string +} + +// inspect applies container network settings to vm.Guest properties. +func (c *container) inspect(vm *VirtualMachine) error { + if c.id == "" { + return nil + } + + var objects []struct { + NetworkSettings struct { + networkSettings + Networks map[string]networkSettings + } + } + + cmd := exec.Command("docker", "inspect", c.id) + out, err := cmd.Output() + if err != nil { + return err + } + if err = json.NewDecoder(bytes.NewReader(out)).Decode(&objects); err != nil { + return err + } + + vm.Config.Annotation = strings.Join(cmd.Args, " ") + vm.logPrintf("%s: %s", vm.Config.Annotation, string(out)) + + for _, o := range objects { + s := o.NetworkSettings.networkSettings + + for _, n := range o.NetworkSettings.Networks { + s = n + break + } + + if s.IPAddress == "" { + continue + } + + vm.Guest.IpAddress = s.IPAddress + vm.Summary.Guest.IpAddress = s.IPAddress + + if len(vm.Guest.Net) != 0 { + net := &vm.Guest.Net[0] + net.IpAddress = []string{s.IPAddress} + net.MacAddress = s.MacAddress + } + } + + return nil +} + +func (c *container) prepareGuestOperation(vm *VirtualMachine, auth types.BaseGuestAuthentication) types.BaseMethodFault { + if c.id == "" { + return new(types.GuestOperationsUnavailable) + } + if vm.Runtime.PowerState != types.VirtualMachinePowerStatePoweredOn { + return &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOn, + ExistingState: vm.Runtime.PowerState, + } + } + switch creds := auth.(type) { + case *types.NamePasswordAuthentication: + if creds.Username == "" || creds.Password == "" { + return new(types.InvalidGuestLogin) + } + default: + return new(types.InvalidGuestLogin) + } + return nil +} + +// createDMI writes BIOS UUID DMI files to a container volume +func (c *container) createDMI(vm *VirtualMachine, name string) error { + cmd := exec.Command("docker", "run", "--rm", "-i", "-v", name+":"+"/"+name, "busybox", "tar", "-C", "/"+name, "-xf", "-") + stdin, err := cmd.StdinPipe() + if err != nil { + return err + } + + err = cmd.Start() + if err != nil { + return err + } + + tw := tar.NewWriter(stdin) + + dmi := []struct { + name string + val func(uuid.UUID) string + }{ + {"product_uuid", productUUID}, + {"product_serial", productSerial}, + } + + for _, file := range dmi { + val := file.val(vm.uid) + _ = tw.WriteHeader(&tar.Header{ + Name: file.name, + Size: int64(len(val) + 1), + Mode: 0444, + ModTime: time.Now(), + }) + _, _ = fmt.Fprintln(tw, val) + } + + _ = tw.Close() + _ = stdin.Close() + + return cmd.Wait() +} + +// start runs the container if specified by the RUN.container extraConfig property. +func (c *container) start(vm *VirtualMachine) { + if c.id != "" { + start := "start" + if vm.Runtime.PowerState == types.VirtualMachinePowerStateSuspended { + start = "unpause" + } + cmd := exec.Command("docker", start, c.id) + err := cmd.Run() + if err != nil { + log.Printf("%s %s: %s", vm.Name, cmd.Args, err) + } + return + } + + var args []string + var env []string + + for _, opt := range vm.Config.ExtraConfig { + val := opt.GetOptionValue() + if val.Key == "RUN.container" { + run := val.Value.(string) + err := json.Unmarshal([]byte(run), &args) + if err != nil { + args = []string{run} + } + + continue + } + if strings.HasPrefix(val.Key, "guestinfo.") { + key := strings.Replace(strings.ToUpper(val.Key), ".", "_", -1) + env = append(env, "--env", fmt.Sprintf("VMX_%s=%s", key, val.Value.(string))) + } + } + + if len(args) == 0 { + return + } + if len(env) != 0 { + // Configure env as the data access method for cloud-init-vmware-guestinfo + env = append(env, "--env", "VMX_GUESTINFO=true") + } + + c.name = fmt.Sprintf("vcsim-%s-%s", vm.Name, vm.uid) + run := append([]string{"docker", "run", "-d", "--name", c.name}, env...) + + if err := c.createDMI(vm, c.name); err != nil { + log.Printf("%s: %s", vm.Name, err) + return + } + run = append(run, "-v", fmt.Sprintf("%s:%s:ro", c.name, "/sys/class/dmi/id")) + + args = append(run, args...) + cmd := exec.Command(shell, "-c", strings.Join(args, " ")) + out, err := cmd.Output() + if err != nil { + log.Printf("%s %s: %s", vm.Name, cmd.Args, err) + return + } + + c.id = strings.TrimSpace(string(out)) + vm.logPrintf("%s %s: %s", cmd.Path, cmd.Args, c.id) + + if err = c.inspect(vm); err != nil { + log.Printf("%s inspect %s: %s", vm.Name, c.id, err) + } +} + +// stop the container (if any) for the given vm. +func (c *container) stop(vm *VirtualMachine) { + if c.id == "" { + return + } + + cmd := exec.Command("docker", "stop", c.id) + err := cmd.Run() + if err != nil { + log.Printf("%s %s: %s", vm.Name, cmd.Args, err) + } +} + +// pause the container (if any) for the given vm. +func (c *container) pause(vm *VirtualMachine) { + if c.id == "" { + return + } + + cmd := exec.Command("docker", "pause", c.id) + err := cmd.Run() + if err != nil { + log.Printf("%s %s: %s", vm.Name, cmd.Args, err) + } +} + +// remove the container (if any) for the given vm. +func (c *container) remove(vm *VirtualMachine) { + if c.id == "" { + return + } + + args := [][]string{ + []string{"rm", "-v", "-f", c.id}, + []string{"volume", "rm", "-f", c.name}, + } + + for i := range args { + cmd := exec.Command("docker", args[i]...) + err := cmd.Run() + if err != nil { + log.Printf("%s %s: %s", vm.Name, cmd.Args, err) + } + } + + c.id = "" +} + +func guestUpload(file string, r *http.Request) error { + cmd := exec.Command("docker", "cp", "-", path.Dir(file)) + stdin, err := cmd.StdinPipe() + if err != nil { + return err + } + if err = cmd.Start(); err != nil { + return err + } + + tw := tar.NewWriter(stdin) + _ = tw.WriteHeader(&tar.Header{ + Name: path.Base(file), + Size: r.ContentLength, + Mode: 0444, + ModTime: time.Now(), + }) + + _, _ = io.Copy(tw, r.Body) + + _ = tw.Close() + _ = stdin.Close() + _ = r.Body.Close() + + return cmd.Wait() +} + +func guestDownload(file string, w http.ResponseWriter) error { + cmd := exec.Command("docker", "cp", file, "-") + stdout, err := cmd.StdoutPipe() + if err != nil { + return err + } + if err = cmd.Start(); err != nil { + return err + } + + tr := tar.NewReader(stdout) + header, err := tr.Next() + if err != nil { + return err + } + + w.Header().Set("Content-Length", strconv.FormatInt(header.Size, 10)) + _, _ = io.Copy(w, tr) + + _ = stdout.Close() + + return cmd.Wait() +} + +const guestPrefix = "/guestFile/" + +// ServeGuest handles container guest file upload/download +func ServeGuest(w http.ResponseWriter, r *http.Request) { + // Real vCenter form: /guestFile?id=139&token=... + // vcsim form: /guestFile/tmp/foo/bar?id=ebc8837b8cb6&token=... + + id := r.URL.Query().Get("id") + file := id + ":" + strings.TrimPrefix(r.URL.Path, guestPrefix[:len(guestPrefix)-1]) + var err error + + switch r.Method { + case http.MethodPut: + err = guestUpload(file, r) + case http.MethodGet: + err = guestDownload(file, w) + default: + w.WriteHeader(http.StatusMethodNotAllowed) + return + } + + if err != nil { + log.Printf("%s %s: %s", r.Method, r.URL, err) + w.WriteHeader(http.StatusInternalServerError) + } +} + +// productSerial returns the uuid in /sys/class/dmi/id/product_serial format +func productSerial(id uuid.UUID) string { + var dst [len(id)*2 + len(id) - 1]byte + + j := 0 + for i := 0; i < len(id); i++ { + hex.Encode(dst[j:j+2], id[i:i+1]) + j += 3 + if j < len(dst) { + s := j - 1 + if s == len(dst)/2 { + dst[s] = '-' + } else { + dst[s] = ' ' + } + } + } + + return fmt.Sprintf("VMware-%s", string(dst[:])) +} + +// productUUID returns the uuid in /sys/class/dmi/id/product_uuid format +func productUUID(id uuid.UUID) string { + var dst [36]byte + + hex.Encode(dst[0:2], id[3:4]) + hex.Encode(dst[2:4], id[2:3]) + hex.Encode(dst[4:6], id[1:2]) + hex.Encode(dst[6:8], id[0:1]) + dst[8] = '-' + hex.Encode(dst[9:11], id[5:6]) + hex.Encode(dst[11:13], id[4:5]) + dst[13] = '-' + hex.Encode(dst[14:16], id[7:8]) + hex.Encode(dst[16:18], id[6:7]) + dst[18] = '-' + hex.Encode(dst[19:23], id[8:10]) + dst[23] = '-' + hex.Encode(dst[24:], id[10:]) + + return strings.ToUpper(string(dst[:])) +} diff --git a/vendor/github.com/vmware/govmomi/simulator/custom_fields_manager.go b/vendor/github.com/vmware/govmomi/simulator/custom_fields_manager.go new file mode 100644 index 00000000..aa68119f --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/custom_fields_manager.go @@ -0,0 +1,199 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type CustomFieldsManager struct { + mo.CustomFieldsManager + + nextKey int32 +} + +// Iterates through all entities of passed field type; +// Removes found field from their custom field properties. +func entitiesFieldRemove(field types.CustomFieldDef) { + entities := Map.All(field.ManagedObjectType) + for _, e := range entities { + entity := e.Entity() + Map.WithLock(entity, func() { + aFields := entity.AvailableField + for i, aField := range aFields { + if aField.Key == field.Key { + entity.AvailableField = append(aFields[:i], aFields[i+1:]...) + break + } + } + + values := e.Entity().Value + for i, value := range values { + if value.(*types.CustomFieldStringValue).Key == field.Key { + entity.Value = append(values[:i], values[i+1:]...) + break + } + } + + cValues := e.Entity().CustomValue + for i, cValue := range cValues { + if cValue.(*types.CustomFieldStringValue).Key == field.Key { + entity.CustomValue = append(cValues[:i], cValues[i+1:]...) + break + } + } + }) + } +} + +// Iterates through all entities of passed field type; +// Renames found field in entity's AvailableField property. +func entitiesFieldRename(field types.CustomFieldDef) { + entities := Map.All(field.ManagedObjectType) + for _, e := range entities { + entity := e.Entity() + Map.WithLock(entity, func() { + aFields := entity.AvailableField + for i, aField := range aFields { + if aField.Key == field.Key { + aFields[i].Name = field.Name + break + } + } + }) + } +} + +func (c *CustomFieldsManager) findByNameType(name, moType string) (int, *types.CustomFieldDef) { + for i, field := range c.Field { + if (field.ManagedObjectType == "" || field.ManagedObjectType == moType || moType == "") && + field.Name == name { + return i, &c.Field[i] + } + } + + return -1, nil +} + +func (c *CustomFieldsManager) findByKey(key int32) (int, *types.CustomFieldDef) { + for i, field := range c.Field { + if field.Key == key { + return i, &c.Field[i] + } + } + + return -1, nil +} + +func (c *CustomFieldsManager) AddCustomFieldDef(req *types.AddCustomFieldDef) soap.HasFault { + body := &methods.AddCustomFieldDefBody{} + + _, field := c.findByNameType(req.Name, req.MoType) + if field != nil { + body.Fault_ = Fault("", &types.DuplicateName{ + Name: req.Name, + Object: c.Reference(), + }) + return body + } + + def := types.CustomFieldDef{ + Key: c.nextKey, + Name: req.Name, + ManagedObjectType: req.MoType, + Type: req.MoType, + FieldDefPrivileges: req.FieldDefPolicy, + FieldInstancePrivileges: req.FieldPolicy, + } + + entities := Map.All(req.MoType) + for _, e := range entities { + entity := e.Entity() + Map.WithLock(entity, func() { + entity.AvailableField = append(entity.AvailableField, def) + }) + } + + c.Field = append(c.Field, def) + c.nextKey++ + + body.Res = &types.AddCustomFieldDefResponse{ + Returnval: def, + } + return body +} + +func (c *CustomFieldsManager) RemoveCustomFieldDef(req *types.RemoveCustomFieldDef) soap.HasFault { + body := &methods.RemoveCustomFieldDefBody{} + + i, field := c.findByKey(req.Key) + if field == nil { + body.Fault_ = Fault("", &types.NotFound{}) + return body + } + + entitiesFieldRemove(*field) + + c.Field = append(c.Field[:i], c.Field[i+1:]...) + + body.Res = &types.RemoveCustomFieldDefResponse{} + return body +} + +func (c *CustomFieldsManager) RenameCustomFieldDef(req *types.RenameCustomFieldDef) soap.HasFault { + body := &methods.RenameCustomFieldDefBody{} + + _, field := c.findByKey(req.Key) + if field == nil { + body.Fault_ = Fault("", &types.NotFound{}) + return body + } + + field.Name = req.Name + + entitiesFieldRename(*field) + + body.Res = &types.RenameCustomFieldDefResponse{} + return body +} + +func (c *CustomFieldsManager) SetField(ctx *Context, req *types.SetField) soap.HasFault { + body := &methods.SetFieldBody{} + + _, field := c.findByKey(req.Key) + if field == nil { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "key"}) + return body + } + + newValue := &types.CustomFieldStringValue{ + CustomFieldValue: types.CustomFieldValue{Key: req.Key}, + Value: req.Value, + } + + entity := Map.Get(req.Entity).(mo.Entity).Entity() + ctx.WithLock(entity, func() { + entity.CustomValue = append(entity.CustomValue, newValue) + entity.Value = append(entity.Value, newValue) + }) + + body.Res = &types.SetFieldResponse{} + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/customization_spec_manager.go b/vendor/github.com/vmware/govmomi/simulator/customization_spec_manager.go new file mode 100644 index 00000000..4711864b --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/customization_spec_manager.go @@ -0,0 +1,349 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "sync/atomic" + "time" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var DefaultCustomizationSpec = []types.CustomizationSpecItem{ + types.CustomizationSpecItem{ + Info: types.CustomizationSpecInfo{ + Name: "vcsim-linux", + Description: "", + Type: "Linux", + ChangeVersion: "1569965707", + LastUpdateTime: types.NewTime(time.Now()), + }, + Spec: types.CustomizationSpec{ + Options: &types.CustomizationLinuxOptions{}, + Identity: &types.CustomizationLinuxPrep{ + CustomizationIdentitySettings: types.CustomizationIdentitySettings{}, + HostName: &types.CustomizationVirtualMachineName{}, + Domain: "eng.vmware.com", + TimeZone: "Pacific/Apia", + HwClockUTC: types.NewBool(true), + }, + GlobalIPSettings: types.CustomizationGlobalIPSettings{ + DnsSuffixList: nil, + DnsServerList: []string{"127.0.1.1"}, + }, + NicSettingMap: []types.CustomizationAdapterMapping{ + { + MacAddress: "", + Adapter: types.CustomizationIPSettings{ + Ip: &types.CustomizationDhcpIpGenerator{}, + SubnetMask: "", + Gateway: nil, + IpV6Spec: (*types.CustomizationIPSettingsIpV6AddressSpec)(nil), + DnsServerList: nil, + DnsDomain: "", + PrimaryWINS: "", + SecondaryWINS: "", + NetBIOS: "", + }, + }, + }, + EncryptionKey: nil, + }, + }, + types.CustomizationSpecItem{ + Info: types.CustomizationSpecInfo{ + Name: "vcsim-linux-static", + Description: "", + Type: "Linux", + ChangeVersion: "1569969598", + LastUpdateTime: types.NewTime(time.Now()), + }, + Spec: types.CustomizationSpec{ + Options: &types.CustomizationLinuxOptions{}, + Identity: &types.CustomizationLinuxPrep{ + CustomizationIdentitySettings: types.CustomizationIdentitySettings{}, + HostName: &types.CustomizationPrefixName{ + CustomizationName: types.CustomizationName{}, + Base: "vcsim", + }, + Domain: "eng.vmware.com", + TimeZone: "Africa/Cairo", + HwClockUTC: types.NewBool(true), + }, + GlobalIPSettings: types.CustomizationGlobalIPSettings{ + DnsSuffixList: nil, + DnsServerList: []string{"127.0.1.1"}, + }, + NicSettingMap: []types.CustomizationAdapterMapping{ + { + MacAddress: "", + Adapter: types.CustomizationIPSettings{ + Ip: &types.CustomizationUnknownIpGenerator{}, + SubnetMask: "255.255.255.0", + Gateway: []string{"10.0.0.1"}, + IpV6Spec: (*types.CustomizationIPSettingsIpV6AddressSpec)(nil), + DnsServerList: nil, + DnsDomain: "", + PrimaryWINS: "", + SecondaryWINS: "", + NetBIOS: "", + }, + }, + }, + EncryptionKey: nil, + }, + }, + types.CustomizationSpecItem{ + Info: types.CustomizationSpecInfo{ + Name: "vcsim-windows-static", + Description: "", + Type: "Windows", + ChangeVersion: "1569978029", + LastUpdateTime: types.NewTime(time.Now()), + }, + Spec: types.CustomizationSpec{ + Options: &types.CustomizationWinOptions{ + CustomizationOptions: types.CustomizationOptions{}, + ChangeSID: true, + DeleteAccounts: false, + Reboot: "", + }, + Identity: &types.CustomizationSysprep{ + CustomizationIdentitySettings: types.CustomizationIdentitySettings{}, + GuiUnattended: types.CustomizationGuiUnattended{ + Password: (*types.CustomizationPassword)(nil), + TimeZone: 2, + AutoLogon: false, + AutoLogonCount: 1, + }, + UserData: types.CustomizationUserData{ + FullName: "vcsim", + OrgName: "VMware", + ComputerName: &types.CustomizationVirtualMachineName{}, + ProductId: "", + }, + GuiRunOnce: (*types.CustomizationGuiRunOnce)(nil), + Identification: types.CustomizationIdentification{ + JoinWorkgroup: "WORKGROUP", + JoinDomain: "", + DomainAdmin: "", + DomainAdminPassword: (*types.CustomizationPassword)(nil), + }, + LicenseFilePrintData: &types.CustomizationLicenseFilePrintData{ + AutoMode: "perServer", + AutoUsers: 5, + }, + }, + GlobalIPSettings: types.CustomizationGlobalIPSettings{}, + NicSettingMap: []types.CustomizationAdapterMapping{ + { + MacAddress: "", + Adapter: types.CustomizationIPSettings{ + Ip: &types.CustomizationUnknownIpGenerator{}, + SubnetMask: "255.255.255.0", + Gateway: []string{"10.0.0.1"}, + IpV6Spec: (*types.CustomizationIPSettingsIpV6AddressSpec)(nil), + DnsServerList: nil, + DnsDomain: "", + PrimaryWINS: "", + SecondaryWINS: "", + NetBIOS: "", + }, + }, + }, + EncryptionKey: []uint8{0x30}, + }, + }, + types.CustomizationSpecItem{ + Info: types.CustomizationSpecInfo{ + Name: "vcsim-windows-domain", + Description: "", + Type: "Windows", + ChangeVersion: "1569970234", + LastUpdateTime: types.NewTime(time.Now()), + }, + Spec: types.CustomizationSpec{ + Options: &types.CustomizationWinOptions{ + CustomizationOptions: types.CustomizationOptions{}, + ChangeSID: true, + DeleteAccounts: false, + Reboot: "", + }, + Identity: &types.CustomizationSysprep{ + CustomizationIdentitySettings: types.CustomizationIdentitySettings{}, + GuiUnattended: types.CustomizationGuiUnattended{ + Password: &types.CustomizationPassword{ + Value: "3Gs...==", + PlainText: false, + }, + TimeZone: 15, + AutoLogon: false, + AutoLogonCount: 1, + }, + UserData: types.CustomizationUserData{ + FullName: "dougm", + OrgName: "VMware", + ComputerName: &types.CustomizationVirtualMachineName{}, + ProductId: "", + }, + GuiRunOnce: (*types.CustomizationGuiRunOnce)(nil), + Identification: types.CustomizationIdentification{ + JoinWorkgroup: "", + JoinDomain: "DOMAIN", + DomainAdmin: "vcsim", + DomainAdminPassword: &types.CustomizationPassword{ + Value: "H3g...==", + PlainText: false, + }, + }, + LicenseFilePrintData: &types.CustomizationLicenseFilePrintData{ + AutoMode: "perServer", + AutoUsers: 5, + }, + }, + GlobalIPSettings: types.CustomizationGlobalIPSettings{}, + NicSettingMap: []types.CustomizationAdapterMapping{ + { + MacAddress: "", + Adapter: types.CustomizationIPSettings{ + Ip: &types.CustomizationUnknownIpGenerator{}, + SubnetMask: "255.255.255.0", + Gateway: []string{"10.0.0.1"}, + IpV6Spec: (*types.CustomizationIPSettingsIpV6AddressSpec)(nil), + DnsServerList: nil, + DnsDomain: "", + PrimaryWINS: "", + SecondaryWINS: "", + NetBIOS: "", + }, + }, + }, + EncryptionKey: []uint8{0x30}, + }, + }, +} + +type CustomizationSpecManager struct { + mo.CustomizationSpecManager + + items []types.CustomizationSpecItem +} + +func (m *CustomizationSpecManager) init(r *Registry) { + m.items = DefaultCustomizationSpec +} + +var customizeNameCounter uint64 + +func customizeName(vm *VirtualMachine, base types.BaseCustomizationName) string { + n := atomic.AddUint64(&customizeNameCounter, 1) + + switch name := base.(type) { + case *types.CustomizationPrefixName: + return fmt.Sprintf("%s-%d", name.Base, n) + case *types.CustomizationCustomName: + return fmt.Sprintf("%s-%d", name.Argument, n) + case *types.CustomizationFixedName: + return name.Name + case *types.CustomizationUnknownName: + return "" + case *types.CustomizationVirtualMachineName: + return fmt.Sprintf("%s-%d", vm.Name, n) + default: + return "" + } +} + +func (m *CustomizationSpecManager) DoesCustomizationSpecExist(ctx *Context, req *types.DoesCustomizationSpecExist) soap.HasFault { + exists := false + + for _, item := range m.items { + if item.Info.Name == req.Name { + exists = true + break + } + } + + return &methods.DoesCustomizationSpecExistBody{ + Res: &types.DoesCustomizationSpecExistResponse{ + Returnval: exists, + }, + } +} + +func (m *CustomizationSpecManager) GetCustomizationSpec(ctx *Context, req *types.GetCustomizationSpec) soap.HasFault { + body := new(methods.GetCustomizationSpecBody) + + for _, item := range m.items { + if item.Info.Name == req.Name { + body.Res = &types.GetCustomizationSpecResponse{ + Returnval: item, + } + return body + } + } + + body.Fault_ = Fault("", new(types.NotFound)) + + return body +} + +func (m *CustomizationSpecManager) CreateCustomizationSpec(ctx *Context, req *types.CreateCustomizationSpec) soap.HasFault { + body := new(methods.CreateCustomizationSpecBody) + + for _, item := range m.items { + if item.Info.Name == req.Item.Info.Name { + body.Fault_ = Fault("", &types.AlreadyExists{Name: req.Item.Info.Name}) + return body + } + } + + m.items = append(m.items, req.Item) + body.Res = new(types.CreateCustomizationSpecResponse) + + return body +} + +func (m *CustomizationSpecManager) OverwriteCustomizationSpec(ctx *Context, req *types.OverwriteCustomizationSpec) soap.HasFault { + body := new(methods.OverwriteCustomizationSpecBody) + + for i, item := range m.items { + if item.Info.Name == req.Item.Info.Name { + m.items[i] = req.Item + body.Res = new(types.OverwriteCustomizationSpecResponse) + return body + } + } + + body.Fault_ = Fault("", new(types.NotFound)) + + return body +} + +func (m *CustomizationSpecManager) Get() mo.Reference { + clone := *m + + for i := range clone.items { + clone.Info = append(clone.Info, clone.items[i].Info) + } + + return &clone +} diff --git a/vendor/github.com/vmware/govmomi/simulator/datacenter.go b/vendor/github.com/vmware/govmomi/simulator/datacenter.go new file mode 100644 index 00000000..10d0f199 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/datacenter.go @@ -0,0 +1,198 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "log" + "strings" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type Datacenter struct { + mo.Datacenter + + isESX bool +} + +// NewDatacenter creates a Datacenter and its child folders. +func NewDatacenter(ctx *Context, f *mo.Folder) *Datacenter { + dc := &Datacenter{ + isESX: f.Self == esx.RootFolder.Self, + } + + if dc.isESX { + dc.Datacenter = esx.Datacenter + } + + folderPutChild(ctx, f, dc) + + dc.createFolders(ctx) + + return dc +} + +func (dc *Datacenter) RenameTask(r *types.Rename_Task) soap.HasFault { + return RenameTask(dc, r) +} + +// Create Datacenter Folders. +// Every Datacenter has 4 inventory Folders: Vm, Host, Datastore and Network. +// The ESX folder child types are limited to 1 type. +// The VC folders have additional child types, including nested folders. +func (dc *Datacenter) createFolders(ctx *Context) { + folders := []struct { + ref *types.ManagedObjectReference + name string + types []string + }{ + {&dc.VmFolder, "vm", []string{"VirtualMachine", "VirtualApp", "Folder"}}, + {&dc.HostFolder, "host", []string{"ComputeResource", "Folder"}}, + {&dc.DatastoreFolder, "datastore", []string{"Datastore", "StoragePod", "Folder"}}, + {&dc.NetworkFolder, "network", []string{"Network", "DistributedVirtualSwitch", "Folder"}}, + } + + for _, f := range folders { + folder := &Folder{} + folder.Name = f.name + + if dc.isESX { + folder.ChildType = f.types[:1] + folder.Self = *f.ref + Map.PutEntity(dc, folder) + } else { + folder.ChildType = f.types + e := Map.PutEntity(dc, folder) + + // propagate the generated morefs to Datacenter + ref := e.Reference() + f.ref.Type = ref.Type + f.ref.Value = ref.Value + } + } + + net := Map.Get(dc.NetworkFolder).(*Folder) + + for _, ref := range esx.Datacenter.Network { + // Add VM Network by default to each Datacenter + network := &mo.Network{} + network.Self = ref + network.Name = strings.Split(ref.Value, "-")[1] + network.Entity().Name = network.Name + if !dc.isESX { + network.Self.Value = "" // we want a different moid per-DC + } + + folderPutChild(ctx, &net.Folder, network) + } +} + +func (dc *Datacenter) defaultNetwork() []types.ManagedObjectReference { + return dc.Network[:1] // VM Network +} + +// folder returns the Datacenter folder that can contain the given object type +func (dc *Datacenter) folder(obj mo.Entity) *mo.Folder { + folders := []types.ManagedObjectReference{ + dc.VmFolder, + dc.HostFolder, + dc.DatastoreFolder, + dc.NetworkFolder, + } + otype := getManagedObject(obj).Type() + rtype := obj.Reference().Type + + for i := range folders { + folder, _ := asFolderMO(Map.Get(folders[i])) + for _, kind := range folder.ChildType { + if rtype == kind { + return folder + } + if f, ok := otype.FieldByName(kind); ok && f.Anonymous { + return folder + } + } + } + + log.Panicf("failed to find folder for type=%s", rtype) + return nil +} + +func datacenterEventArgument(obj mo.Entity) *types.DatacenterEventArgument { + dc, ok := obj.(*Datacenter) + if !ok { + dc = Map.getEntityDatacenter(obj) + } + return &types.DatacenterEventArgument{ + Datacenter: dc.Self, + EntityEventArgument: types.EntityEventArgument{Name: dc.Name}, + } +} + +func (dc *Datacenter) PowerOnMultiVMTask(ctx *Context, req *types.PowerOnMultiVM_Task) soap.HasFault { + task := CreateTask(dc, "powerOnMultiVM", func(_ *Task) (types.AnyType, types.BaseMethodFault) { + if dc.isESX { + return nil, new(types.NotImplemented) + } + + for _, ref := range req.Vm { + vm := Map.Get(ref).(*VirtualMachine) + Map.WithLock(vm, func() { + vm.PowerOnVMTask(ctx, &types.PowerOnVM_Task{}) + }) + } + + return nil, nil + }) + + return &methods.PowerOnMultiVM_TaskBody{ + Res: &types.PowerOnMultiVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (d *Datacenter) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + task := CreateTask(d, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + folders := []types.ManagedObjectReference{ + d.VmFolder, + d.HostFolder, + } + + for _, ref := range folders { + f, _ := asFolderMO(Map.Get(ref)) + if len(f.ChildEntity) != 0 { + return nil, &types.ResourceInUse{} + } + } + + p, _ := asFolderMO(Map.Get(*d.Parent)) + folderRemoveChild(ctx, p, d.Self) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/datastore.go b/vendor/github.com/vmware/govmomi/simulator/datastore.go new file mode 100644 index 00000000..62103d32 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/datastore.go @@ -0,0 +1,90 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "time" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type Datastore struct { + mo.Datastore +} + +func parseDatastorePath(dsPath string) (*object.DatastorePath, types.BaseMethodFault) { + var p object.DatastorePath + + if p.FromString(dsPath) { + return &p, nil + } + + return nil, &types.InvalidDatastorePath{DatastorePath: dsPath} +} + +func (ds *Datastore) RefreshDatastore(*types.RefreshDatastore) soap.HasFault { + r := &methods.RefreshDatastoreBody{} + + err := ds.stat() + if err != nil { + r.Fault_ = Fault(err.Error(), &types.HostConfigFault{}) + return r + } + + info := ds.Info.GetDatastoreInfo() + + now := time.Now() + + info.Timestamp = &now + info.MaxMemoryFileSize = info.FreeSpace + info.MaxFileSize = info.FreeSpace + + return r +} + +func (ds *Datastore) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + task := CreateTask(ds, "destroy", func(*Task) (types.AnyType, types.BaseMethodFault) { + if len(ds.Vm) != 0 { + return nil, &types.ResourceInUse{ + Type: ds.Self.Type, + Name: ds.Name, + } + } + + for _, mount := range ds.Host { + host := Map.Get(mount.Key).(*HostSystem) + Map.RemoveReference(host, &host.Datastore, ds.Self) + parent := hostParent(&host.HostSystem) + Map.RemoveReference(parent, &parent.Datastore, ds.Self) + } + + p, _ := asFolderMO(Map.Get(*ds.Parent)) + folderRemoveChild(ctx, p, ds.Self) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/doc.go b/vendor/github.com/vmware/govmomi/simulator/doc.go new file mode 100644 index 00000000..441e9a0e --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/doc.go @@ -0,0 +1,22 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package simulator is a mock framework for the vSphere API. + +See also: https://github.com/vmware/govmomi/blob/master/vcsim/README.md +*/ +package simulator diff --git a/vendor/github.com/vmware/govmomi/simulator/dvs.go b/vendor/github.com/vmware/govmomi/simulator/dvs.go new file mode 100644 index 00000000..d40ae925 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/dvs.go @@ -0,0 +1,281 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strconv" + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type DistributedVirtualSwitch struct { + mo.DistributedVirtualSwitch +} + +func (s *DistributedVirtualSwitch) AddDVPortgroupTask(ctx *Context, c *types.AddDVPortgroup_Task) soap.HasFault { + task := CreateTask(s, "addDVPortgroup", func(t *Task) (types.AnyType, types.BaseMethodFault) { + f := Map.getEntityParent(s, "Folder").(*Folder) + + portgroups := s.Portgroup + portgroupNames := s.Summary.PortgroupName + + for _, spec := range c.Spec { + pg := &DistributedVirtualPortgroup{} + pg.Name = spec.Name + pg.Entity().Name = pg.Name + + // Standard AddDVPortgroupTask() doesn't allow duplicate names, but NSX 3.0 does create some DVPGs with the same name. + // Allow duplicate names using this prefix so we can reproduce and test this condition. + if !strings.HasPrefix(pg.Name, "NSX-") { + if obj := Map.FindByName(pg.Name, f.ChildEntity); obj != nil { + return nil, &types.DuplicateName{ + Name: pg.Name, + Object: obj.Reference(), + } + } + } + + folderPutChild(ctx, &f.Folder, pg) + + pg.Key = pg.Self.Value + pg.Config = types.DVPortgroupConfigInfo{ + Key: pg.Key, + Name: pg.Name, + NumPorts: spec.NumPorts, + DistributedVirtualSwitch: &s.Self, + DefaultPortConfig: spec.DefaultPortConfig, + Description: spec.Description, + Type: spec.Type, + Policy: spec.Policy, + PortNameFormat: spec.PortNameFormat, + Scope: spec.Scope, + VendorSpecificConfig: spec.VendorSpecificConfig, + ConfigVersion: spec.ConfigVersion, + AutoExpand: spec.AutoExpand, + VmVnicNetworkResourcePoolKey: spec.VmVnicNetworkResourcePoolKey, + LogicalSwitchUuid: spec.LogicalSwitchUuid, + BackingType: spec.BackingType, + } + + if pg.Config.LogicalSwitchUuid != "" { + if pg.Config.BackingType == "" { + pg.Config.BackingType = "nsx" + } + } + + if pg.Config.DefaultPortConfig == nil { + pg.Config.DefaultPortConfig = &types.VMwareDVSPortSetting{ + Vlan: new(types.VmwareDistributedVirtualSwitchVlanIdSpec), + UplinkTeamingPolicy: &types.VmwareUplinkPortTeamingPolicy{ + Policy: &types.StringPolicy{ + Value: "loadbalance_srcid", + }, + ReversePolicy: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + NotifySwitches: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + RollingOrder: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + }, + } + } + + if pg.Config.Policy == nil { + pg.Config.Policy = &types.VMwareDVSPortgroupPolicy{ + DVPortgroupPolicy: types.DVPortgroupPolicy{ + BlockOverrideAllowed: true, + ShapingOverrideAllowed: false, + VendorConfigOverrideAllowed: false, + LivePortMovingAllowed: false, + PortConfigResetAtDisconnect: true, + NetworkResourcePoolOverrideAllowed: types.NewBool(false), + TrafficFilterOverrideAllowed: types.NewBool(false), + }, + VlanOverrideAllowed: false, + UplinkTeamingOverrideAllowed: false, + SecurityPolicyOverrideAllowed: false, + IpfixOverrideAllowed: types.NewBool(false), + } + } + + for i := 0; i < int(spec.NumPorts); i++ { + pg.PortKeys = append(pg.PortKeys, strconv.Itoa(i)) + } + + portgroups = append(portgroups, pg.Self) + portgroupNames = append(portgroupNames, pg.Name) + + for _, h := range s.Summary.HostMember { + pg.Host = append(pg.Host, h) + + host := Map.Get(h).(*HostSystem) + Map.AppendReference(host, &host.Network, pg.Reference()) + + parent := Map.Get(*host.HostSystem.Parent) + computeNetworks := append(hostParent(&host.HostSystem).Network, pg.Reference()) + Map.Update(parent, []types.PropertyChange{ + {Name: "network", Val: computeNetworks}, + }) + } + } + + Map.Update(s, []types.PropertyChange{ + {Name: "portgroup", Val: portgroups}, + {Name: "summary.portgroupName", Val: portgroupNames}, + }) + + return nil, nil + }) + + return &methods.AddDVPortgroup_TaskBody{ + Res: &types.AddDVPortgroup_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (s *DistributedVirtualSwitch) ReconfigureDvsTask(req *types.ReconfigureDvs_Task) soap.HasFault { + task := CreateTask(s, "reconfigureDvs", func(t *Task) (types.AnyType, types.BaseMethodFault) { + spec := req.Spec.GetDVSConfigSpec() + + members := s.Summary.HostMember + + for _, member := range spec.Host { + h := Map.Get(member.Host) + if h == nil { + return nil, &types.ManagedObjectNotFound{Obj: member.Host} + } + + host := h.(*HostSystem) + + switch types.ConfigSpecOperation(member.Operation) { + case types.ConfigSpecOperationAdd: + if FindReference(s.Summary.HostMember, member.Host) != nil { + return nil, &types.AlreadyExists{Name: host.Name} + } + + hostNetworks := append(host.Network, s.Portgroup...) + Map.Update(host, []types.PropertyChange{ + {Name: "network", Val: hostNetworks}, + }) + members = append(members, member.Host) + parent := Map.Get(*host.HostSystem.Parent) + + var pgs []types.ManagedObjectReference + for _, ref := range s.Portgroup { + pg := Map.Get(ref).(*DistributedVirtualPortgroup) + pgs = append(pgs, ref) + + pgHosts := append(pg.Host, member.Host) + Map.Update(pg, []types.PropertyChange{ + {Name: "host", Val: pgHosts}, + }) + + cr := hostParent(&host.HostSystem) + if FindReference(cr.Network, ref) == nil { + computeNetworks := append(cr.Network, ref) + Map.Update(parent, []types.PropertyChange{ + {Name: "network", Val: computeNetworks}, + }) + } + } + + case types.ConfigSpecOperationRemove: + for _, ref := range host.Vm { + vm := Map.Get(ref).(*VirtualMachine) + if pg := FindReference(vm.Network, s.Portgroup...); pg != nil { + return nil, &types.ResourceInUse{ + Type: pg.Type, + Name: pg.Value, + } + } + } + + RemoveReference(&members, member.Host) + case types.ConfigSpecOperationEdit: + return nil, &types.NotSupported{} + } + } + + Map.Update(s, []types.PropertyChange{ + {Name: "summary.hostMember", Val: members}, + }) + + return nil, nil + }) + + return &methods.ReconfigureDvs_TaskBody{ + Res: &types.ReconfigureDvs_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (s *DistributedVirtualSwitch) FetchDVPorts(req *types.FetchDVPorts) soap.HasFault { + body := &methods.FetchDVPortsBody{} + body.Res = &types.FetchDVPortsResponse{ + Returnval: s.dvPortgroups(req.Criteria), + } + return body +} + +func (s *DistributedVirtualSwitch) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + task := CreateTask(s, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + f := Map.getEntityParent(s, "Folder").(*Folder) + folderRemoveChild(ctx, &f.Folder, s.Reference()) + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (s *DistributedVirtualSwitch) dvPortgroups(_ *types.DistributedVirtualSwitchPortCriteria) []types.DistributedVirtualPort { + // TODO(agui): Filter is not implemented yet + var res []types.DistributedVirtualPort + for _, ref := range s.Portgroup { + pg := Map.Get(ref).(*DistributedVirtualPortgroup) + res = append(res, types.DistributedVirtualPort{ + DvsUuid: s.Uuid, + Key: pg.Key, + Config: types.DVPortConfigInfo{ + Setting: pg.Config.DefaultPortConfig, + }, + }) + + for _, key := range pg.PortKeys { + res = append(res, types.DistributedVirtualPort{ + DvsUuid: s.Uuid, + Key: key, + Config: types.DVPortConfigInfo{ + Setting: pg.Config.DefaultPortConfig, + }, + }) + } + } + return res +} diff --git a/vendor/github.com/vmware/govmomi/simulator/entity.go b/vendor/github.com/vmware/govmomi/simulator/entity.go new file mode 100644 index 00000000..a18c7845 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/entity.go @@ -0,0 +1,46 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +func RenameTask(e mo.Entity, r *types.Rename_Task) soap.HasFault { + task := CreateTask(e, "rename", func(t *Task) (types.AnyType, types.BaseMethodFault) { + obj := Map.Get(r.This).(mo.Entity).Entity() + + if parent, ok := asFolderMO(Map.Get(*obj.Parent)); ok { + if Map.FindByName(r.NewName, parent.ChildEntity) != nil { + return nil, &types.InvalidArgument{InvalidProperty: "name"} + } + } + + Map.Update(e, []types.PropertyChange{{Name: "name", Val: r.NewName}}) + + return nil, nil + }) + + return &methods.Rename_TaskBody{ + Res: &types.Rename_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/environment_browser.go b/vendor/github.com/vmware/govmomi/simulator/environment_browser.go new file mode 100644 index 00000000..a68633f2 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/environment_browser.go @@ -0,0 +1,225 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type EnvironmentBrowser struct { + mo.EnvironmentBrowser +} + +func newEnvironmentBrowser() *types.ManagedObjectReference { + env := new(EnvironmentBrowser) + Map.Put(env) + return &env.Self +} + +func (b *EnvironmentBrowser) hosts(ctx *Context) []types.ManagedObjectReference { + ctx.Map.m.Lock() + defer ctx.Map.m.Unlock() + for _, obj := range ctx.Map.objects { + switch e := obj.(type) { + case *mo.ComputeResource: + if b.Self == *e.EnvironmentBrowser { + return e.Host + } + case *ClusterComputeResource: + if b.Self == *e.EnvironmentBrowser { + return e.Host + } + } + } + return nil +} + +func (b *EnvironmentBrowser) QueryConfigOption(req *types.QueryConfigOption) soap.HasFault { + body := new(methods.QueryConfigOptionBody) + + opt := &types.VirtualMachineConfigOption{ + Version: esx.HardwareVersion, + DefaultDevice: esx.VirtualDevice, + } + + body.Res = &types.QueryConfigOptionResponse{ + Returnval: opt, + } + + return body +} + +func guestFamily(id string) string { + // TODO: We could capture the entire GuestOsDescriptor list from EnvironmentBrowser, + // but it is a ton of data.. this should be good enough for now. + switch { + case strings.HasPrefix(id, "win"): + return string(types.VirtualMachineGuestOsFamilyWindowsGuest) + case strings.HasPrefix(id, "darwin"): + return string(types.VirtualMachineGuestOsFamilyDarwinGuestFamily) + default: + return string(types.VirtualMachineGuestOsFamilyLinuxGuest) + } +} + +func (b *EnvironmentBrowser) QueryConfigOptionEx(req *types.QueryConfigOptionEx) soap.HasFault { + body := new(methods.QueryConfigOptionExBody) + + opt := &types.VirtualMachineConfigOption{ + Version: esx.HardwareVersion, + DefaultDevice: esx.VirtualDevice, + } + + // From the SDK QueryConfigOptionEx doc: + // "If guestId is nonempty, the guestOSDescriptor array of the config option is filtered to match against the guest IDs in the spec. + // If there is no match, the whole list is returned." + for _, id := range req.Spec.GuestId { + for _, gid := range GuestID { + if string(gid) == id { + opt.GuestOSDescriptor = []types.GuestOsDescriptor{{ + Id: id, + Family: guestFamily(id), + }} + + break + } + } + } + + if len(opt.GuestOSDescriptor) == 0 { + for i := range GuestID { + id := string(GuestID[i]) + opt.GuestOSDescriptor = append(opt.GuestOSDescriptor, types.GuestOsDescriptor{ + Id: id, + Family: guestFamily(id), + }) + } + } + + body.Res = &types.QueryConfigOptionExResponse{ + Returnval: opt, + } + + return body +} + +func (b *EnvironmentBrowser) QueryConfigOptionDescriptor(ctx *Context, req *types.QueryConfigOptionDescriptor) soap.HasFault { + body := &methods.QueryConfigOptionDescriptorBody{ + Res: new(types.QueryConfigOptionDescriptorResponse), + } + + body.Res.Returnval = []types.VirtualMachineConfigOptionDescriptor{{ + Key: esx.HardwareVersion, + Description: esx.HardwareVersion, + Host: b.hosts(ctx), + CreateSupported: types.NewBool(true), + DefaultConfigOption: types.NewBool(false), + RunSupported: types.NewBool(true), + UpgradeSupported: types.NewBool(true), + }} + + return body +} + +func (b *EnvironmentBrowser) QueryConfigTarget(ctx *Context, req *types.QueryConfigTarget) soap.HasFault { + body := &methods.QueryConfigTargetBody{ + Res: &types.QueryConfigTargetResponse{ + Returnval: &types.ConfigTarget{ + SmcPresent: types.NewBool(false), + }, + }, + } + target := body.Res.Returnval + + var hosts []types.ManagedObjectReference + if req.Host == nil { + hosts = b.hosts(ctx) + } else { + hosts = append(hosts, *req.Host) + } + + seen := make(map[types.ManagedObjectReference]bool) + + for i := range hosts { + host := ctx.Map.Get(hosts[i]).(*HostSystem) + target.NumCpus += int32(host.Summary.Hardware.NumCpuPkgs) + target.NumCpuCores += int32(host.Summary.Hardware.NumCpuCores) + target.NumNumaNodes++ + + for _, ref := range host.Datastore { + if seen[ref] { + continue + } + seen[ref] = true + + ds := ctx.Map.Get(ref).(*Datastore) + target.Datastore = append(target.Datastore, types.VirtualMachineDatastoreInfo{ + VirtualMachineTargetInfo: types.VirtualMachineTargetInfo{ + Name: ds.Name, + }, + Datastore: ds.Summary, + Capability: ds.Capability, + Mode: string(types.HostMountModeReadWrite), + VStorageSupport: string(types.FileSystemMountInfoVStorageSupportStatusVStorageUnsupported), + }) + } + + for _, ref := range host.Network { + if seen[ref] { + continue + } + seen[ref] = true + + switch n := ctx.Map.Get(ref).(type) { + case *mo.Network: + target.Network = append(target.Network, types.VirtualMachineNetworkInfo{ + VirtualMachineTargetInfo: types.VirtualMachineTargetInfo{ + Name: n.Name, + }, + Network: n.Summary.GetNetworkSummary(), + }) + case *DistributedVirtualPortgroup: + dvs := ctx.Map.Get(*n.Config.DistributedVirtualSwitch).(*DistributedVirtualSwitch) + target.DistributedVirtualPortgroup = append(target.DistributedVirtualPortgroup, types.DistributedVirtualPortgroupInfo{ + SwitchName: dvs.Name, + SwitchUuid: dvs.Uuid, + PortgroupName: n.Name, + PortgroupKey: n.Key, + PortgroupType: n.Config.Type, + UplinkPortgroup: false, + Portgroup: n.Self, + NetworkReservationSupported: types.NewBool(false), + }) + case *DistributedVirtualSwitch: + target.DistributedVirtualSwitch = append(target.DistributedVirtualSwitch, types.DistributedVirtualSwitchInfo{ + SwitchName: n.Name, + SwitchUuid: n.Uuid, + DistributedVirtualSwitch: n.Self, + NetworkReservationSupported: types.NewBool(false), + }) + } + } + } + + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/authorization_manager.go b/vendor/github.com/vmware/govmomi/simulator/esx/authorization_manager.go new file mode 100644 index 00000000..d76459be --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/authorization_manager.go @@ -0,0 +1,85 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// RoleList is the default template for the AuthorizationManager roleList property. +// Capture method: +// govc object.collect -s -dump AuthorizationManager:ha-authmgr roleList +var RoleList = []types.AuthorizationRole{ + { + RoleId: -6, + System: true, + Name: "NoCryptoAdmin", + Info: &types.Description{ + Label: "No cryptography administrator", + Summary: "Full access without Cryptographic operations privileges", + }, + Privilege: []string{"Alarm.Acknowledge", "Alarm.Create", "Alarm.Delete", "Alarm.DisableActions", "Alarm.Edit", "Alarm.SetStatus", "Authorization.ModifyPermissions", "Authorization.ModifyPrivileges", "Authorization.ModifyRoles", "Authorization.ReassignRolePermissions", "AutoDeploy.Host.AssociateMachine", "AutoDeploy.Profile.Create", "AutoDeploy.Profile.Edit", "AutoDeploy.Rule.Create", "AutoDeploy.Rule.Delete", "AutoDeploy.Rule.Edit", "AutoDeploy.RuleSet.Activate", "AutoDeploy.RuleSet.Edit", "Certificate.Manage", "ContentLibrary.AddLibraryItem", "ContentLibrary.CreateLocalLibrary", "ContentLibrary.CreateSubscribedLibrary", "ContentLibrary.DeleteLibraryItem", "ContentLibrary.DeleteLocalLibrary", "ContentLibrary.DeleteSubscribedLibrary", "ContentLibrary.DownloadSession", "ContentLibrary.EvictLibraryItem", "ContentLibrary.EvictSubscribedLibrary", "ContentLibrary.GetConfiguration", "ContentLibrary.ImportStorage", "ContentLibrary.ProbeSubscription", "ContentLibrary.ReadStorage", "ContentLibrary.SyncLibrary", "ContentLibrary.SyncLibraryItem", "ContentLibrary.TypeIntrospection", "ContentLibrary.UpdateConfiguration", "ContentLibrary.UpdateLibrary", "ContentLibrary.UpdateLibraryItem", "ContentLibrary.UpdateLocalLibrary", "ContentLibrary.UpdateSession", "ContentLibrary.UpdateSubscribedLibrary", "DVPortgroup.Create", "DVPortgroup.Delete", "DVPortgroup.Modify", "DVPortgroup.PolicyOp", "DVPortgroup.ScopeOp", "DVSwitch.Create", "DVSwitch.Delete", "DVSwitch.HostOp", "DVSwitch.Modify", "DVSwitch.Move", "DVSwitch.PolicyOp", "DVSwitch.PortConfig", "DVSwitch.PortSetting", "DVSwitch.ResourceManagement", "DVSwitch.Vspan", "Datacenter.Create", "Datacenter.Delete", "Datacenter.IpPoolConfig", "Datacenter.IpPoolQueryAllocations", "Datacenter.IpPoolReleaseIp", "Datacenter.Move", "Datacenter.Reconfigure", "Datacenter.Rename", "Datastore.AllocateSpace", "Datastore.Browse", "Datastore.Config", "Datastore.Delete", "Datastore.DeleteFile", "Datastore.FileManagement", "Datastore.Move", "Datastore.Rename", "Datastore.UpdateVirtualMachineFiles", "Datastore.UpdateVirtualMachineMetadata", "EAM.Config", "EAM.Modify", "EAM.View", "Extension.Register", "Extension.Unregister", "Extension.Update", "ExternalStatsProvider.Register", "ExternalStatsProvider.Unregister", "ExternalStatsProvider.Update", "Folder.Create", "Folder.Delete", "Folder.Move", "Folder.Rename", "Global.CancelTask", "Global.CapacityPlanning", "Global.DisableMethods", "Global.EnableMethods", "Global.GlobalTag", "Global.Health", "Global.Licenses", "Global.LogEvent", "Global.ManageCustomFields", "Global.Proxy", "Global.ScriptAction", "Global.ServiceManagers", "Global.SetCustomField", "Global.Settings", "Global.SystemTag", "Global.VCServer", "HealthUpdateProvider.Register", "HealthUpdateProvider.Unregister", "HealthUpdateProvider.Update", "Host.Cim.CimInteraction", "Host.Config.AdvancedConfig", "Host.Config.AuthenticationStore", "Host.Config.AutoStart", "Host.Config.Connection", "Host.Config.DateTime", "Host.Config.Firmware", "Host.Config.HyperThreading", "Host.Config.Image", "Host.Config.Maintenance", "Host.Config.Memory", "Host.Config.NetService", "Host.Config.Network", "Host.Config.Patch", "Host.Config.PciPassthru", "Host.Config.Power", "Host.Config.Quarantine", "Host.Config.Resources", "Host.Config.Settings", "Host.Config.Snmp", "Host.Config.Storage", "Host.Config.SystemManagement", "Host.Hbr.HbrManagement", "Host.Inventory.CreateCluster", "Host.Inventory.DeleteCluster", "Host.Inventory.EditCluster", "Host.Inventory.MoveCluster", "Host.Inventory.MoveHost", "Host.Inventory.RemoveHostFromCluster", "Host.Inventory.RenameCluster", "Host.Local.CreateVM", "Host.Local.DeleteVM", "Host.Local.InstallAgent", "Host.Local.ReconfigVM", "InventoryService.Tagging.AttachTag", "InventoryService.Tagging.CreateCategory", "InventoryService.Tagging.CreateTag", "InventoryService.Tagging.DeleteCategory", "InventoryService.Tagging.DeleteTag", "InventoryService.Tagging.EditCategory", "InventoryService.Tagging.EditTag", "InventoryService.Tagging.ModifyUsedByForCategory", "InventoryService.Tagging.ModifyUsedByForTag", "Network.Assign", "Network.Config", "Network.Delete", "Network.Move", "Performance.ModifyIntervals", "Profile.Clear", "Profile.Create", "Profile.Delete", "Profile.Edit", "Profile.Export", "Profile.View", "Resource.ApplyRecommendation", "Resource.AssignVAppToPool", "Resource.AssignVMToPool", "Resource.ColdMigrate", "Resource.CreatePool", "Resource.DeletePool", "Resource.EditPool", "Resource.HotMigrate", "Resource.MovePool", "Resource.QueryVMotion", "Resource.RenamePool", "ScheduledTask.Create", "ScheduledTask.Delete", "ScheduledTask.Edit", "ScheduledTask.Run", "Sessions.GlobalMessage", "Sessions.ImpersonateUser", "Sessions.TerminateSession", "Sessions.ValidateSession", "StoragePod.Config", "StorageProfile.Update", "StorageProfile.View", "StorageViews.ConfigureService", "StorageViews.View", "System.Anonymous", "System.Read", "System.View", "Task.Create", "Task.Update", "TransferService.Manage", "TransferService.Monitor", "VApp.ApplicationConfig", "VApp.AssignResourcePool", "VApp.AssignVApp", "VApp.AssignVM", "VApp.Clone", "VApp.Create", "VApp.Delete", "VApp.Export", "VApp.ExtractOvfEnvironment", "VApp.Import", "VApp.InstanceConfig", "VApp.ManagedByConfig", "VApp.Move", "VApp.PowerOff", "VApp.PowerOn", "VApp.Rename", "VApp.ResourceConfig", "VApp.Suspend", "VApp.Unregister", "VRMPolicy.Query", "VRMPolicy.Update", "VirtualMachine.Config.AddExistingDisk", "VirtualMachine.Config.AddNewDisk", "VirtualMachine.Config.AddRemoveDevice", "VirtualMachine.Config.AdvancedConfig", "VirtualMachine.Config.Annotation", "VirtualMachine.Config.CPUCount", "VirtualMachine.Config.ChangeTracking", "VirtualMachine.Config.DiskExtend", "VirtualMachine.Config.DiskLease", "VirtualMachine.Config.EditDevice", "VirtualMachine.Config.HostUSBDevice", "VirtualMachine.Config.ManagedBy", "VirtualMachine.Config.Memory", "VirtualMachine.Config.MksControl", "VirtualMachine.Config.QueryFTCompatibility", "VirtualMachine.Config.QueryUnownedFiles", "VirtualMachine.Config.RawDevice", "VirtualMachine.Config.ReloadFromPath", "VirtualMachine.Config.RemoveDisk", "VirtualMachine.Config.Rename", "VirtualMachine.Config.ResetGuestInfo", "VirtualMachine.Config.Resource", "VirtualMachine.Config.Settings", "VirtualMachine.Config.SwapPlacement", "VirtualMachine.Config.ToggleForkParent", "VirtualMachine.Config.Unlock", "VirtualMachine.Config.UpgradeVirtualHardware", "VirtualMachine.GuestOperations.Execute", "VirtualMachine.GuestOperations.Modify", "VirtualMachine.GuestOperations.ModifyAliases", "VirtualMachine.GuestOperations.Query", "VirtualMachine.GuestOperations.QueryAliases", "VirtualMachine.Hbr.ConfigureReplication", "VirtualMachine.Hbr.MonitorReplication", "VirtualMachine.Hbr.ReplicaManagement", "VirtualMachine.Interact.AnswerQuestion", "VirtualMachine.Interact.Backup", "VirtualMachine.Interact.ConsoleInteract", "VirtualMachine.Interact.CreateScreenshot", "VirtualMachine.Interact.CreateSecondary", "VirtualMachine.Interact.DefragmentAllDisks", "VirtualMachine.Interact.DeviceConnection", "VirtualMachine.Interact.DisableSecondary", "VirtualMachine.Interact.DnD", "VirtualMachine.Interact.EnableSecondary", "VirtualMachine.Interact.MakePrimary", "VirtualMachine.Interact.Pause", "VirtualMachine.Interact.PowerOff", "VirtualMachine.Interact.PowerOn", "VirtualMachine.Interact.PutUsbScanCodes", "VirtualMachine.Interact.Record", "VirtualMachine.Interact.Replay", "VirtualMachine.Interact.Reset", "VirtualMachine.Interact.SESparseMaintenance", "VirtualMachine.Interact.SetCDMedia", "VirtualMachine.Interact.SetFloppyMedia", "VirtualMachine.Interact.Suspend", "VirtualMachine.Interact.TerminateFaultTolerantVM", "VirtualMachine.Interact.ToolsInstall", "VirtualMachine.Interact.TurnOffFaultTolerance", "VirtualMachine.Inventory.Create", "VirtualMachine.Inventory.CreateFromExisting", "VirtualMachine.Inventory.Delete", "VirtualMachine.Inventory.Move", "VirtualMachine.Inventory.Register", "VirtualMachine.Inventory.Unregister", "VirtualMachine.Namespace.Event", "VirtualMachine.Namespace.EventNotify", "VirtualMachine.Namespace.Management", "VirtualMachine.Namespace.ModifyContent", "VirtualMachine.Namespace.Query", "VirtualMachine.Namespace.ReadContent", "VirtualMachine.Provisioning.Clone", "VirtualMachine.Provisioning.CloneTemplate", "VirtualMachine.Provisioning.CreateTemplateFromVM", "VirtualMachine.Provisioning.Customize", "VirtualMachine.Provisioning.DeployTemplate", "VirtualMachine.Provisioning.DiskRandomAccess", "VirtualMachine.Provisioning.DiskRandomRead", "VirtualMachine.Provisioning.FileRandomAccess", "VirtualMachine.Provisioning.GetVmFiles", "VirtualMachine.Provisioning.MarkAsTemplate", "VirtualMachine.Provisioning.MarkAsVM", "VirtualMachine.Provisioning.ModifyCustSpecs", "VirtualMachine.Provisioning.PromoteDisks", "VirtualMachine.Provisioning.PutVmFiles", "VirtualMachine.Provisioning.ReadCustSpecs", "VirtualMachine.State.CreateSnapshot", "VirtualMachine.State.RemoveSnapshot", "VirtualMachine.State.RenameSnapshot", "VirtualMachine.State.RevertToSnapshot", "vService.CreateDependency", "vService.DestroyDependency", "vService.ReconfigureDependency", "vService.UpdateDependency"}, + }, + { + RoleId: -5, + System: true, + Name: "NoAccess", + Info: &types.Description{ + Label: "No access", + Summary: "Used for restricting granted access", + }, + Privilege: nil, + }, + { + RoleId: -4, + System: true, + Name: "Anonymous", + Info: &types.Description{ + Label: "Anonymous", + Summary: "Not logged-in user (cannot be granted)", + }, + Privilege: []string{"System.Anonymous"}, + }, + { + RoleId: -3, + System: true, + Name: "View", + Info: &types.Description{ + Label: "View", + Summary: "Visibility access (cannot be granted)", + }, + Privilege: []string{"System.Anonymous", "System.View"}, + }, + { + RoleId: -2, + System: true, + Name: "ReadOnly", + Info: &types.Description{ + Label: "Read-only", + Summary: "See details of objects, but not make changes", + }, + Privilege: []string{"System.Anonymous", "System.Read", "System.View"}, + }, + { + RoleId: -1, + System: true, + Name: "Admin", + Info: &types.Description{ + Label: "Administrator", + Summary: "Full access rights", + }, + Privilege: []string{"Alarm.Acknowledge", "Alarm.Create", "Alarm.Delete", "Alarm.DisableActions", "Alarm.Edit", "Alarm.SetStatus", "Authorization.ModifyPermissions", "Authorization.ModifyRoles", "Authorization.ReassignRolePermissions", "Certificate.Manage", "Cryptographer.Access", "Cryptographer.AddDisk", "Cryptographer.Clone", "Cryptographer.Decrypt", "Cryptographer.Encrypt", "Cryptographer.EncryptNew", "Cryptographer.ManageEncryptionPolicy", "Cryptographer.ManageKeyServers", "Cryptographer.ManageKeys", "Cryptographer.Migrate", "Cryptographer.Recrypt", "Cryptographer.RegisterHost", "Cryptographer.RegisterVM", "DVPortgroup.Create", "DVPortgroup.Delete", "DVPortgroup.Modify", "DVPortgroup.PolicyOp", "DVPortgroup.ScopeOp", "DVSwitch.Create", "DVSwitch.Delete", "DVSwitch.HostOp", "DVSwitch.Modify", "DVSwitch.Move", "DVSwitch.PolicyOp", "DVSwitch.PortConfig", "DVSwitch.PortSetting", "DVSwitch.ResourceManagement", "DVSwitch.Vspan", "Datacenter.Create", "Datacenter.Delete", "Datacenter.IpPoolConfig", "Datacenter.IpPoolQueryAllocations", "Datacenter.IpPoolReleaseIp", "Datacenter.Move", "Datacenter.Reconfigure", "Datacenter.Rename", "Datastore.AllocateSpace", "Datastore.Browse", "Datastore.Config", "Datastore.Delete", "Datastore.DeleteFile", "Datastore.FileManagement", "Datastore.Move", "Datastore.Rename", "Datastore.UpdateVirtualMachineFiles", "Datastore.UpdateVirtualMachineMetadata", "EAM.Config", "EAM.Modify", "EAM.View", "Extension.Register", "Extension.Unregister", "Extension.Update", "ExternalStatsProvider.Register", "ExternalStatsProvider.Unregister", "ExternalStatsProvider.Update", "Folder.Create", "Folder.Delete", "Folder.Move", "Folder.Rename", "Global.CancelTask", "Global.CapacityPlanning", "Global.Diagnostics", "Global.DisableMethods", "Global.EnableMethods", "Global.GlobalTag", "Global.Health", "Global.Licenses", "Global.LogEvent", "Global.ManageCustomFields", "Global.Proxy", "Global.ScriptAction", "Global.ServiceManagers", "Global.SetCustomField", "Global.Settings", "Global.SystemTag", "Global.VCServer", "HealthUpdateProvider.Register", "HealthUpdateProvider.Unregister", "HealthUpdateProvider.Update", "Host.Cim.CimInteraction", "Host.Config.AdvancedConfig", "Host.Config.AuthenticationStore", "Host.Config.AutoStart", "Host.Config.Connection", "Host.Config.DateTime", "Host.Config.Firmware", "Host.Config.HyperThreading", "Host.Config.Image", "Host.Config.Maintenance", "Host.Config.Memory", "Host.Config.NetService", "Host.Config.Network", "Host.Config.Patch", "Host.Config.PciPassthru", "Host.Config.Power", "Host.Config.Quarantine", "Host.Config.Resources", "Host.Config.Settings", "Host.Config.Snmp", "Host.Config.Storage", "Host.Config.SystemManagement", "Host.Hbr.HbrManagement", "Host.Inventory.AddHostToCluster", "Host.Inventory.AddStandaloneHost", "Host.Inventory.CreateCluster", "Host.Inventory.DeleteCluster", "Host.Inventory.EditCluster", "Host.Inventory.MoveCluster", "Host.Inventory.MoveHost", "Host.Inventory.RemoveHostFromCluster", "Host.Inventory.RenameCluster", "Host.Local.CreateVM", "Host.Local.DeleteVM", "Host.Local.InstallAgent", "Host.Local.ManageUserGroups", "Host.Local.ReconfigVM", "Network.Assign", "Network.Config", "Network.Delete", "Network.Move", "Performance.ModifyIntervals", "Profile.Clear", "Profile.Create", "Profile.Delete", "Profile.Edit", "Profile.Export", "Profile.View", "Resource.ApplyRecommendation", "Resource.AssignVAppToPool", "Resource.AssignVMToPool", "Resource.ColdMigrate", "Resource.CreatePool", "Resource.DeletePool", "Resource.EditPool", "Resource.HotMigrate", "Resource.MovePool", "Resource.QueryVMotion", "Resource.RenamePool", "ScheduledTask.Create", "ScheduledTask.Delete", "ScheduledTask.Edit", "ScheduledTask.Run", "Sessions.GlobalMessage", "Sessions.ImpersonateUser", "Sessions.TerminateSession", "Sessions.ValidateSession", "StoragePod.Config", "System.Anonymous", "System.Read", "System.View", "Task.Create", "Task.Update", "VApp.ApplicationConfig", "VApp.AssignResourcePool", "VApp.AssignVApp", "VApp.AssignVM", "VApp.Clone", "VApp.Create", "VApp.Delete", "VApp.Export", "VApp.ExtractOvfEnvironment", "VApp.Import", "VApp.InstanceConfig", "VApp.ManagedByConfig", "VApp.Move", "VApp.PowerOff", "VApp.PowerOn", "VApp.Rename", "VApp.ResourceConfig", "VApp.Suspend", "VApp.Unregister", "VRMPolicy.Query", "VRMPolicy.Update", "VirtualMachine.Config.AddExistingDisk", "VirtualMachine.Config.AddNewDisk", "VirtualMachine.Config.AddRemoveDevice", "VirtualMachine.Config.AdvancedConfig", "VirtualMachine.Config.Annotation", "VirtualMachine.Config.CPUCount", "VirtualMachine.Config.ChangeTracking", "VirtualMachine.Config.DiskExtend", "VirtualMachine.Config.DiskLease", "VirtualMachine.Config.EditDevice", "VirtualMachine.Config.HostUSBDevice", "VirtualMachine.Config.ManagedBy", "VirtualMachine.Config.Memory", "VirtualMachine.Config.MksControl", "VirtualMachine.Config.QueryFTCompatibility", "VirtualMachine.Config.QueryUnownedFiles", "VirtualMachine.Config.RawDevice", "VirtualMachine.Config.ReloadFromPath", "VirtualMachine.Config.RemoveDisk", "VirtualMachine.Config.Rename", "VirtualMachine.Config.ResetGuestInfo", "VirtualMachine.Config.Resource", "VirtualMachine.Config.Settings", "VirtualMachine.Config.SwapPlacement", "VirtualMachine.Config.ToggleForkParent", "VirtualMachine.Config.Unlock", "VirtualMachine.Config.UpgradeVirtualHardware", "VirtualMachine.GuestOperations.Execute", "VirtualMachine.GuestOperations.Modify", "VirtualMachine.GuestOperations.ModifyAliases", "VirtualMachine.GuestOperations.Query", "VirtualMachine.GuestOperations.QueryAliases", "VirtualMachine.Hbr.ConfigureReplication", "VirtualMachine.Hbr.MonitorReplication", "VirtualMachine.Hbr.ReplicaManagement", "VirtualMachine.Interact.AnswerQuestion", "VirtualMachine.Interact.Backup", "VirtualMachine.Interact.ConsoleInteract", "VirtualMachine.Interact.CreateScreenshot", "VirtualMachine.Interact.CreateSecondary", "VirtualMachine.Interact.DefragmentAllDisks", "VirtualMachine.Interact.DeviceConnection", "VirtualMachine.Interact.DisableSecondary", "VirtualMachine.Interact.DnD", "VirtualMachine.Interact.EnableSecondary", "VirtualMachine.Interact.GuestControl", "VirtualMachine.Interact.MakePrimary", "VirtualMachine.Interact.Pause", "VirtualMachine.Interact.PowerOff", "VirtualMachine.Interact.PowerOn", "VirtualMachine.Interact.PutUsbScanCodes", "VirtualMachine.Interact.Record", "VirtualMachine.Interact.Replay", "VirtualMachine.Interact.Reset", "VirtualMachine.Interact.SESparseMaintenance", "VirtualMachine.Interact.SetCDMedia", "VirtualMachine.Interact.SetFloppyMedia", "VirtualMachine.Interact.Suspend", "VirtualMachine.Interact.TerminateFaultTolerantVM", "VirtualMachine.Interact.ToolsInstall", "VirtualMachine.Interact.TurnOffFaultTolerance", "VirtualMachine.Inventory.Create", "VirtualMachine.Inventory.CreateFromExisting", "VirtualMachine.Inventory.Delete", "VirtualMachine.Inventory.Move", "VirtualMachine.Inventory.Register", "VirtualMachine.Inventory.Unregister", "VirtualMachine.Namespace.Event", "VirtualMachine.Namespace.EventNotify", "VirtualMachine.Namespace.Management", "VirtualMachine.Namespace.ModifyContent", "VirtualMachine.Namespace.Query", "VirtualMachine.Namespace.ReadContent", "VirtualMachine.Provisioning.Clone", "VirtualMachine.Provisioning.CloneTemplate", "VirtualMachine.Provisioning.CreateTemplateFromVM", "VirtualMachine.Provisioning.Customize", "VirtualMachine.Provisioning.DeployTemplate", "VirtualMachine.Provisioning.DiskRandomAccess", "VirtualMachine.Provisioning.DiskRandomRead", "VirtualMachine.Provisioning.FileRandomAccess", "VirtualMachine.Provisioning.GetVmFiles", "VirtualMachine.Provisioning.MarkAsTemplate", "VirtualMachine.Provisioning.MarkAsVM", "VirtualMachine.Provisioning.ModifyCustSpecs", "VirtualMachine.Provisioning.PromoteDisks", "VirtualMachine.Provisioning.PutVmFiles", "VirtualMachine.Provisioning.ReadCustSpecs", "VirtualMachine.State.CreateSnapshot", "VirtualMachine.State.RemoveSnapshot", "VirtualMachine.State.RenameSnapshot", "VirtualMachine.State.RevertToSnapshot"}, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go b/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go new file mode 100644 index 00000000..c0f95eff --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go @@ -0,0 +1,60 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +// Datacenter is the default template for Datacenter properties. +// Capture method: +// govc datacenter.info -dump +var Datacenter = mo.Datacenter{ + ManagedEntity: mo.ManagedEntity{ + ExtensibleManagedObject: mo.ExtensibleManagedObject{ + Self: types.ManagedObjectReference{Type: "Datacenter", Value: "ha-datacenter"}, + Value: nil, + AvailableField: nil, + }, + Parent: (*types.ManagedObjectReference)(nil), + CustomValue: nil, + OverallStatus: "", + ConfigStatus: "", + ConfigIssue: nil, + EffectiveRole: nil, + Permission: nil, + Name: "ha-datacenter", + DisabledMethod: nil, + RecentTask: nil, + DeclaredAlarmState: nil, + TriggeredAlarmState: nil, + AlarmActionsEnabled: (*bool)(nil), + Tag: nil, + }, + VmFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-vm"}, + HostFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-host"}, + DatastoreFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-datastore"}, + NetworkFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-network"}, + Datastore: []types.ManagedObjectReference{ + {Type: "Datastore", Value: "57089c25-85e3ccd4-17b6-000c29d0beb3"}, + }, + Network: []types.ManagedObjectReference{ + {Type: "Network", Value: "HaNetwork-VM Network"}, + }, + Configuration: types.DatacenterConfigInfo{}, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/doc.go b/vendor/github.com/vmware/govmomi/simulator/esx/doc.go new file mode 100644 index 00000000..50b6202f --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/doc.go @@ -0,0 +1,20 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package esx contains SOAP responses from an ESX server, captured using `govc ... -dump`. +*/ +package esx diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/event_manager.go b/vendor/github.com/vmware/govmomi/simulator/esx/event_manager.go new file mode 100644 index 00000000..7024b404 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/event_manager.go @@ -0,0 +1,248 @@ +/* +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// EventInfo is the default template for the EventManager description.eventInfo property. +// Capture method: +// govc object.collect -s -dump EventManager:ha-eventmgr description.eventInfo +// The captured list has been manually pruned and FullFormat fields changed to use Go's template variable syntax. +var EventInfo = []types.EventDescriptionEventDetail{ + { + Key: "UserLoginSessionEvent", + Description: "User login", + Category: "info", + FullFormat: "User {{.UserName}}@{{.IpAddress}} logged in as {{.UserAgent}}", + }, + { + Key: "UserLogoutSessionEvent", + Description: "User logout", + Category: "info", + FullFormat: "User {{.UserName}}@{{.IpAddress}} logged out (login time: {{.LoginTime}}, number of API invocations: {{.CallCount}}, user agent: {{.UserAgent}})", + }, + { + Key: "DatacenterCreatedEvent", + Description: "Datacenter created", + Category: "info", + FullFormat: "Created datacenter {{.Datacenter.Name}} in folder {{.Parent.Name}}", + }, + { + Key: "DatastoreFileMovedEvent", + Description: "File or directory moved to datastore", + Category: "info", + FullFormat: "Move of file or directory {{.SourceFile}} from {{.SourceDatastore.Name}} to {{.Datastore.Name}} as {{.TargetFile}}", + }, + { + Key: "DatastoreFileCopiedEvent", + Description: "File or directory copied to datastore", + Category: "info", + FullFormat: "Copy of file or directory {{.SourceFile}} from {{.SourceDatastore.Name}} to {{.Datastore.Name}} as {{.TargetFile}}", + }, + { + Key: "DatastoreFileDeletedEvent", + Description: "File or directory deleted", + Category: "info", + FullFormat: "Deletion of file or directory {{.TargetFile}} from {{.Datastore.Name}} was initiated", + }, + { + Key: "EnteringMaintenanceModeEvent", + Description: "Entering maintenance mode", + Category: "info", + FullFormat: "Host {{.Host.Name}} in {{.Datacenter.Name}} has started to enter maintenance mode", + }, + { + Key: "EnteredMaintenanceModeEvent", + Description: "Entered maintenance mode", + Category: "info", + FullFormat: "Host {{.Host.Name}} in {{.Datacenter.Name}} has entered maintenance mode", + }, + { + Key: "ExitMaintenanceModeEvent", + Description: "Exit maintenance mode", + Category: "info", + FullFormat: "Host {{.Host.Name}} in {{.Datacenter.Name}} has exited maintenance mode", + }, + { + Key: "HostRemovedEvent", + Description: "Host removed", + FullFormat: "Removed host {{.Host.Name}} in {{.Datacenter.Name}}", + Category: "info", + }, + { + Key: "VmSuspendedEvent", + Description: "VM suspended", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is suspended", + }, + { + Key: "VmMigratedEvent", + Description: "VM migrated", + Category: "info", + FullFormat: "Migration of virtual machine {{.Vm.Name}} from {{.SourceHost.Name}, {{.SourceDatastore.Name}} to {{.Host.Name}, {{.Ds.Name}} completed", + }, + { + Key: "VmBeingMigratedEvent", + Description: "VM migrating", + Category: "info", + FullFormat: "Relocating {{.Vm.Name}} from {{.Host.Name}, {{.Ds.Name}} in {{.Datacenter.Name}} to {{.DestHost.Name}, {{.DestDatastore.Name}} in {{.DestDatacenter.Name}}", + }, + { + Key: "VmMacAssignedEvent", + Description: "VM MAC assigned", + Category: "info", + FullFormat: "New MAC address ({{.Mac}}) assigned to adapter {{.Adapter}} for {{.Vm.Name}}", + }, + { + Key: "VmRegisteredEvent", + Description: "VM registered", + Category: "info", + FullFormat: "Registered {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmReconfiguredEvent", + Description: "VM reconfigured", + Category: "info", + FullFormat: "Reconfigured {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmGuestRebootEvent", + Description: "Guest reboot", + Category: "info", + FullFormat: "Guest OS reboot for {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmBeingClonedEvent", + Description: "VM being cloned", + Category: "info", + FullFormat: "Cloning {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} to {{.DestName}} on host {{.DestHost.Name}}", + }, + { + Key: "VmClonedEvent", + Description: "VM cloned", + Category: "info", + FullFormat: "Clone of {{.SourceVm.Name}} completed", + }, + { + Key: "VmBeingDeployedEvent", + Description: "Deploying VM", + Category: "info", + FullFormat: "Deploying {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} from template {{.SrcTemplate.Name}}", + }, + { + Key: "VmDeployedEvent", + Description: "VM deployed", + Category: "info", + FullFormat: "Template {{.SrcTemplate.Name}} deployed on host {{.Host.Name}}", + }, + { + Key: "VmInstanceUuidAssignedEvent", + Description: "Assign a new instance UUID", + Category: "info", + FullFormat: "Assign a new instance UUID ({{.InstanceUuid}}) to {{.Vm.Name}}", + }, + { + Key: "VmPoweredOnEvent", + Description: "VM powered on", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is powered on", + }, + { + Key: "VmStartingEvent", + Description: "VM starting", + Category: "info", + FullFormat: "{{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} is starting", + }, + { + Key: "VmStoppingEvent", + Description: "VM stopping", + Category: "info", + FullFormat: "{{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} is stopping", + }, + { + Key: "VmSuspendingEvent", + Description: "VM being suspended", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is being suspended", + }, + { + Key: "VmResumingEvent", + Description: "VM resuming", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is resumed", + }, + { + Key: "VmBeingCreatedEvent", + Description: "Creating VM", + Category: "info", + FullFormat: "Creating {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmCreatedEvent", + Description: "VM created", + Category: "info", + FullFormat: "Created virtual machine {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmRemovedEvent", + Description: "VM removed", + Category: "info", + FullFormat: "Removed {{.Vm.Name}} on {{.Host.Name}} from {{.Datacenter.Name}}", + }, + { + Key: "VmResettingEvent", + Description: "VM resetting", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is reset", + }, + { + Key: "VmGuestShutdownEvent", + Description: "Guest OS shut down", + Category: "info", + FullFormat: "Guest OS shut down for {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmUuidAssignedEvent", + Description: "VM UUID assigned", + Category: "info", + FullFormat: "Assigned new BIOS UUID ({{.Uuid}}) to {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "VmPoweredOffEvent", + Description: "VM powered off", + Category: "info", + FullFormat: "{{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is powered off", + }, + { + Key: "VmRelocatedEvent", + Description: "VM relocated", + Category: "info", + FullFormat: "Completed the relocation of the virtual machine", + }, + { + Key: "DrsVmMigratedEvent", + Description: "DRS VM migrated", + Category: "info", + FullFormat: "DRS migrated {{.Vm.Name}} from {{.SourceHost.Name}} to {{.Host.Name}} in cluster {{.ComputeResource.Name}} in {{.Datacenter.Name}}", + }, + { + Key: "DrsVmPoweredOnEvent", + Description: "DRS VM powered on", + Category: "info", + FullFormat: "DRS powered On {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}}", + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go b/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go new file mode 100644 index 00000000..fd7877b2 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go @@ -0,0 +1,1115 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// HostConfigInfo is the default template for the HostSystem config property. +// Capture method: +// govc object.collect -s -dump HostSystem:ha-host config +var HostConfigInfo = types.HostConfigInfo{ + Host: types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + Product: types.AboutInfo{ + Name: "VMware ESXi", + FullName: "VMware ESXi 6.5.0 build-5969303", + Vendor: "VMware, Inc.", + Version: "6.5.0", + Build: "5969303", + LocaleVersion: "INTL", + LocaleBuild: "000", + OsType: "vmnix-x86", + ProductLineId: "embeddedEsx", + ApiType: "HostAgent", + ApiVersion: "6.5", + InstanceUuid: "", + LicenseProductName: "VMware ESX Server", + LicenseProductVersion: "6.0", + }, + DeploymentInfo: &types.HostDeploymentInfo{ + BootedFromStatelessCache: types.NewBool(false), + }, + HyperThread: &types.HostHyperThreadScheduleInfo{ + Available: false, + Active: false, + Config: true, + }, + ConsoleReservation: (*types.ServiceConsoleReservationInfo)(nil), + VirtualMachineReservation: (*types.VirtualMachineMemoryReservationInfo)(nil), + StorageDevice: &HostStorageDeviceInfo, + SystemFile: nil, + Network: &types.HostNetworkInfo{ + Vswitch: []types.HostVirtualSwitch{ + { + Name: "vSwitch0", + Key: "key-vim.host.VirtualSwitch-vSwitch0", + NumPorts: 1536, + NumPortsAvailable: 1530, + Mtu: 1500, + Portgroup: []string{"key-vim.host.PortGroup-VM Network", "key-vim.host.PortGroup-Management Network"}, + Pnic: []string{"key-vim.host.PhysicalNic-vmnic0"}, + Spec: types.HostVirtualSwitchSpec{ + NumPorts: 128, + Bridge: &types.HostVirtualSwitchBondBridge{ + HostVirtualSwitchBridge: types.HostVirtualSwitchBridge{}, + NicDevice: []string{"vmnic0"}, + Beacon: &types.HostVirtualSwitchBeaconConfig{ + Interval: 1, + }, + LinkDiscoveryProtocolConfig: &types.LinkDiscoveryProtocolConfig{ + Protocol: "cdp", + Operation: "listen", + }, + }, + Policy: &types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Mtu: 0, + }, + }, + }, + ProxySwitch: nil, + Portgroup: []types.HostPortGroup{ + { + Key: "key-vim.host.PortGroup-VM Network", + Port: nil, + Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", + ComputedPolicy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Spec: types.HostPortGroupSpec{ + Name: "VM Network", + VlanId: 0, + VswitchName: "vSwitch0", + Policy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{}, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "", + ReversePolicy: (*bool)(nil), + NotifySwitches: (*bool)(nil), + RollingOrder: (*bool)(nil), + FailureCriteria: &types.HostNicFailureCriteria{}, + NicOrder: (*types.HostNicOrderPolicy)(nil), + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{}, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, + }, + }, + }, + { + Key: "key-vim.host.PortGroup-Management Network", + Port: []types.HostPortGroupPort{ + { + Key: "key-vim.host.PortGroup.Port-33554436", + Mac: []string{"00:0c:29:81:d8:a0"}, + Type: "host", + }, + }, + Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", + ComputedPolicy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Spec: types.HostPortGroupSpec{ + Name: "Management Network", + VlanId: 0, + VswitchName: "vSwitch0", + Policy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{}, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: (*bool)(nil), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "", + Speed: 0, + CheckDuplex: (*bool)(nil), + FullDuplex: (*bool)(nil), + CheckErrorPercent: (*bool)(nil), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{}, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, + }, + }, + }, + }, + Pnic: []types.PhysicalNic{ + { + Key: "key-vim.host.PhysicalNic-vmnic0", + Device: "vmnic0", + Pci: "0000:0b:00.0", + Driver: "nvmxnet3", + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + ValidLinkSpecification: []types.PhysicalNicLinkInfo{ + { + SpeedMb: 10000, + Duplex: true, + }, + }, + Spec: types.PhysicalNicSpec{ + Ip: &types.HostIpConfig{}, + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + }, + WakeOnLanSupported: false, + Mac: "00:0c:29:81:d8:a0", + FcoeConfiguration: &types.FcoeConfig{ + PriorityClass: 3, + SourceMac: "00:0c:29:81:d8:a0", + VlanRange: []types.FcoeConfigVlanRange{ + {}, + }, + Capabilities: types.FcoeConfigFcoeCapabilities{ + PriorityClass: false, + SourceMacAddress: false, + VlanRange: true, + }, + FcoeActive: false, + }, + VmDirectPathGen2Supported: types.NewBool(false), + VmDirectPathGen2SupportedMode: "", + ResourcePoolSchedulerAllowed: types.NewBool(true), + ResourcePoolSchedulerDisallowedReason: nil, + AutoNegotiateSupported: types.NewBool(false), + }, + { + Key: "key-vim.host.PhysicalNic-vmnic1", + Device: "vmnic1", + Pci: "0000:13:00.0", + Driver: "nvmxnet3", + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + ValidLinkSpecification: []types.PhysicalNicLinkInfo{ + { + SpeedMb: 10000, + Duplex: true, + }, + }, + Spec: types.PhysicalNicSpec{ + Ip: &types.HostIpConfig{}, + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + }, + WakeOnLanSupported: false, + Mac: "00:0c:29:81:d8:aa", + FcoeConfiguration: &types.FcoeConfig{ + PriorityClass: 3, + SourceMac: "00:0c:29:81:d8:aa", + VlanRange: []types.FcoeConfigVlanRange{ + {}, + }, + Capabilities: types.FcoeConfigFcoeCapabilities{ + PriorityClass: false, + SourceMacAddress: false, + VlanRange: true, + }, + FcoeActive: false, + }, + VmDirectPathGen2Supported: types.NewBool(false), + VmDirectPathGen2SupportedMode: "", + ResourcePoolSchedulerAllowed: types.NewBool(true), + ResourcePoolSchedulerDisallowedReason: nil, + AutoNegotiateSupported: types.NewBool(false), + }, + }, + Vnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "key-vim.host.PortGroup.Port-33554436", + }, + }, + ConsoleVnic: nil, + DnsConfig: &types.HostDnsConfig{ + Dhcp: true, + VirtualNicDevice: "vmk0", + HostName: "localhost", + DomainName: "localdomain", + Address: []string{"8.8.8.8"}, + SearchDomain: []string{"localdomain"}, + }, + IpRouteConfig: &types.HostIpRouteConfig{ + DefaultGateway: "127.0.0.1", + GatewayDevice: "", + IpV6DefaultGateway: "", + IpV6GatewayDevice: "", + }, + ConsoleIpRouteConfig: nil, + RouteTableInfo: &types.HostIpRouteTableInfo{ + IpRoute: []types.HostIpRouteEntry{ + { + Network: "0.0.0.0", + PrefixLength: 0, + Gateway: "127.0.0.1", + DeviceName: "vmk0", + }, + { + Network: "127.0.0.0", + PrefixLength: 8, + Gateway: "0.0.0.0", + DeviceName: "vmk0", + }, + }, + Ipv6Route: nil, + }, + Dhcp: nil, + Nat: nil, + IpV6Enabled: types.NewBool(false), + AtBootIpV6Enabled: types.NewBool(false), + NetStackInstance: []types.HostNetStackInstance{ + { + Key: "vSphereProvisioning", + Name: "", + DnsConfig: &types.HostDnsConfig{}, + IpRouteConfig: &types.HostIpRouteConfig{}, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), + }, + { + Key: "vmotion", + Name: "", + DnsConfig: &types.HostDnsConfig{}, + IpRouteConfig: &types.HostIpRouteConfig{}, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), + }, + { + Key: "defaultTcpipStack", + Name: "defaultTcpipStack", + DnsConfig: &types.HostDnsConfig{ + Dhcp: true, + VirtualNicDevice: "vmk0", + HostName: "localhost", + DomainName: "localdomain", + Address: []string{"8.8.8.8"}, + SearchDomain: []string{"localdomain"}, + }, + IpRouteConfig: &types.HostIpRouteConfig{ + DefaultGateway: "127.0.0.1", + GatewayDevice: "", + IpV6DefaultGateway: "", + IpV6GatewayDevice: "", + }, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: &types.HostIpRouteTableConfig{ + IpRoute: []types.HostIpRouteOp{ + { + ChangeOperation: "ignore", + Route: types.HostIpRouteEntry{ + Network: "0.0.0.0", + PrefixLength: 0, + Gateway: "127.0.0.1", + DeviceName: "vmk0", + }, + }, + { + ChangeOperation: "ignore", + Route: types.HostIpRouteEntry{ + Network: "127.0.0.0", + PrefixLength: 8, + Gateway: "0.0.0.0", + DeviceName: "vmk0", + }, + }, + }, + Ipv6Route: nil, + }, + }, + }, + OpaqueSwitch: nil, + OpaqueNetwork: nil, + }, + Vmotion: &types.HostVMotionInfo{ + NetConfig: &types.HostVMotionNetConfig{ + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: "", + }, + IpConfig: (*types.HostIpConfig)(nil), + }, + VirtualNicManagerInfo: &types.HostVirtualNicManagerInfo{ + NetConfig: []types.VirtualNicManagerNetConfig{ + { + NicType: "faultToleranceLogging", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "faultToleranceLogging.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "management", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk1", + Key: "management.key-vim.host.VirtualNic-vmk1", + Portgroup: "", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "192.168.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:00", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + { + Device: "vmk0", + Key: "management.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: []string{"management.key-vim.host.VirtualNic-vmk0"}, + }, + { + NicType: "vSphereProvisioning", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereProvisioning.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vSphereReplication", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereReplication.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vSphereReplicationNFC", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vmotion", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vmotion.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vsan", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vsan.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vsanWitness", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vsanWitness.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + }, + }, + Capabilities: &types.HostNetCapabilities{ + CanSetPhysicalNicLinkSpeed: true, + SupportsNicTeaming: true, + NicTeamingPolicy: []string{"loadbalance_ip", "loadbalance_srcmac", "loadbalance_srcid", "failover_explicit"}, + SupportsVlan: true, + UsesServiceConsoleNic: false, + SupportsNetworkHints: true, + MaxPortGroupsPerVswitch: 0, + VswitchConfigSupported: true, + VnicConfigSupported: true, + IpRouteConfigSupported: true, + DnsConfigSupported: true, + DhcpOnVnicSupported: true, + IpV6Supported: types.NewBool(true), + }, + DatastoreCapabilities: &types.HostDatastoreSystemCapabilities{ + NfsMountCreationRequired: true, + NfsMountCreationSupported: true, + LocalDatastoreSupported: false, + VmfsExtentExpansionSupported: types.NewBool(true), + }, + OffloadCapabilities: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + Service: &types.HostServiceInfo{ + Service: []types.HostService{ + { + Key: "DCUI", + Label: "Direct Console UI", + Required: false, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "TSM", + Label: "ESXi Shell", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "TSM-SSH", + Label: "SSH", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "lbtd", + Label: "Load-Based Teaming Daemon", + Required: false, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "lwsmd", + Label: "Active Directory Service", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "ntpd", + Label: "NTP Daemon", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"ntpClient"}, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "pcscd", + Label: "PC/SC Smart Card Daemon", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "sfcbd-watchdog", + Label: "CIM Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"CIMHttpServer", "CIMHttpsServer"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "snmpd", + Label: "SNMP Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"snmp"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "vmsyslogd", + Label: "Syslog Server", + Required: true, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "vpxa", + Label: "VMware vCenter Agent", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"vpxHeartbeats"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "xorg", + Label: "X.Org Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-xserver", + Description: "This VIB contains X Server used for virtual machine 3D hardware acceleration.", + }, + }, + }, + }, + Firewall: &HostFirewallInfo, + AutoStart: &types.HostAutoStartManagerConfig{ + Defaults: &types.AutoStartDefaults{ + Enabled: (*bool)(nil), + StartDelay: 120, + StopDelay: 120, + WaitForHeartbeat: types.NewBool(false), + StopAction: "PowerOff", + }, + PowerInfo: nil, + }, + ActiveDiagnosticPartition: &types.HostDiagnosticPartition{ + StorageType: "directAttached", + DiagnosticType: "singleHost", + Slots: -15, + Id: types.HostScsiDiskPartition{ + DiskName: "mpx.vmhba0:C0:T0:L0", + Partition: 9, + }, + }, + Option: nil, + OptionDef: nil, + Flags: &types.HostFlagInfo{}, + AdminDisabled: (*bool)(nil), + LockdownMode: "lockdownDisabled", + Ipmi: (*types.HostIpmiInfo)(nil), + SslThumbprintInfo: (*types.HostSslThumbprintInfo)(nil), + SslThumbprintData: nil, + Certificate: []uint8{0x31, 0x30}, + PciPassthruInfo: nil, + AuthenticationManagerInfo: &types.HostAuthenticationManagerInfo{ + AuthConfig: []types.BaseHostAuthenticationStoreInfo{ + &types.HostLocalAuthenticationInfo{ + HostAuthenticationStoreInfo: types.HostAuthenticationStoreInfo{ + Enabled: true, + }, + }, + &types.HostActiveDirectoryInfo{ + HostDirectoryStoreInfo: types.HostDirectoryStoreInfo{}, + JoinedDomain: "", + TrustedDomain: nil, + DomainMembershipStatus: "", + SmartCardAuthenticationEnabled: types.NewBool(false), + }, + }, + }, + FeatureVersion: nil, + PowerSystemCapability: &types.PowerSystemCapability{ + AvailablePolicy: []types.HostPowerPolicy{ + { + Key: 1, + Name: "PowerPolicy.static.name", + ShortName: "static", + Description: "PowerPolicy.static.description", + }, + { + Key: 2, + Name: "PowerPolicy.dynamic.name", + ShortName: "dynamic", + Description: "PowerPolicy.dynamic.description", + }, + { + Key: 3, + Name: "PowerPolicy.low.name", + ShortName: "low", + Description: "PowerPolicy.low.description", + }, + { + Key: 4, + Name: "PowerPolicy.custom.name", + ShortName: "custom", + Description: "PowerPolicy.custom.description", + }, + }, + }, + PowerSystemInfo: &types.PowerSystemInfo{ + CurrentPolicy: types.HostPowerPolicy{ + Key: 2, + Name: "PowerPolicy.dynamic.name", + ShortName: "dynamic", + Description: "PowerPolicy.dynamic.description", + }, + }, + CacheConfigurationInfo: []types.HostCacheConfigurationInfo{ + { + Key: types.ManagedObjectReference{Type: "Datastore", Value: "5980f676-21a5db76-9eef-000c2981d8a0"}, + SwapSize: 0, + }, + }, + WakeOnLanCapable: types.NewBool(false), + FeatureCapability: nil, + MaskedFeatureCapability: nil, + VFlashConfigInfo: nil, + VsanHostConfig: &types.VsanHostConfigInfo{ + Enabled: types.NewBool(false), + HostSystem: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + ClusterInfo: &types.VsanHostConfigInfoClusterInfo{}, + StorageInfo: &types.VsanHostConfigInfoStorageInfo{ + AutoClaimStorage: types.NewBool(false), + DiskMapping: nil, + DiskMapInfo: nil, + ChecksumEnabled: (*bool)(nil), + }, + NetworkInfo: &types.VsanHostConfigInfoNetworkInfo{}, + FaultDomainInfo: &types.VsanHostFaultDomainInfo{}, + }, + DomainList: nil, + ScriptCheckSum: nil, + HostConfigCheckSum: nil, + GraphicsInfo: nil, + SharedPassthruGpuTypes: nil, + GraphicsConfig: &types.HostGraphicsConfig{ + HostDefaultGraphicsType: "shared", + SharedPassthruAssignmentPolicy: "performance", + DeviceType: nil, + }, + IoFilterInfo: []types.HostIoFilterInfo{ + { + IoFilterInfo: types.IoFilterInfo{ + Id: "VMW_spm_1.0.0", + Name: "spm", + Vendor: "VMW", + Version: "1.0.230", + Type: "datastoreIoControl", + Summary: "VMware Storage I/O Control", + ReleaseDate: "2016-07-21", + }, + Available: true, + }, + { + IoFilterInfo: types.IoFilterInfo{ + Id: "VMW_vmwarevmcrypt_1.0.0", + Name: "vmwarevmcrypt", + Vendor: "VMW", + Version: "1.0.0", + Type: "encryption", + Summary: "VMcrypt IO Filter", + ReleaseDate: "2016-07-21", + }, + Available: true, + }, + }, + SriovDevicePool: nil, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go b/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go new file mode 100644 index 00000000..11c1285a --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go @@ -0,0 +1,1425 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// HostFirewallInfo is the default template for the HostSystem config.firewall property. +// Capture method: +// govc object.collect -s -dump HostSystem:ha-host config.firewall +var HostFirewallInfo = types.HostFirewallInfo{ + DynamicData: types.DynamicData{}, + DefaultPolicy: types.HostFirewallDefaultPolicy{ + DynamicData: types.DynamicData{}, + IncomingBlocked: types.NewBool(true), + OutgoingBlocked: types.NewBool(true), + }, + Ruleset: []types.HostFirewallRuleset{ + { + DynamicData: types.DynamicData{}, + Key: "CIMHttpServer", + Label: "CIM Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5988, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "sfcbd-watchdog", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "CIMHttpsServer", + Label: "CIM Secure Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5989, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "sfcbd-watchdog", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "CIMSLP", + Label: "CIM SLP", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DHCPv6", + Label: "DHCPv6", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 547, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 546, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 547, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 546, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DVFilter", + Label: "DVFilter", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 2222, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DVSSync", + Label: "DVSSync", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8302, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8301, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8301, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8302, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "HBR", + Label: "HBR", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 31031, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 44046, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "NFC", + Label: "NFC", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "WOL", + Label: "WOL", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 9, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "activeDirectoryAll", + Label: "Active Directory All", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 88, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 88, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 123, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 137, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 139, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 389, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 389, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 445, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 464, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 464, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 3268, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 7476, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 2020, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "cmmds", + Label: "Virtual SAN Clustering Service", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 12345, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23451, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12345, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23451, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12321, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12321, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "dhcp", + Label: "DHCP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 68, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 68, + EndPort: 0, + Direction: "outbound", + PortType: "src", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "dns", + Label: "DNS Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "esxupdate", + Label: "esxupdate", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "faultTolerance", + Label: "Fault Tolerance", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8300, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8300, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ftpClient", + Label: "FTP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 21, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 20, + EndPort: 0, + Direction: "inbound", + PortType: "src", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "gdbserver", + Label: "gdbserver", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 1000, + EndPort: 9999, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 50000, + EndPort: 50999, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "httpClient", + Label: "httpClient", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "iSCSI", + Label: "Software iSCSI Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 3260, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "iofiltervp", + Label: "iofiltervp", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 9080, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ipfam", + Label: "NSX Distributed Logical Router Service", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 6999, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 6999, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "nfs41Client", + Label: "nfs41Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "nfsClient", + Label: "NFS Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ntpClient", + Label: "NTP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 123, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "ntpd", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "pvrdma", + Label: "pvrdma", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 28250, + EndPort: 28761, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 28250, + EndPort: 28761, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "rabbitmqproxy", + Label: "rabbitmqproxy", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5671, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "rdt", + Label: "Virtual SAN Transport", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 2233, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 2233, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "remoteSerialPort", + Label: "VM serial port connected over network", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 1024, + EndPort: 65535, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "snmp", + Label: "SNMP Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 161, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "snmpd", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "sshClient", + Label: "SSH Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 22, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "sshServer", + Label: "SSH Server", + Required: true, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 22, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "syslog", + Label: "syslog", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 1514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "updateManager", + Label: "vCenter Update Manager", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 9000, + EndPort: 9100, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vMotion", + Label: "vMotion", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8000, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8000, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vSPC", + Label: "VM serial port connected to vSPC", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vSphereClient", + Label: "vSphere Web Client", + Required: true, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vpxHeartbeats", + Label: "VMware vCenter Agent", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "vpxa", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanEncryption", + Label: "vsanEncryption", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanhealth-multicasttest", + Label: "vsanhealth-multicasttest", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5001, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 5001, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanvp", + Label: "vsanvp", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8080, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8080, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vvold", + Label: "vvold", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "webAccess", + Label: "vSphere Web Access", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go b/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go new file mode 100644 index 00000000..aa633ad3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go @@ -0,0 +1,864 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "time" + + "github.com/vmware/govmomi/vim25/types" +) + +// HostHardwareInfo is the default template for the HostSystem hardware property. +// Capture method: +// govc object.collect -s -dump HostSystem:ha-host hardware +var HostHardwareInfo = &types.HostHardwareInfo{ + SystemInfo: types.HostSystemInfo{ + Vendor: "VMware, Inc.", + Model: "VMware Virtual Platform", + Uuid: "e88d4d56-9f1e-3ea1-71fa-13a8e1a7fd70", + OtherIdentifyingInfo: []types.HostSystemIdentificationInfo{ + { + IdentifierValue: " No Asset Tag", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "Asset Tag", + Summary: "Asset tag of the system", + }, + Key: "AssetTag", + }, + }, + { + IdentifierValue: "[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + IdentifierValue: "Welcome to the Virtual Machine", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + IdentifierValue: "VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "Service tag", + Summary: "Service tag of the system", + }, + Key: "ServiceTag", + }, + }, + }, + }, + CpuPowerManagementInfo: &types.HostCpuPowerManagementInfo{ + CurrentPolicy: "Balanced", + HardwareSupport: "", + }, + CpuInfo: types.HostCpuInfo{ + NumCpuPackages: 2, + NumCpuCores: 2, + NumCpuThreads: 2, + Hz: 3591345000, + }, + CpuPkg: []types.HostCpuPackage{ + { + Index: 0, + Vendor: "intel", + Hz: 3591345000, + BusHz: 115849838, + Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", + ThreadId: []int16{0}, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + }, + { + Index: 1, + Vendor: "intel", + Hz: 3591345000, + BusHz: 115849838, + Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", + ThreadId: []int16{1}, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0010:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + }, + }, + MemorySize: 4294430720, + NumaInfo: &types.HostNumaInfo{ + Type: "NUMA", + NumNodes: 1, + NumaNode: []types.HostNumaNode{ + { + TypeId: 0x0, + CpuID: []int16{1, 0}, + MemoryRangeBegin: 4294967296, + MemoryRangeLength: 1073741824, + }, + }, + }, + SmcPresent: types.NewBool(false), + PciDevice: []types.HostPciDevice{ + { + Id: "0000:00:00.0", + ClassId: 1536, + Bus: 0x0, + Slot: 0x0, + Function: 0x0, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 29072, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:01.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x1, + Function: 0x0, + VendorId: -32634, + SubVendorId: 0, + VendorName: "Intel Corporation", + DeviceId: 29073, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "440BX/ZX/DX - 82443BX/ZX/DX AGP bridge", + }, + { + Id: "0000:00:07.0", + ClassId: 1537, + Bus: 0x0, + Slot: 0x7, + Function: 0x0, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28944, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:07.1", + ClassId: 257, + Bus: 0x0, + Slot: 0x7, + Function: 0x1, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28945, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "PIIX4 for 430TX/440BX/MX IDE Controller", + }, + { + Id: "0000:00:07.3", + ClassId: 1664, + Bus: 0x0, + Slot: 0x7, + Function: 0x3, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28947, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:07.7", + ClassId: 2176, + Bus: 0x0, + Slot: 0x7, + Function: 0x7, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1856, + SubDeviceId: 1856, + ParentBridge: "", + DeviceName: "Virtual Machine Communication Interface", + }, + { + Id: "0000:00:0f.0", + ClassId: 768, + Bus: 0x0, + Slot: 0xf, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1029, + SubDeviceId: 1029, + ParentBridge: "", + DeviceName: "SVGA II Adapter", + }, + { + Id: "0000:00:11.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x11, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1936, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI bridge", + }, + { + Id: "0000:00:15.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:03:00.0", + ClassId: 263, + Bus: 0x3, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1984, + SubDeviceId: 1984, + ParentBridge: "0000:00:15.0", + DeviceName: "PVSCSI SCSI Controller", + }, + { + Id: "0000:0b:00.0", + ClassId: 512, + Bus: 0xb, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware Inc.", + DeviceId: 1968, + SubDeviceId: 1968, + ParentBridge: "0000:00:16.0", + DeviceName: "vmxnet3 Virtual Ethernet Controller", + }, + { + Id: "0000:13:00.0", + ClassId: 512, + Bus: 0x13, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware Inc.", + DeviceId: 1968, + SubDeviceId: 1968, + ParentBridge: "0000:00:17.0", + DeviceName: "vmxnet3 Virtual Ethernet Controller", + }, + }, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + BiosInfo: &types.HostBIOSInfo{ + BiosVersion: "6.00", + ReleaseDate: nil, + Vendor: "", + MajorRelease: 0, + MinorRelease: 0, + FirmwareMajorRelease: 0, + FirmwareMinorRelease: 0, + }, + ReliableMemoryInfo: &types.HostReliableMemoryInfo{}, +} + +func init() { + date, _ := time.Parse("2006-01-02", "2015-07-02") + + HostHardwareInfo.BiosInfo.ReleaseDate = &date +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/host_storage_device_info.go b/vendor/github.com/vmware/govmomi/simulator/esx/host_storage_device_info.go new file mode 100644 index 00000000..9d1ae32d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/host_storage_device_info.go @@ -0,0 +1,346 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// HostStorageDeviceInfo is the default template for the HostSystem config.storageDevice property. +// Capture method: +// govc object.collect -s -dump HostSystem:ha-host config.storageDevice +var HostStorageDeviceInfo = types.HostStorageDeviceInfo{ + HostBusAdapter: []types.BaseHostHostBusAdapter{ + &types.HostParallelScsiHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.ParallelScsiHba-vmhba0", + Device: "vmhba0", + Bus: 3, + Status: "unknown", + Model: "PVSCSI SCSI Controller", + Driver: "pvscsi", + Pci: "0000:03:00.0", + }, + }, + &types.HostBlockHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.BlockHba-vmhba1", + Device: "vmhba1", + Bus: 0, + Status: "unknown", + Model: "PIIX4 for 430TX/440BX/MX IDE Controller", + Driver: "vmkata", + Pci: "0000:00:07.1", + }, + }, + &types.HostBlockHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.BlockHba-vmhba64", + Device: "vmhba64", + Bus: 0, + Status: "unknown", + Model: "PIIX4 for 430TX/440BX/MX IDE Controller", + Driver: "vmkata", + Pci: "0000:00:07.1", + }, + }, + }, + ScsiLun: []types.BaseScsiLun{ + &types.ScsiLun{ + HostDevice: types.HostDevice{ + DeviceName: "/vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0", + DeviceType: "cdrom", + }, + Key: "key-vim.host.ScsiLun-0005000000766d686261313a303a30", + Uuid: "0005000000766d686261313a303a30", + Descriptor: []types.ScsiLunDescriptor{ + { + Quality: "lowQuality", + Id: "mpx.vmhba1:C0:T0:L0", + }, + { + Quality: "lowQuality", + Id: "vml.0005000000766d686261313a303a30", + }, + { + Quality: "lowQuality", + Id: "0005000000766d686261313a303a30", + }, + }, + CanonicalName: "mpx.vmhba1:C0:T0:L0", + DisplayName: "Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0)", + LunType: "cdrom", + Vendor: "NECVMWar", + Model: "VMware IDE CDR00", + Revision: "1.00", + ScsiLevel: 5, + SerialNumber: "unavailable", + DurableName: (*types.ScsiLunDurableName)(nil), + AlternateName: []types.ScsiLunDurableName{ + { + Namespace: "GENERIC_VPD", + NamespaceId: 0x5, + Data: []uint8{0x2d, 0x37, 0x39}, + }, + { + Namespace: "GENERIC_VPD", + NamespaceId: 0x5, + Data: []uint8{0x30}, + }, + }, + StandardInquiry: []uint8{0x30}, + QueueDepth: 0, + OperationalState: []string{"ok"}, + Capabilities: &types.ScsiLunCapabilities{}, + VStorageSupport: "vStorageUnsupported", + ProtocolEndpoint: types.NewBool(false), + }, + &types.HostScsiDisk{ + ScsiLun: types.ScsiLun{ + HostDevice: types.HostDevice{ + DeviceName: "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0", + DeviceType: "disk", + }, + Key: "key-vim.host.ScsiDisk-0000000000766d686261303a303a30", + Uuid: "0000000000766d686261303a303a30", + Descriptor: []types.ScsiLunDescriptor{ + { + Quality: "lowQuality", + Id: "mpx.vmhba0:C0:T0:L0", + }, + { + Quality: "lowQuality", + Id: "vml.0000000000766d686261303a303a30", + }, + { + Quality: "lowQuality", + Id: "0000000000766d686261303a303a30", + }, + }, + CanonicalName: "mpx.vmhba0:C0:T0:L0", + DisplayName: "Local VMware, Disk (mpx.vmhba0:C0:T0:L0)", + LunType: "disk", + Vendor: "VMware, ", + Model: "VMware Virtual S", + Revision: "1.0 ", + ScsiLevel: 2, + SerialNumber: "unavailable", + DurableName: (*types.ScsiLunDurableName)(nil), + AlternateName: []types.ScsiLunDurableName{ + { + Namespace: "GENERIC_VPD", + NamespaceId: 0x5, + Data: []uint8{0x2d, 0x37, 0x39}, + }, + { + Namespace: "GENERIC_VPD", + NamespaceId: 0x5, + Data: []uint8{0x30}, + }, + }, + StandardInquiry: []uint8{0x30}, + QueueDepth: 1024, + OperationalState: []string{"ok"}, + Capabilities: &types.ScsiLunCapabilities{}, + VStorageSupport: "vStorageUnsupported", + ProtocolEndpoint: types.NewBool(false), + }, + Capacity: types.HostDiskDimensionsLba{ + BlockSize: 512, + Block: 67108864, + }, + DevicePath: "/vmfs/devices/disks/mpx.vmhba0:C0:T0:L0", + Ssd: types.NewBool(true), + LocalDisk: types.NewBool(true), + PhysicalLocation: nil, + EmulatedDIXDIFEnabled: types.NewBool(false), + VsanDiskInfo: (*types.VsanHostVsanDiskInfo)(nil), + ScsiDiskType: "native512", + }, + }, + ScsiTopology: &types.HostScsiTopology{ + Adapter: []types.HostScsiTopologyInterface{ + { + Key: "key-vim.host.ScsiTopology.Interface-vmhba0", + Adapter: "key-vim.host.ParallelScsiHba-vmhba0", + Target: []types.HostScsiTopologyTarget{ + { + Key: "key-vim.host.ScsiTopology.Target-vmhba0:0:0", + Target: 0, + Lun: []types.HostScsiTopologyLun{ + { + Key: "key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30", + Lun: 0, + ScsiLun: "key-vim.host.ScsiDisk-0000000000766d686261303a303a30", + }, + }, + Transport: &types.HostParallelScsiTargetTransport{}, + }, + }, + }, + { + Key: "key-vim.host.ScsiTopology.Interface-vmhba1", + Adapter: "key-vim.host.BlockHba-vmhba1", + Target: []types.HostScsiTopologyTarget{ + { + Key: "key-vim.host.ScsiTopology.Target-vmhba1:0:0", + Target: 0, + Lun: []types.HostScsiTopologyLun{ + { + Key: "key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30", + Lun: 0, + ScsiLun: "key-vim.host.ScsiLun-0005000000766d686261313a303a30", + }, + }, + Transport: &types.HostBlockAdapterTargetTransport{}, + }, + }, + }, + { + Key: "key-vim.host.ScsiTopology.Interface-vmhba64", + Adapter: "key-vim.host.BlockHba-vmhba64", + Target: nil, + }, + }, + }, + MultipathInfo: &types.HostMultipathInfo{ + Lun: []types.HostMultipathInfoLogicalUnit{ + { + Key: "key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30", + Id: "0005000000766d686261313a303a30", + Lun: "key-vim.host.ScsiLun-0005000000766d686261313a303a30", + Path: []types.HostMultipathInfoPath{ + { + Key: "key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0", + Name: "vmhba1:C0:T0:L0", + PathState: "active", + State: "active", + IsWorkingPath: types.NewBool(true), + Adapter: "key-vim.host.BlockHba-vmhba1", + Lun: "key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30", + Transport: &types.HostBlockAdapterTargetTransport{}, + }, + }, + Policy: &types.HostMultipathInfoFixedLogicalUnitPolicy{ + HostMultipathInfoLogicalUnitPolicy: types.HostMultipathInfoLogicalUnitPolicy{ + Policy: "VMW_PSP_FIXED", + }, + Prefer: "vmhba1:C0:T0:L0", + }, + StorageArrayTypePolicy: &types.HostMultipathInfoLogicalUnitStorageArrayTypePolicy{ + Policy: "VMW_SATP_LOCAL", + }, + }, + { + Key: "key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30", + Id: "0000000000766d686261303a303a30", + Lun: "key-vim.host.ScsiDisk-0000000000766d686261303a303a30", + Path: []types.HostMultipathInfoPath{ + { + Key: "key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0", + Name: "vmhba0:C0:T0:L0", + PathState: "active", + State: "active", + IsWorkingPath: types.NewBool(true), + Adapter: "key-vim.host.ParallelScsiHba-vmhba0", + Lun: "key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30", + Transport: &types.HostParallelScsiTargetTransport{}, + }, + }, + Policy: &types.HostMultipathInfoFixedLogicalUnitPolicy{ + HostMultipathInfoLogicalUnitPolicy: types.HostMultipathInfoLogicalUnitPolicy{ + Policy: "VMW_PSP_FIXED", + }, + Prefer: "vmhba0:C0:T0:L0", + }, + StorageArrayTypePolicy: &types.HostMultipathInfoLogicalUnitStorageArrayTypePolicy{ + Policy: "VMW_SATP_LOCAL", + }, + }, + }, + }, + PlugStoreTopology: &types.HostPlugStoreTopology{ + Adapter: []types.HostPlugStoreTopologyAdapter{ + { + Key: "key-vim.host.PlugStoreTopology.Adapter-vmhba0", + Adapter: "key-vim.host.ParallelScsiHba-vmhba0", + Path: []string{"key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0"}, + }, + { + Key: "key-vim.host.PlugStoreTopology.Adapter-vmhba1", + Adapter: "key-vim.host.BlockHba-vmhba1", + Path: []string{"key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0"}, + }, + { + Key: "key-vim.host.PlugStoreTopology.Adapter-vmhba64", + Adapter: "key-vim.host.BlockHba-vmhba64", + Path: nil, + }, + }, + Path: []types.HostPlugStoreTopologyPath{ + { + Key: "key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0", + Name: "vmhba0:C0:T0:L0", + ChannelNumber: 0, + TargetNumber: 0, + LunNumber: 0, + Adapter: "key-vim.host.PlugStoreTopology.Adapter-vmhba0", + Target: "key-vim.host.PlugStoreTopology.Target-pscsi.0:0", + Device: "key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30", + }, + { + Key: "key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0", + Name: "vmhba1:C0:T0:L0", + ChannelNumber: 0, + TargetNumber: 0, + LunNumber: 0, + Adapter: "key-vim.host.PlugStoreTopology.Adapter-vmhba1", + Target: "key-vim.host.PlugStoreTopology.Target-ide.0:0", + Device: "key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30", + }, + }, + Target: []types.HostPlugStoreTopologyTarget{ + { + Key: "key-vim.host.PlugStoreTopology.Target-pscsi.0:0", + Transport: &types.HostParallelScsiTargetTransport{}, + }, + { + Key: "key-vim.host.PlugStoreTopology.Target-ide.0:0", + Transport: &types.HostBlockAdapterTargetTransport{}, + }, + }, + Device: []types.HostPlugStoreTopologyDevice{ + { + Key: "key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30", + Lun: "key-vim.host.ScsiLun-0005000000766d686261313a303a30", + Path: []string{"key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0"}, + }, + { + Key: "key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30", + Lun: "key-vim.host.ScsiDisk-0000000000766d686261303a303a30", + Path: []string{"key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0"}, + }, + }, + Plugin: []types.HostPlugStoreTopologyPlugin{ + { + Key: "key-vim.host.PlugStoreTopology.Plugin-NMP", + Name: "NMP", + Device: []string{"key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30", "key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30"}, + ClaimedPath: []string{"key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0", "key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0"}, + }, + }, + }, + SoftwareInternetScsiEnabled: false, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go b/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go new file mode 100644 index 00000000..26cd1962 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go @@ -0,0 +1,1801 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "time" + + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +// HostSystem is the default template for HostSystem properties. +// Capture method: +// govc host.info -dump +var HostSystem = mo.HostSystem{ + ManagedEntity: mo.ManagedEntity{ + ExtensibleManagedObject: mo.ExtensibleManagedObject{ + Self: types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + Value: nil, + AvailableField: nil, + }, + Parent: &types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, + CustomValue: nil, + OverallStatus: "", + ConfigStatus: "", + ConfigIssue: nil, + EffectiveRole: nil, + Permission: nil, + Name: "", + DisabledMethod: nil, + RecentTask: nil, + DeclaredAlarmState: nil, + TriggeredAlarmState: nil, + AlarmActionsEnabled: (*bool)(nil), + Tag: nil, + }, + Runtime: types.HostRuntimeInfo{ + DynamicData: types.DynamicData{}, + ConnectionState: "connected", + PowerState: "poweredOn", + StandbyMode: "", + InMaintenanceMode: false, + BootTime: (*time.Time)(nil), + HealthSystemRuntime: &types.HealthSystemRuntime{ + DynamicData: types.DynamicData{}, + SystemHealthInfo: &types.HostSystemHealthInfo{ + DynamicData: types.DynamicData{}, + NumericSensorInfo: []types.HostNumericSensorInfo{ + { + DynamicData: types.DynamicData{}, + Name: "VMware Rollup Health State", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "system", + }, + { + DynamicData: types.DynamicData{}, + Name: "CPU socket #0 Level-1 Cache is 16384 B", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Processors", + }, + { + DynamicData: types.DynamicData{}, + Name: "CPU socket #0 Level-2 Cache is 0 B", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Processors", + }, + { + DynamicData: types.DynamicData{}, + Name: "CPU socket #1 Level-1 Cache is 16384 B", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Processors", + }, + { + DynamicData: types.DynamicData{}, + Name: "CPU socket #1 Level-2 Cache is 0 B", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Processors", + }, + { + DynamicData: types.DynamicData{}, + Name: "Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "e1000 driver 8.0.3.1-NAPI", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + { + DynamicData: types.DynamicData{}, + Name: "e1000 device firmware N/A", + HealthState: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Sensor is operating under normal conditions", + }, + Key: "green", + }, + CurrentReading: 0, + UnitModifier: 0, + BaseUnits: "", + RateUnits: "", + SensorType: "Software Components", + }, + }, + }, + HardwareStatusInfo: &types.HostHardwareStatusInfo{ + DynamicData: types.DynamicData{}, + MemoryStatusInfo: nil, + CpuStatusInfo: []types.BaseHostHardwareElementInfo{ + &types.HostHardwareElementInfo{ + DynamicData: types.DynamicData{}, + Name: "CPU socket #0", + Status: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Physical element is functioning as expected", + }, + Key: "Green", + }, + }, + &types.HostHardwareElementInfo{ + DynamicData: types.DynamicData{}, + Name: "CPU socket #1", + Status: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Green", + Summary: "Physical element is functioning as expected", + }, + Key: "Green", + }, + }, + }, + StorageStatusInfo: nil, + }, + }, + DasHostState: (*types.ClusterDasFdmHostState)(nil), + TpmPcrValues: nil, + VsanRuntimeInfo: &types.VsanHostRuntimeInfo{}, + NetworkRuntimeInfo: &types.HostRuntimeInfoNetworkRuntimeInfo{ + DynamicData: types.DynamicData{}, + NetStackInstanceRuntimeInfo: []types.HostRuntimeInfoNetStackInstanceRuntimeInfo{ + { + DynamicData: types.DynamicData{}, + NetStackInstanceKey: "defaultTcpipStack", + State: "active", + VmknicKeys: []string{"vmk0"}, + MaxNumberOfConnections: 11000, + CurrentIpV6Enabled: types.NewBool(true), + }, + }, + NetworkResourceRuntime: (*types.HostNetworkResourceRuntime)(nil), + }, + VFlashResourceRuntimeInfo: (*types.HostVFlashManagerVFlashResourceRunTimeInfo)(nil), + HostMaxVirtualDiskCapacity: 68169720922112, + }, + Summary: types.HostListSummary{ + DynamicData: types.DynamicData{}, + Host: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + Hardware: &types.HostHardwareSummary{ + DynamicData: types.DynamicData{}, + Vendor: "VMware, Inc.", + Model: "VMware Virtual Platform", + Uuid: "564d2f12-8041-639b-5018-05a835b72eaf", + OtherIdentifyingInfo: []types.HostSystemIdentificationInfo{ + { + DynamicData: types.DynamicData{}, + IdentifierValue: " No Asset Tag", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Asset Tag", + Summary: "Asset tag of the system", + }, + Key: "AssetTag", + }, + }, + { + DynamicData: types.DynamicData{}, + IdentifierValue: "[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + DynamicData: types.DynamicData{}, + IdentifierValue: "Welcome to the Virtual Machine", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + DynamicData: types.DynamicData{}, + IdentifierValue: "VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + DynamicData: types.DynamicData{}, + Label: "Service tag", + Summary: "Service tag of the system", + }, + Key: "ServiceTag", + }, + }, + }, + MemorySize: 4294430720, + CpuModel: "Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz", + CpuMhz: 2294, + NumCpuPkgs: 2, + NumCpuCores: 2, + NumCpuThreads: 2, + NumNics: 1, + NumHBAs: 3, + }, + Runtime: (*types.HostRuntimeInfo)(nil), + Config: types.HostConfigSummary{ + DynamicData: types.DynamicData{}, + Name: "localhost.localdomain", + Port: 902, + SslThumbprint: "", + Product: &HostConfigInfo.Product, + VmotionEnabled: false, + FaultToleranceEnabled: types.NewBool(true), + FeatureVersion: nil, + AgentVmDatastore: (*types.ManagedObjectReference)(nil), + AgentVmNetwork: (*types.ManagedObjectReference)(nil), + }, + QuickStats: types.HostListSummaryQuickStats{ + DynamicData: types.DynamicData{}, + OverallCpuUsage: 67, + OverallMemoryUsage: 1404, + DistributedCpuFairness: 0, + DistributedMemoryFairness: 0, + Uptime: 77229, + }, + OverallStatus: "gray", + RebootRequired: false, + CustomValue: nil, + ManagementServerIp: "", + MaxEVCModeKey: "", + CurrentEVCModeKey: "", + Gateway: (*types.HostListSummaryGatewaySummary)(nil), + }, + Hardware: (*types.HostHardwareInfo)(nil), + Capability: (*types.HostCapability)(nil), + LicensableResource: types.HostLicensableResourceInfo{ + Resource: []types.KeyAnyValue{ + { + Key: "numCpuPackages", + Value: types.KeyValue{ + Key: "numCpuPackages", + Value: "2", + }, + }, + }, + }, + ConfigManager: types.HostConfigManager{ + DynamicData: types.DynamicData{}, + CpuScheduler: &types.ManagedObjectReference{Type: "HostCpuSchedulerSystem", Value: "cpuSchedulerSystem"}, + DatastoreSystem: &types.ManagedObjectReference{Type: "HostDatastoreSystem", Value: "ha-datastoresystem"}, + MemoryManager: &types.ManagedObjectReference{Type: "HostMemorySystem", Value: "memoryManagerSystem"}, + StorageSystem: &types.ManagedObjectReference{Type: "HostStorageSystem", Value: "storageSystem"}, + NetworkSystem: &types.ManagedObjectReference{Type: "HostNetworkSystem", Value: "networkSystem"}, + VmotionSystem: &types.ManagedObjectReference{Type: "HostVMotionSystem", Value: "ha-vmotion-system"}, + VirtualNicManager: &types.ManagedObjectReference{Type: "HostVirtualNicManager", Value: "ha-vnic-mgr"}, + ServiceSystem: &types.ManagedObjectReference{Type: "HostServiceSystem", Value: "serviceSystem"}, + FirewallSystem: &types.ManagedObjectReference{Type: "HostFirewallSystem", Value: "firewallSystem"}, + AdvancedOption: &types.ManagedObjectReference{Type: "OptionManager", Value: "ha-adv-options"}, + DiagnosticSystem: &types.ManagedObjectReference{Type: "HostDiagnosticSystem", Value: "diagnosticsystem"}, + AutoStartManager: &types.ManagedObjectReference{Type: "HostAutoStartManager", Value: "ha-autostart-mgr"}, + SnmpSystem: &types.ManagedObjectReference{Type: "HostSnmpSystem", Value: "ha-snmp-agent"}, + DateTimeSystem: &types.ManagedObjectReference{Type: "HostDateTimeSystem", Value: "dateTimeSystem"}, + PatchManager: &types.ManagedObjectReference{Type: "HostPatchManager", Value: "ha-host-patch-manager"}, + ImageConfigManager: &types.ManagedObjectReference{Type: "HostImageConfigManager", Value: "ha-image-config-manager"}, + BootDeviceSystem: (*types.ManagedObjectReference)(nil), + FirmwareSystem: &types.ManagedObjectReference{Type: "HostFirmwareSystem", Value: "ha-firmwareSystem"}, + HealthStatusSystem: &types.ManagedObjectReference{Type: "HostHealthStatusSystem", Value: "healthStatusSystem"}, + PciPassthruSystem: &types.ManagedObjectReference{Type: "HostPciPassthruSystem", Value: "ha-pcipassthrusystem"}, + LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "ha-license-manager"}, + KernelModuleSystem: &types.ManagedObjectReference{Type: "HostKernelModuleSystem", Value: "kernelModuleSystem"}, + AuthenticationManager: &types.ManagedObjectReference{Type: "HostAuthenticationManager", Value: "ha-auth-manager"}, + PowerSystem: &types.ManagedObjectReference{Type: "HostPowerSystem", Value: "ha-power-system"}, + CacheConfigurationManager: &types.ManagedObjectReference{Type: "HostCacheConfigurationManager", Value: "ha-cache-configuration-manager"}, + EsxAgentHostManager: (*types.ManagedObjectReference)(nil), + IscsiManager: &types.ManagedObjectReference{Type: "IscsiManager", Value: "iscsiManager"}, + VFlashManager: &types.ManagedObjectReference{Type: "HostVFlashManager", Value: "ha-vflash-manager"}, + VsanSystem: &types.ManagedObjectReference{Type: "HostVsanSystem", Value: "vsanSystem"}, + MessageBusProxy: &types.ManagedObjectReference{Type: "MessageBusProxy", Value: "messageBusProxy"}, + UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "ha-user-directory"}, + AccountManager: &types.ManagedObjectReference{Type: "HostLocalAccountManager", Value: "ha-localacctmgr"}, + HostAccessManager: &types.ManagedObjectReference{Type: "HostAccessManager", Value: "ha-host-access-manager"}, + GraphicsManager: &types.ManagedObjectReference{Type: "HostGraphicsManager", Value: "ha-graphics-manager"}, + VsanInternalSystem: &types.ManagedObjectReference{Type: "HostVsanInternalSystem", Value: "ha-vsan-internal-system"}, + CertificateManager: &types.ManagedObjectReference{Type: "HostCertificateManager", Value: "ha-certificate-manager"}, + }, + Config: &HostConfigInfo, + Vm: nil, + Datastore: nil, + Network: nil, + DatastoreBrowser: types.ManagedObjectReference{Type: "HostDatastoreBrowser", Value: "ha-host-datastorebrowser"}, + SystemResources: (*types.HostSystemResourceInfo)(nil), +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager.go b/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager.go new file mode 100644 index 00000000..532f0ad5 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager.go @@ -0,0 +1,15057 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// PerfCounter is the default template for the PerformanceManager perfCounter property. +// Capture method: +// govc object.collect -s -dump PerformanceManager:ha-perfmgr perfCounter +var PerfCounter = []types.PerfCounterInfo{ + { + Key: 0, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{1, 2, 3}, + }, + { + Key: 1, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 2, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 3, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 4, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{5, 6, 7}, + }, + { + Key: 5, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 6, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 7, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 8, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reserved capacity", + Summary: "Total CPU capacity reserved by virtual machines", + }, + Key: "reservedCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 9, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "Amount of time spent on system processes on each virtual CPU in the virtual machine", + }, + Key: "system", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 10, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Wait", + Summary: "Total CPU time spent in wait state", + }, + Key: "wait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 11, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ready", + Summary: "Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval", + }, + Key: "ready", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 12, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Used", + Summary: "Total CPU usage", + }, + Key: "used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 13, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Idle", + Summary: "Total time that the CPU spent in an idle state", + }, + Key: "idle", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 14, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap wait", + Summary: "CPU time spent waiting for swap-in", + }, + Key: "swapwait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 15, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{16, 17, 18}, + }, + { + Key: 16, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 17, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 18, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 19, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{20, 21, 22}, + }, + { + Key: 20, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 21, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 22, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 23, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total capacity", + Summary: "Total CPU capacity reserved by and available for virtual machines", + }, + Key: "totalCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 24, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Latency", + Summary: "Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU(s)", + }, + Key: "latency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 25, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Entitlement", + Summary: "CPU resources devoted by the ESX scheduler", + }, + Key: "entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 26, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Demand", + Summary: "The amount of CPU resources a virtual machine would use if there were no CPU contention or CPU limit", + }, + Key: "demand", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 27, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Co-stop", + Summary: "Time the virtual machine is ready to run, but is unable to run due to co-scheduling constraints", + }, + Key: "costop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 28, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max limited", + Summary: "Time the virtual machine is ready to run, but is not run due to maxing out its CPU limit setting", + }, + Key: "maxlimited", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 29, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overlap", + Summary: "Time the virtual machine was interrupted to perform system services on behalf of itself or other virtual machines", + }, + Key: "overlap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 30, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Run", + Summary: "Time the virtual machine is scheduled to run", + }, + Key: "run", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 31, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Demand-to-entitlement ratio", + Summary: "CPU resource entitlement to CPU demand ratio (in percents)", + }, + Key: "demandEntitlementRatio", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 32, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Readiness", + Summary: "Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU", + }, + Key: "readiness", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65536, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65537, 65538, 65539}, + }, + { + Key: 65537, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65538, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65539, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65540, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65541, 65542, 65543}, + }, + { + Key: 65541, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65542, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65543, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65544, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65545, 65546, 65547}, + }, + { + Key: 65545, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65546, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65547, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65548, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65549, 65550, 65551}, + }, + { + Key: 65549, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65550, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65551, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65552, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65553, 65554, 65555}, + }, + { + Key: 65553, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65554, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65555, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65556, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65557, 65558, 65559}, + }, + { + Key: 65557, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65558, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65559, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65560, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65561, 65562, 65563}, + }, + { + Key: 65561, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65562, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65563, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65568, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65569, 65570, 65571}, + }, + { + Key: 65569, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65570, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65571, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65572, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65573, 65574, 65575}, + }, + { + Key: 65573, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65574, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65575, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65576, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65577, 65578, 65579}, + }, + { + Key: 65577, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65578, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65579, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65580, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Free state", + Summary: "Current memory availability state of ESXi. Possible values are high, clear, soft, hard, low. The state value determines the techniques used for memory reclamation from virtual machines", + }, + Key: "state", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65581, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65582, 65583, 65584}, + }, + { + Key: 65582, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65583, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65584, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65585, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65586, 65587, 65588}, + }, + { + Key: 65586, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65587, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65588, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65589, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation consumed", + Summary: "Memory reservation consumed by powered-on virtual machines", + }, + Key: "reservedCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65590, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65591, 65592, 65593}, + }, + { + Key: 65591, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65592, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65593, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65594, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65595, 65596, 65597}, + }, + { + Key: 65595, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65596, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65597, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65598, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65599, 65600, 65601}, + }, + { + Key: 65599, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65600, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65601, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65602, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65603, 65604, 65605}, + }, + { + Key: 65603, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65604, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65605, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65606, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65607, 65608, 65609}, + }, + { + Key: 65607, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65608, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65609, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65610, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65611, 65612, 65613}, + }, + { + Key: 65611, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65612, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65613, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65614, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65615, 65616, 65617}, + }, + { + Key: 65615, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65616, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65617, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65618, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in rate", + Summary: "Rate at which guest physical memory is swapped in from the swap space", + }, + Key: "swapinRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65619, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out rate", + Summary: "Rate at which guest physical memory is swapped out to the swap space", + }, + Key: "swapoutRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65620, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active write", + Summary: "Amount of guest physical memory that is being actively written by guest. Activeness is estimated by ESXi", + }, + Key: "activewrite", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65621, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compressed", + Summary: "Guest physical memory pages that have undergone memory compression", + }, + Key: "compressed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65622, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compression rate", + Summary: "Rate of guest physical memory page compression by ESXi", + }, + Key: "compressionRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65623, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Decompression rate", + Summary: "Rate of guest physical memory decompression", + }, + Key: "decompressionRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65624, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead reserved", + Summary: "Host physical memory reserved by ESXi, for its data structures, for running the virtual machine", + }, + Key: "overheadMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65625, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total reservation", + Summary: "Total reservation, available and consumed, for powered-on virtual machines", + }, + Key: "totalCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65626, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compressed", + Summary: "Amount of guest physical memory pages compressed by ESXi", + }, + Key: "zipped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65627, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compression saved", + Summary: "Host physical memory, reclaimed from a virtual machine, by memory compression. This value is less than the value of 'Compressed' memory", + }, + Key: "zipSaved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65628, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Page-fault latency", + Summary: "Percentage of time the virtual machine spent waiting to swap in or decompress guest physical memory", + }, + Key: "latency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65629, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Entitlement", + Summary: "Amount of host physical memory the virtual machine deserves, as determined by ESXi", + }, + Key: "entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65630, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reclamation threshold", + Summary: "Threshold of free host physical memory below which ESXi will begin actively reclaiming memory from virtual machines by swapping, compression and ballooning", + }, + Key: "lowfreethreshold", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65631, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65635, 65636, 65637}, + }, + { + Key: 65632, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in rate", + Summary: "Rate at which guest physical memory is swapped in from the host swap cache", + }, + Key: "llSwapInRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65633, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out rate", + Summary: "Rate at which guest physical memory is swapped out to the host swap cache", + }, + Key: "llSwapOutRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65634, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead active", + Summary: "Estimate of the host physical memory, from Overhead consumed, that is actively read or written to by ESXi", + }, + Key: "overheadTouched", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65635, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65636, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65637, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65638, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65639, 65640, 65641}, + }, + { + Key: 65639, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65640, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65641, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65642, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{65643, 65644, 65645}, + }, + { + Key: 65643, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65644, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65645, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65646, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Size", + Summary: "Space used for holding VMFS Pointer Blocks in memory", + }, + Key: "vmfs.pbc.size", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65647, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum VMFS PB Cache Size", + Summary: "Maximum size the VMFS Pointer Block Cache can grow to", + }, + Key: "vmfs.pbc.sizeMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65648, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS Working Set", + Summary: "Amount of file blocks whose addresses are cached in the VMFS PB Cache", + }, + Key: "vmfs.pbc.workingSet", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "TB", + Summary: "Terabyte", + }, + Key: "teraBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65649, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum VMFS Working Set", + Summary: "Maximum amount of file blocks whose addresses are cached in the VMFS PB Cache", + }, + Key: "vmfs.pbc.workingSetMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "TB", + Summary: "Terabyte", + }, + Key: "teraBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65650, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Overhead", + Summary: "Amount of VMFS heap used by the VMFS PB Cache", + }, + Key: "vmfs.pbc.overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 65651, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Capacity Miss Ratio", + Summary: "Trailing average of the ratio of capacity misses to compulsory misses for the VMFS PB Cache", + }, + Key: "vmfs.pbc.capMissRatio", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131072, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{131073, 131074, 131075}, + }, + { + Key: 131073, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131074, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131075, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131076, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read requests", + Summary: "Number of disk reads during the collection interval", + }, + Key: "numberRead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131077, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write requests", + Summary: "Number of disk writes during the collection interval", + }, + Key: "numberWrite", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131078, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Average number of kilobytes read from the disk each second during the collection interval", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131079, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Average number of kilobytes written to disk each second during the collection interval", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131080, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Commands issued", + Summary: "Number of SCSI commands issued during the collection interval", + }, + Key: "commands", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131081, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Commands aborted", + Summary: "Number of SCSI commands aborted during the collection interval", + }, + Key: "commandsAborted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131082, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Bus resets", + Summary: "Number of SCSI-bus reset commands issued during the collection interval", + }, + Key: "busResets", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131083, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device read latency", + Summary: "Average amount of time, in milliseconds, to read from the physical device", + }, + Key: "deviceReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131084, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel read latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI read command", + }, + Key: "kernelReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131085, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI read command issued from the guest OS to the virtual machine", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131086, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue read latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI read command, during the collection interval", + }, + Key: "queueReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131087, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device write latency", + Summary: "Average amount of time, in milliseconds, to write to the physical device", + }, + Key: "deviceWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131088, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel write latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI write command", + }, + Key: "kernelWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131089, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI write command issued by the guest OS to the virtual machine", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131090, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue write latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI write command, during the collection interval", + }, + Key: "queueWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131091, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device command latency", + Summary: "Average amount of time, in milliseconds, to complete a SCSI command from the physical device", + }, + Key: "deviceLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131092, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel command latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI command", + }, + Key: "kernelLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131093, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Command latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI command issued by the guest OS to the virtual machine", + }, + Key: "totalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131094, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue command latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI command, during the collection interval", + }, + Key: "queueLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131095, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all disks used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131096, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum queue depth", + Summary: "Maximum queue depth", + }, + Key: "maxQueueDepth", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131097, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of disk reads per second during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131098, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of disk writes per second during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 131099, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of SCSI commands issued per second during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196608, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{196609, 196610, 196611}, + }, + { + Key: 196609, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196610, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196611, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196612, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packets received", + Summary: "Number of packets received during the interval", + }, + Key: "packetsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196613, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packets transmitted", + Summary: "Number of packets transmitted during the interval", + }, + Key: "packetsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196614, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data receive rate", + Summary: "Average rate at which data was received during the interval", + }, + Key: "received", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196615, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data transmit rate", + Summary: "Average rate at which data was transmitted during the interval", + }, + Key: "transmitted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196616, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Receive packets dropped", + Summary: "Number of receives dropped", + }, + Key: "droppedRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196617, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Transmit packets dropped", + Summary: "Number of transmits dropped", + }, + Key: "droppedTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196618, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data receive rate", + Summary: "Average amount of data received per second", + }, + Key: "bytesRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196619, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data transmit rate", + Summary: "Average amount of data transmitted per second", + }, + Key: "bytesTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196620, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Broadcast receives", + Summary: "Number of broadcast packets received during the sampling interval", + }, + Key: "broadcastRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196621, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Broadcast transmits", + Summary: "Number of broadcast packets transmitted during the sampling interval", + }, + Key: "broadcastTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196622, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Multicast receives", + Summary: "Number of multicast packets received during the sampling interval", + }, + Key: "multicastRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196623, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Multicast transmits", + Summary: "Number of multicast packets transmitted during the sampling interval", + }, + Key: "multicastTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196624, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packet receive errors", + Summary: "Number of packets with errors received during the sampling interval", + }, + Key: "errorsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196625, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packet transmit errors", + Summary: "Number of packets with errors transmitted during the sampling interval", + }, + Key: "errorsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196626, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Unknown protocol frames", + Summary: "Number of frames with unknown protocol received during the sampling interval", + }, + Key: "unknownProtos", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196627, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pnicBytesRx", + Summary: "pnicBytesRx", + }, + Key: "pnicBytesRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 196628, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pnicBytesTx", + Summary: "pnicBytesTx", + }, + Key: "pnicBytesTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262144, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Uptime", + Summary: "Total time elapsed, in seconds, since last system startup", + }, + Key: "uptime", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "s", + Summary: "Second", + }, + Key: "second", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262145, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heartbeat", + Summary: "Number of heartbeats issued per virtual machine during the interval", + }, + Key: "heartbeat", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262146, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk usage", + Summary: "Amount of disk space usage for each mount point", + }, + Key: "diskUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262147, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (None)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "none", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{262148, 262149, 262150}, + }, + { + Key: 262148, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Average)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262149, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Maximum)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262150, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Minimum)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262151, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory touched", + Summary: "Memory touched by the system resource group", + }, + Key: "resourceMemTouched", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262152, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory mapped", + Summary: "Memory mapped by the system resource group", + }, + Key: "resourceMemMapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262153, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory share saved", + Summary: "Memory saved due to sharing by the system resource group", + }, + Key: "resourceMemShared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262154, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory swapped", + Summary: "Memory swapped out by the system resource group", + }, + Key: "resourceMemSwapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262155, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory overhead", + Summary: "Overhead memory consumed by the system resource group", + }, + Key: "resourceMemOverhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262156, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory shared", + Summary: "Memory shared by the system resource group", + }, + Key: "resourceMemCow", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262157, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory zero", + Summary: "Zero filled memory used by the system resource group", + }, + Key: "resourceMemZero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262158, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU running (1 min. average)", + Summary: "CPU running average over 1 minute of the system resource group", + }, + Key: "resourceCpuRun1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262159, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU active (1 min average)", + Summary: "CPU active average over 1 minute of the system resource group", + }, + Key: "resourceCpuAct1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262160, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU maximum limited (1 min)", + Summary: "CPU maximum limited over 1 minute of the system resource group", + }, + Key: "resourceCpuMaxLimited1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262161, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU running (5 min average)", + Summary: "CPU running average over 5 minutes of the system resource group", + }, + Key: "resourceCpuRun5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262162, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU active (5 min average)", + Summary: "CPU active average over 5 minutes of the system resource group", + }, + Key: "resourceCpuAct5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262163, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU maximum limited (5 min)", + Summary: "CPU maximum limited over 5 minutes of the system resource group", + }, + Key: "resourceCpuMaxLimited5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262164, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation minimum (in MHz)", + Summary: "CPU allocation reservation (in MHz) of the system resource group", + }, + Key: "resourceCpuAllocMin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262165, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation maximum (in MHz)", + Summary: "CPU allocation limit (in MHz) of the system resource group", + }, + Key: "resourceCpuAllocMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262166, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation shares", + Summary: "CPU allocation shares of the system resource group", + }, + Key: "resourceCpuAllocShares", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262167, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation minimum (in KB)", + Summary: "Memory allocation reservation (in KB) of the system resource group", + }, + Key: "resourceMemAllocMin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262168, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation maximum (in KB)", + Summary: "Memory allocation limit (in KB) of the system resource group", + }, + Key: "resourceMemAllocMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262169, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation shares", + Summary: "Memory allocation shares of the system resource group", + }, + Key: "resourceMemAllocShares", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262170, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "OS Uptime", + Summary: "Total time elapsed, in seconds, since last operating system boot-up", + }, + Key: "osUptime", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "s", + Summary: "Second", + }, + Key: "second", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262171, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory consumed", + Summary: "Memory consumed by the system resource group", + }, + Key: "resourceMemConsumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 262172, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "File descriptors used", + Summary: "Number of file descriptors used by the system resource group", + }, + Key: "resourceFdUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327680, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (1 min average)", + Summary: "CPU active average over 1 minute", + }, + Key: "actav1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327681, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (1 min peak)", + Summary: "CPU active peak over 1 minute", + }, + Key: "actpk1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327682, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (1 min average)", + Summary: "CPU running average over 1 minute", + }, + Key: "runav1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327683, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (5 min average)", + Summary: "CPU active average over 5 minutes", + }, + Key: "actav5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327684, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (5 min peak)", + Summary: "CPU active peak over 5 minutes", + }, + Key: "actpk5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327685, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (5 min average)", + Summary: "CPU running average over 5 minutes", + }, + Key: "runav5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327686, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (15 min average)", + Summary: "CPU active average over 15 minutes", + }, + Key: "actav15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327687, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (15 min peak)", + Summary: "CPU active peak over 15 minutes", + }, + Key: "actpk15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327688, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (15 min average)", + Summary: "CPU running average over 15 minutes", + }, + Key: "runav15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327689, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (1 min peak)", + Summary: "CPU running peak over 1 minute", + }, + Key: "runpk1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327690, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (1 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 1 minute", + }, + Key: "maxLimited1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327691, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (5 min peak)", + Summary: "CPU running peak over 5 minutes", + }, + Key: "runpk5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327692, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (5 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 5 minutes", + }, + Key: "maxLimited5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327693, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (15 min peak)", + Summary: "CPU running peak over 15 minutes", + }, + Key: "runpk15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327694, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (15 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 15 minutes", + }, + Key: "maxLimited15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327695, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Group CPU sample count", + Summary: "Group CPU sample count", + }, + Key: "sampleCount", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 327696, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Group CPU sample period", + Summary: "Group CPU sample period", + }, + Key: "samplePeriod", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 393216, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "Amount of total configured memory that is available for use", + }, + Key: "memUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 393217, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap used", + Summary: "Sum of the memory swapped by all powered-on virtual machines on the host", + }, + Key: "swapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 393218, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap in", + Summary: "Amount of memory that is swapped in for the Service Console", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 393219, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap out", + Summary: "Amount of memory that is swapped out for the Service Console", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 393220, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU usage", + Summary: "Amount of Service Console CPU usage", + }, + Key: "cpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458752, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of commands issued per second by the storage adapter during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458753, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second by the storage adapter during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458754, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second by the storage adapter during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458755, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data by the storage adapter", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458756, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data by the storage adapter", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458757, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read by the storage adapter takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458758, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write by the storage adapter takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 458759, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all storage adapters used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524288, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of commands issued per second on the storage path during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524289, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second on the storage path during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524290, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second on the storage path during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524291, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data on the storage path", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524292, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data on the storage path", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524293, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read issued on the storage path takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524294, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write issued on the storage path takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 524295, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all storage paths used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589824, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second to the virtual disk during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589825, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second to the virtual disk during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589826, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data from the virtual disk", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589827, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data to the virtual disk", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589828, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read from the virtual disk takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589829, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write to the virtual disk takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589830, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average number of outstanding read requests", + Summary: "Average number of outstanding read requests to the virtual disk during the collection interval", + }, + Key: "readOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589831, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average number of outstanding write requests", + Summary: "Average number of outstanding write requests to the virtual disk during the collection interval", + }, + Key: "writeOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589832, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read workload metric", + Summary: "Storage DRS virtual disk metric for the read workload model", + }, + Key: "readLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589833, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write workload metric", + Summary: "Storage DRS virtual disk metric for the write workload model", + }, + Key: "writeLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589834, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read request size", + Summary: "Average read request size in bytes", + }, + Key: "readIOSize", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589835, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write request size", + Summary: "Average write request size in bytes", + }, + Key: "writeIOSize", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589836, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of small seeks", + Summary: "Number of seeks during the interval that were less than 64 LBNs apart", + }, + Key: "smallSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589837, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of medium seeks", + Summary: "Number of seeks during the interval that were between 64 and 8192 LBNs apart", + }, + Key: "mediumSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589838, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of large seeks", + Summary: "Number of seeks during the interval that were greater than 8192 LBNs apart", + }, + Key: "largeSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589839, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read Latency (us)", + Summary: "Read latency in microseconds", + }, + Key: "readLatencyUS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589840, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write Latency (us)", + Summary: "Write latency in microseconds", + }, + Key: "writeLatencyUS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589841, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache I/Os per second for the virtual disk", + Summary: "The average virtual Flash Read Cache I/Os per second value for the virtual disk", + }, + Key: "vFlashCacheIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589842, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache latency for the virtual disk", + Summary: "The average virtual Flash Read Cache latency value for the virtual disk", + }, + Key: "vFlashCacheLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 589843, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache throughput for virtual disk", + Summary: "The average virtual Flash Read Cache throughput value for the virtual disk", + }, + Key: "vFlashCacheThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655360, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second to the datastore during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655361, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second to the datastore during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655362, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data from the datastore", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655363, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data to the datastore", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655364, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read from the datastore takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655365, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write to the datastore takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655366, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control normalized latency", + Summary: "Storage I/O Control size-normalized I/O latency", + }, + Key: "sizeNormalizedDatastoreLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655367, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control aggregated IOPS", + Summary: "Storage I/O Control aggregated IOPS", + }, + Key: "datastoreIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655368, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore bytes read", + Summary: "Storage DRS datastore bytes read", + }, + Key: "datastoreReadBytes", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655369, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore bytes written", + Summary: "Storage DRS datastore bytes written", + }, + Key: "datastoreWriteBytes", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655370, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore read I/O rate", + Summary: "Storage DRS datastore read I/O rate", + }, + Key: "datastoreReadIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655371, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore write I/O rate", + Summary: "Storage DRS datastore write I/O rate", + }, + Key: "datastoreWriteIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655372, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore normalized read latency", + Summary: "Storage DRS datastore normalized read latency", + }, + Key: "datastoreNormalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655373, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore normalized write latency", + Summary: "Storage DRS datastore normalized write latency", + }, + Key: "datastoreNormalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655374, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore outstanding read requests", + Summary: "Storage DRS datastore outstanding read requests", + }, + Key: "datastoreReadOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655375, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore outstanding write requests", + Summary: "Storage DRS datastore outstanding write requests", + }, + Key: "datastoreWriteOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655376, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control datastore maximum queue depth", + Summary: "Storage I/O Control datastore maximum queue depth", + }, + Key: "datastoreMaxQueueDepth", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655377, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore read workload metric", + Summary: "Storage DRS datastore metric for read workload model", + }, + Key: "datastoreReadLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655378, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore write workload metric", + Summary: "Storage DRS datastore metric for write workload model", + }, + Key: "datastoreWriteLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655379, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all datastores used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655380, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control active time percentage", + Summary: "Percentage of time Storage I/O Control actively controlled datastore latency", + }, + Key: "siocActiveTimePercentage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 655381, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore latency observed by VMs", + Summary: "The average datastore latency as seen by virtual machines", + }, + Key: "datastoreVMObservedLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 720896, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Current power usage", + }, + Key: "power", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 720897, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cap", + Summary: "Maximum allowed power usage", + }, + Key: "powerCap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 720898, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Energy usage", + Summary: "Total energy used since last stats reset", + }, + Key: "energy", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "J", + Summary: "Joule", + }, + Key: "joule", + }, + RollupType: "summation", + StatsType: "delta", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 786432, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication VM Count", + Summary: "Current number of replicated virtual machines", + }, + Key: "hbrNumVms", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 786433, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Replication Data Receive Rate", + Summary: "Average amount of data received per second", + }, + Key: "hbrNetRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 786434, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Replication Data Transmit Rate", + Summary: "Average amount of data transmitted per second", + }, + Key: "hbrNetTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 851968, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of caches controlled by the virtual flash module", + Summary: "Number of caches controlled by the virtual flash module", + }, + Key: "numActiveVMDKs", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual flash", + Summary: "Virtual flash module related statistical values", + }, + Key: "vflashModule", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245184, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read IOPS", + Summary: "Read IOPS", + }, + Key: "readIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245185, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read throughput", + Summary: "Read throughput in kBps", + }, + Key: "readThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245186, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read latency", + Summary: "Average read latency in ms", + }, + Key: "readAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245187, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max read latency", + Summary: "Max read latency in ms", + }, + Key: "readMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245188, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cache hit rate", + Summary: "Cache hit rate percentage", + }, + Key: "readCacheHitRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245189, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read congestion per sampling interval", + Summary: "Read congestion", + }, + Key: "readCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245190, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write IOPS", + Summary: "Write IOPS", + }, + Key: "writeIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245191, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write throughput", + Summary: "Write throughput in kBps", + }, + Key: "writeThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245192, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write latency", + Summary: "Average write latency in ms", + }, + Key: "writeAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245193, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max write latency", + Summary: "Max write latency in ms", + }, + Key: "writeMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245194, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write congestion per sampling interval", + Summary: "Write congestion", + }, + Key: "writeCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245195, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write IOPS", + Summary: "Recovery write IOPS", + }, + Key: "recoveryWriteIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245196, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write through-put", + Summary: "Recovery write through-put in kBps", + }, + Key: "recoveryWriteThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245197, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average recovery write latency", + Summary: "Average recovery write latency in ms", + }, + Key: "recoveryWriteAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245198, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max recovery write latency", + Summary: "Max recovery write latency in ms", + }, + Key: "recoveryWriteMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1245199, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write congestion per sampling interval", + Summary: "Recovery write congestion", + }, + Key: "recoveryWriteCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310720, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{1310721, 1310722, 1310723}, + }, + { + Key: 1310721, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310722, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310723, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310724, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{1310725, 1310726, 1310727}, + }, + { + Key: 1310725, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310726, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310727, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310728, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: []int32{1310729, 1310730, 1310731}, + }, + { + Key: 1310729, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310730, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310731, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1310732, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Temperature", + Summary: "The temperature of a GPU in degrees celsius", + }, + Key: "temperature", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "℃", + Summary: "Temperature in degrees Celsius", + }, + Key: "celsius", + }, + RollupType: "average", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, + { + Key: 1376256, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Persistent memory available reservation", + Summary: "Persistent memory available reservation on a host.", + }, + Key: "available.reservation", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "PMEM", + Summary: "PMEM", + }, + Key: "pmem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 0, + PerDeviceLevel: 0, + AssociatedCounterId: nil, + }, +} + +// *********************************** VM Metrics ************************************ +var VmMetrics = []types.PerfMetricId{ + { + CounterId: 11, + Instance: "$cpu", + }, + { + CounterId: 1, + Instance: "", + }, + { + CounterId: 12, + Instance: "", + }, + { + CounterId: 9, + Instance: "", + }, + { + CounterId: 29, + Instance: "", + }, + { + CounterId: 30, + Instance: "$cpu", + }, + { + CounterId: 24, + Instance: "", + }, + { + CounterId: 13, + Instance: "", + }, + { + CounterId: 10, + Instance: "$cpu", + }, + { + CounterId: 14, + Instance: "$cpu", + }, + { + CounterId: 27, + Instance: "$cpu", + }, + { + CounterId: 25, + Instance: "", + }, + { + CounterId: 5, + Instance: "$cpu", + }, + { + CounterId: 32, + Instance: "$cpu", + }, + { + CounterId: 14, + Instance: "", + }, + { + CounterId: 12, + Instance: "$cpu", + }, + { + CounterId: 10, + Instance: "", + }, + { + CounterId: 28, + Instance: "$cpu", + }, + { + CounterId: 5, + Instance: "", + }, + { + CounterId: 27, + Instance: "", + }, + { + CounterId: 31, + Instance: "", + }, + { + CounterId: 32, + Instance: "", + }, + { + CounterId: 26, + Instance: "", + }, + { + CounterId: 13, + Instance: "$cpu", + }, + { + CounterId: 28, + Instance: "", + }, + { + CounterId: 30, + Instance: "", + }, + { + CounterId: 11, + Instance: "", + }, + { + CounterId: 655379, + Instance: "", + }, + + { + CounterId: 655362, + Instance: "$physDisk", + }, + { + CounterId: 655363, + Instance: "$physDisk", + }, + { + CounterId: 655360, + Instance: "$physDisk", + }, + { + CounterId: 655364, + Instance: "$physDisk", + }, + { + CounterId: 655361, + Instance: "$physDisk", + }, + { + CounterId: 655365, + Instance: "$physDisk", + }, + + { + CounterId: 131095, + Instance: "", + }, + { + CounterId: 65549, + Instance: "", + }, + { + CounterId: 65595, + Instance: "", + }, + { + CounterId: 65632, + Instance: "", + }, + { + CounterId: 65591, + Instance: "", + }, + { + CounterId: 65623, + Instance: "", + }, + { + CounterId: 65628, + Instance: "", + }, + { + CounterId: 65621, + Instance: "", + }, + { + CounterId: 65618, + Instance: "", + }, + { + CounterId: 65634, + Instance: "", + }, + { + CounterId: 65624, + Instance: "", + }, + { + CounterId: 65586, + Instance: "", + }, + { + CounterId: 65545, + Instance: "", + }, + { + CounterId: 65633, + Instance: "", + }, + { + CounterId: 65607, + Instance: "", + }, + { + CounterId: 65541, + Instance: "", + }, + { + CounterId: 65626, + Instance: "", + }, + { + CounterId: 65620, + Instance: "", + }, + { + CounterId: 65611, + Instance: "", + }, + { + CounterId: 65629, + Instance: "", + }, + { + CounterId: 65622, + Instance: "", + }, + { + CounterId: 65619, + Instance: "", + }, + { + CounterId: 65553, + Instance: "", + }, + { + CounterId: 65627, + Instance: "", + }, + { + CounterId: 65635, + Instance: "", + }, + { + CounterId: 65599, + Instance: "", + }, + { + CounterId: 65582, + Instance: "", + }, + { + CounterId: 65537, + Instance: "", + }, + { + CounterId: 65603, + Instance: "", + }, + { + CounterId: 196622, + Instance: "4000", + }, + { + CounterId: 196612, + Instance: "", + }, + { + CounterId: 196617, + Instance: "", + }, + { + CounterId: 196613, + Instance: "", + }, + { + CounterId: 196619, + Instance: "4000", + }, + { + CounterId: 196618, + Instance: "4000", + }, + { + CounterId: 196617, + Instance: "4000", + }, + { + CounterId: 196621, + Instance: "4000", + }, + { + CounterId: 196616, + Instance: "4000", + }, + { + CounterId: 196615, + Instance: "4000", + }, + { + CounterId: 196614, + Instance: "4000", + }, + { + CounterId: 196618, + Instance: "", + }, + { + CounterId: 196609, + Instance: "4000", + }, + { + CounterId: 196619, + Instance: "", + }, + { + CounterId: 196622, + Instance: "", + }, + { + CounterId: 196628, + Instance: "4000", + }, + { + CounterId: 196609, + Instance: "", + }, + { + CounterId: 196612, + Instance: "4000", + }, + { + CounterId: 196628, + Instance: "", + }, + { + CounterId: 196627, + Instance: "", + }, + { + CounterId: 196616, + Instance: "", + }, + { + CounterId: 196613, + Instance: "4000", + }, + { + CounterId: 196627, + Instance: "4000", + }, + { + CounterId: 196614, + Instance: "", + }, + { + CounterId: 196621, + Instance: "", + }, + { + CounterId: 196620, + Instance: "4000", + }, + { + CounterId: 196620, + Instance: "", + }, + { + CounterId: 196623, + Instance: "", + }, + { + CounterId: 196615, + Instance: "", + }, + { + CounterId: 196623, + Instance: "4000", + }, + { + CounterId: 720898, + Instance: "", + }, + { + CounterId: 720896, + Instance: "", + }, + { + CounterId: 327684, + Instance: "", + }, + { + CounterId: 327687, + Instance: "", + }, + { + CounterId: 327693, + Instance: "", + }, + { + CounterId: 327680, + Instance: "", + }, + { + CounterId: 327685, + Instance: "", + }, + { + CounterId: 327694, + Instance: "", + }, + { + CounterId: 327686, + Instance: "", + }, + { + CounterId: 327692, + Instance: "", + }, + { + CounterId: 327688, + Instance: "", + }, + { + CounterId: 327695, + Instance: "", + }, + { + CounterId: 327689, + Instance: "", + }, + { + CounterId: 327681, + Instance: "", + }, + { + CounterId: 327696, + Instance: "", + }, + { + CounterId: 327683, + Instance: "", + }, + { + CounterId: 327691, + Instance: "", + }, + { + CounterId: 327690, + Instance: "", + }, + { + CounterId: 327682, + Instance: "", + }, + { + CounterId: 262144, + Instance: "", + }, + { + CounterId: 262145, + Instance: "", + }, + { + CounterId: 262170, + Instance: "", + }, + { + CounterId: 589827, + Instance: "", + }, + { + CounterId: 589826, + Instance: "", + }, +} + +// **************************** Host metrics ********************************* + +var HostMetrics = []types.PerfMetricId{ + { + CounterId: 23, + Instance: "", + }, + { + CounterId: 14, + Instance: "", + }, + { + CounterId: 1, + Instance: "", + }, + { + CounterId: 11, + Instance: "", + }, + { + CounterId: 20, + Instance: "$cpu", + }, + { + CounterId: 13, + Instance: "", + }, + { + CounterId: 5, + Instance: "", + }, + { + CounterId: 32, + Instance: "", + }, + { + CounterId: 26, + Instance: "", + }, + { + CounterId: 24, + Instance: "", + }, + { + CounterId: 16, + Instance: "$cpu", + }, + { + CounterId: 27, + Instance: "", + }, + { + CounterId: 16, + Instance: "", + }, + + { + CounterId: 10, + Instance: "", + }, + { + CounterId: 12, + Instance: "", + }, + { + CounterId: 1, + Instance: "$cpu", + }, + { + CounterId: 12, + Instance: "$cpu", + }, + { + CounterId: 13, + Instance: "$cpu", + }, + { + CounterId: 8, + Instance: "", + }, + { + CounterId: 655380, + Instance: "$physDisk", + }, + { + CounterId: 655370, + Instance: "$physDisk", + }, + { + CounterId: 655377, + Instance: "$physDisk", + }, + { + CounterId: 655379, + Instance: "", + }, + { + CounterId: 655375, + Instance: "$physDisk", + }, + { + CounterId: 655378, + Instance: "$physDisk", + }, + { + CounterId: 655372, + Instance: "$physDisk", + }, + { + CounterId: 655369, + Instance: "$physDisk", + }, + { + CounterId: 655373, + Instance: "$physDisk", + }, + { + CounterId: 655362, + Instance: "$physDisk", + }, + { + CounterId: 655374, + Instance: "$physDisk", + }, + { + CounterId: 655368, + Instance: "$physDisk", + }, + { + CounterId: 655365, + Instance: "$physDisk", + }, + { + CounterId: 655366, + Instance: "$physDisk", + }, + { + CounterId: 655367, + Instance: "$physDisk", + }, + { + CounterId: 655371, + Instance: "$physDisk", + }, + { + CounterId: 655361, + Instance: "$physDisk", + }, + { + CounterId: 655376, + Instance: "$physDisk", + }, + { + CounterId: 655363, + Instance: "$physDisk", + }, + { + CounterId: 655360, + Instance: "$physDisk", + }, + { + CounterId: 655381, + Instance: "$physDisk", + }, + { + CounterId: 131073, + Instance: "", + }, + { + CounterId: 131090, + Instance: "$physDisk", + }, + { + CounterId: 131079, + Instance: "", + }, + { + CounterId: 131086, + Instance: "$physDisk", + }, + { + CounterId: 131098, + Instance: "$physDisk", + }, + { + CounterId: 131081, + Instance: "$physDisk", + }, + { + CounterId: 131082, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131090, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131081, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131086, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131088, + Instance: "$physDisk", + }, + { + CounterId: 131098, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131078, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131079, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131099, + Instance: "$physDisk", + }, + { + CounterId: 131087, + Instance: "$physDisk", + }, + { + CounterId: 131089, + Instance: "$physDisk", + }, + { + CounterId: 131078, + Instance: "$physDisk", + }, + { + CounterId: 131096, + Instance: "$physDisk", + }, + { + CounterId: 131091, + Instance: "$physDisk", + }, + { + CounterId: 131080, + Instance: "$physDisk", + }, + { + CounterId: 131078, + Instance: "", + }, + { + CounterId: 131076, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131092, + Instance: "$physDisk", + }, + { + CounterId: 131080, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131095, + Instance: "", + }, + { + CounterId: 131097, + Instance: "$physDisk", + }, + { + CounterId: 131093, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131092, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131084, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131099, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131079, + Instance: "$physDisk", + }, + { + CounterId: 131085, + Instance: "$physDisk", + }, + { + CounterId: 131083, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131076, + Instance: "$physDisk", + }, + { + CounterId: 131096, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131094, + Instance: "$physDisk", + }, + { + CounterId: 131088, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131089, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131077, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131077, + Instance: "$physDisk", + }, + { + CounterId: 131093, + Instance: "$physDisk", + }, + { + CounterId: 131087, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131085, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131091, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131097, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131082, + Instance: "$physDisk", + }, + { + CounterId: 131094, + Instance: "mpx.vmhba32:C0:T0:L0", + }, + { + CounterId: 131084, + Instance: "$physDisk", + }, + { + CounterId: 131083, + Instance: "$physDisk", + }, + { + CounterId: 786433, + Instance: "", + }, + { + CounterId: 786434, + Instance: "", + }, + { + CounterId: 786432, + Instance: "", + }, + { + CounterId: 65573, + Instance: "", + }, + { + CounterId: 65618, + Instance: "", + }, + { + CounterId: 65632, + Instance: "", + }, + { + CounterId: 65623, + Instance: "", + }, + { + CounterId: 65582, + Instance: "", + }, + { + CounterId: 65611, + Instance: "", + }, + { + CounterId: 65541, + Instance: "", + }, + { + CounterId: 65586, + Instance: "", + }, + { + CounterId: 65621, + Instance: "", + }, + { + CounterId: 65561, + Instance: "", + }, + { + CounterId: 65569, + Instance: "", + }, + { + CounterId: 65580, + Instance: "", + }, + { + CounterId: 65553, + Instance: "", + }, + { + CounterId: 65646, + Instance: "", + }, + { + CounterId: 65603, + Instance: "", + }, + { + CounterId: 65647, + Instance: "", + }, + { + CounterId: 65628, + Instance: "", + }, + { + CounterId: 65557, + Instance: "", + }, + { + CounterId: 65635, + Instance: "", + }, + { + CounterId: 65589, + Instance: "", + }, + { + CounterId: 65643, + Instance: "", + }, + { + CounterId: 65545, + Instance: "", + }, + { + CounterId: 65537, + Instance: "", + }, + { + CounterId: 65622, + Instance: "", + }, + { + CounterId: 65639, + Instance: "", + }, + { + CounterId: 65599, + Instance: "", + }, + { + CounterId: 65633, + Instance: "", + }, + { + CounterId: 65650, + Instance: "", + }, + { + CounterId: 65649, + Instance: "", + }, + { + CounterId: 65615, + Instance: "", + }, + { + CounterId: 65577, + Instance: "", + }, + { + CounterId: 65648, + Instance: "", + }, + { + CounterId: 65619, + Instance: "", + }, + { + CounterId: 65630, + Instance: "", + }, + { + CounterId: 65651, + Instance: "", + }, + { + CounterId: 65620, + Instance: "", + }, + { + CounterId: 65625, + Instance: "", + }, + { + CounterId: 65549, + Instance: "", + }, + { + CounterId: 196616, + Instance: "vmnic0", + }, + { + CounterId: 196612, + Instance: "vmnic0", + }, + { + CounterId: 196621, + Instance: "", + }, + { + CounterId: 196618, + Instance: "vmnic0", + }, + { + CounterId: 196609, + Instance: "vmnic1", + }, + { + CounterId: 196622, + Instance: "", + }, + { + CounterId: 196623, + Instance: "vmnic0", + }, + { + CounterId: 196626, + Instance: "", + }, + { + CounterId: 196614, + Instance: "", + }, + { + CounterId: 196616, + Instance: "vmnic1", + }, + { + CounterId: 196615, + Instance: "vmnic0", + }, + { + CounterId: 196621, + Instance: "vmnic1", + }, + { + CounterId: 196622, + Instance: "vmnic0", + }, + { + CounterId: 196614, + Instance: "vmnic0", + }, + { + CounterId: 196620, + Instance: "", + }, + { + CounterId: 196622, + Instance: "vmnic1", + }, + { + CounterId: 196617, + Instance: "", + }, + { + CounterId: 196616, + Instance: "", + }, + { + CounterId: 196613, + Instance: "vmnic0", + }, + { + CounterId: 196614, + Instance: "vmnic1", + }, + { + CounterId: 196625, + Instance: "", + }, + { + CounterId: 196609, + Instance: "vmnic0", + }, + { + CounterId: 196624, + Instance: "", + }, + { + CounterId: 196619, + Instance: "vmnic1", + }, + { + CounterId: 196625, + Instance: "vmnic0", + }, + { + CounterId: 196617, + Instance: "vmnic1", + }, + { + CounterId: 196619, + Instance: "", + }, + { + CounterId: 196618, + Instance: "vmnic1", + }, + { + CounterId: 196626, + Instance: "vmnic0", + }, + { + CounterId: 196612, + Instance: "vmnic1", + }, + { + CounterId: 196613, + Instance: "", + }, + { + CounterId: 196621, + Instance: "vmnic0", + }, + { + CounterId: 196615, + Instance: "", + }, + { + CounterId: 196620, + Instance: "vmnic1", + }, + { + CounterId: 196612, + Instance: "", + }, + { + CounterId: 196624, + Instance: "vmnic1", + }, + { + CounterId: 196617, + Instance: "vmnic0", + }, + { + CounterId: 196625, + Instance: "vmnic1", + }, + { + CounterId: 196618, + Instance: "", + }, + { + CounterId: 196623, + Instance: "vmnic1", + }, + { + CounterId: 196623, + Instance: "", + }, + { + CounterId: 196609, + Instance: "", + }, + { + CounterId: 196613, + Instance: "vmnic1", + }, + { + CounterId: 196620, + Instance: "vmnic0", + }, + { + CounterId: 196619, + Instance: "vmnic0", + }, + { + CounterId: 196624, + Instance: "vmnic0", + }, + { + CounterId: 196615, + Instance: "vmnic1", + }, + { + CounterId: 196626, + Instance: "vmnic1", + }, + { + CounterId: 720898, + Instance: "", + }, + { + CounterId: 720897, + Instance: "", + }, + { + CounterId: 720896, + Instance: "", + }, + { + CounterId: 327681, + Instance: "", + }, + { + CounterId: 327694, + Instance: "", + }, + { + CounterId: 327689, + Instance: "", + }, + { + CounterId: 327696, + Instance: "", + }, + { + CounterId: 327685, + Instance: "", + }, + { + CounterId: 327680, + Instance: "", + }, + { + CounterId: 327690, + Instance: "", + }, + { + CounterId: 327693, + Instance: "", + }, + { + CounterId: 327683, + Instance: "", + }, + { + CounterId: 327688, + Instance: "", + }, + { + CounterId: 327687, + Instance: "", + }, + { + CounterId: 327684, + Instance: "", + }, + { + CounterId: 327691, + Instance: "", + }, + { + CounterId: 327682, + Instance: "", + }, + { + CounterId: 327695, + Instance: "", + }, + { + CounterId: 327686, + Instance: "", + }, + { + CounterId: 327692, + Instance: "", + }, + { + CounterId: 458755, + Instance: "vmhba64", + }, + { + CounterId: 458755, + Instance: "vmhba1", + }, + { + CounterId: 458756, + Instance: "vmhba1", + }, + { + CounterId: 458757, + Instance: "vmhba32", + }, + { + CounterId: 458753, + Instance: "vmhba1", + }, + { + CounterId: 458754, + Instance: "vmhba1", + }, + { + CounterId: 458752, + Instance: "vmhba0", + }, + { + CounterId: 458755, + Instance: "vmhba32", + }, + { + CounterId: 458757, + Instance: "vmhba64", + }, + { + CounterId: 458753, + Instance: "vmhba64", + }, + { + CounterId: 458754, + Instance: "vmhba64", + }, + { + CounterId: 458752, + Instance: "vmhba64", + }, + { + CounterId: 458759, + Instance: "", + }, + { + CounterId: 458758, + Instance: "vmhba1", + }, + { + CounterId: 458753, + Instance: "vmhba32", + }, + { + CounterId: 458758, + Instance: "vmhba0", + }, + { + CounterId: 458756, + Instance: "vmhba64", + }, + { + CounterId: 458754, + Instance: "vmhba32", + }, + { + CounterId: 458753, + Instance: "vmhba0", + }, + { + CounterId: 458757, + Instance: "vmhba0", + }, + { + CounterId: 458754, + Instance: "vmhba0", + }, + { + CounterId: 458756, + Instance: "vmhba0", + }, + { + CounterId: 458752, + Instance: "vmhba1", + }, + { + CounterId: 458752, + Instance: "vmhba32", + }, + { + CounterId: 458756, + Instance: "vmhba32", + }, + { + CounterId: 458755, + Instance: "vmhba0", + }, + { + CounterId: 458758, + Instance: "vmhba64", + }, + { + CounterId: 458757, + Instance: "vmhba1", + }, + { + CounterId: 458758, + Instance: "vmhba32", + }, + { + CounterId: 524290, + Instance: "$physDisk", + }, + { + CounterId: 524288, + Instance: "$physDisk", + }, + { + CounterId: 524291, + Instance: "$physDisk", + }, + { + CounterId: 524292, + Instance: "$physDisk", + }, + { + CounterId: 524295, + Instance: "", + }, + { + CounterId: 524289, + Instance: "$physDisk", + }, + { + CounterId: 524293, + Instance: "$physDisk", + }, + { + CounterId: 524294, + Instance: "$physDisk", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262168, + Instance: "host/system", + }, + { + CounterId: 262172, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262166, + Instance: "host/system", + }, + { + CounterId: 262157, + Instance: "host/system/svmotion", + }, + { + CounterId: 262157, + Instance: "host/system/drivers", + }, + { + CounterId: 262163, + Instance: "host/system", + }, + { + CounterId: 262156, + Instance: "host/system", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262153, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262161, + Instance: "host/system/vmotion", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262171, + Instance: "host", + }, + { + CounterId: 262156, + Instance: "host", + }, + { + CounterId: 262152, + Instance: "host", + }, + { + CounterId: 262153, + Instance: "host/vim", + }, + { + CounterId: 262151, + Instance: "host/system/drivers", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262172, + Instance: "host/system/kernel", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262153, + Instance: "host/system/ft", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262148, + Instance: "host/system/kernel", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262156, + Instance: "host/system/kernel", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262165, + Instance: "host/system/vmotion", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262171, + Instance: "host/iofilters", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262157, + Instance: "host/system/kernel", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262153, + Instance: "host", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262172, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262151, + Instance: "host/system/kernel", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262172, + Instance: "host/vim", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262148, + Instance: "host/system", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262155, + Instance: "host/system/drivers", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262153, + Instance: "host/system/vmotion", + }, + { + CounterId: 262148, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262152, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262172, + Instance: "host", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262162, + Instance: "host/vim", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262153, + Instance: "host/system", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262155, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262154, + Instance: "host", + }, + { + CounterId: 262157, + Instance: "host/system", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262153, + Instance: "host/vim/vmci", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262148, + Instance: "host/iofilters", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262152, + Instance: "host/system/kernel", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262171, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262151, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262172, + Instance: "host/system/helper", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262154, + Instance: "host/system/helper", + }, + { + CounterId: 262151, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262155, + Instance: "host/system/helper", + }, + { + CounterId: 262156, + Instance: "host/vim/tmp", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262171, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262154, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262157, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262148, + Instance: "host/system/drivers", + }, + { + CounterId: 262152, + Instance: "host/system/helper", + }, + { + CounterId: 262171, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262153, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262154, + Instance: "host/system/svmotion", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262161, + Instance: "host/system", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262152, + Instance: "host/system/svmotion", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262158, + Instance: "host/system", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262148, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262148, + Instance: "host/system/helper", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262171, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262152, + Instance: "host/system/drivers", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262158, + Instance: "host/system/vmotion", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262152, + Instance: "host/vim", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262151, + Instance: "host/system/vmotion", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262144, + Instance: "", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262171, + Instance: "host/vim/vmci", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262151, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262164, + Instance: "host/system", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262163, + Instance: "host/vim", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262171, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262155, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262171, + Instance: "host/system/kernel", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262160, + Instance: "host/system/vmotion", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262151, + Instance: "host/system", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262155, + Instance: "host/user", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262160, + Instance: "host/system", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262148, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262155, + Instance: "host/system/svmotion", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262155, + Instance: "host/system", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262167, + Instance: "host/system", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmci", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262156, + Instance: "host/system/drivers", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262165, + Instance: "host/vim", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262159, + Instance: "host/system", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmci", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262157, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262153, + Instance: "host/system/helper", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262163, + Instance: "host/system/vmotion", + }, + { + CounterId: 262151, + Instance: "host/user", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262155, + Instance: "host/iofilters", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262171, + Instance: "host/vim/tmp", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262154, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262171, + Instance: "host/system", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262153, + Instance: "host/iofilters", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262151, + Instance: "host/vim/tmp", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262148, + Instance: "host/system/vmotion", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262157, + Instance: "host/iofilters", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 262157, + Instance: "host", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262171, + Instance: "host/system/helper", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262156, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/var", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262157, + Instance: "host/system/helper", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262157, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262152, + Instance: "host/vim/tmp", + }, + { + CounterId: 262154, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262168, + Instance: "host/system/vmotion", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262172, + Instance: "host/user", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262152, + Instance: "host/user", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262152, + Instance: "host/system", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262157, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262153, + Instance: "host/system/drivers", + }, + { + CounterId: 262153, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262162, + Instance: "host/system", + }, + { + CounterId: 262154, + Instance: "host/system/drivers", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262172, + Instance: "host/system/ft", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262148, + Instance: "host/system/ft", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262152, + Instance: "host/system/ft", + }, + { + CounterId: 262155, + Instance: "host/system/ft", + }, + { + CounterId: 262156, + Instance: "host/system/ft", + }, + { + CounterId: 262148, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262157, + Instance: "host/system/ft", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262148, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262172, + Instance: "host/system/vmotion", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262152, + Instance: "host/system/vmotion", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262154, + Instance: "host/system/vmotion", + }, + { + CounterId: 262155, + Instance: "host/system/kernel", + }, + { + CounterId: 262155, + Instance: "host/system/vmotion", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 262156, + Instance: "host/system/vmotion", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262157, + Instance: "host/system/vmotion", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262171, + Instance: "host/system/vmotion", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262159, + Instance: "host/system/vmotion", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262164, + Instance: "host/system/vmotion", + }, + { + CounterId: 262167, + Instance: "host/system/vmotion", + }, + { + CounterId: 262153, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262167, + Instance: "host/vim", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262169, + Instance: "host/system/vmotion", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262166, + Instance: "host/system/vmotion", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262172, + Instance: "host/system/svmotion", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262151, + Instance: "host/system/svmotion", + }, + { + CounterId: 262156, + Instance: "host/system/helper", + }, + { + CounterId: 262153, + Instance: "host/system/svmotion", + }, + { + CounterId: 262171, + Instance: "host/system/svmotion", + }, + { + CounterId: 262148, + Instance: "host/vim", + }, + { + CounterId: 262165, + Instance: "host/system", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262151, + Instance: "host/vim", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vsfwd", + }, + { + CounterId: 262154, + Instance: "host/vim", + }, + { + CounterId: 262169, + Instance: "host/system", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262155, + Instance: "host/vim", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262154, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262154, + Instance: "host/system/kernel", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262157, + Instance: "host/vim", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262171, + Instance: "host/vim", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262158, + Instance: "host/vim", + }, + { + CounterId: 262159, + Instance: "host/vim", + }, + { + CounterId: 262160, + Instance: "host/vim", + }, + { + CounterId: 262161, + Instance: "host/vim", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262172, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262164, + Instance: "host/vim", + }, + { + CounterId: 262157, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262166, + Instance: "host/vim", + }, + { + CounterId: 262168, + Instance: "host/vim", + }, + { + CounterId: 262169, + Instance: "host/vim", + }, + { + CounterId: 262153, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262151, + Instance: "host/vim/vmci", + }, + { + CounterId: 262152, + Instance: "host/vim/vmci", + }, + { + CounterId: 262152, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmci", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262155, + Instance: "host/vim/vmci", + }, + { + CounterId: 262157, + Instance: "host/vim/vimuser", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262172, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262148, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262156, + Instance: "host/vim/vmci", + }, + { + CounterId: 262152, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262157, + Instance: "host/vim/vmci", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262155, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262171, + Instance: "host/user", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262171, + Instance: "host/system/ft", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262151, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262156, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262171, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262172, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 262148, + Instance: "host", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262148, + Instance: "host/system/svmotion", + }, + { + CounterId: 262148, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262156, + Instance: "host/system/svmotion", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262151, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262153, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262155, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262155, + Instance: "host", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262151, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262162, + Instance: "host/system/vmotion", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262155, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262154, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262151, + Instance: "host/system/helper", + }, + { + CounterId: 262172, + Instance: "host/vim/tmp", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 262148, + Instance: "host/vim/tmp", + }, + { + CounterId: 262153, + Instance: "host/vim/tmp", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262172, + Instance: "host/system", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262155, + Instance: "host/vim/tmp", + }, + { + CounterId: 262157, + Instance: "host/vim/tmp", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262156, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262171, + Instance: "host/system/drivers", + }, + { + CounterId: 262172, + Instance: "host/iofilters", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262154, + Instance: "host/system", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262151, + Instance: "host/iofilters", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262156, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262156, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262152, + Instance: "host/iofilters", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262155, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 262154, + Instance: "host/iofilters", + }, + { + CounterId: 262156, + Instance: "host/iofilters", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262172, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262154, + Instance: "host/system/ft", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 262151, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262152, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vsanmgmtdWatchdog", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262153, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 262154, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262155, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262157, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262151, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/pktcap-agent", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262153, + Instance: "host/system/kernel", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262152, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262154, + Instance: "host/vim/tmp", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262155, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/vdpi", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262152, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262172, + Instance: "host/system/drivers", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262171, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262153, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262154, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262156, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 262154, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 262156, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 262157, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262171, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 262156, + Instance: "host/vim", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262172, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262152, + Instance: "host/system/kernel/root", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 262152, + Instance: "host/iofilters/spm", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262156, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 262151, + Instance: "host/system/ft", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 262151, + Instance: "host", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 262148, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262148, + Instance: "host/user", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262154, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 262172, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262153, + Instance: "host/user", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262154, + Instance: "host/user", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262156, + Instance: "host/user", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262156, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262172, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 262157, + Instance: "host/user", + }, + { + CounterId: 262157, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262151, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262152, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262153, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262171, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 262155, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 262148, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 851968, + Instance: "vfc", + }, +} + +// ********************************* Resource pool metrics ********************************** +var ResourcePoolMetrics = []types.PerfMetricId{ + { + CounterId: 5, + Instance: "", + }, + { + CounterId: 65586, + Instance: "", + }, + { + CounterId: 65591, + Instance: "", + }, + { + CounterId: 65545, + Instance: "", + }, + { + CounterId: 65553, + Instance: "", + }, + { + CounterId: 65541, + Instance: "", + }, + { + CounterId: 65549, + Instance: "", + }, + { + CounterId: 65582, + Instance: "", + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager_data.go b/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager_data.go new file mode 100644 index 00000000..8d0eaca3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/performance_manager_data.go @@ -0,0 +1,1213 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package esx + +var MetricData = map[string]map[int32][]int64{ + "VirtualMachine": VmMetricData, + "HostSystem": HostMetricData, + "ResourcePool": ResourcePoolMetricData, +} + +var VmMetricData = map[int32][]int64{ + 131078: []int64{105, 91, 90, 120, 103, 65, 84, 486, 377, 483, 268, 3788, 5638, 417, 114, 51, 50, 31, 388, 22, + 19, 24, 83, 69, 22, 21, 47, 9, 68, 22, 12, 34, 137, 94, 68, 82, 53, 88, 73, 24, + 45, 35, 42, 52, 104, 103, 112, 124, 91, 111, 183, 82, 85, 40, 54, 27, 29, 17, 30, 23, + 32, 20, 30, 17, 38, 16, 14, 134, 92, 27, 16, 34, 28, 45, 39, 21, 37, 46, 65, 187, + 122, 551, 295, 121, 130, 84, 207, 128, 57, 34, 18, 38, 25, 25, 42, 21, 16, 117, 78, 20, + }, + 262144: []int64{2953459, 2953479, 2953499, 2953519, 2953539, 2953559, 2953579, 2953599, 2953619, 2953639, 2953659, 2953679, 2953699, 2953719, 2953739, 2953759, 2953779, 2953799, 2953819, 2953839, + 2953859, 2953879, 2953899, 2953919, 2953939, 2953959, 2953979, 2953999, 2954019, 2954039, 2954059, 2954079, 2954099, 2954119, 2954139, 2954159, 2954179, 2954199, 2954219, 2954239, + 2954259, 2954279, 2954299, 2954319, 2954339, 2954359, 2954379, 2954399, 2954419, 2954439, 2954459, 2954479, 2954499, 2954519, 2954539, 2954559, 2954579, 2954599, 2954619, 2954639, + 2954659, 2954679, 2954699, 2954719, 2954739, 2954759, 2954779, 2954799, 2954819, 2954839, 2954859, 2954879, 2954899, 2954919, 2954939, 2954959, 2954979, 2954999, 2955019, 2955039, + 2955059, 2955079, 2955099, 2955119, 2955139, 2955159, 2955179, 2955199, 2955219, 2955239, 2955259, 2955279, 2955299, 2955319, 2955339, 2955359, 2955379, 2955399, 2955419, 2955439, + }, + 589826: []int64{0, 1, 0, 23, 0, 0, 0, 62, 2, 5, 2, 3134, 4717, 81, 3, 0, 2, 0, 73, 0, + 1, 0, 4, 0, 0, 3, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 3, 5, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 0, 0, 2, 0, + 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 1, 3, 2, 0, 1, 1, 1, 0, 0, 0, + 0, 352, 62, 0, 0, 0, 17, 1, 0, 1, 1, 0, 0, 0, 0, 2, 0, 5, 0, 0, + }, + 27: []int64{0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327684: []int64{2100, 1900, 2100, 2100, 2100, 2100, 2100, 2500, 3900, 4000, 4200, 4500, 4600, 7200, 7200, 7200, 7200, 7200, 7200, 7200, + 7200, 7200, 5700, 5700, 5700, 5700, 5100, 3800, 2300, 1900, 1900, 2100, 2100, 2000, 2000, 2000, 2000, 2000, 2100, 2000, + 2000, 2000, 2000, 2000, 2000, 2000, 1800, 1800, 1800, 1800, 1800, 1800, 1700, 1700, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1900, 2000, 2000, 2000, 2000, 2000, 2600, 3700, 3700, 3700, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, + 4000, 6400, 2200, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 1900, 2100, 2100, 2100, + }, + 589827: []int64{185, 221, 201, 190, 213, 180, 183, 3167, 675, 806, 640, 1307, 1853, 985, 283, 202, 244, 188, 189, 223, + 190, 193, 516, 150, 100, 135, 127, 92, 160, 103, 101, 160, 203, 188, 238, 195, 206, 1006, 215, 168, + 234, 202, 185, 238, 197, 195, 229, 199, 207, 244, 696, 179, 231, 155, 122, 100, 153, 107, 107, 140, + 107, 91, 145, 100, 120, 147, 99, 3340, 2031, 123, 101, 153, 103, 120, 152, 89, 123, 236, 194, 234, + 181, 397, 536, 205, 210, 238, 201, 188, 205, 234, 183, 192, 222, 183, 238, 189, 185, 2573, 269, 168, + }, + 65591: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 262145: []int64{30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + }, + 131095: []int64{0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 1, 0, 1, 1, 1, 3, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 13, 0, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, + }, + 327680: []int64{900, 900, 1100, 1200, 1200, 1000, 900, 2100, 3100, 4200, 4000, 4300, 4500, 6200, 5300, 3900, 1400, 1000, 1100, 1100, + 1000, 900, 1100, 1100, 1300, 1000, 1400, 1200, 1400, 1000, 1000, 900, 1000, 1100, 1000, 1000, 900, 1000, 1200, 1100, + 1000, 1200, 1200, 1300, 900, 900, 900, 900, 1100, 1000, 1100, 900, 900, 1200, 1400, 1300, 1300, 1100, 1200, 900, + 1000, 900, 1000, 1100, 1200, 1000, 900, 2600, 4400, 4400, 2600, 1300, 1200, 1300, 1000, 1000, 1000, 900, 1100, 1000, + 1000, 1500, 1700, 1800, 1200, 1000, 1300, 1300, 1400, 1000, 1000, 900, 1000, 1100, 1000, 1000, 900, 1800, 1900, 1900, + }, + 65628: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196612: []int64{2225, 3281, 1618, 2063, 1848, 1873, 2184, 7480, 8118, 10104, 10870, 9808, 10400, 13222, 2843, 2012, 3354, 1841, 2146, 1756, + 1978, 2008, 1907, 1994, 2224, 3298, 2051, 2094, 1828, 2006, 2211, 3199, 1709, 1954, 1759, 1851, 2318, 1896, 1896, 2121, + 3276, 1983, 2205, 1779, 1689, 2019, 3311, 1876, 2034, 1907, 1961, 2015, 1749, 1927, 2294, 3313, 2048, 1981, 1967, 1848, + 2192, 3359, 1871, 1895, 1966, 1923, 2129, 3255, 1851, 1869, 3261, 1965, 2286, 1853, 1894, 1937, 3358, 1834, 2190, 1876, + 1949, 2031, 1892, 1787, 2014, 3183, 1621, 1724, 1817, 1774, 2141, 3293, 1798, 2044, 1798, 1832, 2108, 1780, 1946, 2000, + }, + 196619: []int64{338, 541, 275, 276, 274, 277, 338, 518, 546, 597, 677, 545, 606, 600, 305, 280, 542, 274, 351, 275, + 276, 275, 277, 276, 339, 391, 292, 275, 274, 276, 337, 541, 275, 275, 275, 276, 340, 277, 276, 276, + 389, 292, 337, 274, 276, 275, 542, 274, 339, 275, 274, 275, 278, 274, 340, 389, 293, 276, 274, 277, + 339, 543, 289, 274, 277, 275, 337, 280, 274, 274, 390, 290, 339, 276, 274, 277, 542, 276, 339, 275, + 274, 277, 277, 274, 340, 404, 275, 274, 277, 275, 338, 541, 274, 275, 275, 274, 340, 275, 276, 275, + }, + 196628: []int64{346, 555, 281, 282, 280, 283, 347, 528, 557, 609, 691, 554, 618, 611, 312, 286, 556, 280, 360, 281, + 282, 281, 281, 282, 347, 400, 298, 282, 280, 282, 346, 555, 281, 281, 281, 282, 348, 283, 282, 282, + 399, 298, 345, 280, 282, 281, 556, 281, 348, 282, 281, 281, 284, 280, 348, 398, 300, 283, 280, 283, + 347, 557, 295, 280, 284, 282, 345, 286, 280, 280, 399, 297, 347, 282, 280, 283, 556, 282, 347, 281, + 280, 283, 283, 280, 348, 414, 281, 280, 283, 282, 347, 555, 280, 282, 282, 281, 348, 281, 282, 282, + }, + 196613: []int64{1045, 1729, 698, 934, 692, 804, 938, 5133, 5837, 7138, 7639, 7081, 7420, 9237, 1494, 953, 1727, 787, 1039, 739, + 801, 815, 800, 881, 1148, 1807, 970, 803, 770, 845, 1084, 1932, 824, 883, 844, 832, 1204, 818, 873, 810, + 1834, 920, 972, 857, 841, 804, 1671, 793, 1068, 782, 832, 851, 831, 776, 1161, 1701, 922, 809, 777, 765, + 1029, 1893, 788, 772, 790, 815, 1050, 1463, 736, 768, 1782, 864, 1144, 923, 780, 890, 1645, 766, 1146, 827, + 829, 938, 914, 787, 1153, 1815, 786, 735, 752, 821, 1070, 1742, 773, 760, 759, 850, 1071, 798, 809, 788, + }, + 1: []int64{459, 568, 565, 667, 468, 400, 428, 2434, 1844, 1903, 2087, 2129, 2462, 4030, 755, 424, 599, 426, 669, 421, + 421, 458, 761, 611, 443, 740, 651, 400, 594, 441, 430, 545, 481, 579, 452, 435, 462, 584, 708, 389, + 765, 566, 439, 554, 417, 402, 579, 414, 645, 412, 538, 417, 465, 1149, 429, 746, 521, 388, 596, 389, + 445, 556, 566, 592, 488, 399, 457, 3707, 2176, 486, 774, 638, 457, 560, 475, 405, 579, 405, 663, 406, + 388, 1451, 624, 592, 474, 771, 662, 429, 588, 387, 452, 564, 452, 586, 451, 404, 444, 1771, 690, 397, + }, + 196614: []int64{246, 416, 202, 245, 203, 203, 245, 510, 474, 664, 776, 792, 927, 1261, 318, 259, 416, 203, 245, 203, + 217, 245, 218, 218, 246, 309, 216, 245, 203, 203, 246, 415, 203, 245, 203, 203, 260, 204, 203, 245, + 309, 215, 245, 203, 203, 245, 416, 203, 248, 203, 203, 245, 203, 203, 246, 308, 216, 245, 203, 203, + 246, 416, 203, 244, 203, 203, 245, 562, 203, 244, 308, 215, 246, 203, 203, 244, 416, 203, 245, 203, + 203, 245, 204, 203, 245, 320, 203, 244, 203, 203, 245, 416, 203, 245, 203, 203, 245, 203, 203, 245, + }, + 30: []int64{1889, 2375, 2401, 2804, 2005, 1726, 1848, 10236, 7642, 7872, 8787, 8676, 10432, 16327, 3168, 1797, 2525, 1766, 2769, 1788, + 1770, 1909, 3236, 2649, 1853, 3209, 2727, 1711, 2510, 1865, 1802, 2296, 2000, 2470, 1920, 1817, 1960, 2477, 2940, 1641, + 3366, 2229, 1820, 2288, 1733, 1693, 2534, 1742, 2643, 1721, 2257, 1705, 1966, 4724, 1806, 3226, 2100, 1688, 2475, 1648, + 1920, 2305, 2364, 2465, 1997, 1649, 1950, 15409, 8946, 2036, 3316, 2566, 1886, 2273, 2041, 1687, 2450, 1777, 2788, 1725, + 1647, 5924, 2638, 2466, 1963, 3281, 2712, 1828, 2480, 1654, 1898, 2356, 1888, 2469, 1915, 1691, 1840, 7415, 2902, 1648, + }, + 327683: []int64{1000, 1000, 1100, 1100, 1100, 1100, 1100, 1300, 1500, 1700, 1900, 2100, 2400, 2900, 3000, 3000, 3000, 2900, 2900, 2900, + 2900, 2900, 2700, 2500, 2300, 2200, 2000, 1700, 1200, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, + 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1000, 1100, 1000, 1100, 1100, 1000, 1100, 1100, 1100, 1100, 1100, 1100, 1100, + 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1400, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1700, 1800, 1500, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1100, 1200, 1200, 1200, + }, + 65627: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 655379: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196622: []int64{20, 20, 20, 20, 21, 20, 20, 24, 20, 20, 22, 20, 20, 20, 20, 20, 20, 21, 20, 20, + 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 22, 20, 24, 20, 20, + 20, 20, 21, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 20, 20, 20, 21, 20, + 21, 20, 20, 20, 20, 20, 20, 25, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, + 20, 20, 20, 20, 20, 21, 21, 20, 20, 20, 19, 20, 21, 20, 20, 20, 20, 20, 21, 20, + }, + 65603: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327685: []int64{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2700, 2800, 2800, 2800, 2800, 2800, 2800, + 2800, 2800, 2600, 2400, 2200, 2000, 1800, 1600, 1100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1100, 1000, 1100, 1000, 1000, 1400, 1600, 1600, 1600, 1600, 1600, 1600, 1700, 1600, 1700, 1600, 1600, 1600, + 1600, 1800, 1400, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1000, 1200, 1200, 1200, + }, + 196615: []int64{338, 541, 275, 276, 274, 277, 338, 518, 546, 597, 677, 545, 606, 600, 305, 280, 542, 274, 351, 275, + 276, 275, 277, 276, 339, 391, 292, 275, 274, 276, 337, 541, 275, 275, 275, 276, 340, 277, 276, 276, + 389, 292, 337, 274, 276, 275, 542, 274, 339, 275, 274, 275, 278, 274, 340, 389, 293, 276, 274, 277, + 339, 543, 289, 274, 277, 275, 337, 280, 274, 274, 390, 290, 339, 276, 274, 277, 542, 276, 339, 275, + 274, 277, 277, 274, 340, 404, 275, 274, 277, 275, 338, 541, 274, 275, 275, 274, 340, 275, 276, 275, + }, + 327689: []int64{1300, 1700, 2000, 2200, 2200, 2200, 1200, 7000, 7000, 7000, 4800, 7500, 7500, 11300, 11300, 11300, 4800, 1800, 2300, 2300, + 2300, 1300, 2600, 2600, 2600, 2200, 3700, 3700, 3700, 1900, 1900, 1900, 1900, 1900, 1800, 1800, 1500, 2100, 2600, 2600, + 2600, 3700, 3700, 3700, 1800, 1800, 1700, 1700, 1900, 1900, 1900, 1500, 1500, 4100, 4100, 4100, 3700, 3700, 3700, 1800, + 1800, 1900, 1900, 1900, 1900, 1700, 1500, 11100, 11100, 11100, 10400, 4000, 4000, 4000, 1800, 1800, 2100, 2100, 2100, 2100, + 2100, 7600, 7600, 7600, 2000, 2000, 3800, 3800, 3800, 1900, 1900, 1900, 1900, 2000, 2000, 2000, 1500, 9100, 9100, 9100, + }, + 196609: []int64{584, 957, 478, 521, 477, 480, 584, 1029, 1020, 1261, 1453, 1337, 1533, 1861, 624, 539, 959, 477, 597, 478, + 494, 520, 496, 494, 585, 700, 508, 521, 477, 480, 583, 957, 478, 520, 478, 479, 600, 481, 479, 521, + 699, 507, 583, 477, 479, 520, 958, 478, 588, 479, 478, 520, 481, 478, 586, 698, 509, 521, 478, 480, + 585, 959, 492, 519, 481, 479, 583, 843, 478, 519, 699, 506, 585, 479, 478, 522, 958, 479, 585, 478, + 478, 522, 481, 478, 585, 724, 478, 518, 480, 479, 584, 958, 478, 520, 479, 478, 586, 478, 480, 520, + }, + 196627: []int64{240, 397, 197, 239, 197, 198, 239, 491, 467, 656, 767, 778, 921, 1255, 312, 253, 398, 197, 239, 197, + 212, 239, 198, 212, 240, 301, 204, 239, 197, 198, 240, 397, 197, 239, 197, 198, 254, 198, 198, 239, + 301, 204, 239, 197, 197, 239, 398, 198, 242, 198, 198, 239, 197, 198, 240, 301, 205, 239, 198, 198, + 240, 398, 198, 238, 198, 198, 239, 547, 198, 238, 301, 204, 240, 197, 198, 238, 398, 197, 239, 198, + 198, 239, 198, 197, 239, 307, 197, 238, 197, 197, 239, 398, 197, 239, 197, 197, 239, 198, 198, 239, + }, + 327691: []int64{1900, 1700, 2000, 2000, 2000, 2000, 2000, 2300, 3600, 3900, 3900, 4200, 4300, 6900, 6900, 6900, 6900, 6900, 6900, 6900, + 6900, 6900, 5200, 5200, 5200, 5200, 4800, 3700, 2200, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + 1900, 1900, 1900, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1700, 1700, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1900, 1900, 1900, 1900, 1900, 1900, 2500, 3700, 3700, 3700, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, + 4000, 6000, 2100, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + }, + 196623: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65549: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327688: []int64{2300, 2300, 2300, 2300, 2300, 2400, 2400, 2400, 2400, 2200, 2100, 1900, 1800, 1700, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1700, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, + 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1500, 1500, 1400, 1400, 1300, 1200, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1100, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + }, + 65582: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 32: []int64{25, 24, 26, 25, 30, 27, 29, 68, 43, 51, 54, 65, 48, 46, 30, 24, 28, 26, 25, 29, + 24, 27, 35, 28, 28, 36, 34, 23, 32, 24, 22, 28, 20, 24, 25, 26, 27, 24, 26, 24, + 29, 25, 26, 23, 24, 29, 26, 25, 26, 22, 23, 26, 28, 22, 23, 25, 26, 24, 20, 25, + 31, 25, 19, 21, 22, 21, 30, 35, 32, 29, 27, 27, 24, 25, 24, 24, 23, 24, 25, 24, + 26, 26, 24, 23, 21, 30, 34, 23, 25, 25, 28, 29, 23, 22, 28, 24, 26, 33, 27, 23, + }, + 196616: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 26: []int64{217, 224, 259, 290, 282, 249, 216, 489, 724, 988, 925, 1006, 1057, 1432, 1233, 916, 342, 231, 273, 255, + 244, 208, 264, 269, 299, 239, 325, 290, 323, 235, 240, 228, 238, 259, 249, 239, 221, 242, 286, 273, + 247, 282, 293, 311, 229, 221, 218, 225, 260, 242, 254, 220, 229, 297, 330, 318, 300, 265, 296, 227, + 232, 217, 252, 276, 276, 240, 222, 617, 1020, 1019, 617, 300, 299, 315, 241, 230, 231, 229, 272, 249, + 236, 357, 392, 426, 276, 246, 305, 300, 326, 233, 231, 225, 242, 262, 248, 233, 213, 417, 449, 458, + }, + 31: []int64{43400, 44800, 51800, 58000, 56400, 49800, 43200, 97800, 144800, 197600, 185000, 201200, 211400, 286400, 246600, 183200, 68400, 46200, 54600, 51000, + 48800, 41600, 52800, 53800, 59800, 47800, 65000, 58000, 64600, 47000, 48000, 45600, 47600, 51800, 49800, 47800, 44200, 48400, 57200, 54600, + 49400, 56400, 58600, 62200, 45800, 44200, 43600, 45000, 52000, 48400, 50800, 44000, 45800, 59400, 66000, 63600, 60000, 53000, 59200, 45400, + 46400, 43400, 50400, 55200, 55200, 48000, 44400, 123400, 204000, 203800, 123400, 60000, 59800, 63000, 48200, 46000, 46200, 45800, 54400, 49800, + 47200, 71400, 78400, 85200, 55200, 49200, 61000, 60000, 65200, 46600, 46200, 45000, 48400, 52400, 49600, 46600, 42600, 83400, 89800, 91600, + }, + 25: []int64{50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + }, + 65553: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65607: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 28: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327681: []int64{1400, 1900, 2100, 2200, 2200, 2200, 1300, 7200, 7200, 7200, 5200, 8000, 8000, 11800, 11800, 11800, 5100, 1800, 2300, 2300, + 2300, 1400, 2700, 2700, 2700, 2300, 3800, 3800, 3800, 1900, 1900, 2100, 2100, 2100, 2000, 2000, 1600, 2100, 2700, 2700, + 2700, 4100, 4100, 4100, 1800, 1800, 1700, 1700, 1900, 1900, 1900, 1600, 1600, 4100, 4100, 4100, 3700, 3700, 3700, 1800, + 1800, 2000, 2000, 2000, 2000, 1800, 1600, 11400, 11400, 11400, 10900, 4000, 4000, 4000, 1800, 1800, 2200, 2200, 2200, 2200, + 2200, 7700, 7700, 7700, 2100, 2100, 3800, 3800, 3800, 1900, 1900, 2200, 2200, 2200, 2100, 2100, 1600, 9400, 9400, 9400, + }, + 262170: []int64{2861015, 2861045, 2861045, 2861075, 2861105, 2861105, 2861135, 2861165, 2861165, 2861195, 2861225, 2861225, 2861255, 2861285, 2861285, 2861315, 2861345, 2861345, 2861375, 2861405, + 2861405, 2861435, 2861465, 2861465, 2861495, 2861525, 2861525, 2861555, 2861585, 2861585, 2861615, 2861645, 2861645, 2861675, 2861705, 2861705, 2861735, 2861765, 2861765, 2861795, + 2861825, 2861825, 2861855, 2861885, 2861885, 2861915, 2861945, 2861945, 2861975, 2862005, 2862005, 2862035, 2862065, 2862065, 2862095, 2862125, 2862125, 2862155, 2862185, 2862185, + 2862215, 2862245, 2862245, 2862275, 2862305, 2862305, 2862335, 2862365, 2862365, 2862395, 2862425, 2862425, 2862455, 2862485, 2862485, 2862515, 2862545, 2862545, 2862575, 2862605, + 2862605, 2862635, 2862665, 2862665, 2862695, 2862725, 2862725, 2862755, 2862785, 2862785, 2862815, 2862845, 2862845, 2862875, 2862905, 2862905, 2862935, 2862965, 2862965, 2862995, + }, + 327686: []int64{2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2300, 2200, 2100, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + 1900, 1900, 1800, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1600, 1600, 1500, 1400, 1400, 1300, 1100, 1100, + 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1200, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1400, 1400, 1400, + }, + 327690: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327694: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 720898: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65619: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 5: []int64{211, 261, 260, 307, 215, 184, 197, 1121, 849, 876, 961, 980, 1134, 1856, 347, 195, 276, 196, 308, 193, + 194, 211, 350, 281, 204, 341, 300, 184, 273, 203, 198, 251, 221, 267, 208, 200, 212, 269, 326, 179, + 352, 260, 202, 255, 192, 185, 266, 191, 297, 189, 248, 192, 214, 529, 198, 344, 240, 178, 274, 179, + 205, 256, 260, 273, 225, 183, 210, 1708, 1002, 224, 356, 294, 211, 258, 218, 186, 266, 186, 305, 187, + 179, 668, 287, 273, 218, 355, 305, 197, 271, 178, 208, 260, 208, 270, 208, 186, 204, 816, 317, 183, + }, + 12: []int64{1711, 2153, 2171, 2558, 1771, 1503, 1598, 9515, 7128, 7337, 8062, 8181, 9498, 15824, 2927, 1603, 2297, 1593, 2559, 1573, + 1578, 1731, 2944, 2338, 1647, 2816, 2499, 1511, 2280, 1659, 1629, 2050, 1832, 2202, 1711, 1617, 1743, 2257, 2729, 1455, + 2939, 2164, 1645, 2127, 1545, 1509, 2199, 1561, 2466, 1539, 2068, 1561, 1767, 4473, 1625, 2855, 1997, 1445, 2282, 1465, + 1664, 2104, 2168, 2258, 1855, 1498, 1716, 14725, 8581, 1833, 2979, 2449, 1722, 2119, 1846, 1524, 2224, 1522, 2550, 1509, + 1477, 5683, 2386, 2276, 1781, 2955, 2527, 1618, 2245, 1464, 1687, 2148, 1688, 2238, 1720, 1516, 1656, 6995, 2664, 1458, + }, + 131079: []int64{185, 221, 201, 190, 213, 180, 183, 3168, 675, 806, 641, 1307, 1853, 985, 283, 202, 244, 188, 189, 223, + 190, 193, 516, 150, 100, 135, 127, 92, 160, 103, 101, 160, 203, 188, 238, 195, 206, 1006, 215, 168, + 234, 202, 185, 238, 197, 195, 229, 199, 207, 244, 700, 179, 231, 155, 122, 100, 153, 107, 107, 140, + 107, 91, 145, 100, 120, 147, 99, 3340, 2031, 123, 101, 153, 103, 120, 152, 89, 123, 236, 194, 234, + 181, 397, 544, 197, 221, 227, 201, 188, 205, 234, 183, 192, 222, 183, 238, 189, 185, 2573, 269, 168, + }, + 29: []int64{9, 10, 10, 10, 11, 8, 10, 43, 34, 38, 34, 67, 101, 52, 14, 8, 10, 9, 16, 7, + 8, 7, 14, 9, 8, 11, 12, 6, 9, 8, 7, 8, 10, 8, 9, 10, 9, 11, 11, 7, + 10, 9, 7, 9, 10, 8, 12, 9, 10, 10, 13, 9, 9, 10, 8, 9, 9, 5, 8, 7, + 8, 8, 8, 7, 9, 6, 7, 27, 19, 7, 10, 9, 7, 8, 8, 6, 9, 8, 9, 11, + 9, 19, 15, 10, 10, 11, 13, 10, 9, 9, 7, 8, 9, 7, 8, 7, 8, 18, 10, 7, + }, + 65537: []int64{3500, 3500, 3500, 3199, 3199, 3199, 3699, 3699, 3699, 3799, 3799, 3799, 3799, 3799, 3799, 3500, 3500, 3500, 3299, 3299, + 3299, 3399, 3399, 3399, 3399, 3399, 3399, 3199, 3199, 3199, 3299, 3299, 3299, 3299, 3299, 3299, 3199, 3199, 3199, 3199, + 3199, 3199, 3399, 3399, 3399, 3399, 3399, 3399, 3099, 3099, 3099, 3299, 3299, 3299, 3799, 3799, 3799, 3099, 3099, 3099, + 3500, 3500, 3500, 3399, 3399, 3399, 3399, 3399, 3399, 3699, 3699, 3699, 3699, 3699, 3699, 4000, 4000, 4000, 3899, 3899, + 3899, 3500, 3500, 3500, 3299, 3299, 3299, 3599, 3599, 3599, 3299, 3299, 3299, 3199, 3199, 3199, 3199, 3199, 3199, 3099, + }, + 65635: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65611: []int64{10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + }, + 65622: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 14: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65541: []int64{10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + }, + 327687: []int64{10500, 10500, 10500, 10500, 10500, 10500, 10500, 10500, 10500, 9400, 6400, 4600, 4400, 4400, 4500, 4500, 4500, 4500, 4500, 4500, + 4500, 4500, 4200, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, + 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 3900, 3800, 2700, 2600, 2100, 1900, 1800, + 1800, 1900, 1900, 1900, 1900, 1900, 1900, 2000, 2100, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2100, 2100, + 2100, 2200, 2200, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + }, + 65545: []int64{3670016, 3670016, 3670016, 3355440, 3355440, 3355440, 3879728, 3879728, 3879728, 3984588, 3984588, 3984588, 3984588, 3984588, 3984588, 3670016, 3670016, 3670016, 3460300, 3460300, + 3460300, 3565156, 3565156, 3565156, 3565156, 3565156, 3565156, 3355440, 3355440, 3355440, 3460300, 3460300, 3460300, 3460300, 3460300, 3460300, 3355440, 3355440, 3355440, 3355440, + 3355440, 3355440, 3565156, 3565156, 3565156, 3565156, 3565156, 3565156, 3250584, 3250584, 3250584, 3460300, 3460300, 3460300, 3984588, 3984588, 3984588, 3250584, 3250584, 3250584, + 3670016, 3670016, 3670016, 3565156, 3565156, 3565156, 3565156, 3565156, 3565156, 3879728, 3879728, 3879728, 3879728, 3879728, 3879728, 4194304, 4194304, 4194304, 4089444, 4089444, + 4089444, 3670016, 3670016, 3670016, 3460300, 3460300, 3460300, 3774872, 3774872, 3774872, 3460300, 3460300, 3460300, 3355440, 3355440, 3355440, 3355440, 3355440, 3355440, 3250584, + }, + 65586: []int64{57744, 57744, 57744, 57760, 57760, 57760, 57760, 57760, 57760, 57792, 57792, 57792, 57712, 57712, 57712, 57824, 57824, 57824, 57840, 57840, + 57840, 57856, 57856, 57856, 57776, 57776, 57776, 57888, 57888, 57888, 57696, 57696, 57696, 57712, 57712, 57712, 57824, 57824, 57824, 57856, + 57856, 57856, 57888, 57888, 57888, 57904, 57904, 57904, 57904, 57904, 57904, 57920, 57920, 57920, 57936, 57936, 57936, 57856, 57856, 57856, + 57968, 57968, 57872, 57984, 57984, 57984, 58000, 57904, 57904, 57824, 57824, 57824, 57840, 57840, 57840, 57760, 57760, 57760, 57776, 57888, + 57888, 57696, 57696, 57696, 57808, 57808, 57808, 57712, 57936, 57936, 57840, 57840, 57840, 57840, 57952, 57952, 57760, 57872, 57872, 57872, + }, + 65624: []int64{84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + }, + 65634: []int64{57744, 57744, 57744, 57760, 57760, 57760, 57760, 57760, 57760, 57792, 57792, 57792, 57712, 57712, 57712, 57824, 57824, 57824, 57840, 57840, + 57840, 57856, 57856, 57856, 57776, 57776, 57776, 57888, 57888, 57888, 57696, 57696, 57696, 57712, 57712, 57712, 57824, 57824, 57824, 57856, + 57856, 57856, 57888, 57888, 57888, 57904, 57904, 57904, 57904, 57904, 57904, 57920, 57920, 57920, 57936, 57936, 57936, 57856, 57856, 57856, + 57968, 57968, 57872, 57984, 57984, 57984, 58000, 57904, 57904, 57824, 57824, 57824, 57840, 57840, 57840, 57760, 57760, 57760, 57776, 57888, + 57888, 57696, 57696, 57696, 57808, 57808, 57808, 57712, 57936, 57936, 57840, 57840, 57840, 57840, 57952, 57952, 57760, 57872, 57872, 57872, + }, + 65626: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65629: []int64{10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + }, + 65621: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65623: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327695: []int64{160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + }, + 13: []int64{37978, 37501, 37462, 37066, 37839, 38140, 38011, 29354, 32106, 31822, 30939, 30913, 29139, 23406, 36679, 38089, 37345, 38110, 37061, 38081, + 38120, 37966, 36595, 37207, 38021, 36634, 37109, 38187, 37335, 38029, 38098, 37573, 37880, 37394, 37941, 38053, 37909, 37384, 36931, 38248, + 36492, 37654, 38055, 37596, 38126, 38157, 37319, 38123, 37220, 38150, 37587, 38157, 37893, 32654, 38076, 36665, 37776, 38207, 37424, 38241, + 37941, 37582, 37542, 37439, 37894, 38254, 37917, 24375, 30881, 37834, 36563, 37313, 37999, 37605, 37848, 38206, 37440, 38100, 37089, 38127, + 38208, 33912, 37191, 37407, 37916, 36568, 37091, 38034, 37393, 38237, 37976, 37508, 38001, 37419, 37956, 38192, 38043, 32389, 36953, 38248, + }, + 327682: []int64{800, 900, 1000, 1200, 1100, 1000, 800, 1900, 2900, 4000, 3700, 4000, 4200, 5800, 5000, 3700, 1400, 900, 1100, 1000, + 1000, 800, 1000, 1100, 1200, 900, 1300, 1100, 1300, 900, 900, 900, 900, 1000, 1000, 900, 800, 900, 1100, 1100, + 1000, 1100, 1100, 1200, 900, 900, 900, 900, 1000, 1000, 1000, 900, 900, 1200, 1300, 1300, 1200, 1100, 1200, 900, + 900, 800, 1000, 1100, 1100, 900, 800, 2500, 4200, 4200, 2500, 1200, 1200, 1300, 1000, 900, 900, 900, 1100, 1000, + 900, 1400, 1600, 1700, 1100, 900, 1200, 1200, 1300, 900, 900, 900, 900, 1000, 1000, 900, 800, 1700, 1800, 1900, + }, + 65595: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65618: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196621: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196620: []int64{53, 31, 40, 39, 38, 34, 42, 276, 414, 530, 550, 290, 179, 96, 38, 51, 46, 34, 40, 35, + 43, 38, 42, 31, 47, 47, 34, 43, 42, 39, 39, 36, 35, 42, 42, 41, 42, 47, 43, 41, + 36, 32, 40, 50, 36, 38, 43, 39, 36, 32, 35, 41, 45, 35, 36, 43, 42, 35, 43, 36, + 49, 41, 32, 51, 44, 45, 38, 49, 34, 47, 38, 42, 45, 49, 40, 28, 48, 34, 40, 34, + 47, 34, 48, 43, 33, 39, 34, 39, 39, 46, 36, 49, 38, 34, 33, 44, 40, 37, 51, 36, + }, + 24: []int64{83, 108, 82, 102, 104, 96, 105, 276, 193, 208, 261, 221, 312, 203, 105, 85, 105, 79, 92, 103, + 85, 85, 122, 120, 94, 151, 106, 87, 104, 91, 79, 106, 76, 104, 93, 89, 96, 93, 94, 84, + 150, 54, 83, 77, 85, 88, 130, 83, 84, 79, 82, 74, 89, 97, 81, 132, 65, 97, 82, 84, + 108, 89, 81, 86, 71, 71, 104, 225, 136, 94, 128, 72, 77, 78, 87, 79, 95, 100, 98, 90, + 83, 102, 99, 84, 82, 123, 100, 90, 98, 85, 95, 109, 74, 92, 91, 82, 86, 152, 98, 84, + }, + 65632: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65633: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 131073: []int64{290, 313, 292, 310, 317, 245, 267, 3654, 1052, 1289, 909, 5095, 7491, 1402, 397, 253, 294, 220, 577, 245, + 210, 217, 600, 219, 122, 157, 175, 101, 229, 125, 113, 194, 340, 282, 306, 277, 259, 1095, 289, 192, + 280, 238, 227, 291, 301, 299, 341, 324, 299, 355, 884, 262, 316, 195, 176, 127, 183, 124, 137, 164, + 139, 111, 175, 117, 159, 163, 114, 3475, 2124, 150, 117, 187, 132, 166, 192, 111, 160, 282, 259, 421, + 304, 948, 840, 318, 352, 312, 408, 316, 263, 269, 201, 230, 248, 208, 281, 211, 202, 2690, 347, 189, + }, + 10: []int64{38008, 37528, 37491, 37093, 37873, 38166, 38033, 29492, 32179, 31921, 30994, 31066, 29370, 23484, 36708, 38107, 37359, 38126, 37127, 38097, + 38132, 37979, 36623, 37238, 38032, 36645, 37131, 38194, 37359, 38040, 38105, 37590, 37920, 37431, 37973, 38079, 37929, 37422, 36953, 38261, + 36518, 37666, 38075, 37616, 38170, 38191, 37362, 38155, 37250, 38189, 37648, 38186, 37925, 35180, 38096, 36675, 37795, 38213, 37441, 38251, + 37950, 37594, 37558, 37443, 37914, 38263, 37927, 24447, 30924, 37848, 36574, 37326, 38012, 37623, 37861, 38214, 37454, 38126, 37111, 38178, + 38246, 33970, 37262, 37439, 37949, 36598, 37151, 38072, 37418, 38245, 37985, 37527, 38015, 37441, 37972, 38208, 38054, 32457, 36985, 38260, + }, + 327696: []int64{6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + }, + 196618: []int64{246, 416, 202, 245, 203, 203, 245, 510, 474, 664, 776, 792, 927, 1261, 318, 259, 416, 203, 245, 203, + 217, 245, 218, 218, 246, 309, 216, 245, 203, 203, 246, 415, 203, 245, 203, 203, 260, 204, 203, 245, + 309, 215, 245, 203, 203, 245, 416, 203, 248, 203, 203, 245, 203, 203, 246, 308, 216, 245, 203, 203, + 246, 416, 203, 244, 203, 203, 245, 562, 203, 244, 308, 215, 246, 203, 203, 244, 416, 203, 245, 203, + 203, 245, 204, 203, 245, 320, 203, 244, 203, 203, 245, 416, 203, 245, 203, 203, 245, 203, 203, 245, + }, + 65620: []int64{3145728, 3145728, 3145728, 2831152, 2831152, 2831152, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 2831152, 2831152, 2831152, 2621440, 2621440, + 2621440, 2516580, 2516580, 2516580, 2411724, 2411724, 2516580, 2516580, 2516580, 2516580, 2516580, 2516580, 2516580, 2726296, 2726296, 2726296, 2726296, 2726296, 2726296, 2411724, + 2411724, 2411724, 2621440, 2726296, 2726296, 2831152, 2831152, 2831152, 2411724, 2411724, 2411724, 2516580, 2516580, 2516580, 3040868, 3040868, 3040868, 2411724, 2621440, 2621440, + 2936012, 2936012, 2936012, 2936012, 2936012, 2936012, 2411724, 2411724, 2411724, 2936012, 2936012, 2936012, 2936012, 2936012, 2936012, 2621440, 2621440, 2621440, 2621440, 2621440, + 2621440, 2411724, 2411724, 2411724, 2306864, 2306864, 2306864, 2726296, 2726296, 2726296, 2306864, 2411724, 2621440, 2621440, 2621440, 2621440, 2411724, 2411724, 2411724, 2411724, + }, + 720896: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65599: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327693: []int64{10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 9300, 6200, 4300, 4100, 4100, 4200, 4200, 4200, 4200, 4200, 4200, + 4200, 4200, 3900, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, + 3800, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3600, 3500, 2600, 2500, 1900, 1800, 1800, + 1800, 1800, 1900, 1800, 1800, 1800, 1800, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 2100, 2100, + 2100, 2100, 2100, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2100, 2100, 2000, + }, + 327692: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196617: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 9: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 11: []int64{102, 98, 107, 101, 122, 108, 120, 272, 175, 206, 218, 262, 194, 187, 120, 97, 115, 108, 103, 117, + 97, 111, 140, 113, 115, 145, 140, 92, 130, 97, 90, 114, 80, 100, 103, 108, 109, 100, 106, 98, + 117, 103, 104, 95, 97, 116, 105, 101, 107, 91, 93, 108, 113, 92, 96, 101, 104, 97, 84, 102, + 127, 102, 80, 87, 91, 88, 123, 143, 128, 116, 109, 109, 98, 104, 99, 99, 95, 97, 101, 96, + 107, 105, 99, 94, 88, 121, 138, 95, 104, 100, 115, 118, 96, 90, 113, 98, 105, 133, 108, 94, + }, +} + +var HostMetricData = map[int32][]int64{ + 786434: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 786433: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196621: []int64{12, 6, 12, 14, 14, 3, 9, 10, 8, 8, 7, 4, 13, 10, 2, 10, 12, 5, 8, 14, + 4, 10, 10, 5, 7, 13, 4, 9, 13, 6, 10, 11, 5, 5, 15, 6, 7, 8, 6, 11, + 11, 3, 6, 16, 4, 5, 9, 11, 9, 9, 6, 10, 14, 4, 4, 13, 11, 4, 14, 7, + 10, 12, 4, 7, 14, 9, 3, 12, 9, 8, 9, 9, 3, 14, 9, 4, 11, 9, 5, 12, + 10, 3, 13, 10, 4, 8, 12, 7, 10, 8, 4, 14, 11, 2, 8, 15, 7, 6, 8, 9, + }, + 65648: []int64{125627793408, 125627793408, 129922760704, 129922760704, 132070244352, 132070244352, 133143986176, 133143986176, 133143986176, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, + 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 134217728000, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, + 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, 135291469824, + 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, + 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, 136365211648, + }, + 196617: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 720897: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 655379: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 786432: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65580: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65553: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327688: []int64{3000, 2800, 2700, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2400, 2300, 2300, 2300, 2300, 2300, 2400, + 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2300, 2400, 2400, 2300, 2400, 2300, 2300, + 2300, 2300, 2300, 2300, 2200, 2200, 2100, 2000, 2000, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1900, 2000, + 2000, 2000, 2000, 2000, 1900, 2000, 1900, 1900, 1900, 1900, 1900, 1900, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, + 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2100, 2000, 2000, 2000, 2000, 2000, 2100, 2100, 2100, 2100, 2000, 2000, + }, + 65569: []int64{8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + }, + 65618: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65599: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65651: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65623: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65621: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65545: []int64{5148100, 5152036, 5152036, 5068216, 5066748, 5066748, 4668288, 4667468, 4667532, 4415832, 4414556, 4414556, 4645244, 4643896, 4643832, 4476060, 4477808, 4477328, 4393504, 4394380, + 4394380, 4415352, 4414368, 4414368, 4582080, 4667244, 4709192, 4604396, 4601648, 4601236, 4223616, 4266064, 4308068, 4517720, 4517808, 4517808, 4895296, 4894212, 4894148, 4160148, + 4160652, 4160716, 4496260, 4497200, 4497260, 4895660, 4894568, 4894504, 4160500, 4160176, 4160176, 4789388, 4790264, 4790264, 4517628, 4559080, 4601088, 4601024, 4601032, 4601032, + 4831780, 4833388, 4833324, 4833324, 4831012, 4831076, 5313912, 5314316, 5314316, 4999740, 5003640, 5003544, 4584148, 4622376, 4622376, 4412724, 4580436, 4664320, 5146664, 5147684, + 5147684, 4833048, 4411892, 4453836, 4349040, 4394232, 4394168, 4394168, 4770512, 4770576, 4665656, 4202908, 4202908, 4832052, 5002572, 5002508, 4583080, 4498160, 4498224, 4707940, + }, + 5: []int64{1092, 1227, 1198, 1351, 2006, 529, 356, 461, 353, 508, 352, 354, 418, 546, 477, 362, 521, 476, 472, 467, + 369, 363, 431, 383, 462, 367, 360, 372, 469, 509, 343, 534, 408, 402, 416, 353, 346, 445, 390, 461, + 353, 411, 357, 437, 690, 353, 508, 424, 482, 434, 339, 363, 479, 426, 430, 387, 342, 406, 1875, 1155, + 393, 520, 501, 373, 419, 381, 366, 466, 353, 465, 344, 378, 822, 463, 435, 380, 575, 460, 481, 428, + 342, 409, 444, 367, 427, 374, 386, 366, 982, 485, 364, 584, 411, 372, 568, 374, 341, 454, 345, 445, + }, + 14: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65622: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65628: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65537: []int64{5407, 5407, 5407, 5407, 5411, 5407, 5407, 5407, 5407, 5410, 5407, 5407, 5407, 5407, 5410, 5407, 5407, 5407, 5407, 5407, + 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5409, 5406, 5406, 5406, 5406, 5409, 5406, 5406, 5406, 5406, 5407, 5406, + 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5409, 5406, 5406, 5406, 5406, 5411, 5406, 5406, 5406, 5406, 5408, 5406, 5406, + 5406, 5406, 5406, 5406, 5406, 5406, 5411, 5407, 5407, 5407, 5407, 5412, 5407, 5407, 5407, 5407, 5409, 5407, 5407, 5407, + 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5409, 5407, 5407, 5407, 5407, 5411, 5407, 5407, 5407, 5407, + }, + 65643: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65649: []int64{35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + }, + 11: []int64{442, 507, 594, 440, 424, 313, 293, 343, 303, 291, 355, 295, 320, 387, 294, 337, 379, 376, 322, 354, + 304, 291, 320, 275, 295, 307, 327, 336, 316, 316, 327, 311, 310, 310, 279, 324, 311, 311, 310, 297, + 280, 279, 313, 325, 283, 316, 303, 305, 340, 324, 308, 342, 322, 292, 292, 287, 278, 332, 401, 322, + 341, 342, 318, 296, 319, 300, 309, 337, 290, 313, 301, 327, 343, 293, 309, 272, 342, 365, 353, 315, + 308, 317, 362, 266, 291, 334, 325, 319, 352, 302, 333, 362, 308, 302, 315, 320, 291, 325, 337, 340, + }, + 24: []int64{201, 234, 226, 256, 192, 156, 146, 161, 149, 153, 164, 147, 150, 169, 162, 154, 186, 161, 153, 162, + 154, 143, 157, 143, 158, 153, 155, 155, 154, 149, 149, 180, 136, 152, 149, 150, 152, 171, 153, 146, + 149, 147, 144, 148, 146, 150, 168, 141, 161, 153, 152, 161, 153, 148, 146, 143, 145, 162, 200, 161, + 151, 169, 143, 145, 149, 150, 148, 158, 159, 152, 156, 152, 154, 155, 149, 148, 168, 157, 159, 158, + 150, 152, 166, 143, 151, 155, 148, 146, 180, 154, 151, 171, 152, 148, 204, 149, 148, 153, 149, 159, + }, + 196620: []int64{527, 555, 283, 168, 82, 35, 43, 38, 26, 32, 28, 39, 25, 32, 29, 37, 37, 29, 36, 28, + 35, 30, 26, 30, 35, 29, 37, 33, 34, 37, 31, 26, 27, 35, 35, 30, 31, 35, 33, 25, + 21, 32, 35, 29, 31, 31, 34, 31, 26, 34, 31, 39, 27, 28, 47, 31, 34, 34, 35, 27, + 37, 26, 38, 38, 35, 31, 25, 36, 25, 32, 25, 38, 32, 33, 34, 29, 28, 25, 34, 27, + 36, 33, 36, 28, 31, 25, 32, 33, 27, 44, 32, 36, 24, 38, 33, 24, 37, 28, 41, 27, + }, + 65586: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 524295: []int64{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65639: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 720898: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196613: []int64{12359, 13847, 11628, 12730, 13984, 5095, 4435, 8374, 4211, 5373, 4141, 4239, 4236, 4183, 4305, 5360, 7261, 5387, 4253, 4244, + 4291, 5295, 8625, 4227, 4310, 4256, 4233, 5376, 4226, 4323, 4232, 6436, 4482, 5155, 4311, 4271, 4243, 8395, 4262, 5290, + 4203, 4287, 4263, 4216, 4202, 5297, 6340, 4482, 4240, 4213, 4195, 5192, 8610, 4389, 4234, 4243, 4247, 5229, 4940, 4221, + 4192, 6390, 4424, 5325, 4357, 4193, 4315, 8399, 4195, 5331, 4307, 4246, 4339, 4309, 4229, 5336, 6628, 4303, 4215, 4213, + 4307, 5349, 8433, 4218, 4244, 4217, 4311, 5227, 4256, 4254, 4257, 7483, 4206, 5174, 4195, 4301, 4249, 8539, 4218, 5243, + }, + 1: []int64{2371, 2663, 2602, 2933, 4356, 1149, 773, 1002, 766, 1103, 764, 769, 908, 1187, 1035, 787, 1132, 1034, 1025, 1014, + 801, 789, 937, 832, 1004, 796, 783, 808, 1018, 1105, 745, 1161, 886, 874, 904, 766, 752, 967, 847, 1002, + 766, 893, 775, 950, 1499, 766, 1102, 920, 1047, 943, 737, 790, 1040, 926, 935, 840, 744, 883, 4070, 2508, + 853, 1129, 1088, 809, 909, 828, 795, 1012, 766, 1010, 748, 820, 1784, 1005, 944, 825, 1248, 1000, 1045, 929, + 743, 888, 965, 796, 927, 813, 838, 795, 2131, 1053, 790, 1269, 892, 807, 1233, 813, 742, 985, 749, 967, + }, + 720896: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65577: []int64{30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, + 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, + 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, + 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, + 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, 30618, + }, + 65620: []int64{4099524, 4103460, 4103460, 4061584, 4060116, 4060116, 3619708, 3618888, 3618952, 3451144, 3449868, 3449868, 3428896, 3427548, 3427484, 3196796, 3282432, 3386808, 3386872, 3387748, + 3387748, 3387748, 3386764, 3386764, 3764188, 3807412, 3807416, 3807480, 3804732, 3804320, 3196012, 3196516, 3238524, 3448176, 3553120, 3553120, 3909636, 3908552, 3908488, 3195456, + 3279848, 3279912, 3384768, 3385708, 3385768, 3826108, 3825016, 3824952, 3237752, 3447144, 3447144, 3887608, 3888484, 3888484, 3720712, 3887992, 3888056, 3363704, 3363712, 3363712, + 3762236, 3763844, 3763780, 3679896, 3677584, 3677648, 3573272, 3573676, 3573676, 3363964, 3367864, 3367768, 3116140, 3280200, 3280200, 3175404, 3343112, 3343112, 3804488, 3805508, + 3805508, 3386012, 3279432, 3489148, 3489212, 3492460, 3492396, 3282680, 3533196, 3533260, 3533196, 3196276, 3196276, 3615704, 3744280, 3744216, 3534504, 3491528, 3596448, 3596448, + }, + 65633: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196625: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196615: []int64{608, 692, 553, 618, 611, 312, 287, 556, 280, 360, 281, 282, 282, 281, 282, 347, 459, 357, 282, 280, + 282, 346, 555, 282, 281, 281, 282, 348, 283, 282, 282, 399, 299, 345, 281, 282, 281, 556, 281, 348, + 282, 281, 281, 284, 280, 348, 398, 300, 283, 280, 283, 347, 557, 296, 280, 284, 282, 345, 287, 281, + 280, 399, 297, 347, 282, 280, 283, 556, 282, 347, 282, 281, 283, 283, 281, 349, 414, 282, 280, 283, + 282, 347, 555, 281, 282, 282, 281, 348, 281, 282, 282, 470, 282, 347, 280, 282, 281, 558, 280, 347, + }, + 65630: []int64{961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, + 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, + 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, + 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, + 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, 961912, + }, + 65541: []int64{14892144, 14892144, 14892144, 14892144, 14892144, 14892144, 14892144, 14892144, 14892144, 14892148, 14892144, 14892132, 14892144, 14892144, 14892144, 14892144, 14892916, 14892208, 14892208, 14892208, + 14892196, 14892208, 14892208, 14892208, 14892196, 14892208, 14892208, 14892208, 14892208, 14890776, 14890304, 14890304, 14890304, 14890292, 14890304, 14890304, 14890304, 14890292, 14890304, 14890304, + 14890304, 14890304, 14890304, 14890304, 14890504, 14890304, 14890292, 14890304, 14890304, 14890304, 14890292, 14890304, 14890304, 14890304, 14890304, 14890304, 14890304, 14890304, 14890304, 14890292, + 14890304, 14890304, 14890304, 14890292, 14890304, 14890304, 14891100, 14893012, 14893012, 14893012, 14893012, 14892932, 14893000, 14893012, 14893012, 14893012, 14893000, 14893012, 14893012, 14893012, + 14893012, 14893012, 14893012, 14893012, 14893012, 14893000, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893012, 14893000, 14893012, + }, + 65647: []int64{268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + }, + 131078: []int64{489, 365, 4041, 5640, 417, 114, 51, 51, 31, 388, 22, 19, 26, 83, 81, 28, 23, 48, 9, 68, + 22, 13, 156, 137, 94, 69, 83, 53, 88, 86, 31, 46, 36, 42, 52, 105, 103, 112, 124, 92, + 111, 183, 82, 87, 55, 60, 27, 29, 18, 30, 23, 32, 20, 31, 17, 38, 16, 15, 136, 104, + 34, 16, 37, 28, 45, 39, 23, 37, 46, 65, 187, 123, 551, 296, 134, 136, 86, 208, 128, 57, + 36, 18, 38, 25, 25, 43, 21, 16, 117, 91, 27, 51, 31, 13, 118, 23, 8, 18, 20, 10, + }, + 65632: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65635: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196609: []int64{1283, 1482, 1350, 1564, 1898, 633, 548, 966, 484, 607, 485, 501, 529, 486, 501, 595, 773, 571, 529, 484, + 487, 593, 965, 485, 528, 485, 486, 610, 487, 487, 529, 709, 509, 593, 484, 486, 528, 966, 485, 598, + 486, 485, 528, 488, 485, 596, 709, 511, 529, 485, 488, 594, 967, 500, 527, 488, 486, 593, 850, 485, + 526, 710, 508, 595, 487, 485, 530, 966, 486, 594, 486, 485, 530, 488, 485, 596, 730, 485, 526, 487, + 486, 594, 965, 485, 529, 486, 485, 595, 485, 487, 528, 791, 486, 594, 484, 486, 528, 967, 485, 593, + }, + 65582: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 26: []int64{1144, 1078, 1165, 1217, 1592, 1383, 1058, 480, 367, 409, 392, 381, 359, 415, 420, 435, 374, 462, 470, 503, + 416, 378, 368, 376, 396, 384, 374, 357, 381, 425, 411, 385, 421, 435, 450, 367, 358, 355, 362, 396, + 379, 391, 358, 367, 434, 465, 452, 436, 446, 477, 407, 369, 354, 390, 414, 413, 375, 358, 755, 1160, + 1158, 755, 437, 438, 454, 380, 367, 368, 367, 411, 388, 373, 493, 529, 564, 415, 384, 444, 486, 512, + 417, 368, 364, 380, 400, 384, 370, 349, 554, 587, 597, 394, 435, 430, 505, 427, 414, 346, 357, 398, + }, + 196616: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65611: []int64{18083012, 18083020, 18082672, 18082320, 18096832, 18082492, 18082612, 18082524, 18082524, 18094536, 18082572, 18082408, 18082572, 18082524, 18091984, 18082412, 18083304, 18082412, 18082488, 18082560, + 18082556, 18082328, 18082328, 18082284, 18082288, 18082452, 18082412, 18082580, 18091268, 18081104, 18080724, 18080880, 18080836, 18088572, 18080924, 18080884, 18080764, 18080712, 18084604, 18080908, + 18080908, 18080864, 18080828, 18080828, 18081120, 18080800, 18080680, 18090892, 18080764, 18080764, 18080556, 18080876, 18095260, 18080768, 18080844, 18080848, 18080800, 18085776, 18080908, 18080480, + 18080556, 18080468, 18080424, 18080408, 18080532, 18080488, 18097776, 18083388, 18083248, 18083168, 18083548, 18099296, 18083164, 18083484, 18083440, 18083264, 18089172, 18083424, 18083264, 18083420, + 18083376, 18083632, 18083432, 18083388, 18083420, 18083300, 18083420, 18083340, 18083400, 18083356, 18091760, 18083240, 18083196, 18083212, 18083080, 18096856, 18083148, 18083208, 18083116, 18083196, + }, + 65557: []int64{26247692, 26247660, 26247884, 26247936, 26247912, 26247896, 26247884, 26248064, 26248056, 26247924, 26247980, 26248084, 26247812, 26247964, 26247916, 26247912, 26247996, 26248112, 26248032, 26248068, + 26248188, 26248088, 26247940, 26248096, 26248200, 26248040, 26248044, 26248052, 26248092, 26248084, 26248036, 26248056, 26248096, 26248080, 26248056, 26248052, 26248104, 26248164, 26248020, 26247996, + 26248016, 26248084, 26247964, 26247956, 26247908, 26247840, 26247932, 26247888, 26247920, 26247812, 26247900, 26247864, 26247840, 26247900, 26247916, 26247768, 26247876, 26247864, 26247660, 26248168, + 26248068, 26248104, 26248184, 26248232, 26248032, 26248144, 26247996, 26248160, 26248172, 26248112, 26248140, 26248100, 26248176, 26248064, 26248072, 26248076, 26248100, 26248084, 26248156, 26248076, + 26248180, 26248100, 26248064, 26248184, 26248076, 26248112, 26248100, 26248164, 26248012, 26248072, 26248100, 26247996, 26248064, 26248116, 26248068, 26248112, 26248084, 26248016, 26248144, 26248148, + }, + 327695: []int64{160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + }, + 27: []int64{0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327690: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65561: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327685: []int64{2400, 2500, 2800, 3000, 3500, 3600, 3600, 3600, 3500, 3500, 3500, 3500, 3500, 3400, 3200, 3000, 2800, 2600, 2400, 1900, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1700, 1700, 1700, 1700, 1700, 1800, 1700, 1700, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 2100, 2400, + 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2300, 2400, 2300, 2300, 2500, 2200, 1900, 1800, 1800, 1800, 1900, 1900, + 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1700, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + }, + 23: []int64{114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + }, + 327680: []int64{5200, 4900, 5300, 5600, 7200, 6200, 4800, 2300, 1800, 2000, 1900, 1800, 1700, 2000, 2000, 2100, 1800, 2200, 2300, 2400, + 2000, 1800, 1800, 1800, 1900, 1900, 1800, 1700, 1800, 2000, 2000, 1800, 2000, 2100, 2100, 1800, 1700, 1700, 1800, 1900, + 1800, 1900, 1700, 1800, 2100, 2200, 2100, 2100, 2100, 2200, 1900, 1800, 1700, 1900, 2000, 2000, 1800, 1700, 3500, 5200, + 5200, 3400, 2100, 2100, 2200, 1800, 1800, 1800, 1800, 2000, 1800, 1800, 2300, 2500, 2600, 2000, 1800, 2100, 2300, 2400, + 2000, 1800, 1800, 1800, 1900, 1800, 1800, 1700, 2600, 2700, 2800, 1900, 2100, 2100, 2400, 2000, 2000, 1700, 1700, 1900, + }, + 327682: []int64{4800, 4500, 4900, 5100, 6700, 5800, 4500, 2100, 1600, 1800, 1700, 1600, 1600, 1800, 1900, 1900, 1600, 2000, 2100, 2200, + 1800, 1600, 1600, 1700, 1800, 1700, 1600, 1500, 1600, 1800, 1800, 1700, 1800, 1800, 1900, 1600, 1600, 1600, 1600, 1800, + 1700, 1700, 1600, 1600, 1900, 2000, 2000, 1900, 2000, 2100, 1800, 1600, 1600, 1700, 1800, 1800, 1600, 1500, 3200, 4900, + 4900, 3200, 1900, 1900, 2000, 1700, 1600, 1600, 1600, 1800, 1700, 1600, 2200, 2300, 2400, 1800, 1600, 1900, 2100, 2200, + 1800, 1600, 1600, 1700, 1700, 1700, 1600, 1500, 2400, 2500, 2600, 1700, 1900, 1900, 2200, 1800, 1800, 1500, 1600, 1700, + }, + 13: []int64{30507, 29370, 29577, 28286, 22549, 35395, 36907, 35994, 36930, 35587, 36940, 36931, 36357, 35252, 35857, 36852, 35470, 35858, 35896, 35942, + 36795, 36838, 36254, 36675, 35972, 36812, 36872, 36765, 35918, 35578, 37015, 35361, 36446, 36500, 36382, 36939, 36991, 36129, 36612, 35981, + 36941, 36419, 36901, 36198, 34003, 36927, 35597, 36310, 35809, 36222, 37054, 36835, 35841, 36294, 36256, 36635, 37025, 36485, 23728, 29935, + 36589, 35483, 35638, 36758, 36361, 36690, 36815, 35951, 36933, 35958, 37004, 36727, 32864, 35963, 36220, 36703, 35029, 35973, 35809, 36283, + 37029, 36442, 36143, 36809, 36288, 36751, 36645, 36831, 31459, 35776, 36844, 34924, 36427, 36770, 35067, 36742, 37038, 36052, 37007, 36133, + }, + 327696: []int64{6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + }, + 327684: []int64{5000, 5300, 5500, 5600, 8100, 8100, 8100, 8100, 8100, 8100, 8100, 8100, 8100, 6600, 6600, 6600, 6600, 6300, 5000, 3000, + 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3100, 3000, 3000, 3000, 2800, 2800, 2800, 2800, 2800, 2800, 2800, + 2800, 2800, 2800, 2600, 2600, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 3600, 4800, + 4800, 4800, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 7100, 3300, 2900, 2900, 2900, 2900, 2900, 2900, + 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2800, 2900, 2900, 2900, 2900, 2900, 2800, 3100, 3100, 3100, 3100, 3100, 3100, + }, + 327691: []int64{4900, 4900, 5000, 5200, 7700, 7700, 7700, 7700, 7700, 7700, 7700, 7700, 7700, 6000, 6000, 6000, 6000, 5700, 4800, 2900, + 2800, 2800, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2600, 2600, 2600, 2600, 2600, 2600, 2600, + 2600, 2600, 2600, 2500, 2500, 2600, 2600, 2600, 2700, 2700, 2700, 2700, 2700, 2700, 2700, 2700, 2700, 2700, 3300, 4600, + 4600, 4600, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 6800, 3100, 2700, 2700, 2700, 2700, 2700, 2700, + 2700, 2700, 2700, 2700, 2700, 2700, 2700, 2600, 2700, 2800, 2800, 2800, 2800, 2600, 2900, 2900, 2900, 2900, 2900, 2900, + }, + 327692: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65549: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 10: []int64{70023, 69041, 68994, 67423, 61621, 74879, 76270, 75520, 76292, 75277, 76212, 76328, 75767, 74735, 75448, 76202, 74760, 75242, 75240, 75507, + 76158, 76286, 75747, 76105, 75603, 76122, 76222, 76086, 75538, 75135, 76414, 74674, 75772, 76192, 75750, 76329, 76346, 75522, 76299, 75414, + 76309, 75807, 76331, 76055, 73442, 76254, 74847, 75925, 75240, 75555, 76395, 76106, 75712, 75715, 75632, 76070, 76416, 76057, 62685, 69153, + 75966, 74759, 75466, 76168, 75749, 76032, 76373, 75576, 76225, 75289, 76308, 76384, 72178, 75402, 75594, 76098, 74719, 75249, 75086, 75570, + 76411, 76151, 75617, 76196, 75625, 76105, 76373, 76233, 70604, 75121, 76386, 74489, 75778, 76169, 73856, 76442, 76439, 75576, 76432, 75432, + }, + 196623: []int64{0, 5, 4, 5, 2, 0, 1, 4, 3, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 4, + 2, 0, 0, 0, 4, 6, 2, 3, 8, 0, 0, 4, 0, 3, 0, 0, 0, 4, 0, 3, + 0, 0, 0, 4, 0, 2, 7, 1, 0, 5, 0, 1, 2, 0, 0, 4, 0, 0, 10, 0, + 0, 4, 0, 0, 3, 0, 0, 9, 1, 1, 4, 0, 0, 4, 0, 0, 1, 1, 0, 4, + 0, 0, 0, 3, 0, 4, 0, 0, 3, 5, 1, 4, 1, 0, 0, 2, 1, 4, 0, 0, + }, + 65646: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 262144: []int64{2953795, 2953815, 2953835, 2953855, 2953875, 2953895, 2953915, 2953935, 2953955, 2953975, 2953995, 2954015, 2954035, 2954055, 2954075, 2954095, 2954115, 2954135, 2954155, 2954175, + 2954195, 2954215, 2954235, 2954255, 2954275, 2954295, 2954315, 2954335, 2954355, 2954375, 2954395, 2954415, 2954435, 2954455, 2954475, 2954495, 2954515, 2954535, 2954555, 2954575, + 2954595, 2954615, 2954635, 2954655, 2954675, 2954695, 2954715, 2954735, 2954755, 2954775, 2954795, 2954815, 2954835, 2954855, 2954875, 2954895, 2954915, 2954935, 2954955, 2954975, + 2954995, 2955015, 2955035, 2955055, 2955075, 2955095, 2955115, 2955135, 2955155, 2955175, 2955195, 2955215, 2955235, 2955255, 2955275, 2955295, 2955315, 2955335, 2955355, 2955375, + 2955395, 2955415, 2955435, 2955455, 2955475, 2955495, 2955515, 2955535, 2955555, 2955575, 2955595, 2955615, 2955635, 2955655, 2955675, 2955695, 2955715, 2955735, 2955755, 2955775, + }, + 8: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 131079: []int64{807, 777, 1425, 1861, 991, 291, 217, 255, 197, 198, 231, 200, 611, 546, 162, 101, 143, 145, 102, 168, + 126, 113, 166, 213, 189, 245, 205, 206, 1023, 228, 170, 242, 219, 193, 245, 207, 196, 236, 209, 212, + 252, 710, 180, 253, 167, 124, 108, 171, 117, 122, 152, 112, 98, 156, 107, 127, 156, 100, 3353, 2054, + 129, 119, 173, 110, 130, 163, 90, 131, 247, 198, 244, 191, 398, 575, 209, 230, 234, 218, 203, 224, + 251, 188, 199, 233, 185, 250, 199, 186, 2582, 315, 176, 231, 266, 201, 256, 244, 190, 111, 158, 106, + }, + 131073: []int64{1296, 1143, 5467, 7501, 1409, 406, 269, 306, 228, 587, 254, 220, 638, 630, 243, 130, 167, 194, 111, 237, + 148, 126, 323, 350, 283, 315, 288, 259, 1112, 315, 202, 288, 255, 236, 298, 312, 299, 348, 334, 305, + 364, 894, 263, 340, 222, 184, 136, 200, 136, 153, 175, 144, 119, 187, 124, 166, 172, 116, 3489, 2158, + 163, 135, 210, 138, 175, 203, 114, 168, 293, 263, 431, 315, 949, 871, 343, 366, 321, 427, 331, 281, + 287, 206, 237, 258, 211, 294, 221, 203, 2699, 406, 203, 283, 297, 215, 374, 267, 199, 129, 179, 116, + }, + 65589: []int64{131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + }, + 65625: []int64{25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, + 25763, 25763, 25763, 25763, 25764, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, + 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, + 25763, 25763, 25763, 25764, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, + 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, 25763, + }, + 196612: []int64{16073, 18141, 16872, 19194, 25039, 6049, 4761, 7618, 3957, 4738, 3863, 4232, 4595, 3991, 4294, 4812, 7141, 4722, 4705, 3940, + 4134, 4807, 7470, 3830, 4575, 3872, 3968, 5070, 3991, 4036, 4699, 6582, 4164, 4810, 3901, 3809, 4601, 7575, 4003, 4657, + 4015, 4071, 4631, 3860, 4051, 4897, 6622, 4210, 4588, 4105, 4011, 4776, 7653, 3964, 4498, 4075, 4043, 4714, 9240, 3980, + 4452, 6584, 4162, 4865, 3995, 3999, 4528, 7621, 3956, 4759, 3999, 4062, 4604, 4019, 3924, 4620, 6589, 3762, 4330, 3922, + 3887, 4735, 7568, 3912, 4638, 3918, 3941, 4691, 3897, 4093, 4584, 7166, 3790, 4669, 3988, 3857, 4563, 7553, 3992, 4641, + }, + 196619: []int64{608, 692, 553, 618, 611, 312, 287, 556, 280, 360, 281, 282, 282, 281, 282, 347, 459, 357, 282, 280, + 282, 346, 555, 282, 281, 281, 282, 348, 283, 282, 282, 399, 299, 345, 281, 282, 281, 556, 281, 348, + 282, 281, 281, 284, 280, 348, 398, 300, 283, 280, 283, 347, 557, 296, 280, 284, 282, 345, 287, 281, + 280, 399, 297, 347, 282, 280, 283, 556, 282, 347, 282, 281, 283, 283, 281, 349, 414, 282, 280, 283, + 282, 347, 555, 281, 282, 282, 281, 348, 281, 282, 282, 470, 282, 347, 280, 282, 281, 558, 280, 347, + }, + 196622: []int64{65, 61, 48, 47, 49, 52, 55, 36, 53, 43, 38, 36, 60, 53, 67, 50, 53, 59, 58, 39, + 70, 71, 48, 62, 86, 46, 47, 71, 40, 44, 62, 42, 37, 77, 57, 39, 53, 45, 48, 72, + 40, 49, 82, 55, 45, 78, 69, 55, 65, 58, 91, 59, 67, 45, 67, 51, 50, 46, 57, 48, + 54, 41, 40, 47, 71, 39, 53, 39, 46, 52, 55, 41, 51, 61, 38, 51, 60, 53, 54, 37, + 37, 43, 42, 53, 62, 40, 40, 43, 48, 55, 51, 52, 39, 43, 40, 76, 52, 38, 62, 44, + }, + 65603: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 196626: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327689: []int64{8200, 5600, 9100, 9100, 12000, 12000, 12000, 5700, 2700, 2800, 2800, 2800, 2000, 3600, 3600, 3600, 3000, 4800, 4800, 4800, + 2900, 2600, 2900, 2900, 2900, 2400, 2400, 2200, 2900, 3400, 3400, 3400, 4800, 4800, 4800, 2600, 2600, 2700, 2700, 2700, + 2500, 2500, 2300, 2300, 4800, 4800, 4800, 4600, 4600, 4600, 2700, 2500, 2900, 2900, 2900, 2600, 2300, 2200, 11900, 11900, + 11900, 11300, 5000, 5000, 5000, 2600, 2600, 3100, 3100, 3100, 2700, 2700, 8200, 8200, 8200, 2700, 2700, 4700, 4700, 4700, + 2800, 2600, 2900, 2900, 2900, 2600, 2600, 2200, 9900, 9900, 9900, 2900, 4700, 4700, 5100, 5100, 5100, 3000, 3000, 3000, + }, + 16: []int64{1450, 1649, 1581, 1756, 2475, 782, 586, 716, 585, 756, 591, 582, 652, 816, 737, 597, 810, 731, 710, 720, + 604, 594, 686, 614, 715, 606, 595, 611, 711, 756, 571, 803, 651, 642, 653, 580, 580, 710, 629, 698, + 583, 647, 579, 673, 943, 586, 781, 651, 736, 674, 570, 603, 731, 667, 669, 612, 570, 676, 2294, 1460, + 626, 790, 736, 602, 651, 614, 597, 722, 596, 709, 580, 620, 1087, 713, 672, 611, 846, 704, 728, 672, + 572, 647, 693, 602, 666, 605, 615, 599, 1292, 736, 596, 864, 650, 605, 889, 610, 569, 703, 571, 688, + }, + 196624: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65573: []int64{14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + }, + 458759: []int64{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327681: []int64{8600, 6200, 9900, 9900, 12600, 12600, 12600, 6300, 2900, 3000, 3000, 3000, 2200, 3800, 3800, 3800, 3200, 5000, 5000, 5000, + 3000, 2800, 3200, 3200, 3200, 2600, 2600, 2400, 3100, 3600, 3600, 3600, 5300, 5300, 5300, 2800, 2800, 2900, 2900, 2900, + 2600, 2600, 2400, 2400, 4900, 4900, 4900, 4800, 4800, 4800, 2800, 2700, 3100, 3100, 3100, 2800, 2400, 2500, 12200, 12200, + 12200, 12000, 5200, 5200, 5200, 2700, 2700, 3300, 3300, 3300, 2900, 2900, 8400, 8400, 8400, 2900, 2900, 5000, 5000, 5000, + 2900, 2800, 3400, 3400, 3400, 2800, 2800, 2400, 10300, 10300, 10300, 3100, 4900, 4900, 5600, 5600, 5600, 3300, 3300, 3300, + }, + 131095: []int64{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65650: []int64{5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + }, + 65615: []int64{1747308, 1747308, 1746928, 1746884, 1746996, 1746840, 1746928, 1746840, 1746840, 1747020, 1746840, 1746704, 1746884, 1746840, 1746840, 1746884, 1746976, 1746708, 1746752, 1746752, + 1746708, 1746752, 1746752, 1746708, 1746616, 1746752, 1746708, 1746752, 1746752, 1746708, 1746752, 1746796, 1746752, 1746796, 1746796, 1746752, 1746796, 1746660, 1746752, 1746796, + 1746796, 1746752, 1746796, 1746796, 1746884, 1746928, 1746836, 1746928, 1746972, 1746972, 1746792, 1746972, 1746972, 1746928, 1746972, 1746972, 1746928, 1746972, 1746972, 1746572, + 1746752, 1746708, 1746664, 1746664, 1746708, 1746664, 1746912, 1746708, 1746664, 1746664, 1746708, 1746664, 1746528, 1746708, 1746664, 1746664, 1746752, 1746708, 1746708, 1746752, + 1746708, 1746708, 1746752, 1746708, 1746708, 1746616, 1746708, 1746708, 1746752, 1746708, 1746708, 1746752, 1746708, 1746708, 1746752, 1746708, 1746708, 1746752, 1746616, 1746708, + }, + 327694: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 327683: []int64{2600, 2800, 3000, 3200, 3800, 3900, 3900, 3900, 3800, 3800, 3800, 3800, 3900, 3600, 3400, 3200, 3000, 2800, 2600, 2100, + 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 1900, 2000, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 2000, 1900, 2000, 1900, 1900, 2300, 2600, + 2600, 2600, 2600, 2600, 2500, 2600, 2600, 2600, 2500, 2500, 2500, 2500, 2700, 2300, 2000, 2000, 2000, 2000, 2100, 2100, + 2100, 2100, 2100, 2100, 2100, 2100, 2100, 1900, 2100, 2100, 2100, 2100, 2100, 2000, 2100, 2100, 2100, 2100, 2100, 2100, + }, + 327693: []int64{10000, 6800, 5200, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4700, 4700, 4700, 4700, 4700, 4700, + 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, 4700, + 4700, 4700, 4700, 4500, 4400, 4200, 3600, 3300, 2900, 2700, 2700, 2700, 2700, 2700, 2600, 2600, 2600, 2600, 2700, 2900, + 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2700, 2700, 2700, 2700, 2800, 2800, + 2800, 2800, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, + }, + 12: []int64{9486, 10654, 10409, 11735, 17425, 4598, 3092, 4011, 3066, 4413, 3059, 3076, 3635, 4749, 4143, 3150, 4531, 4138, 4101, 4058, + 3206, 3159, 3748, 3332, 4018, 3188, 3132, 3236, 4073, 4423, 2984, 4644, 3548, 3498, 3617, 3065, 3011, 3870, 3391, 4010, + 3066, 3575, 3102, 3801, 5998, 3066, 4411, 3683, 4191, 3775, 2950, 3160, 4163, 3706, 3741, 3364, 2977, 3533, 16280, 10036, + 3415, 4519, 4354, 3240, 3639, 3314, 3183, 4051, 3065, 4041, 2994, 3283, 7138, 4024, 3780, 3302, 4995, 4000, 4182, 3719, + 2974, 3554, 3863, 3186, 3710, 3254, 3354, 3184, 8526, 4216, 3161, 5076, 3568, 3231, 4932, 3254, 2968, 3942, 2997, 3871, + }, + 327687: []int64{10200, 7100, 5600, 5300, 5300, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5200, 4900, 4900, 4900, 5000, 5000, 5000, + 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, + 5000, 5000, 5000, 4800, 4800, 4700, 3800, 3600, 3000, 2900, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2900, 3100, + 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 2900, 2900, 2900, 2900, 2900, 2900, + 2900, 2900, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, + }, + 65619: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 32: []int64{55, 63, 74, 55, 53, 39, 36, 42, 37, 36, 44, 36, 40, 48, 36, 42, 47, 47, 40, 44, + 38, 36, 40, 34, 36, 38, 40, 42, 39, 39, 40, 38, 38, 38, 34, 40, 38, 38, 38, 37, + 35, 34, 39, 40, 35, 39, 37, 38, 42, 40, 38, 42, 40, 36, 36, 35, 34, 41, 50, 40, + 42, 42, 39, 37, 39, 37, 38, 42, 36, 39, 37, 40, 42, 36, 38, 34, 42, 45, 44, 39, + 38, 39, 45, 33, 36, 41, 40, 39, 44, 37, 41, 45, 38, 37, 39, 40, 36, 40, 42, 42, + }, + 196618: []int64{674, 789, 796, 945, 1287, 321, 261, 410, 203, 247, 203, 218, 246, 204, 219, 247, 314, 214, 247, 203, + 204, 247, 409, 203, 246, 203, 204, 262, 204, 204, 246, 310, 210, 247, 203, 203, 246, 409, 204, 250, + 204, 204, 246, 204, 204, 247, 310, 211, 246, 204, 204, 247, 410, 204, 246, 204, 204, 247, 563, 204, + 246, 310, 210, 247, 204, 204, 246, 409, 204, 247, 204, 204, 246, 204, 204, 247, 316, 203, 246, 203, + 203, 247, 409, 204, 246, 203, 203, 247, 204, 204, 246, 320, 203, 247, 204, 203, 247, 409, 204, 246, + }, + 196614: []int64{674, 789, 796, 945, 1287, 321, 261, 410, 203, 247, 203, 218, 246, 204, 219, 247, 314, 214, 247, 203, + 204, 247, 409, 203, 246, 203, 204, 262, 204, 204, 246, 310, 210, 247, 203, 203, 246, 409, 204, 250, + 204, 204, 246, 204, 204, 247, 310, 211, 246, 204, 204, 247, 410, 204, 246, 204, 204, 247, 563, 204, + 246, 310, 210, 247, 204, 204, 246, 409, 204, 247, 204, 204, 246, 204, 204, 247, 316, 203, 246, 203, + 203, 247, 409, 204, 246, 203, 203, 247, 204, 204, 246, 320, 203, 247, 204, 203, 247, 409, 204, 246, + }, + 20: []int64{2651, 2993, 2857, 3209, 4556, 1453, 1097, 1315, 1091, 1417, 1095, 1082, 1225, 1503, 1371, 1105, 1499, 1360, 1335, 1345, + 1119, 1109, 1261, 1150, 1332, 1129, 1105, 1138, 1324, 1407, 1063, 1485, 1207, 1186, 1221, 1078, 1082, 1317, 1174, 1316, + 1090, 1213, 1084, 1259, 1786, 1093, 1448, 1209, 1372, 1262, 1070, 1118, 1359, 1244, 1247, 1152, 1066, 1215, 4266, 2733, + 1167, 1466, 1366, 1122, 1225, 1146, 1113, 1333, 1104, 1325, 1076, 1151, 2059, 1314, 1256, 1142, 1566, 1299, 1363, 1257, + 1063, 1205, 1289, 1123, 1250, 1128, 1155, 1119, 2410, 1370, 1113, 1592, 1193, 1122, 1559, 1138, 1063, 1292, 1069, 1281, + }, + 327686: []int64{3200, 3000, 2900, 2700, 2700, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2700, 2600, 2600, 2600, 2600, 2600, 2600, + 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, + 2600, 2600, 2600, 2500, 2400, 2400, 2300, 2200, 2100, 2000, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 2000, 2100, + 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + }, +} + +var ResourcePoolMetricData = map[int32][]int64{ + 65586: []int64{100088, 100088, 100088, 100120, 100136, 100136, 100088, 100088, 100088, 99928, 100040, 100040, 100072, 100184, 100184, 99912, 99912, 99912, 100040, 100040, + 100040, 100168, 100168, 100168, 100216, 100328, 100328, 100376, 100376, 100376, 100216, 100328, 100328, 100360, 100360, 100360, 100280, 100280, 100280, 100120, + 100120, 100120, 100040, 100040, 100040, 100152, 100184, 100088, 100120, 100120, 100120, 100056, 100184, 100184, 100104, 100008, 100008, 99960, 100072, 100072, + 100104, 100216, 100120, 100136, 100376, 100376, 100088, 100312, 100312, 100328, 100248, 100248, 100152, 100200, 100200, 100104, 100216, 100216, 100216, 100248, + 100248, 100056, 100184, 100184, 100184, 100024, 100024, 100024, 99864, 99864, 99976, 99992, 100104, 99912, 99944, 99944, 99752, 100008, 100008, 99912, + }, + 65582: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65591: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65545: []int64{4675424, 4674976, 4674976, 4423348, 4422168, 4422168, 4652808, 4652812, 4652812, 4484880, 4484988, 4484988, 4401132, 4401248, 4401248, 4421948, 4421944, 4421944, 4589848, 4673740, + 4715684, 4610952, 4610976, 4610976, 4233536, 4275568, 4317508, 4527272, 4527268, 4527268, 4904596, 4904704, 4904704, 4170736, 4170740, 4170740, 4506204, 4506196, 4506196, 4904496, + 4904508, 4904508, 4170424, 4170416, 4170416, 4799676, 4799708, 4799612, 4527008, 4568956, 4610900, 4610836, 4610956, 4610956, 4841560, 4841508, 4841508, 4841460, 4841536, 4841536, + 5323920, 5324036, 5323940, 5009380, 5009608, 5009608, 4589892, 4632056, 4632056, 4422356, 4590056, 4673940, 5156188, 5156236, 5156236, 4841568, 4422256, 4464200, 4359340, 4401308, + 4401308, 4401116, 4778724, 4778724, 4673868, 4212344, 4212344, 4841488, 5009132, 5009132, 4589816, 4505964, 4506076, 4715600, 4547796, 4547796, 4337888, 4338148, 4338148, 4233192, + }, + 65553: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 65541: []int64{14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, + 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, + 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, + 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, + 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, 14712240, + }, + 65549: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 5: []int64{311, 393, 308, 427, 310, 310, 370, 475, 399, 319, 460, 422, 426, 389, 327, 315, 372, 336, 386, 326, + 316, 328, 391, 446, 296, 489, 366, 319, 372, 308, 302, 386, 304, 417, 309, 367, 311, 340, 646, 307, + 467, 357, 422, 391, 296, 324, 376, 378, 389, 342, 300, 328, 1836, 1120, 349, 471, 419, 327, 374, 338, + 300, 386, 312, 422, 304, 296, 783, 409, 389, 337, 486, 421, 438, 389, 293, 328, 381, 324, 387, 328, + 302, 323, 937, 437, 301, 503, 369, 327, 539, 295, 297, 392, 293, 403, 323, 341, 337, 506, 397, 318, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go b/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go new file mode 100644 index 00000000..90382dd3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go @@ -0,0 +1,165 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "time" + + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +// ResourcePool is the default template for ResourcePool properties. +// Capture method: +// govc pool.info "*" -dump +var ResourcePool = mo.ResourcePool{ + ManagedEntity: mo.ManagedEntity{ + ExtensibleManagedObject: mo.ExtensibleManagedObject{ + Self: types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, + Value: nil, + AvailableField: nil, + }, + Parent: &types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, + CustomValue: nil, + OverallStatus: "green", + ConfigStatus: "green", + ConfigIssue: nil, + EffectiveRole: []int32{-1}, + Permission: nil, + Name: "Resources", + DisabledMethod: []string{"CreateVApp", "CreateChildVM_Task"}, + RecentTask: nil, + DeclaredAlarmState: nil, + TriggeredAlarmState: nil, + AlarmActionsEnabled: (*bool)(nil), + Tag: nil, + }, + Summary: &types.ResourcePoolSummary{ + DynamicData: types.DynamicData{}, + Name: "Resources", + Config: types.ResourceConfigSpec{ + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, + ChangeVersion: "", + LastModified: (*time.Time)(nil), + CpuAllocation: types.ResourceAllocationInfo{ + DynamicData: types.DynamicData{}, + Reservation: types.NewInt64(4121), + ExpandableReservation: types.NewBool(false), + Limit: types.NewInt64(4121), + Shares: &types.SharesInfo{ + DynamicData: types.DynamicData{}, + Shares: 9000, + Level: "custom", + }, + OverheadLimit: nil, + }, + MemoryAllocation: types.ResourceAllocationInfo{ + DynamicData: types.DynamicData{}, + Reservation: types.NewInt64(961), + ExpandableReservation: types.NewBool(false), + Limit: types.NewInt64(961), + Shares: &types.SharesInfo{ + DynamicData: types.DynamicData{}, + Shares: 9000, + Level: "custom", + }, + OverheadLimit: nil, + }, + }, + Runtime: types.ResourcePoolRuntimeInfo{ + DynamicData: types.DynamicData{}, + Memory: types.ResourcePoolResourceUsage{ + DynamicData: types.DynamicData{}, + ReservationUsed: 0, + ReservationUsedForVm: 0, + UnreservedForPool: 1007681536, + UnreservedForVm: 1007681536, + OverallUsage: 0, + MaxUsage: 1007681536, + }, + Cpu: types.ResourcePoolResourceUsage{ + DynamicData: types.DynamicData{}, + ReservationUsed: 0, + ReservationUsedForVm: 0, + UnreservedForPool: 4121, + UnreservedForVm: 4121, + OverallUsage: 0, + MaxUsage: 4121, + }, + OverallStatus: "green", + }, + QuickStats: (*types.ResourcePoolQuickStats)(nil), + ConfiguredMemoryMB: 0, + }, + Runtime: types.ResourcePoolRuntimeInfo{ + DynamicData: types.DynamicData{}, + Memory: types.ResourcePoolResourceUsage{ + DynamicData: types.DynamicData{}, + ReservationUsed: 0, + ReservationUsedForVm: 0, + UnreservedForPool: 1007681536, + UnreservedForVm: 1007681536, + OverallUsage: 0, + MaxUsage: 1007681536, + }, + Cpu: types.ResourcePoolResourceUsage{ + DynamicData: types.DynamicData{}, + ReservationUsed: 0, + ReservationUsedForVm: 0, + UnreservedForPool: 4121, + UnreservedForVm: 4121, + OverallUsage: 0, + MaxUsage: 4121, + }, + OverallStatus: "green", + }, + Owner: types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, + ResourcePool: nil, + Vm: nil, + Config: types.ResourceConfigSpec{ + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, + ChangeVersion: "", + LastModified: (*time.Time)(nil), + CpuAllocation: types.ResourceAllocationInfo{ + DynamicData: types.DynamicData{}, + Reservation: types.NewInt64(4121), + ExpandableReservation: types.NewBool(false), + Limit: types.NewInt64(4121), + Shares: &types.SharesInfo{ + DynamicData: types.DynamicData{}, + Shares: 9000, + Level: "custom", + }, + OverheadLimit: nil, + }, + MemoryAllocation: types.ResourceAllocationInfo{ + DynamicData: types.DynamicData{}, + Reservation: types.NewInt64(961), + ExpandableReservation: types.NewBool(false), + Limit: types.NewInt64(961), + Shares: &types.SharesInfo{ + DynamicData: types.DynamicData{}, + Shares: 9000, + Level: "custom", + }, + OverheadLimit: nil, + }, + }, + ChildConfiguration: nil, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go b/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go new file mode 100644 index 00000000..3aefd1d8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go @@ -0,0 +1,76 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +// RootFolder is the default template for the ServiceContent rootFolder property. +// Capture method: +// govc folder.info -dump / +var RootFolder = mo.Folder{ + ManagedEntity: mo.ManagedEntity{ + ExtensibleManagedObject: mo.ExtensibleManagedObject{ + Self: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, + Value: nil, + AvailableField: nil, + }, + Parent: (*types.ManagedObjectReference)(nil), + CustomValue: nil, + OverallStatus: "green", + ConfigStatus: "green", + ConfigIssue: nil, + EffectiveRole: []int32{-1}, + Permission: []types.Permission{ + { + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, + Principal: "vpxuser", + Group: false, + RoleId: -1, + Propagate: true, + }, + { + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, + Principal: "dcui", + Group: false, + RoleId: -1, + Propagate: true, + }, + { + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, + Principal: "root", + Group: false, + RoleId: -1, + Propagate: true, + }, + }, + Name: "ha-folder-root", + DisabledMethod: nil, + RecentTask: nil, + DeclaredAlarmState: nil, + TriggeredAlarmState: nil, + AlarmActionsEnabled: (*bool)(nil), + Tag: nil, + }, + ChildType: []string{"Datacenter"}, + ChildEntity: nil, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go b/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go new file mode 100644 index 00000000..cc8938f8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go @@ -0,0 +1,86 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// ServiceContent is the default template for the ServiceInstance content property. +// Capture method: +// govc object.collect -s -dump - content +var ServiceContent = types.ServiceContent{ + RootFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, + PropertyCollector: types.ManagedObjectReference{Type: "PropertyCollector", Value: "ha-property-collector"}, + ViewManager: &types.ManagedObjectReference{Type: "ViewManager", Value: "ViewManager"}, + About: types.AboutInfo{ + Name: "VMware ESXi", + FullName: "VMware ESXi 6.5.0 build-5969303", + Vendor: "VMware, Inc.", + Version: "6.5.0", + Build: "5969303", + LocaleVersion: "INTL", + LocaleBuild: "000", + OsType: "vmnix-x86", + ProductLineId: "embeddedEsx", + ApiType: "HostAgent", + ApiVersion: "6.5", + InstanceUuid: "", + LicenseProductName: "VMware ESX Server", + LicenseProductVersion: "6.0", + }, + Setting: &types.ManagedObjectReference{Type: "OptionManager", Value: "HostAgentSettings"}, + UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "ha-user-directory"}, + SessionManager: &types.ManagedObjectReference{Type: "SessionManager", Value: "ha-sessionmgr"}, + AuthorizationManager: &types.ManagedObjectReference{Type: "AuthorizationManager", Value: "ha-authmgr"}, + ServiceManager: &types.ManagedObjectReference{Type: "ServiceManager", Value: "ha-servicemanager"}, + PerfManager: &types.ManagedObjectReference{Type: "PerformanceManager", Value: "ha-perfmgr"}, + ScheduledTaskManager: (*types.ManagedObjectReference)(nil), + AlarmManager: (*types.ManagedObjectReference)(nil), + EventManager: &types.ManagedObjectReference{Type: "EventManager", Value: "ha-eventmgr"}, + TaskManager: &types.ManagedObjectReference{Type: "TaskManager", Value: "ha-taskmgr"}, + ExtensionManager: (*types.ManagedObjectReference)(nil), + CustomizationSpecManager: (*types.ManagedObjectReference)(nil), + CustomFieldsManager: (*types.ManagedObjectReference)(nil), + AccountManager: &types.ManagedObjectReference{Type: "HostLocalAccountManager", Value: "ha-localacctmgr"}, + DiagnosticManager: &types.ManagedObjectReference{Type: "DiagnosticManager", Value: "ha-diagnosticmgr"}, + LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "ha-license-manager"}, + SearchIndex: &types.ManagedObjectReference{Type: "SearchIndex", Value: "ha-searchindex"}, + FileManager: &types.ManagedObjectReference{Type: "FileManager", Value: "ha-nfc-file-manager"}, + DatastoreNamespaceManager: &types.ManagedObjectReference{Type: "DatastoreNamespaceManager", Value: "ha-datastore-namespace-manager"}, + VirtualDiskManager: &types.ManagedObjectReference{Type: "VirtualDiskManager", Value: "ha-vdiskmanager"}, + VirtualizationManager: (*types.ManagedObjectReference)(nil), + SnmpSystem: (*types.ManagedObjectReference)(nil), + VmProvisioningChecker: (*types.ManagedObjectReference)(nil), + VmCompatibilityChecker: (*types.ManagedObjectReference)(nil), + OvfManager: &types.ManagedObjectReference{Type: "OvfManager", Value: "ha-ovf-manager"}, + IpPoolManager: (*types.ManagedObjectReference)(nil), + DvSwitchManager: &types.ManagedObjectReference{Type: "DistributedVirtualSwitchManager", Value: "ha-dvsmanager"}, + HostProfileManager: (*types.ManagedObjectReference)(nil), + ClusterProfileManager: (*types.ManagedObjectReference)(nil), + ComplianceManager: (*types.ManagedObjectReference)(nil), + LocalizationManager: &types.ManagedObjectReference{Type: "LocalizationManager", Value: "ha-l10n-manager"}, + StorageResourceManager: &types.ManagedObjectReference{Type: "StorageResourceManager", Value: "ha-storage-resource-manager"}, + GuestOperationsManager: &types.ManagedObjectReference{Type: "GuestOperationsManager", Value: "ha-guest-operations-manager"}, + OverheadMemoryManager: (*types.ManagedObjectReference)(nil), + CertificateManager: (*types.ManagedObjectReference)(nil), + IoFilterManager: (*types.ManagedObjectReference)(nil), + VStorageObjectManager: &types.ManagedObjectReference{Type: "HostVStorageObjectManager", Value: "ha-vstorage-object-manager"}, + HostSpecManager: (*types.ManagedObjectReference)(nil), + CryptoManager: &types.ManagedObjectReference{Type: "CryptoManager", Value: "ha-crypto-manager"}, + HealthUpdateManager: (*types.ManagedObjectReference)(nil), + FailoverClusterConfigurator: (*types.ManagedObjectReference)(nil), + FailoverClusterManager: (*types.ManagedObjectReference)(nil), +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/setting.go b/vendor/github.com/vmware/govmomi/simulator/esx/setting.go new file mode 100644 index 00000000..757dfc03 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/setting.go @@ -0,0 +1,33 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// HardwareVersion is the default VirtualMachine.Config.Version +var HardwareVersion = "vmx-13" + +// Setting is captured from ESX's HostSystem.configManager.advancedOption +// Capture method: +// govc object.collect -s -dump $(govc object.collect -s HostSystem:ha-host configManager.advancedOption) setting +var Setting = []types.BaseOptionValue{ + // This list is currently pruned to include a single option for testing + &types.OptionValue{ + Key: "Config.HostAgent.log.level", + Value: "info", + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/task_manager.go b/vendor/github.com/vmware/govmomi/simulator/esx/task_manager.go new file mode 100644 index 00000000..b429ad49 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/task_manager.go @@ -0,0 +1,10412 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// Description is the default template for the TaskManager description property. +// Capture method: +// govc object.collect -s -dump TaskManager:ha-taskmgr description +var Description = types.TaskDescription{ + MethodInfo: []types.BaseElementDescription{ + &types.ElementDescription{ + Description: types.Description{ + Label: "Set cluster resource custom value", + Summary: "Sets the value of a custom field for a cluster of objects as a unified compute-resource", + }, + Key: "ClusterComputeResource.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload cluster", + Summary: "Reloads the cluster", + }, + Key: "ClusterComputeResource.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename cluster", + Summary: "Rename the compute-resource", + }, + Key: "ClusterComputeResource.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove cluster", + Summary: "Deletes the cluster compute-resource and removes it from its parent folder (if any)", + }, + Key: "ClusterComputeResource.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the cluster", + }, + Key: "ClusterComputeResource.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Removes a set of tags from the cluster", + }, + Key: "ClusterComputeResource.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ClusterComputeResource.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure cluster", + Summary: "Reconfigures a cluster", + }, + Key: "ClusterComputeResource.reconfigureEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure cluster", + Summary: "Reconfigures a cluster", + }, + Key: "ClusterComputeResource.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply recommendation", + Summary: "Applies a recommendation", + }, + Key: "ClusterComputeResource.applyRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel recommendation", + Summary: "Cancels a recommendation", + }, + Key: "ClusterComputeResource.cancelRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recommended power On hosts", + Summary: "Get recommendations for a location to power on a specific virtual machine", + }, + Key: "ClusterComputeResource.recommendHostsForVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add host", + Summary: "Adds a new host to the cluster", + }, + Key: "ClusterComputeResource.addHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add host and enable lockdown", + Summary: "Adds a new host to the cluster and enables lockdown mode on the host", + }, + Key: "ClusterComputeResource.addHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move host into cluster", + Summary: "Moves a set of existing hosts into the cluster", + }, + Key: "ClusterComputeResource.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move host into cluster", + Summary: "Moves a host into the cluster", + }, + Key: "ClusterComputeResource.moveHostInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh recommendations", + Summary: "Refreshes the list of recommendations", + }, + Key: "ClusterComputeResource.refreshRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve EVC", + Summary: "Retrieve Enhanced vMotion Compatibility information for this cluster", + }, + Key: "ClusterComputeResource.evcManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve transitional EVC manager", + Summary: "Retrieve the transitional EVC manager for this cluster", + }, + Key: "ClusterComputeResource.transitionalEVCManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve DAS advanced runtime information", + Summary: "Retrieve DAS advanced runtime information for this cluster", + }, + Key: "ClusterComputeResource.retrieveDasAdvancedRuntimeInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vShpere HA data for cluster", + Summary: "Retrieves HA data for a cluster", + }, + Key: "ClusterComputeResource.retrieveDasData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check VM admission in vSphere HA cluster", + Summary: "Checks if HA admission control allows a set of virtual machines to be powered on in the cluster", + }, + Key: "ClusterComputeResource.checkDasAdmission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check cluster for vSphere HA configuration", + Summary: "Check how the specified HA config will affect the cluster state if high availability is enabled", + }, + Key: "ClusterComputeResource.checkReconfigureDas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "checkReconfigureDasVmcp", + Summary: "checkReconfigureDasVmcp", + }, + Key: "ClusterComputeResource.checkReconfigureDasVmcp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DRS recommends hosts to evacuate", + Summary: "DRS recommends hosts to evacuate", + }, + Key: "ClusterComputeResource.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find Fault Tolerance compatible hosts for placing secondary VM", + Summary: "Find the set of Fault Tolerance compatible hosts for placing secondary of a given primary virtual machine", + }, + Key: "ClusterComputeResource.queryFaultToleranceCompatibleHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find Fault Tolerance compatible datastores for a VM", + Summary: "Find the set of Fault Tolerance compatible datastores for a given virtual machine", + }, + Key: "ClusterComputeResource.queryFaultToleranceCompatibleDatastores", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Verify FaultToleranceConfigSpec", + Summary: "Verify whether a given FaultToleranceConfigSpec satisfies the requirements for Fault Tolerance", + }, + Key: "ClusterComputeResource.verifyFaultToleranceConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check Fault Tolerance compatibility for VM", + Summary: "Check whether a VM is compatible for turning on Fault Tolerance", + }, + Key: "ClusterComputeResource.queryCompatibilityForFaultTolerance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Call DRS for cross vMotion placement recommendations", + Summary: "Calls vSphere DRS for placement recommendations when migrating a VM across vCenter Server instances and virtual switches", + }, + Key: "ClusterComputeResource.placeVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find rules for VM", + Summary: "Locates all affinity and anti-affinity rules the specified VM participates in", + }, + Key: "ClusterComputeResource.findRulesForVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "stampAllRulesWithUuid", + Summary: "stampAllRulesWithUuid", + }, + Key: "ClusterComputeResource.stampAllRulesWithUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getResourceUsage", + Summary: "getResourceUsage", + }, + Key: "ClusterComputeResource.getResourceUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryDrmDumpHistory", + Summary: "queryDrmDumpHistory", + }, + Key: "ClusterComputeResource.queryDrmDumpHistory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateDrmBundle", + Summary: "generateDrmBundle", + }, + Key: "ClusterComputeResource.generateDrmBundle", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datastore cluster custom value", + Summary: "Sets the value of a custom field of a datastore cluster", + }, + Key: "StoragePod.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datastore cluster", + Summary: "Reloads the datastore cluster", + }, + Key: "StoragePod.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a datastore cluster", + Summary: "Rename a datastore cluster", + }, + Key: "StoragePod.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a datastore cluster", + Summary: "Remove a datastore cluster", + }, + Key: "StoragePod.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tags to datastore cluster", + Summary: "Adds a set of tags to a datastore cluster", + }, + Key: "StoragePod.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tags from datastore cluster", + Summary: "Removes a set of tags from a datastore cluster", + }, + Key: "StoragePod.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "StoragePod.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create folder", + Summary: "Creates a new folder", + }, + Key: "StoragePod.createFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move datastores into a datastore cluster", + Summary: "Move datastores into a datastore cluster", + }, + Key: "StoragePod.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a new virtual machine", + }, + Key: "StoragePod.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this datastore cluster", + }, + Key: "StoragePod.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Creates a new cluster compute-resource in this datastore cluster", + }, + Key: "StoragePod.createCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Creates a new cluster compute-resource in this datastore cluster", + }, + Key: "StoragePod.createClusterEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host", + Summary: "Creates a new single-host compute-resource", + }, + Key: "StoragePod.addStandaloneHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host and enable lockdown mode", + Summary: "Creates a new single-host compute-resource and enables lockdown mode on the host", + }, + Key: "StoragePod.addStandaloneHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datacenter", + Summary: "Create a new datacenter with the given name", + }, + Key: "StoragePod.createDatacenter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister and delete", + Summary: "Recursively deletes all child virtual machine folders and unregisters all virtual machines", + }, + Key: "StoragePod.unregisterAndDestroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vSphere Distributed Switch", + Summary: "Creates a vSphere Distributed Switch", + }, + Key: "StoragePod.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datastore cluster", + Summary: "Creates a new datastore cluster", + }, + Key: "StoragePod.createStoragePod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch set custom value", + Summary: "vSphere Distributed Switch set custom value", + }, + Key: "DistributedVirtualSwitch.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch reload", + Summary: "vSphere Distributed Switch reload", + }, + Key: "DistributedVirtualSwitch.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vSphere Distributed Switch", + Summary: "Rename vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vSphere Distributed Switch", + Summary: "Delete vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch add tag", + Summary: "vSphere Distributed Switch add tag", + }, + Key: "DistributedVirtualSwitch.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch remove tag", + Summary: "vSphere Distributed Switch remove tag", + }, + Key: "DistributedVirtualSwitch.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "DistributedVirtualSwitch.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPort keys", + Summary: "Retrieve dvPort keys", + }, + Key: "DistributedVirtualSwitch.fetchPortKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPorts", + Summary: "Retrieve dvPorts", + }, + Key: "DistributedVirtualSwitch.fetchPorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSphere Distributed Switch used virtual LAN ID", + Summary: "Query vSphere Distributed Switch used virtual LAN ID", + }, + Key: "DistributedVirtualSwitch.queryUsedVlanId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch product specification operation", + Summary: "vSphere Distributed Switch product specification operation", + }, + Key: "DistributedVirtualSwitch.performProductSpecOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Merge vSphere Distributed Switches", + Summary: "Merge vSphere Distributed Switches", + }, + Key: "DistributedVirtualSwitch.merge", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "DistributedVirtualSwitch.addPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move dvPorts", + Summary: "Move dvPorts", + }, + Key: "DistributedVirtualSwitch.movePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch capability", + Summary: "Update vSphere Distributed Switch capability", + }, + Key: "DistributedVirtualSwitch.updateCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure dvPort", + Summary: "Reconfigure dvPort", + }, + Key: "DistributedVirtualSwitch.reconfigurePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh dvPort state", + Summary: "Refresh dvPort state", + }, + Key: "DistributedVirtualSwitch.refreshPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify host in vSphere Distributed Switch", + Summary: "Rectify host in vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network resource pools on vSphere Distributed Switch", + Summary: "Update network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.updateNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add network resource pools on vSphere Distributed Switch", + Summary: "Add network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.addNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network resource pools on vSphere Distributed Switch", + Summary: "Remove network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.removeNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure a network resource pool on a distributed switch", + Summary: "Reconfigures the network resource pool on a distributed switch", + }, + Key: "DistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network I/O control on vSphere Distributed Switch", + Summary: "Update network I/O control on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.enableNetworkResourceManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get vSphere Distributed Switch configuration spec to rollback", + Summary: "Get vSphere Distributed Switch configuration spec to rollback", + }, + Key: "DistributedVirtualSwitch.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "DistributedVirtualSwitch.addPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update health check configuration on vSphere Distributed Switch", + Summary: "Update health check configuration on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.updateHealthCheckConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "DistributedVirtualSwitch.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datacenter custom value", + Summary: "Sets the value of a custom field of a datacenter", + }, + Key: "Datacenter.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datacenter", + Summary: "Reloads the datacenter", + }, + Key: "Datacenter.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datacenter", + Summary: "Rename the datacenter", + }, + Key: "Datacenter.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datacenter", + Summary: "Deletes the datacenter and removes it from its parent folder (if any)", + }, + Key: "Datacenter.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the datacenter", + }, + Key: "Datacenter.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the datacenter", + }, + Key: "Datacenter.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Datacenter.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query connection information", + Summary: "Gets information of a host that can be used in the connection wizard", + }, + Key: "Datacenter.queryConnectionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConnectionInfoViaSpec", + Summary: "queryConnectionInfoViaSpec", + }, + Key: "Datacenter.queryConnectionInfoViaSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initialize powering On", + Summary: "Initialize tasks for powering on virtual machines", + }, + Key: "Datacenter.powerOnVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration option descriptor", + Summary: "Retrieve the list of configuration option keys available in this datacenter", + }, + Key: "Datacenter.queryConfigOptionDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure datacenter", + Summary: "Reconfigures the datacenter", + }, + Key: "Datacenter.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual machine custom value", + Summary: "Sets the value of a custom field of a virtual machine", + }, + Key: "VirtualMachine.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine", + Summary: "Reloads the virtual machine", + }, + Key: "VirtualMachine.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename virtual machine", + Summary: "Rename the virtual machine", + }, + Key: "VirtualMachine.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine", + Summary: "Delete this virtual machine. Deleting this virtual machine also deletes its contents and removes it from its parent folder (if any).", + }, + Key: "VirtualMachine.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Tag", + Summary: "Add a set of tags to the virtual machine", + }, + Key: "VirtualMachine.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the virtual machine", + }, + Key: "VirtualMachine.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "VirtualMachine.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh virtual machine storage information", + Summary: "Refresh storage information for the virtual machine", + }, + Key: "VirtualMachine.refreshStorageInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual machine backup agent", + Summary: "Retrieves the backup agent for the virtual machine", + }, + Key: "VirtualMachine.retrieveBackupAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine snapshot", + Summary: "Create a new snapshot of this virtual machine", + }, + Key: "VirtualMachine.createSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine snapshot", + Summary: "Create a new snapshot of this virtual machine", + }, + Key: "VirtualMachine.createSnapshotEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revert to current snapshot", + Summary: "Reverts the virtual machine to the current snapshot", + }, + Key: "VirtualMachine.revertToCurrentSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove all snapshots", + Summary: "Remove all the snapshots associated with this virtual machine", + }, + Key: "VirtualMachine.removeAllSnapshots", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate virtual machine disk files", + Summary: "Consolidate disk files of this virtual machine", + }, + Key: "VirtualMachine.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Estimate virtual machine disks consolidation space requirement", + Summary: "Estimate the temporary space required to consolidate disk files.", + }, + Key: "VirtualMachine.estimateStorageRequirementForConsolidate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine", + Summary: "Reconfigure this virtual machine", + }, + Key: "VirtualMachine.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade VM compatibility", + Summary: "Upgrade virtual machine compatibility to the latest version", + }, + Key: "VirtualMachine.upgradeVirtualHardware", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extract OVF environment", + Summary: "Returns the XML document that represents the OVF environment", + }, + Key: "VirtualMachine.extractOvfEnvironment", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power On this virtual machine", + }, + Key: "VirtualMachine.powerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power Off virtual machine", + Summary: "Power Off this virtual machine", + }, + Key: "VirtualMachine.powerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend virtual machine", + Summary: "Suspend virtual machine", + }, + Key: "VirtualMachine.suspend", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset virtual machine", + Summary: "Reset this virtual machine", + }, + Key: "VirtualMachine.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS shutdown", + Summary: "Issues a command to the guest operating system to perform a clean shutdown of all services", + }, + Key: "VirtualMachine.shutdownGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS reboot", + Summary: "Issues a command to the guest operating system asking it to perform a reboot", + }, + Key: "VirtualMachine.rebootGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS standby", + Summary: "Issues a command to the guest operating system to prepare for a suspend operation", + }, + Key: "VirtualMachine.standbyGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Answer virtual machine question", + Summary: "Respond to a question that is blocking this virtual machine", + }, + Key: "VirtualMachine.answer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Customize virtual machine guest OS", + Summary: "Customize a virtual machine's guest operating system", + }, + Key: "VirtualMachine.customize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check customization specification", + Summary: "Check the customization specification against the virtual machine configuration", + }, + Key: "VirtualMachine.checkCustomizationSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Migrate virtual machine", + Summary: "Migrate a virtual machine's execution to a specific resource pool or host", + }, + Key: "VirtualMachine.migrate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate virtual machine", + Summary: "Relocate the virtual machine to a specific location", + }, + Key: "VirtualMachine.relocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone virtual machine", + Summary: "Creates a clone of this virtual machine", + }, + Key: "VirtualMachine.clone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "instantClone", + Summary: "instantClone", + }, + Key: "VirtualMachine.instantClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveInstantCloneChildren", + Summary: "retrieveInstantCloneChildren", + }, + Key: "VirtualMachine.retrieveInstantCloneChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveInstantCloneParent", + Summary: "retrieveInstantCloneParent", + }, + Key: "VirtualMachine.retrieveInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "markAsInstantCloneParent", + Summary: "markAsInstantCloneParent", + }, + Key: "VirtualMachine.markAsInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmarkAsInstantCloneParent", + Summary: "unmarkAsInstantCloneParent", + }, + Key: "VirtualMachine.unmarkAsInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "createForkChild", + Summary: "createForkChild", + }, + Key: "VirtualMachine.createForkChild", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "enableForkParent", + Summary: "enableForkParent", + }, + Key: "VirtualMachine.enableForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "disableForkParent", + Summary: "disableForkParent", + }, + Key: "VirtualMachine.disableForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveForkChildren", + Summary: "retrieveForkChildren", + }, + Key: "VirtualMachine.retrieveForkChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveForkParent", + Summary: "retrieveForkParent", + }, + Key: "VirtualMachine.retrieveForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the virtual machine as an OVF template", + }, + Key: "VirtualMachine.exportVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark virtual machine as template", + Summary: "Virtual machine is marked as a template", + }, + Key: "VirtualMachine.markAsTemplate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark as virtual machine", + Summary: "Reassociate a virtual machine with a host or resource pool", + }, + Key: "VirtualMachine.markAsVirtualMachine", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister virtual machine", + Summary: "Removes this virtual machine from the inventory without removing any of the virtual machine files on disk", + }, + Key: "VirtualMachine.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset guest OS information", + Summary: "Clears cached guest OS information", + }, + Key: "VirtualMachine.resetGuestInformation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools Installer Mount", + Summary: "Mounts the tools CD installer as a CD-ROM for the guest", + }, + Key: "VirtualMachine.mountToolsInstaller", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Connect VMware Tools CD", + Summary: "Connects the VMware Tools CD image to the guest", + }, + Key: "VirtualMachine.mountToolsInstallerImage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount tools installer", + Summary: "Unmounts the tools installer", + }, + Key: "VirtualMachine.unmountToolsInstaller", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools install or upgrade", + Summary: "Issues a command to the guest operating system to install VMware Tools or upgrade to the latest revision", + }, + Key: "VirtualMachine.upgradeTools", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools upgrade", + Summary: "Upgrades VMware Tools in the virtual machine from specified CD image", + }, + Key: "VirtualMachine.upgradeToolsFromImage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire virtual machine Mouse Keyboard Screen Ticket", + Summary: "Establishing a Mouse Keyboard Screen Ticket", + }, + Key: "VirtualMachine.acquireMksTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire virtual machine service ticket", + Summary: "Establishing a specific remote virtual machine connection ticket", + }, + Key: "VirtualMachine.acquireTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set console window screen resolution", + Summary: "Sets the console window's resolution as specified", + }, + Key: "VirtualMachine.setScreenResolution", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Defragment all disks", + Summary: "Defragment all virtual disks attached to this virtual machine", + }, + Key: "VirtualMachine.defragmentAllDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn On Fault Tolerance", + Summary: "Secondary VM created", + }, + Key: "VirtualMachine.createSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn On Fault Tolerance", + Summary: "Creates a secondary VM", + }, + Key: "VirtualMachine.createSecondaryEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn Off Fault Tolerance", + Summary: "Remove all secondaries for this virtual machine and turn off Fault Tolerance", + }, + Key: "VirtualMachine.turnOffFaultTolerance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test failover", + Summary: "Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM", + }, + Key: "VirtualMachine.makePrimary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test restarting Secondary VM", + Summary: "Test restart Secondary VM by stopping a Secondary VM in the Fault Tolerance pair", + }, + Key: "VirtualMachine.terminateFaultTolerantVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend Fault Tolerance", + Summary: "Suspend Fault Tolerance on this virtual machine", + }, + Key: "VirtualMachine.disableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resume Fault Tolerance", + Summary: "Resume Fault Tolerance on this virtual machine", + }, + Key: "VirtualMachine.enableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual machine display topology", + Summary: "Set the display topology for the virtual machine", + }, + Key: "VirtualMachine.setDisplayTopology", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start recording", + Summary: "Start a recording session on this virtual machine", + }, + Key: "VirtualMachine.startRecording", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop recording", + Summary: "Stop a currently active recording session on this virtual machine", + }, + Key: "VirtualMachine.stopRecording", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start replaying", + Summary: "Start a replay session on this virtual machine", + }, + Key: "VirtualMachine.startReplaying", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop replaying", + Summary: "Stop a replay session on this virtual machine", + }, + Key: "VirtualMachine.stopReplaying", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Promote virtual machine disks", + Summary: "Promote disks of the virtual machine that have delta disk backings", + }, + Key: "VirtualMachine.promoteDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Take virtual machine screenshot", + Summary: "Take a screenshot of a virtual machine's guest OS console", + }, + Key: "VirtualMachine.createScreenshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Put USB HID scan codes", + Summary: "Injects a sequence of USB HID scan codes into the keyboard", + }, + Key: "VirtualMachine.putUsbScanCodes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine disk changes", + Summary: "Query for changes to the virtual machine's disks since a given point in the past", + }, + Key: "VirtualMachine.queryChangedDiskAreas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unowned virtual machine files", + Summary: "Query files of the virtual machine not owned by the datastore principal user", + }, + Key: "VirtualMachine.queryUnownedFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine from new configuration", + Summary: "Reloads the virtual machine from a new configuration file", + }, + Key: "VirtualMachine.reloadFromPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Virtual Machine Fault Tolerance Compatibility", + Summary: "Check if virtual machine is compatible for Fault Tolerance", + }, + Key: "VirtualMachine.queryFaultToleranceCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFaultToleranceCompatibilityEx", + Summary: "queryFaultToleranceCompatibilityEx", + }, + Key: "VirtualMachine.queryFaultToleranceCompatibilityEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend and resume the virtual machine", + Summary: "Suspend and resume the virtual machine", + }, + Key: "VirtualMachine.invokeFSR", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Hard stop virtual machine", + Summary: "Hard stop virtual machine", + }, + Key: "VirtualMachine.terminate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get native clone capability", + Summary: "Check if native clone is supported on the virtual machine", + }, + Key: "VirtualMachine.isNativeSnapshotCapable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure quorum file path prefix", + Summary: "Configures the quorum file path prefix for the virtual machine", + }, + Key: "VirtualMachine.configureQuorumFilePathPrefix", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve quorum file path prefix", + Summary: "Retrieves the quorum file path prefix for the virtual machine", + }, + Key: "VirtualMachine.retrieveQuorumFilePathPrefix", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inject OVF Environment into virtual machine", + Summary: "Specifies the OVF Environments to be injected into and returned for a virtual machine", + }, + Key: "VirtualMachine.injectOvfEnvironment", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Wipe a Flex-SE virtual disk", + Summary: "Wipes a Flex-SE virtual disk", + }, + Key: "VirtualMachine.wipeDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Shrink a Flex-SE virtual disk", + Summary: "Shrinks a Flex-SE virtual disk", + }, + Key: "VirtualMachine.shrinkDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send NMI", + Summary: "Sends a non-maskable interrupt (NMI) to the virtual machine", + }, + Key: "VirtualMachine.sendNMI", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine", + Summary: "Reloads the virtual machine", + }, + Key: "VirtualMachine.reloadEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach a virtual disk", + Summary: "Attach an existing virtual disk to the virtual machine", + }, + Key: "VirtualMachine.attachDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach a virtual disk", + Summary: "Detach a virtual disk from the virtual machine", + }, + Key: "VirtualMachine.detachDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply EVC Mode", + Summary: "Apply EVC Mode to a virtual machine", + }, + Key: "VirtualMachine.applyEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vApp custom value", + Summary: "Sets the value of a custom field on a vApp", + }, + Key: "VirtualApp.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload vApp", + Summary: "Reload the vApp", + }, + Key: "VirtualApp.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vApp", + Summary: "Rename the vApp", + }, + Key: "VirtualApp.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vApp", + Summary: "Delete the vApp, including all child vApps and virtual machines", + }, + Key: "VirtualApp.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the vApp", + }, + Key: "VirtualApp.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the vApp", + }, + Key: "VirtualApp.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "VirtualApp.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vApp resource configuration", + Summary: "Updates the resource configuration for the vApp", + }, + Key: "VirtualApp.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move into vApp", + Summary: "Moves a set of entities into this vApp", + }, + Key: "VirtualApp.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update child resource configuration", + Summary: "Change resource configuration of a set of children of the vApp", + }, + Key: "VirtualApp.updateChildResourceConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create resource pool", + Summary: "Creates a new resource pool", + }, + Key: "VirtualApp.createResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vApp children", + Summary: "Deletes all child resource pools recursively", + }, + Key: "VirtualApp.destroyChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vApp", + Summary: "Creates a child vApp of this vApp", + }, + Key: "VirtualApp.createVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine in this vApp", + }, + Key: "VirtualApp.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this vApp", + }, + Key: "VirtualApp.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "VirtualApp.importVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Virtual App resource configuration options", + Summary: "Returns configuration options for a set of resources for a Virtual App", + }, + Key: "VirtualApp.queryResourceConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh Virtual App runtime information", + Summary: "Refreshes the resource usage runtime information for a Virtual App", + }, + Key: "VirtualApp.refreshRuntime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vApp Configuration", + Summary: "Updates the vApp configuration", + }, + Key: "VirtualApp.updateVAppConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update linked children", + Summary: "Updates the list of linked children", + }, + Key: "VirtualApp.updateLinkedChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone vApp", + Summary: "Clone the vApp, including all child entities", + }, + Key: "VirtualApp.clone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the vApp as an OVF template", + }, + Key: "VirtualApp.exportVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start vApp", + Summary: "Starts the vApp", + }, + Key: "VirtualApp.powerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop vApp", + Summary: "Stops the vApp", + }, + Key: "VirtualApp.powerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend vApp", + Summary: "Suspends the vApp", + }, + Key: "VirtualApp.suspend", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister vApp", + Summary: "Unregister all child virtual machines and remove the vApp", + }, + Key: "VirtualApp.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set a custom property to an opaque network", + Summary: "Sets the value of a custom field of an opaque network", + }, + Key: "OpaqueNetwork.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload an opaque network", + Summary: "Reloads the information about the opaque network", + }, + Key: "OpaqueNetwork.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename an opaque network", + Summary: "Renames an opaque network", + }, + Key: "OpaqueNetwork.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete opaque network", + Summary: "Deletes an opaque network if it is not used by any host or virtual machine", + }, + Key: "OpaqueNetwork.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add a tag to an opaque network", + Summary: "Adds a set of tags to the opaque network", + }, + Key: "OpaqueNetwork.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a tag from an opaque network", + Summary: "Removes a set of tags from the opaque network", + }, + Key: "OpaqueNetwork.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "OpaqueNetwork.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an opaque network", + Summary: "Removes an opaque network", + }, + Key: "OpaqueNetwork.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set network custom Value", + Summary: "Sets the value of a custom field of a network", + }, + Key: "Network.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload network", + Summary: "Reload information about the network", + }, + Key: "Network.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename network", + Summary: "Rename network", + }, + Key: "Network.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete network", + Summary: "Deletes a network if it is not used by any host or virtual machine", + }, + Key: "Network.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the network", + }, + Key: "Network.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the network", + }, + Key: "Network.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Network.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network", + Summary: "Remove network", + }, + Key: "Network.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add role", + Summary: "Add a new role", + }, + Key: "AuthorizationManager.addRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove role", + Summary: "Remove a role", + }, + Key: "AuthorizationManager.removeRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update role", + Summary: "Update a role's name and/or privileges", + }, + Key: "AuthorizationManager.updateRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reassign permissions", + Summary: "Reassign all permissions of a role to another role", + }, + Key: "AuthorizationManager.mergePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get role permissions", + Summary: "Gets all the permissions that use a particular role", + }, + Key: "AuthorizationManager.retrieveRolePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get entity permissions", + Summary: "Get permissions defined on an entity", + }, + Key: "AuthorizationManager.retrieveEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get permissions", + Summary: "Get the permissions defined for all users", + }, + Key: "AuthorizationManager.retrieveAllPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrievePermissions", + Summary: "retrievePermissions", + }, + Key: "AuthorizationManager.retrievePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set entity permission rules", + Summary: "Define or update permission rules on an entity", + }, + Key: "AuthorizationManager.setEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset entity permission rules", + Summary: "Reset permission rules on an entity to the provided set", + }, + Key: "AuthorizationManager.resetEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove entity permission", + Summary: "Remove a permission rule from the entity", + }, + Key: "AuthorizationManager.removeEntityPermission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disabled methods", + Summary: "Get the list of source objects that have been disabled on the target entity", + }, + Key: "AuthorizationManager.queryDisabledMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable authorization methods", + Summary: "Gets the set of method names to be disabled", + }, + Key: "AuthorizationManager.disableMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable authorization methods", + Summary: "Gets the set of method names to be enabled", + }, + Key: "AuthorizationManager.enableMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check privileges on a managed entity", + Summary: "Checks whether a session holds a set of privileges on a managed entity", + }, + Key: "AuthorizationManager.hasPrivilegeOnEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check privileges on a set of managed entities", + Summary: "Checks whether a session holds a set of privileges on a set of managed entities", + }, + Key: "AuthorizationManager.hasPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasUserPrivilegeOnEntities", + Summary: "hasUserPrivilegeOnEntities", + }, + Key: "AuthorizationManager.hasUserPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchUserPrivilegeOnEntities", + Summary: "fetchUserPrivilegeOnEntities", + }, + Key: "AuthorizationManager.fetchUserPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check method invocation privileges", + Summary: "Checks whether a session holds a set of privileges required to invoke a specified method", + }, + Key: "AuthorizationManager.checkMethodInvocation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query required permissions", + Summary: "Get the permission requirements for the specified request", + }, + Key: "AuthorizationManager.queryPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performUpgradePreflightCheck", + Summary: "performUpgradePreflightCheck", + }, + Key: "VsanUpgradeSystem.performUpgradePreflightCheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryUpgradeStatus", + Summary: "queryUpgradeStatus", + }, + Key: "VsanUpgradeSystem.queryUpgradeStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performUpgrade", + Summary: "performUpgrade", + }, + Key: "VsanUpgradeSystem.performUpgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual disk", + Summary: "Create the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.createVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual disk", + Summary: "Delete the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.deleteVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk information", + Summary: "Queries information about a virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move virtual disk", + Summary: "Move the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.moveVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy virtual disk", + Summary: "Copy the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.copyVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend virtual disk", + Summary: "Expand the capacity of a virtual disk to the new capacity", + }, + Key: "VirtualDiskManager.extendVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk fragmentation", + Summary: "Return the percentage of fragmentation of the sparse virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskFragmentation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Defragment virtual disk", + Summary: "Defragment a sparse virtual disk", + }, + Key: "VirtualDiskManager.defragmentVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Shrink virtual disk", + Summary: "Shrink a sparse virtual disk", + }, + Key: "VirtualDiskManager.shrinkVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate virtual disk", + Summary: "Inflate a sparse virtual disk up to the full size", + }, + Key: "VirtualDiskManager.inflateVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Zero out virtual disk", + Summary: "Explicitly zero out the virtual disk.", + }, + Key: "VirtualDiskManager.eagerZeroVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fill virtual disk", + Summary: "Overwrite all blocks of the virtual disk with zeros", + }, + Key: "VirtualDiskManager.zeroFillVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Optimally eager zero the virtual disk", + Summary: "Optimally eager zero a VMFS thick virtual disk.", + }, + Key: "VirtualDiskManager.optimizeEagerZeroVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual disk UUID", + Summary: "Set the UUID for the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.setVirtualDiskUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk UUID", + Summary: "Get the virtual disk SCSI inquiry page data", + }, + Key: "VirtualDiskManager.queryVirtualDiskUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk geometry", + Summary: "Get the disk geometry information for the virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskGeometry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reparent disks", + Summary: "Reparent disks", + }, + Key: "VirtualDiskManager.reparentDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a child disk", + Summary: "Create a new disk and attach it to the end of disk chain specified", + }, + Key: "VirtualDiskManager.createChildDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "revertToChildDisk", + Summary: "revertToChildDisk", + }, + Key: "VirtualDiskManager.revertToChildDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate disks", + Summary: "Consolidate a list of disks to the parent most disk", + }, + Key: "VirtualDiskManager.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "importUnmanagedSnapshot", + Summary: "importUnmanagedSnapshot", + }, + Key: "VirtualDiskManager.importUnmanagedSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "releaseManagedSnapshot", + Summary: "releaseManagedSnapshot", + }, + Key: "VirtualDiskManager.releaseManagedSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "enableUPIT", + Summary: "enableUPIT", + }, + Key: "VirtualDiskManager.enableUPIT", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "disableUPIT", + Summary: "disableUPIT", + }, + Key: "VirtualDiskManager.disableUPIT", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryObjectInfo", + Summary: "queryObjectInfo", + }, + Key: "VirtualDiskManager.queryObjectInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryObjectTypes", + Summary: "queryObjectTypes", + }, + Key: "VirtualDiskManager.queryObjectTypes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage I/O Control on datastore", + Summary: "Configure Storage I/O Control on datastore", + }, + Key: "StorageResourceManager.ConfigureDatastoreIORM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage I/O Control on datastore", + Summary: "Configure Storage I/O Control on datastore", + }, + Key: "StorageResourceManager.ConfigureDatastoreIORMOnHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Storage I/O Control configuration options", + Summary: "Query Storage I/O Control configuration options", + }, + Key: "StorageResourceManager.QueryIORMConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get storage I/O resource management device model", + Summary: "Returns the device model computed for a given datastore by storage DRS", + }, + Key: "StorageResourceManager.GetStorageIORMDeviceModel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore performance summary", + Summary: "Query datastore performance metrics in summary form", + }, + Key: "StorageResourceManager.queryDatastorePerformanceSummary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply a Storage DRS recommendation", + Summary: "Apply a Storage DRS recommendation", + }, + Key: "StorageResourceManager.applyRecommendationToPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply Storage DRS recommendations", + Summary: "Apply Storage DRS recommendations", + }, + Key: "StorageResourceManager.applyRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel storage DRS recommendation", + Summary: "Cancels a storage DRS recommendation", + }, + Key: "StorageResourceManager.cancelRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh storage DRS recommendation", + Summary: "Refreshes the storage DRS recommendations on the specified datastore cluster", + }, + Key: "StorageResourceManager.refreshRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "refreshRecommendationsForPod", + Summary: "refreshRecommendationsForPod", + }, + Key: "StorageResourceManager.refreshRecommendationsForPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage DRS", + Summary: "Configure Storage DRS on a datastore cluster", + }, + Key: "StorageResourceManager.configureStorageDrsForPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Invoke storage DRS for placement recommendations", + Summary: "Invokes storage DRS for placement recommendations", + }, + Key: "StorageResourceManager.recommendDatastores", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rankForPlacement", + Summary: "rankForPlacement", + }, + Key: "StorageResourceManager.rankForPlacement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryStorageStatisticsByProfile", + Summary: "queryStorageStatisticsByProfile", + }, + Key: "StorageResourceManager.queryStorageStatisticsByProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute client service", + Summary: "Execute the client service", + }, + Key: "SimpleCommand.Execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update global message", + Summary: "Updates the system global message", + }, + Key: "SessionManager.updateMessage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by token", + Summary: "Logs on to the server through token representing principal identity", + }, + Key: "SessionManager.loginByToken", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login", + Summary: "Create a login session", + }, + Key: "SessionManager.login", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by SSPI", + Summary: "Log on to the server using SSPI passthrough authentication", + }, + Key: "SessionManager.loginBySSPI", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by SSL thumbprint", + Summary: "Log on to the server using SSL thumbprint authentication", + }, + Key: "SessionManager.loginBySSLThumbprint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by session ticket", + Summary: "Log on to the server using a session ticket", + }, + Key: "SessionManager.loginBySessionTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire session ticket", + Summary: "Acquire a ticket for authenticating to a remote service", + }, + Key: "SessionManager.acquireSessionTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Logout", + Summary: "Logout and end the current session", + }, + Key: "SessionManager.logout", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire local ticket", + Summary: "Acquire one-time ticket for authenticating server-local client", + }, + Key: "SessionManager.acquireLocalTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire generic service ticket", + Summary: "Acquire a one-time credential that may be used to make the specified request", + }, + Key: "SessionManager.acquireGenericServiceTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Terminate session", + Summary: "Logout and end the provided list of sessions", + }, + Key: "SessionManager.terminate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set locale", + Summary: "Set the session locale for determining the languages used for messages and formatting data", + }, + Key: "SessionManager.setLocale", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension", + Summary: "Creates a privileged login session for an extension", + }, + Key: "SessionManager.loginExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension", + Summary: "Invalid subject name", + }, + Key: "SessionManager.loginExtensionBySubjectName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension by certificate", + Summary: "Login extension by certificate", + }, + Key: "SessionManager.loginExtensionByCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Impersonate user", + Summary: "Convert session to impersonate specified user", + }, + Key: "SessionManager.impersonateUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Session active query", + Summary: "Validates that a currently active session exists", + }, + Key: "SessionManager.sessionIsActive", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire clone ticket", + Summary: "Acquire a session-specific ticket string that can be used to clone the current session", + }, + Key: "SessionManager.acquireCloneTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone session", + Summary: "Clone the specified session and associate it with the current connection", + }, + Key: "SessionManager.cloneSession", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add end point", + Summary: "Add a service whose connections are to be proxied", + }, + Key: "ProxyService.addEndpoint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove end point", + Summary: "End point to be detached", + }, + Key: "ProxyService.removeEndpoint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host for OVF package compatibility", + Summary: "Validates if a host is compatible with the requirements in an OVF package", + }, + Key: "OvfManager.validateHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Parse OVF descriptor", + Summary: "Parses and validates an OVF descriptor", + }, + Key: "OvfManager.parseDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert OVF descriptor", + Summary: "Convert OVF descriptor to entity specification", + }, + Key: "OvfManager.createImportSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create an OVF descriptor", + Summary: "Creates an OVF descriptor from either a VM or vApp", + }, + Key: "OvfManager.createDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Parse OVF Descriptor at URL", + Summary: "Parses and validates an OVF descriptor at a given URL", + }, + Key: "OvfManager.parseDescriptorAtUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys an OVF template from a URL", + }, + Key: "OvfManager.importOvfAtUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export as OVF template", + Summary: "Uploads OVF template to a remote server", + }, + Key: "OvfManager.exportOvfToUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download overhead computation script", + Summary: "Download overhead computation scheme script", + }, + Key: "OverheadService.downloadScript", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download host configuration", + Summary: "Download host configuration consumed by overhead computation script", + }, + Key: "OverheadService.downloadHostConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download VM configuration", + Summary: "Download VM configuration consumed by overhead computation script", + }, + Key: "OverheadService.downloadVMXConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "lookupVmOverheadMemory", + Summary: "lookupVmOverheadMemory", + }, + Key: "OverheadMemoryManager.lookupVmOverheadMemory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open remote disk for read/write", + Summary: "Opens a disk on a virtual machine for read/write access", + }, + Key: "NfcService.randomAccessOpen", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open remote disk for read", + Summary: "Opens a disk on a virtual machine for read access", + }, + Key: "NfcService.randomAccessOpenReadonly", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "randomAccessFileOpen", + Summary: "randomAccessFileOpen", + }, + Key: "NfcService.randomAccessFileOpen", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read virtual machine files", + Summary: "Read files associated with a virtual machine", + }, + Key: "NfcService.getVmFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Write virtual machine files", + Summary: "Write files associated with a virtual machine", + }, + Key: "NfcService.putVmFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Manipulate file paths", + Summary: "Permission to manipulate file paths", + }, + Key: "NfcService.fileManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Manipulate system-related file paths", + Summary: "Permission to manipulate all system related file paths", + }, + Key: "NfcService.systemManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getServerNfcLibVersion", + Summary: "getServerNfcLibVersion", + }, + Key: "NfcService.getServerNfcLibVersion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve associated License Data objects", + Summary: "Retrieves all the associated License Data objects", + }, + Key: "LicenseDataManager.queryEntityLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve license data associated with managed entity", + Summary: "Retrieves the license data associated with a specified managed entity", + }, + Key: "LicenseDataManager.queryAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update entity license container", + Summary: "Updates the license container associated with a specified managed entity", + }, + Key: "LicenseDataManager.updateAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply associated license data to managed entity", + Summary: "Applies associated license data to a managed entity", + }, + Key: "LicenseDataManager.applyAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network protocol profiles", + Summary: "Queries the list of network protocol profiles for a datacenter", + }, + Key: "IpPoolManager.queryIpPools", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create network protocol profile", + Summary: "Creates a new network protocol profile", + }, + Key: "IpPoolManager.createIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network protocol profile", + Summary: "Updates a network protocol profile on a datacenter", + }, + Key: "IpPoolManager.updateIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Destroy network protocol profile", + Summary: "Destroys a network protocol profile on the given datacenter", + }, + Key: "IpPoolManager.destroyIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocates an IPv4 address", + Summary: "Allocates an IPv4 address from an IP pool", + }, + Key: "IpPoolManager.allocateIpv4Address", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocates an IPv6 address", + Summary: "Allocates an IPv6 address from an IP pool", + }, + Key: "IpPoolManager.allocateIpv6Address", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Releases an IP allocation", + Summary: "Releases an IP allocation back to an IP pool", + }, + Key: "IpPoolManager.releaseIpAllocation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query IP allocations", + Summary: "Query IP allocations by IP pool and extension key", + }, + Key: "IpPoolManager.queryIPAllocations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install IO Filter", + Summary: "Installs an IO Filter on a compute resource", + }, + Key: "IoFilterManager.installIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall IO Filter", + Summary: "Uninstalls an IO Filter from a compute resource", + }, + Key: "IoFilterManager.uninstallIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade IO Filter", + Summary: "Upgrades an IO Filter on a compute resource", + }, + Key: "IoFilterManager.upgradeIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query IO Filter installation issues", + Summary: "Queries IO Filter installation issues on a compute resource", + }, + Key: "IoFilterManager.queryIssue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryIoFilterInfo", + Summary: "queryIoFilterInfo", + }, + Key: "IoFilterManager.queryIoFilterInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve IO Filter installation errors on host", + Summary: "Resolves IO Filter installation errors on a host", + }, + Key: "IoFilterManager.resolveInstallationErrorsOnHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve IO Filter installation errors on cluster", + Summary: "Resolves IO Filter installation errors on a cluster", + }, + Key: "IoFilterManager.resolveInstallationErrorsOnCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query information about virtual disks using IO Filter", + Summary: "Queries information about virtual disks that use an IO Filter installed on a compute resource", + }, + Key: "IoFilterManager.queryDisksUsingFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IO Filter policy", + Summary: "Updates the policy to IO Filter mapping in vCenter Server", + }, + Key: "IoFilterManager.updateIoFilterPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add an image library", + Summary: "Register an image library server with vCenter", + }, + Key: "ImageLibraryManager.addLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update image library", + Summary: "Update image library information", + }, + Key: "ImageLibraryManager.updateLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an image library", + Summary: "Unregister an image library server from vCenter", + }, + Key: "ImageLibraryManager.removeLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import from image library", + Summary: "Import files from the image library", + }, + Key: "ImageLibraryManager.importLibraryMedia", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export to image library", + Summary: "Export files to the image library", + }, + Key: "ImageLibraryManager.exportMediaToLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Publish to image library", + Summary: "Publish files from datastore to image library", + }, + Key: "ImageLibraryManager.publishMediaToLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get lease download manifest", + Summary: "Gets the download manifest for this lease", + }, + Key: "HttpNfcLease.getManifest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete the lease", + Summary: "The lease completed successfully", + }, + Key: "HttpNfcLease.complete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "End the lease", + Summary: "The lease has ended", + }, + Key: "HttpNfcLease.abort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update lease progress", + Summary: "Updates lease progress", + }, + Key: "HttpNfcLease.progress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set latest page size", + Summary: "Set the last page viewed size and contain at most maxCount items in the page", + }, + Key: "HistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind", + Summary: "Move the scroll position to the oldest item", + }, + Key: "HistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset", + Summary: "Move the scroll position to the item just above the last page viewed", + }, + Key: "HistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove collector", + Summary: "Remove the collector from server", + }, + Key: "HistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable replication of virtual machine", + Summary: "Enable replication of virtual machine", + }, + Key: "HbrManager.enableReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable replication of virtual machine", + Summary: "Disable replication of virtual machine", + }, + Key: "HbrManager.disableReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure replication for virtual machine", + Summary: "Reconfigure replication for virtual machine", + }, + Key: "HbrManager.reconfigureReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve replication configuration of virtual machine", + Summary: "Retrieve replication configuration of virtual machine", + }, + Key: "HbrManager.retrieveReplicationConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pause replication of virtual machine", + Summary: "Pause replication of virtual machine", + }, + Key: "HbrManager.pauseReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resume replication of virtual machine", + Summary: "Resume replication of virtual machine", + }, + Key: "HbrManager.resumeReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start a replication resynchronization for virtual machine", + Summary: "Start a replication resynchronization for virtual machine", + }, + Key: "HbrManager.fullSync", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start new replication instance for virtual machine", + Summary: "Start extraction and transfer of a new replication instance for virtual machine", + }, + Key: "HbrManager.createInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replicate powered-off virtual machine", + Summary: "Transfer a replication instance for powered-off virtual machine", + }, + Key: "HbrManager.startOfflineInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop replication of powered-off virtual machine", + Summary: "Stop replication of powered-off virtual machine", + }, + Key: "HbrManager.stopOfflineInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine replication state", + Summary: "Qureies the current state of a replicated virtual machine", + }, + Key: "HbrManager.queryReplicationState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryReplicationCapabilities", + Summary: "queryReplicationCapabilities", + }, + Key: "HbrManager.queryReplicationCapabilities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister extension", + Summary: "Unregisters an extension", + }, + Key: "ExtensionManager.unregisterExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find extension", + Summary: "Find an extension", + }, + Key: "ExtensionManager.findExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register extension", + Summary: "Registers an extension", + }, + Key: "ExtensionManager.registerExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update extension", + Summary: "Updates extension information", + }, + Key: "ExtensionManager.updateExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get server public key", + Summary: "Get vCenter Server's public key", + }, + Key: "ExtensionManager.getPublicKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extension public key", + Summary: "Set public key of the extension", + }, + Key: "ExtensionManager.setPublicKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extension certificate", + Summary: "Update the stored authentication certificate for a specified extension", + }, + Key: "ExtensionManager.setCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update extension data", + Summary: "Updates extension-specific data associated with an extension", + }, + Key: "ExtensionManager.updateExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data", + Summary: "Retrieves extension-specific data associated with an extension", + }, + Key: "ExtensionManager.queryExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data keys", + Summary: "Retrieves extension-specific data keys associated with an extension", + }, + Key: "ExtensionManager.queryExtensionDataKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear extension data", + Summary: "Clears extension-specific data associated with an extension", + }, + Key: "ExtensionManager.clearExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data usage", + Summary: "Retrieves statistics about the amount of data being stored by extensions registered with vCenter Server", + }, + Key: "ExtensionManager.queryExtensionDataUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query entities managed by extension", + Summary: "Finds entities managed by an extension", + }, + Key: "ExtensionManager.queryManagedBy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query statistics about IP allocation usage", + Summary: "Query statistics about IP allocation usage, system-wide or for specified extensions", + }, + Key: "ExtensionManager.queryExtensionIpAllocationUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create directory", + Summary: "Creates a top-level directory on the specified datastore", + }, + Key: "DatastoreNamespaceManager.CreateDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete directory", + Summary: "Deletes the specified top-level directory from the datastore", + }, + Key: "DatastoreNamespaceManager.DeleteDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "ConvertNamespacePathToUuidPath", + Summary: "ConvertNamespacePathToUuidPath", + }, + Key: "DatastoreNamespaceManager.ConvertNamespacePathToUuidPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual disk digest", + Summary: "Controls the configuration of the digests for the virtual disks", + }, + Key: "CbrcManager.configureDigest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recompute virtual disk digest", + Summary: "Recomputes the digest for the given virtual disks, if necessary", + }, + Key: "CbrcManager.recomputeDigest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk digest configuration", + Summary: "Returns the current configuration of the digest for the given digest-enabled virtual disks", + }, + Key: "CbrcManager.queryDigestInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk digest runtime information", + Summary: "Returns the status of runtime digest usage for the given digest-enabled virtual disks", + }, + Key: "CbrcManager.queryDigestRuntimeInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare to upgrade", + Summary: "Deletes the content of the temporary directory on the host", + }, + Key: "AgentManager.prepareToUpgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade", + Summary: "Validates and executes the installer/uninstaller executable uploaded to the temporary directory", + }, + Key: "AgentManager.upgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Estimate database size", + Summary: "Estimates the database size required to store VirtualCenter data", + }, + Key: "ResourcePlanningManager.estimateDatabaseSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerProvider", + Summary: "registerProvider", + }, + Key: "HealthUpdateManager.registerProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unregisterProvider", + Summary: "unregisterProvider", + }, + Key: "HealthUpdateManager.unregisterProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryProviderList", + Summary: "queryProviderList", + }, + Key: "HealthUpdateManager.queryProviderList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasProvider", + Summary: "hasProvider", + }, + Key: "HealthUpdateManager.hasProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryProviderName", + Summary: "queryProviderName", + }, + Key: "HealthUpdateManager.queryProviderName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHealthUpdateInfos", + Summary: "queryHealthUpdateInfos", + }, + Key: "HealthUpdateManager.queryHealthUpdateInfos", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addMonitoredEntities", + Summary: "addMonitoredEntities", + }, + Key: "HealthUpdateManager.addMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeMonitoredEntities", + Summary: "removeMonitoredEntities", + }, + Key: "HealthUpdateManager.removeMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMonitoredEntities", + Summary: "queryMonitoredEntities", + }, + Key: "HealthUpdateManager.queryMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasMonitoredEntity", + Summary: "hasMonitoredEntity", + }, + Key: "HealthUpdateManager.hasMonitoredEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryUnmonitoredHosts", + Summary: "queryUnmonitoredHosts", + }, + Key: "HealthUpdateManager.queryUnmonitoredHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "postHealthUpdates", + Summary: "postHealthUpdates", + }, + Key: "HealthUpdateManager.postHealthUpdates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHealthUpdates", + Summary: "queryHealthUpdates", + }, + Key: "HealthUpdateManager.queryHealthUpdates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addFilter", + Summary: "addFilter", + }, + Key: "HealthUpdateManager.addFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterList", + Summary: "queryFilterList", + }, + Key: "HealthUpdateManager.queryFilterList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterName", + Summary: "queryFilterName", + }, + Key: "HealthUpdateManager.queryFilterName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterInfoIds", + Summary: "queryFilterInfoIds", + }, + Key: "HealthUpdateManager.queryFilterInfoIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterEntities", + Summary: "queryFilterEntities", + }, + Key: "HealthUpdateManager.queryFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addFilterEntities", + Summary: "addFilterEntities", + }, + Key: "HealthUpdateManager.addFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeFilterEntities", + Summary: "removeFilterEntities", + }, + Key: "HealthUpdateManager.removeFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeFilter", + Summary: "removeFilter", + }, + Key: "HealthUpdateManager.removeFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by UUID", + Summary: "Finds a virtual machine or host by UUID", + }, + Key: "SearchIndex.findByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find virtual machine by datastore path", + Summary: "Finds a virtual machine by its location on a datastore", + }, + Key: "SearchIndex.findByDatastorePath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by DNS", + Summary: "Finds a virtual machine or host by its DNS name", + }, + Key: "SearchIndex.findByDnsName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by IP", + Summary: "Finds a virtual machine or host by IP address", + }, + Key: "SearchIndex.findByIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by inventory path", + Summary: "Finds a virtual machine or host based on its location in the inventory", + }, + Key: "SearchIndex.findByInventoryPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find folder child", + Summary: "Finds an immediate child of a folder", + }, + Key: "SearchIndex.findChild", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by UUID", + Summary: "Find entities based on their UUID", + }, + Key: "SearchIndex.findAllByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by DNS name", + Summary: "Find by DNS name", + }, + Key: "SearchIndex.findAllByDnsName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by IP address", + Summary: "Find entities based on their IP address", + }, + Key: "SearchIndex.findAllByIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "findAllInstantCloneParentInGroup", + Summary: "findAllInstantCloneParentInGroup", + }, + Key: "SearchIndex.findAllInstantCloneParentInGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "findAllInstantCloneChildrenOfGroup", + Summary: "findAllInstantCloneChildrenOfGroup", + }, + Key: "SearchIndex.findAllInstantCloneChildrenOfGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchRelocatedMACAddress", + Summary: "fetchRelocatedMACAddress", + }, + Key: "NetworkManager.fetchRelocatedMACAddress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check MAC addresses in use", + Summary: "Checks the MAC addresses used by this vCenter Server instance", + }, + Key: "NetworkManager.checkIfMACAddressInUse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reclaim MAC addresses", + Summary: "Reclaims the MAC addresses that are not used by remote vCenter Server instances", + }, + Key: "NetworkManager.reclaimMAC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check group membership", + Summary: "Check whether a user is a member of a given list of groups", + }, + Key: "UserDirectory.checkGroupMembership", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get user groups", + Summary: "Searches for users and groups", + }, + Key: "UserDirectory.retrieveUserGroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set task custom value", + Summary: "Sets the value of a custom field of a task", + }, + Key: "Task.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel", + Summary: "Cancels a running/queued task", + }, + Key: "Task.cancel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update progress", + Summary: "Update task progress", + }, + Key: "Task.UpdateProgress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set task state", + Summary: "Sets task state", + }, + Key: "Task.setState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update task description", + Summary: "Updates task description with the current phase of the task", + }, + Key: "Task.UpdateDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration option descriptor", + Summary: "Get the list of configuration option keys available in this browser", + }, + Key: "EnvironmentBrowser.queryConfigOptionDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure option query", + Summary: "Search for a specific configuration option", + }, + Key: "EnvironmentBrowser.queryConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConfigOptionEx", + Summary: "queryConfigOptionEx", + }, + Key: "EnvironmentBrowser.queryConfigOptionEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration target", + Summary: "Search for a specific configuration target", + }, + Key: "EnvironmentBrowser.queryConfigTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query target capabilities", + Summary: "Query for compute-resource capabilities associated with this browser", + }, + Key: "EnvironmentBrowser.queryTargetCapabilities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine provisioning operation policy", + Summary: "Query environment browser for information about the virtual machine provisioning operation policy", + }, + Key: "EnvironmentBrowser.queryProvisioningPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConfigTargetSpec", + Summary: "queryConfigTargetSpec", + }, + Key: "EnvironmentBrowser.queryConfigTargetSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set snapshot custom value", + Summary: "Sets the value of a custom field of a virtual machine snapshot", + }, + Key: "vm.Snapshot.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revert snapshot", + Summary: "Change the execution state of the virtual machine to the state of this snapshot", + }, + Key: "vm.Snapshot.revert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove snapshot", + Summary: "Remove snapshot and delete its associated storage", + }, + Key: "vm.Snapshot.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename snapshot", + Summary: "Rename the snapshot", + }, + Key: "vm.Snapshot.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Linked Clone", + Summary: "Create a linked clone from this snapshot", + }, + Key: "vm.Snapshot.createLinkedClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Export the snapshot as an OVF template", + }, + Key: "vm.Snapshot.exportSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pause", + Summary: "Pauses a virtual machine", + }, + Key: "vm.PauseManager.pause", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unpause", + Summary: "Unpauses a virtual machine", + }, + Key: "vm.PauseManager.unpause", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power on and pause", + Summary: "Powers on a virtual machine and pauses it immediately", + }, + Key: "vm.PauseManager.powerOnPaused", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create namespace", + Summary: "Create a virtual machine namespace", + }, + Key: "vm.NamespaceManager.createNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete namespace", + Summary: "Delete the virtual machine namespace", + }, + Key: "vm.NamespaceManager.deleteNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete all namespaces", + Summary: "Delete all namespaces associated with the virtual machine", + }, + Key: "vm.NamespaceManager.deleteAllNamespaces", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update namespace", + Summary: "Reconfigure the virtual machine namespace", + }, + Key: "vm.NamespaceManager.updateNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query namespace", + Summary: "Retrieve detailed information about the virtual machine namespace", + }, + Key: "vm.NamespaceManager.queryNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List namespaces", + Summary: "Retrieve the list of all namespaces for a virtual machine", + }, + Key: "vm.NamespaceManager.listNamespaces", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send event to the virtual machine", + Summary: "Queue event for delivery to the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.sendEventToGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch events from the virtual machine", + Summary: "Retrieve events sent by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.fetchEventsFromGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update data", + Summary: "Update key/value pairs accessible by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.updateData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve data", + Summary: "Retrieve key/value pairs set by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.retrieveData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "", + Summary: "", + }, + Key: "ServiceDirectory.queryServiceEndpointList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register service endpoint", + Summary: "Registers a service endpoint", + }, + Key: "ServiceDirectory.registerService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister service endpoint", + Summary: "Unregisters a service endpoint", + }, + Key: "ServiceDirectory.unregisterService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Annotate OVF section tree", + Summary: "Annotates the given OVF section tree with configuration choices for this OVF consumer", + }, + Key: "OvfConsumer.annotateOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate instantiation OVF section tree", + Summary: "Validates that this OVF consumer can accept an instantiation OVF section tree", + }, + Key: "OvfConsumer.validateInstantiationOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Request registration of OVF section tree nodes", + Summary: "Notifies the OVF consumer that the specified OVF section tree nodes should be registered", + }, + Key: "OvfConsumer.registerEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Request managed entities unregistration from OVF consumer", + Summary: "Notifies the OVF consumer that the specified managed entities should be unregistered", + }, + Key: "OvfConsumer.unregisterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify OVF consumer for cloned entities", + Summary: "Notifies the OVF consumer that the specified entities have been cloned", + }, + Key: "OvfConsumer.cloneEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Populate entity OVF section tree", + Summary: "Create OVF sections for the given managed entities and populate the entity OVF section tree", + }, + Key: "OvfConsumer.populateEntityOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve public OVF environment sections for virtual machine ", + Summary: "Retrieves the public OVF environment sections that this OVF consumer has for a given virtual machine", + }, + Key: "OvfConsumer.retrievePublicOvfEnvironmentSections", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify OVF consumer for virtual machine power on", + Summary: "Notifies the OVF consumer that a virtual machine is about to be powered on", + }, + Key: "OvfConsumer.notifyPowerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Specification exists", + Summary: "Check the existence of a specification", + }, + Key: "CustomizationSpecManager.exists", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get specification", + Summary: "Gets a specification", + }, + Key: "CustomizationSpecManager.get", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create new specification", + Summary: "Create a new specification", + }, + Key: "CustomizationSpecManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Overwrite specification", + Summary: "Overwrite an existing specification", + }, + Key: "CustomizationSpecManager.overwrite", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete specification", + Summary: "Delete a specification", + }, + Key: "CustomizationSpecManager.delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Duplicate specification", + Summary: "Duplicate a specification", + }, + Key: "CustomizationSpecManager.duplicate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename specification", + Summary: "Rename a specification", + }, + Key: "CustomizationSpecManager.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert specification item", + Summary: "Convert a specification item to XML text", + }, + Key: "CustomizationSpecManager.specItemToXml", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert XML item", + Summary: "Convert an XML string to a specification item", + }, + Key: "CustomizationSpecManager.xmlToSpecItem", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate required resources", + Summary: "Validate that required resources are available on the server to customize a particular guest operating system", + }, + Key: "CustomizationSpecManager.checkResources", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query supported features", + Summary: "Searches the current license source for licenses available from this system", + }, + Key: "LicenseManager.querySupportedFeatures", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query license source", + Summary: "Searches the current license source for licenses available for each feature known to this system", + }, + Key: "LicenseManager.querySourceAvailability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query license usage", + Summary: "Returns the list of features and the number of licenses that have been reserved", + }, + Key: "LicenseManager.queryUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set product edition", + Summary: "Defines the product edition", + }, + Key: "LicenseManager.setEdition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check feature", + Summary: "Checks if a feature is enabled", + }, + Key: "LicenseManager.checkFeature", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable license", + Summary: "Enable a feature that is marked as user-configurable", + }, + Key: "LicenseManager.enable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable license", + Summary: "Release licenses for a user-configurable feature", + }, + Key: "LicenseManager.disable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure license source", + Summary: "Allows reconfiguration of the License Manager license source", + }, + Key: "LicenseManager.configureSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Installing license", + Summary: "Installing license", + }, + Key: "LicenseManager.updateLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add license", + Summary: "Adds a new license to the license inventory", + }, + Key: "LicenseManager.addLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove license", + Summary: "Removes a license from the license inventory", + }, + Key: "LicenseManager.removeLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Decode license", + Summary: "Decodes the license to return the properties of that license key", + }, + Key: "LicenseManager.decodeLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update license label", + Summary: "Update a license's label", + }, + Key: "LicenseManager.updateLabel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove license label", + Summary: "Removes a license's label", + }, + Key: "LicenseManager.removeLabel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get License Data Manager", + Summary: "Gets the License Data Manager", + }, + Key: "LicenseManager.queryLicenseDataManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Activate remote hard enforcement", + Summary: "Activates the remote hard enforcement", + }, + Key: "LicenseManager.activateRemoteHardEnforcement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datastore custom value", + Summary: "Sets the value of a custom field of a datastore", + }, + Key: "Datastore.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datastore", + Summary: "Reload information about the datastore", + }, + Key: "Datastore.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datastore", + Summary: "Renames a datastore", + }, + Key: "Datastore.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastore", + Summary: "Removes a datastore if it is not used by any host or virtual machine", + }, + Key: "Datastore.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Tag", + Summary: "Add a set of tags to the datastore", + }, + Key: "Datastore.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the datastore", + }, + Key: "Datastore.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Datastore.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh datastore", + Summary: "Refreshes free space on this datastore", + }, + Key: "Datastore.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh storage information", + Summary: "Refresh the storage information of the datastore", + }, + Key: "Datastore.refreshStorageInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual machine files", + Summary: "Update virtual machine files on the datastore", + }, + Key: "Datastore.updateVirtualMachineFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datastore", + Summary: "Rename the datastore", + }, + Key: "Datastore.renameDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete datastore", + Summary: "Delete datastore", + }, + Key: "Datastore.destroyDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replace embedded file paths", + Summary: "Replace embedded file paths on the datastore", + }, + Key: "Datastore.replaceEmbeddedFilePaths", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter SDRS maintenance mode", + Summary: "Virtual machine evacuation recommendations from the selected datastore are generated for SDRS maintenance mode", + }, + Key: "Datastore.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit SDRS maintenance mode", + Summary: "Exit SDRS maintenance mode", + }, + Key: "Datastore.exitMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get native clone capability", + Summary: "Check if the datastore supports native clone", + }, + Key: "Datastore.isNativeCloneCapable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cleanup locks", + Summary: "Cleanup lock files on NFSV3 datastore", + }, + Key: "Datastore.cleanupLocks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateVVolVirtualMachineFiles", + Summary: "updateVVolVirtualMachineFiles", + }, + Key: "Datastore.updateVVolVirtualMachineFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get current time", + Summary: "Returns the current time on the server", + }, + Key: "ServiceInstance.currentTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve content", + Summary: "Get the properties of the service instance", + }, + Key: "ServiceInstance.retrieveContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve internal properties", + Summary: "Retrieves the internal properties of the service instance", + }, + Key: "ServiceInstance.retrieveInternalContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate migration", + Summary: "Checks for errors and warnings of virtual machines migrated from one host to another", + }, + Key: "ServiceInstance.validateMigration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vMotion compatibility", + Summary: "Validates the vMotion compatibility of a set of hosts", + }, + Key: "ServiceInstance.queryVMotionCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve product components", + Summary: "Component information for bundled products", + }, + Key: "ServiceInstance.retrieveProductComponents", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh the CA certificates on the host", + Summary: "Refreshes the CA certificates on the host", + }, + Key: "CertificateManager.refreshCACertificatesAndCRLs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh the subject certificate on the host", + Summary: "Refreshes the subject certificate on the host", + }, + Key: "CertificateManager.refreshCertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revoke the subject certificate of a host", + Summary: "Revokes the subject certificate of a host", + }, + Key: "CertificateManager.revokeCertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query service list", + Summary: "Location information that needs to match a service", + }, + Key: "ServiceManager.queryServiceList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Creates a registry key", + Summary: "Creates a registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.createRegistryKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Lists all registry subkeys for a specified registry key", + Summary: "Lists all registry subkeys for a specified registry key in the Windows guest operating system.", + }, + Key: "vm.guest.WindowsRegistryManager.listRegistryKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deletes a registry key", + Summary: "Deletes a registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.deleteRegistryKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sets and creates a registry value", + Summary: "Sets and creates a registry value in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.setRegistryValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Lists all registry values for a specified registry key", + Summary: "Lists all registry values for a specified registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.listRegistryValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deletes a registry value", + Summary: "Deletes a registry value in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.deleteRegistryValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start a program in the guest", + Summary: "Start a program in the guest operating system", + }, + Key: "vm.guest.ProcessManager.startProgram", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List processes in the guest", + Summary: "List processes in the guest operating system", + }, + Key: "vm.guest.ProcessManager.listProcesses", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Terminate a process in the guest", + Summary: "Terminate a process in the guest operating system", + }, + Key: "vm.guest.ProcessManager.terminateProcess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read an environment variable in the guest", + Summary: "Read an environment variable in the guest operating system", + }, + Key: "vm.guest.ProcessManager.readEnvironmentVariable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disabled guest operations", + Summary: "Returns a list of guest operations not supported by a virtual machine", + }, + Key: "vm.guest.GuestOperationsManager.queryDisabledMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a directory in the guest", + Summary: "Create a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.makeDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a file in the guest", + Summary: "Delete a file in the guest operating system", + }, + Key: "vm.guest.FileManager.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a directory in the guest", + Summary: "Delete a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.deleteDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move or rename a directory in the guest", + Summary: "Move or rename a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.moveDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move or rename a file in the guest", + Summary: "Move or rename a file in the guest operating system", + }, + Key: "vm.guest.FileManager.moveFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a temporary file in the guest", + Summary: "Create a temporary file in the guest operating system", + }, + Key: "vm.guest.FileManager.createTemporaryFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a temporary directory in the guest", + Summary: "Create a temporary directory in the guest operating system", + }, + Key: "vm.guest.FileManager.createTemporaryDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List files or directories in the guest", + Summary: "List files or directories in the guest operating system", + }, + Key: "vm.guest.FileManager.listFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change the attributes of a file in the guest", + Summary: "Change the attributes of a file in the guest operating system", + }, + Key: "vm.guest.FileManager.changeFileAttributes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiates an operation to transfer a file from the guest", + Summary: "Initiates an operation to transfer a file from the guest operating system", + }, + Key: "vm.guest.FileManager.initiateFileTransferFromGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiates an operation to transfer a file to the guest", + Summary: "Initiates an operation to transfer a file to the guest operating system", + }, + Key: "vm.guest.FileManager.initiateFileTransferToGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add an alias to the alias store in the guest", + Summary: "Add an alias to the alias store in the guest operating system", + }, + Key: "vm.guest.AliasManager.addAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an alias from the alias store in the guest", + Summary: "Remove an alias from the alias store in the guest operating system", + }, + Key: "vm.guest.AliasManager.removeAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove all aliases associated with a SSO Server certificate from the guest", + Summary: "Remove all aliases associated with a SSO Server certificate from the guest operating system", + }, + Key: "vm.guest.AliasManager.removeAliasByCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all aliases for a user in the guest", + Summary: "List all aliases for a user in the guest operating system", + }, + Key: "vm.guest.AliasManager.listAliases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all mapped aliases in the guest", + Summary: "List all mapped aliases in the guest operating system", + }, + Key: "vm.guest.AliasManager.listMappedAliases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure workload model calculation parameters for datastore", + Summary: "Configures calculation parameters used for computation of workload model for a datastore", + }, + Key: "DrsStatsManager.configureWorkloadCharacterization", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query current workload model calculation parameters", + Summary: "Queries a host for the current workload model calculation parameters", + }, + Key: "DrsStatsManager.queryWorkloadCharacterization", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure datastore correlation detector", + Summary: "Configures datastore correlation detector with datastore to datastore cluster mappings", + }, + Key: "DrsStatsManager.configureCorrelationDetector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore correlation result", + Summary: "Queries correlation detector for a list of datastores correlated to a given datastore", + }, + Key: "DrsStatsManager.queryCorrelationResult", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set firewall custom value", + Summary: "Sets the value of a custom field of a host firewall system", + }, + Key: "host.FirewallSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update default firewall policy", + Summary: "Updates the default firewall policy", + }, + Key: "host.FirewallSystem.updateDefaultPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open firewall ports", + Summary: "Open the firewall ports belonging to the specified ruleset", + }, + Key: "host.FirewallSystem.enableRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Block firewall ports", + Summary: "Block the firewall ports belonging to the specified ruleset", + }, + Key: "host.FirewallSystem.disableRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update allowed IP list of the firewall ruleset", + Summary: "Update the allowed IP list of the specified ruleset", + }, + Key: "host.FirewallSystem.updateRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh firewall information", + Summary: "Refresh the firewall information and settings to detect any changes made directly on the host", + }, + Key: "host.FirewallSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update local swap datastore", + Summary: "Changes the datastore for virtual machine swap files", + }, + Key: "host.DatastoreSystem.updateLocalSwapDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve disks for VMFS datastore", + Summary: "Retrieves the list of disks that can be used to contain VMFS datastore extents", + }, + Key: "host.DatastoreSystem.queryAvailableDisksForVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore create options", + Summary: "Queries options for creating a new VMFS datastore for a disk", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreCreateOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create VMFS datastore", + Summary: "Creates a new VMFS datastore", + }, + Key: "host.DatastoreSystem.createVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore extend options", + Summary: "Queries options for extending an existing VMFS datastore for a disk", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreExtendOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query VMFS datastore expand options", + Summary: "Query the options available for expanding the extents of a VMFS datastore", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreExpandOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend datastore", + Summary: "Extends an existing VMFS datastore", + }, + Key: "host.DatastoreSystem.extendVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Expand VMFS datastore", + Summary: "Expand the capacity of a VMFS datastore extent", + }, + Key: "host.DatastoreSystem.expandVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "processVmfsDatastoreUpdate", + Summary: "processVmfsDatastoreUpdate", + }, + Key: "host.DatastoreSystem.processVmfsDatastoreUpdate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create NAS datastore", + Summary: "Creates a new Network Attached Storage (NAS) datastore", + }, + Key: "host.DatastoreSystem.createNasDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create local datastore", + Summary: "Creates a new local datastore", + }, + Key: "host.DatastoreSystem.createLocalDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Virtual Volume datastore", + Summary: "Updates the Virtual Volume datastore configuration according to the provided settings", + }, + Key: "host.DatastoreSystem.UpdateVvolDatastoreInternal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a datastore backed by a Virtual Volume storage container", + }, + Key: "host.DatastoreSystem.createVvolDatastoreInternal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a Virtuial Volume datastore", + }, + Key: "host.DatastoreSystem.createVvolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastore", + Summary: "Removes a datastore from a host", + }, + Key: "host.DatastoreSystem.removeDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastores", + Summary: "Removes one or more datastores from a host", + }, + Key: "host.DatastoreSystem.removeDatastoreEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure datastore principal", + Summary: "Configures datastore principal user for the host", + }, + Key: "host.DatastoreSystem.configureDatastorePrincipal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unbound VMFS volumes", + Summary: "Gets the list of unbound VMFS volumes", + }, + Key: "host.DatastoreSystem.queryUnresolvedVmfsVolumes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resignature unresolved VMFS volume", + Summary: "Resignature unresolved VMFS volume with new VMFS identifier", + }, + Key: "host.DatastoreSystem.resignatureUnresolvedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "NotifyDatastore", + Summary: "NotifyDatastore", + }, + Key: "host.DatastoreSystem.NotifyDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check accessibility", + Summary: "Check if the file objects for the specified virtual machine IDs are accessible", + }, + Key: "host.DatastoreSystem.checkVmFileAccessibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Join Windows Domain", + Summary: "Enables ActiveDirectory authentication on the host", + }, + Key: "host.ActiveDirectoryAuthentication.joinDomain", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Join Windows Domain through vSphere Authentication Proxy service", + Summary: "Enables Active Directory authentication on the host using a vSphere Authentication Proxy server", + }, + Key: "host.ActiveDirectoryAuthentication.joinDomainWithCAM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import the certificate of vSphere Authentication Proxy server", + Summary: "Import the certificate of vSphere Authentication Proxy server to ESXi's authentication store", + }, + Key: "host.ActiveDirectoryAuthentication.importCertificateForCAM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Leave Windows Domain", + Summary: "Disables ActiveDirectory authentication on the host", + }, + Key: "host.ActiveDirectoryAuthentication.leaveCurrentDomain", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable Smart Card Authentication", + Summary: "Enables smart card authentication of ESXi Direct Console UI users", + }, + Key: "host.ActiveDirectoryAuthentication.enableSmartCardAuthentication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install a Smart Card Trust Anchor", + Summary: "Installs a smart card trust anchor on the host", + }, + Key: "host.ActiveDirectoryAuthentication.installSmartCardTrustAnchor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "replaceSmartCardTrustAnchors", + Summary: "replaceSmartCardTrustAnchors", + }, + Key: "host.ActiveDirectoryAuthentication.replaceSmartCardTrustAnchors", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a Smart Card Trust Anchor", + Summary: "Removes an installed smart card trust anchor from the host", + }, + Key: "host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Smart Card Trust Anchor", + Summary: "Removes the installed smart card trust anchor from the host", + }, + Key: "host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchorByFingerprint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List Smart Card Trust Anchors", + Summary: "Lists the smart card trust anchors installed on the host", + }, + Key: "host.ActiveDirectoryAuthentication.listSmartCardTrustAnchors", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable Smart Card Authentication", + Summary: "Disables smart card authentication of ESXi Direct Console UI users", + }, + Key: "host.ActiveDirectoryAuthentication.disableSmartCardAuthentication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMCI access rights", + Summary: "Updates VMCI (Virtual Machine Communication Interface) access rights for one or more virtual machines", + }, + Key: "host.VmciAccessManager.updateAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve VMCI service rights granted to virtual machine", + Summary: "Retrieve VMCI (Virtual Machine Communication Interface) service rights granted to a VM", + }, + Key: "host.VmciAccessManager.retrieveGrantedServices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machines with access to VMCI service", + Summary: "Gets the VMs with granted access to a service", + }, + Key: "host.VmciAccessManager.queryAccessToService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create new identity binding", + Summary: "Creates a new identity binding between the host and vCenter Server", + }, + Key: "host.TpmManager.requestIdentity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Verify authenticity of credential", + Summary: "Verifies the authenticity and correctness of the supplied attestation credential", + }, + Key: "host.TpmManager.verifyCredential", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate integrity report", + Summary: "Generates an integrity report for the selected components", + }, + Key: "host.TpmManager.generateReport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure SNMP agent", + Summary: "Reconfigure the SNMP agent", + }, + Key: "host.SnmpSystem.reconfigureSnmpAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send test notification", + Summary: "Send test notification", + }, + Key: "host.SnmpSystem.sendTestNotification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set service custom value", + Summary: "Sets the value of a custom field of a host service system.", + }, + Key: "host.ServiceSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update service activation policy", + Summary: "Updates the activation policy of the service", + }, + Key: "host.ServiceSystem.updatePolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start service", + Summary: "Starts the service", + }, + Key: "host.ServiceSystem.start", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop service", + Summary: "Stops the service", + }, + Key: "host.ServiceSystem.stop", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restart service", + Summary: "Restarts the service", + }, + Key: "host.ServiceSystem.restart", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall service", + Summary: "Uninstalls the service", + }, + Key: "host.ServiceSystem.uninstall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh service information", + Summary: "Refresh the service information and settings to detect any changes made directly on the host", + }, + Key: "host.ServiceSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check", + Summary: "Check for dependencies, conflicts, and obsolete updates", + }, + Key: "host.PatchManager.Check", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan", + Summary: "Scan the host for patch status", + }, + Key: "host.PatchManager.Scan", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan", + Summary: "Scan the host for patch status", + }, + Key: "host.PatchManager.ScanV2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stage", + Summary: "Stage the updates to the host", + }, + Key: "host.PatchManager.Stage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install", + Summary: "Install the patch", + }, + Key: "host.PatchManager.Install", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install", + Summary: "Install the patch", + }, + Key: "host.PatchManager.InstallV2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall", + Summary: "Uninstall the patch", + }, + Key: "host.PatchManager.Uninstall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query", + Summary: "Query the host for installed bulletins", + }, + Key: "host.PatchManager.Query", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "createEntry", + Summary: "createEntry", + }, + Key: "host.OperationCleanupManager.createEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntry", + Summary: "updateEntry", + }, + Key: "host.OperationCleanupManager.updateEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryEntry", + Summary: "queryEntry", + }, + Key: "host.OperationCleanupManager.queryEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set memory manager custom value", + Summary: "Sets the value of a custom field of a host memory manager system", + }, + Key: "host.MemoryManagerSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set console memory reservation", + Summary: "Set the configured service console memory reservation", + }, + Key: "host.MemoryManagerSystem.reconfigureServiceConsoleReservation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine reservation", + Summary: "Updates the virtual machine reservation information", + }, + Key: "host.MemoryManagerSystem.reconfigureVirtualMachineReservation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "promoteDisks", + Summary: "promoteDisks", + }, + Key: "host.LowLevelProvisioningManager.promoteDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine on disk", + }, + Key: "host.LowLevelProvisioningManager.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine", + Summary: "Deletes a virtual machine on disk", + }, + Key: "host.LowLevelProvisioningManager.deleteVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine without deleting its virtual disks", + Summary: "Deletes a virtual machine from its storage, all virtual machine files are deleted except its associated virtual disks", + }, + Key: "host.LowLevelProvisioningManager.deleteVmExceptDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual machine recovery information", + Summary: "Retrieves virtual machine recovery information", + }, + Key: "host.LowLevelProvisioningManager.retrieveVmRecoveryInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve last virtual machine migration status", + Summary: "Retrieves the last virtual machine migration status if available", + }, + Key: "host.LowLevelProvisioningManager.retrieveLastVmMigrationStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine", + Summary: "Reconfigures the virtual machine", + }, + Key: "host.LowLevelProvisioningManager.reconfigVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload disks", + Summary: "Reloads virtual disk information", + }, + Key: "host.LowLevelProvisioningManager.reloadDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate disks", + Summary: "Consolidates virtual disks", + }, + Key: "host.LowLevelProvisioningManager.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update snapshot layout information", + Summary: "Updates the snapshot layout information of a virtual machine and reloads its snapshots", + }, + Key: "host.LowLevelProvisioningManager.relayoutSnapshots", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reserve files for provisioning", + Summary: "Reserves files or directories on a datastore to be used for a provisioning", + }, + Key: "host.LowLevelProvisioningManager.reserveFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete files", + Summary: "Deletes a list of files from a datastore", + }, + Key: "host.LowLevelProvisioningManager.deleteFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extract NVRAM content", + Summary: "Extracts the NVRAM content from a checkpoint file", + }, + Key: "host.LowLevelProvisioningManager.extractNvramContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set resource pool custom value", + Summary: "Sets the value of a custom field of a resource pool of physical resources", + }, + Key: "ResourcePool.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload resource pool", + Summary: "Reload the resource pool", + }, + Key: "ResourcePool.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename resource pool", + Summary: "Rename the resource pool", + }, + Key: "ResourcePool.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete resource pool", + Summary: "Delete the resource pool, which also deletes its contents and removes it from its parent folder (if any)", + }, + Key: "ResourcePool.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the resource pool", + }, + Key: "ResourcePool.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the resource pool", + }, + Key: "ResourcePool.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ResourcePool.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update resource pool configuration", + Summary: "Updates the resource pool configuration", + }, + Key: "ResourcePool.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move into resource pool", + Summary: "Moves a set of resource pools or virtual machines into this pool", + }, + Key: "ResourcePool.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update child resource configuration", + Summary: "Change the resource configuration of a set of children of the resource pool", + }, + Key: "ResourcePool.updateChildResourceConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create resource pool", + Summary: "Creates a new resource pool", + }, + Key: "ResourcePool.createResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete resource pool children", + Summary: "Removes all child resource pools recursively", + }, + Key: "ResourcePool.destroyChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vApp", + Summary: "Creates a child vApp of this resource pool", + }, + Key: "ResourcePool.createVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine in this resource pool", + }, + Key: "ResourcePool.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this resource pool", + }, + Key: "ResourcePool.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "ResourcePool.importVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query resource pool resource configuration options", + Summary: "Returns configuration options for a set of resources for a resource pool", + }, + Key: "ResourcePool.queryResourceConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh resource runtime information", + Summary: "Refreshes the resource usage runtime information", + }, + Key: "ResourcePool.refreshRuntime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create user", + Summary: "Creates a local user account", + }, + Key: "host.LocalAccountManager.createUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update user", + Summary: "Updates a local user account", + }, + Key: "host.LocalAccountManager.updateUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create group", + Summary: "Creates a local group account", + }, + Key: "host.LocalAccountManager.createGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete user", + Summary: "Removes a local user account", + }, + Key: "host.LocalAccountManager.removeUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove group", + Summary: "Removes a local group account", + }, + Key: "host.LocalAccountManager.removeGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Assign user to group", + Summary: "Assign user to group", + }, + Key: "host.LocalAccountManager.assignUserToGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unassign user from group", + Summary: "Unassigns a user from a group", + }, + Key: "host.LocalAccountManager.unassignUserFromGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query whether virtual NIC is used by iSCSI multi-pathing", + Summary: "Query whether virtual NIC is used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryVnicStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query whether physical NIC is used by iSCSI multi-pathing", + Summary: "Query whether physical NIC is used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryPnicStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query all the virtual NICs used by iSCSI multi-pathing", + Summary: "Query all the virtual NICs used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryBoundVnics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query candidate virtual NICs that can be used for iSCSI multi-pathing", + Summary: "Query candidate virtual NICs that can be used for iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryCandidateNics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual NIC to iSCSI Adapter", + Summary: "Add virtual NIC to iSCSI Adapter", + }, + Key: "host.IscsiManager.bindVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual NIC from iSCSI Adapter", + Summary: "Remove virtual NIC from iSCSI Adapter", + }, + Key: "host.IscsiManager.unbindVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query migration dependencies for migrating the physical and virtual NICs", + Summary: "Query migration dependencies for migrating the physical and virtual NICs", + }, + Key: "host.IscsiManager.queryMigrationDependencies", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get acceptance level for host image configuration", + Summary: "Get acceptance level settings for host image configuration", + }, + Key: "host.ImageConfigManager.queryHostAcceptanceLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host image profile", + Summary: "Queries the current host image profile information", + }, + Key: "host.ImageConfigManager.queryHostImageProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update acceptance level", + Summary: "Updates the acceptance level of a host", + }, + Key: "host.ImageConfigManager.updateAcceptanceLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchSoftwarePackages", + Summary: "fetchSoftwarePackages", + }, + Key: "host.ImageConfigManager.fetchSoftwarePackages", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "installDate", + Summary: "installDate", + }, + Key: "host.ImageConfigManager.installDate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve access entries", + Summary: "Retrieves the access mode for each user or group with access permissions on the host", + }, + Key: "host.HostAccessManager.retrieveAccessEntries", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change access mode", + Summary: "Changes the access mode for a user or group on the host", + }, + Key: "host.HostAccessManager.changeAccessMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve special DCUI access users", + Summary: "Retrieves the list of users with special access to DCUI", + }, + Key: "host.HostAccessManager.queryDcuiAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update special DCUI access users", + Summary: "Updates the list of users with special access to DCUI", + }, + Key: "host.HostAccessManager.updateDcuiAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve system users", + Summary: "Retrieve the list of special system users on the host", + }, + Key: "host.HostAccessManager.querySystemUsers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system users", + Summary: "Updates the list of special system users on the host", + }, + Key: "host.HostAccessManager.updateSystemUsers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query lockdown exceptions", + Summary: "Queries the current list of user exceptions for lockdown mode", + }, + Key: "host.HostAccessManager.queryLockdownExceptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update lockdown exceptions", + Summary: "Updates the current list of user exceptions for lockdown mode", + }, + Key: "host.HostAccessManager.updateLockdownExceptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change lockdown mode", + Summary: "Changes lockdown mode on the host", + }, + Key: "host.HostAccessManager.changeLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset to factory default", + Summary: "Reset the configuration to factory default", + }, + Key: "host.FirmwareSystem.resetToFactoryDefaults", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Backup configuration", + Summary: "Backup the configuration of the host", + }, + Key: "host.FirmwareSystem.backupConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration upload URL", + Summary: "Host configuration must be uploaded for a restore operation", + }, + Key: "host.FirmwareSystem.queryConfigUploadURL", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restore configuration", + Summary: "Restore configuration of the host", + }, + Key: "host.FirmwareSystem.restoreConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Flush firmware configuration", + Summary: "Writes the configuration of the firmware system to persistent storage", + }, + Key: "host.FirmwareSystem.syncConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryQuantumMinutes", + Summary: "queryQuantumMinutes", + }, + Key: "host.FirmwareSystem.queryQuantumMinutes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "querySyncsPerQuantum", + Summary: "querySyncsPerQuantum", + }, + Key: "host.FirmwareSystem.querySyncsPerQuantum", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update ESX agent configuration", + Summary: "Updates the ESX agent configuration of a host", + }, + Key: "host.EsxAgentHostManager.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Renew disk lease", + Summary: "Renew a lease to prevent it from timing out", + }, + Key: "host.DiskManager.Lease.renew", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Release disk lease", + Summary: "End the lease if it is still active", + }, + Key: "host.DiskManager.Lease.release", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocate blocks", + Summary: "Prepare for writing to blocks", + }, + Key: "host.DiskManager.Lease.allocateBlocks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear lazy zero", + Summary: "Honor the contents of a block range", + }, + Key: "host.DiskManager.Lease.clearLazyZero", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Map disk region", + Summary: "Mapping a specified region of a virtual disk", + }, + Key: "host.DiskManager.Lease.MapDiskRegion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire disk lease", + Summary: "Acquire a lease for the files associated with the virtual disk referenced by the given datastore path", + }, + Key: "host.DiskManager.acquireLease", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire lease extension", + Summary: "Acquires a lease for the files associated with the virtual disk of a virtual machine", + }, + Key: "host.DiskManager.acquireLeaseExt", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Renew all leases", + Summary: "Resets the watchdog timer and confirms that all the locks for all the disks managed by this watchdog are still valid", + }, + Key: "host.DiskManager.renewAllLeases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update configuration", + Summary: "Update the date and time on the host", + }, + Key: "host.DateTimeSystem.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available time zones", + Summary: "Retrieves the list of available time zones on the host", + }, + Key: "host.DateTimeSystem.queryAvailableTimeZones", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query date and time", + Summary: "Get the current date and time on the host", + }, + Key: "host.DateTimeSystem.queryDateTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update date or time", + Summary: "Update the date/time on the host", + }, + Key: "host.DateTimeSystem.updateDateTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh", + Summary: "Refresh the date and time settings", + }, + Key: "host.DateTimeSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Search datastore", + Summary: "Returns the information for the files that match the given search criteria", + }, + Key: "host.DatastoreBrowser.search", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Search datastore subfolders", + Summary: "Returns the information for the files that match the given search criteria", + }, + Key: "host.DatastoreBrowser.searchSubFolders", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete datastore file", + Summary: "Deletes the specified files from the datastore", + }, + Key: "host.DatastoreBrowser.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set CPU scheduler system custom value", + Summary: "Sets the value of a custom field of a host CPU scheduler", + }, + Key: "host.CpuSchedulerSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable hyperthreading", + Summary: "Enable hyperthreads as schedulable resources", + }, + Key: "host.CpuSchedulerSystem.enableHyperThreading", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable hyperthreading", + Summary: "Disable hyperthreads as schedulable resources", + }, + Key: "host.CpuSchedulerSystem.disableHyperThreading", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate a certificate signing request", + Summary: "Generates a certificate signing request (CSR) for the host", + }, + Key: "host.CertificateManager.generateCertificateSigningRequest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate a certificate signing request using the specified Distinguished Name", + Summary: "Generates a certificate signing request (CSR) for the host using the specified Distinguished Name", + }, + Key: "host.CertificateManager.generateCertificateSigningRequestByDn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install a server certificate", + Summary: "Installs a server certificate for the host", + }, + Key: "host.CertificateManager.installServerCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replace CA certificates and certificate revocation lists", + Summary: "Replaces the CA certificates and certificate revocation lists (CRLs) on the host", + }, + Key: "host.CertificateManager.replaceCACertificatesAndCRLs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify services affected by SSL credentials change", + Summary: "Notifies the host services affected by SSL credentials change", + }, + Key: "host.CertificateManager.notifyAffectedServices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List CA certificates", + Summary: "Lists the CA certificates on the host", + }, + Key: "host.CertificateManager.listCACertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List CA certificate revocation lists", + Summary: "Lists the CA certificate revocation lists (CRLs) on the host", + }, + Key: "host.CertificateManager.listCACertificateRevocationLists", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get boot devices", + Summary: "Get available boot devices for the host system", + }, + Key: "host.BootDeviceSystem.queryBootDevices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update boot device", + Summary: "Update the boot device on the host system", + }, + Key: "host.BootDeviceSystem.updateBootDevice", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set latest page size", + Summary: "Set the last page viewed size and contain at most maxCount items in the page", + }, + Key: "TaskHistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind", + Summary: "Move the scroll position to the oldest item", + }, + Key: "TaskHistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset", + Summary: "Move the scroll position to the item just above the last page viewed", + }, + Key: "TaskHistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove collector", + Summary: "Remove the collector from server", + }, + Key: "TaskHistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read next", + Summary: "The scroll position is moved to the next new page after the read", + }, + Key: "TaskHistoryCollector.readNext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read previous", + Summary: "The scroll position is moved to the next older page after the read", + }, + Key: "TaskHistoryCollector.readPrev", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "waitForChanges", + Summary: "waitForChanges", + }, + Key: "cdc.ChangeLogCollector.waitForChanges", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "initializeSequence", + Summary: "initializeSequence", + }, + Key: "cdc.ChangeLogCollector.initializeSequence", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "exchangeSequence", + Summary: "exchangeSequence", + }, + Key: "cdc.ChangeLogCollector.exchangeSequence", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm custom value", + Summary: "Sets the value of a custom field of an alarm", + }, + Key: "alarm.Alarm.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove alarm", + Summary: "Remove the alarm", + }, + Key: "alarm.Alarm.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure alarm", + Summary: "Reconfigure the alarm", + }, + Key: "alarm.Alarm.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove managed object", + Summary: "Remove the managed objects", + }, + Key: "view.ManagedObjectView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create scheduled task", + Summary: "Create a scheduled task", + }, + Key: "scheduler.ScheduledTaskManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve scheduled task", + Summary: "Available scheduled tasks defined on the entity", + }, + Key: "scheduler.ScheduledTaskManager.retrieveEntityScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create scheduled task", + Summary: "Create a scheduled task", + }, + Key: "scheduler.ScheduledTaskManager.createObjectScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve scheduled task", + Summary: "Available scheduled tasks defined on the object", + }, + Key: "scheduler.ScheduledTaskManager.retrieveObjectScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set scheduled task custom value", + Summary: "Sets the value of a custom field of a scheduled task", + }, + Key: "scheduler.ScheduledTask.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove scheduled task", + Summary: "Remove the scheduled task", + }, + Key: "scheduler.ScheduledTask.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure scheduled task", + Summary: "Reconfigure the scheduled task properties", + }, + Key: "scheduler.ScheduledTask.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Run scheduled task", + Summary: "Run the scheduled task immediately", + }, + Key: "scheduler.ScheduledTask.run", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create inventory view", + Summary: "Create a view for browsing the inventory and tracking changes to open folders", + }, + Key: "view.ViewManager.createInventoryView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create container view", + Summary: "Create a view for monitoring the contents of a single container", + }, + Key: "view.ViewManager.createContainerView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create list view", + Summary: "Create a view for getting updates", + }, + Key: "view.ViewManager.createListView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create list view", + Summary: "Create a list view from an existing view", + }, + Key: "view.ViewManager.createListViewFromView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove view", + Summary: "Remove view", + }, + Key: "view.View.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vSphere Distributed Switch", + Summary: "Create vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove vSphere Distributed Switch", + Summary: "Remove vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.removeDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.reconfigureDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPort", + Summary: "Update dvPort", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.updatePorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete ports", + Summary: "Delete ports", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.deletePorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve port state", + Summary: "Retrieve port state", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.fetchPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone port", + Summary: "Clone port", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.clonePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vSphere Distributed Switch configuration specification", + Summary: "Retrieve vSphere Distributed Switch configuration specification", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDvsConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Groups", + Summary: "Update Distributed Port Group", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.updateDVPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve port group keys for vSphere Distributed Switch", + Summary: "Retrieve the list of port group keys on a given vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve distributed virtual port group specification", + Summary: "Retrievs the configuration specification for distributed virtual port groups", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroupConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Load port", + Summary: "Load port", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.loadDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve the list of port keys on the given vSphere Distributed Switch", + Summary: "Retrieve the list of port keys on the given vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPorts", + Summary: "Update dvPort", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Groups", + Summary: "Update Distributed Port Group", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch", + Summary: "Update vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch list", + Summary: "Update vSphere Distributed Switch list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDvsList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Group list", + Summary: "Update Distributed Port Group list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortgroupList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPort list", + Summary: "Update dvPort list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute opaque command", + Summary: "Execute opaque command", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.executeOpaqueCommand", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set compute-resource custom value", + Summary: "Sets the value of a custom field for a unified compute resource", + }, + Key: "ComputeResource.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload resource", + Summary: "Reloads the resource", + }, + Key: "ComputeResource.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename compute-resource", + Summary: "Rename the compute-resource", + }, + Key: "ComputeResource.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove host", + Summary: "Removes the host resource", + }, + Key: "ComputeResource.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to this object", + }, + Key: "ComputeResource.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Removes a set of tags from this object", + }, + Key: "ComputeResource.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ComputeResource.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure compute-resource", + Summary: "Reconfigures a compute-resource", + }, + Key: "ComputeResource.reconfigureEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch set custom value", + Summary: "vSphere Distributed Switch set custom value", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload vSphere Distributed Switch", + Summary: "Reload vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vSphere Distributed Switch", + Summary: "Rename vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove vSphere Distributed Switch", + Summary: "Remove vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch add tag", + Summary: "vSphere Distributed Switch add tag", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch remove tag", + Summary: "vSphere Distributed Switch remove tag", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPort keys", + Summary: "Retrieve dvPort keys", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.fetchPortKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPorts", + Summary: "Retrieve dvPorts", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.fetchPorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query used virtual LAN ID", + Summary: "Query used virtual LAN ID", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.queryUsedVlanId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch product specification operation", + Summary: "vSphere Distributed Switch product specification operation", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.performProductSpecOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Merge vSphere Distributed Switch", + Summary: "Merge vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.merge", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Groups", + Summary: "Add Distributed Port Groups", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move dvPort", + Summary: "Move dvPort", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.movePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch capability", + Summary: "Update vSphere Distributed Switch capability", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure dvPort", + Summary: "Reconfigure dvPort", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigurePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh dvPort state", + Summary: "Refresh dvPort state", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.refreshPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify vSphere Distributed Switch host", + Summary: "Rectify vSphere Distributed Switch host", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network resource pools on vSphere Distributed Switch", + Summary: "Update network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add network resource pools on vSphere Distributed Switch", + Summary: "Add network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network resource pools on vSphere Distributed Switch", + Summary: "Remove network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.removeNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure a network resource pool on a distributed switch", + Summary: "Reconfigures a network resource pool on a distributed switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network I/O control on vSphere Distributed Switch", + Summary: "Update network I/O control on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.enableNetworkResourceManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get vSphere Distributed Switch configuration spec to rollback", + Summary: "Get vSphere Distributed Switch configuration spec to rollback", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update health check configuration on vSphere Distributed Switch", + Summary: "Update health check configuration on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateHealthCheckConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Link Aggregation Control Protocol groups on vSphere Distributed Switch", + Summary: "Update Link Aggregation Control Protocol groups on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateLacpGroupConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion send operation", + Summary: "Prepare a vMotion send operation", + }, + Key: "host.VMotionManager.prepareSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare VMotion send operation asynchronously", + Summary: "Prepares a VMotion send operation asynchronously", + }, + Key: "host.VMotionManager.prepareSourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion receive operation", + Summary: "Prepare a vMotion receive operation", + }, + Key: "host.VMotionManager.prepareDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion receive operation asynchronously", + Summary: "Prepares a vMotion receive operation asynchronously", + }, + Key: "host.VMotionManager.prepareDestinationEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate vMotion receive operation", + Summary: "Initiate a vMotion receive operation", + }, + Key: "host.VMotionManager.initiateDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate vMotion send operation", + Summary: "Initiate a vMotion send operation", + }, + Key: "host.VMotionManager.initiateSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate VMotion send operation", + Summary: "Initiates a VMotion send operation", + }, + Key: "host.VMotionManager.initiateSourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete vMotion source notification", + Summary: "Tell the source that vMotion migration is complete (success or failure)", + }, + Key: "host.VMotionManager.completeSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete vMotion receive notification", + Summary: "Tell the destination that vMotion migration is complete (success or failure)", + }, + Key: "host.VMotionManager.completeDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Commit vMotion destination upgrade", + Summary: "Reparent the disks at destination and commit the redo logs at the end of a vMotion migration", + }, + Key: "host.VMotionManager.upgradeDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMotionManager memory mirror migrate flag", + Summary: "Enables or disables VMotionManager memory mirror migrate", + }, + Key: "host.VMotionManager.updateMemMirrorFlag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMigrationIds", + Summary: "queryMigrationIds", + }, + Key: "host.VMotionManager.queryMigrationIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove list view", + Summary: "Remove the list view object", + }, + Key: "view.ListView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Modify list view", + Summary: "Modify the list view", + }, + Key: "view.ListView.modify", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset list view", + Summary: "Reset the list view", + }, + Key: "view.ListView.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset view", + Summary: "Resets a set of objects in a given view", + }, + Key: "view.ListView.resetFromView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerProvider", + Summary: "registerProvider", + }, + Key: "ExternalStatsManager.registerProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unregisterProvider", + Summary: "unregisterProvider", + }, + Key: "ExternalStatsManager.unregisterProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "isRegistered", + Summary: "isRegistered", + }, + Key: "ExternalStatsManager.isRegistered", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getRegisteredProviders", + Summary: "getRegisteredProviders", + }, + Key: "ExternalStatsManager.getRegisteredProviders", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getEnabledClusters", + Summary: "getEnabledClusters", + }, + Key: "ExternalStatsManager.getEnabledClusters", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateStats", + Summary: "updateStats", + }, + Key: "ExternalStatsManager.updateStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vMotion custom value", + Summary: "Sets the value of a custom field of a host vMotion system", + }, + Key: "host.VMotionSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP configuration", + Summary: "Update the IP configuration of the vMotion virtual NIC", + }, + Key: "host.VMotionSystem.updateIpConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Select vMotion virtual NIC", + Summary: "Select the virtual NIC to be used for vMotion", + }, + Key: "host.VMotionSystem.selectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deselect vMotion virtual NIC", + Summary: "Deselect the virtual NIC to be used for vMotion", + }, + Key: "host.VMotionSystem.deselectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of host or cluster against a profile", + }, + Key: "profile.ComplianceManager.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compliance status", + Summary: "Query compliance status", + }, + Key: "profile.ComplianceManager.queryComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryEntitiesByComplianceStatus", + Summary: "queryEntitiesByComplianceStatus", + }, + Key: "profile.ComplianceManager.queryEntitiesByComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear compliance history", + Summary: "Clear historical compliance data", + }, + Key: "profile.ComplianceManager.clearComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query expression metadata", + Summary: "Query expression metadata", + }, + Key: "profile.ComplianceManager.queryExpressionMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.ContentLibrary.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.ContentLibrary.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.ContentLibrary.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.ContentLibrary.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.ContentLibrary.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.ContentLibrary.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.ContentLibrary.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query entity provider summary", + Summary: "Get information about the performance statistics that can be queried for a particular entity", + }, + Key: "PerformanceManager.queryProviderSummary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available metrics", + Summary: "Gets available performance statistic metrics for the specified managed entity between begin and end times", + }, + Key: "PerformanceManager.queryAvailableMetric", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query counter", + Summary: "Get counter information for the list of counter IDs passed in", + }, + Key: "PerformanceManager.queryCounter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query counter by level", + Summary: "All performance data over 1 year old are deleted from the vCenter database", + }, + Key: "PerformanceManager.queryCounterByLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query performance statistics", + Summary: "Gets the performance statistics for the entity", + }, + Key: "PerformanceManager.queryStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get composite statistics", + Summary: "Get performance statistics for the entity and the breakdown across its child entities", + }, + Key: "PerformanceManager.queryCompositeStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Summarizes performance statistics", + Summary: "Summarizes performance statistics at the specified interval", + }, + Key: "PerformanceManager.summarizeStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create historical interval", + Summary: "Add a new historical interval configuration", + }, + Key: "PerformanceManager.createHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove historical interval", + Summary: "Remove a historical interval configuration", + }, + Key: "PerformanceManager.removeHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update historical interval", + Summary: "Update a historical interval configuration if it exists", + }, + Key: "PerformanceManager.updateHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update counter level mapping", + Summary: "Update counter to level mapping", + }, + Key: "PerformanceManager.updateCounterLevelMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset counter level mapping", + Summary: "Reset counter to level mapping to the default values", + }, + Key: "PerformanceManager.resetCounterLevelMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query internal performance counters", + Summary: "Queries all internal counters, supported by this performance manager", + }, + Key: "PerformanceManager.queryPerfCounterInt", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable performance counters", + Summary: "Enable a counter or a set of counters in the counters collection of this performance manager", + }, + Key: "PerformanceManager.enableStat", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable performance counters", + Summary: "Exclude a counter or a set of counters from the counters collection of this performance manager", + }, + Key: "PerformanceManager.disableStat", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "CreateVRP", + Summary: "CreateVRP", + }, + Key: "VRPResourceManager.CreateVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "UpdateVRP", + Summary: "UpdateVRP", + }, + Key: "VRPResourceManager.UpdateVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DeleteVRP", + Summary: "DeleteVRP", + }, + Key: "VRPResourceManager.DeleteVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DeployVM", + Summary: "DeployVM", + }, + Key: "VRPResourceManager.DeployVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "UndeployVM", + Summary: "UndeployVM", + }, + Key: "VRPResourceManager.UndeployVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "SetManagedByVDC", + Summary: "SetManagedByVDC", + }, + Key: "VRPResourceManager.SetManagedByVDC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetAllVRPIds", + Summary: "GetAllVRPIds", + }, + Key: "VRPResourceManager.GetAllVRPIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetRPSettings", + Summary: "GetRPSettings", + }, + Key: "VRPResourceManager.GetRPSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPSettings", + Summary: "GetVRPSettings", + }, + Key: "VRPResourceManager.GetVRPSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPUsage", + Summary: "GetVRPUsage", + }, + Key: "VRPResourceManager.GetVRPUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPofVM", + Summary: "GetVRPofVM", + }, + Key: "VRPResourceManager.GetVRPofVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetChildRPforHub", + Summary: "GetChildRPforHub", + }, + Key: "VRPResourceManager.GetChildRPforHub", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set PCI passthrough system custom value", + Summary: "Set PCI Passthrough system custom value", + }, + Key: "host.PciPassthruSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh PCI passthrough device information", + Summary: "Refresh the available PCI passthrough device information", + }, + Key: "host.PciPassthruSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update PCI passthrough configuration", + Summary: "Update PCI passthrough device configuration", + }, + Key: "host.PciPassthruSystem.updatePassthruConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check virtual machine's compatibility on host", + Summary: "Checks whether a virtual machine is compatible on a host", + }, + Key: "vm.check.CompatibilityChecker.checkCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compatibility of a VM specification on a host", + Summary: "Checks compatibility of a VM specification on a host", + }, + Key: "vm.check.CompatibilityChecker.checkVMCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance of host against profile", + Summary: "Checks compliance of a host against a profile", + }, + Key: "profile.host.profileEngine.ComplianceManager.checkHostCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query expression metadata", + Summary: "Queries the metadata for the given expression names", + }, + Key: "profile.host.profileEngine.ComplianceManager.queryExpressionMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get the default compliance from host configuration subprofiles", + Summary: "Get the default compliance from host configuration subprofiles", + }, + Key: "profile.host.profileEngine.ComplianceManager.getDefaultCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update specific metadata", + Summary: "Update specific metadata for the given owner and list of virtual machine IDs", + }, + Key: "vm.MetadataManager.updateMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve specific metadata", + Summary: "Retrieve specific metadata for the given owner and list of virtual machine IDs", + }, + Key: "vm.MetadataManager.retrieveMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve all metadata", + Summary: "Retrieve all metadata for the given owner and datastore", + }, + Key: "vm.MetadataManager.retrieveAllMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear metadata", + Summary: "Clear all metadata for the given owner and datastore", + }, + Key: "vm.MetadataManager.clearMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.AntiAffinityGroup.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.AntiAffinityGroup.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.AntiAffinityGroup.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.AntiAffinityGroup.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.AntiAffinityGroup.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.AntiAffinityGroup.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.AntiAffinityGroup.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validate", + Summary: "validate", + }, + Key: "vdcs.NicManager.validate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "bind", + Summary: "bind", + }, + Key: "vdcs.NicManager.bind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unbind", + Summary: "unbind", + }, + Key: "vdcs.NicManager.unbind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "executeStep", + Summary: "executeStep", + }, + Key: "modularity.WorkflowStepHandler.executeStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "undoStep", + Summary: "undoStep", + }, + Key: "modularity.WorkflowStepHandler.undoStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "finalizeStep", + Summary: "finalizeStep", + }, + Key: "modularity.WorkflowStepHandler.finalizeStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add key", + Summary: "Add the specified key to the current host", + }, + Key: "encryption.CryptoManager.addKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add keys", + Summary: "Add the specified keys to the current host", + }, + Key: "encryption.CryptoManager.addKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove key", + Summary: "Remove the specified key from the current host", + }, + Key: "encryption.CryptoManager.removeKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove keys", + Summary: "Remove the specified keys from the current host", + }, + Key: "encryption.CryptoManager.removeKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all keys", + Summary: "List all the keys registered on the current host", + }, + Key: "encryption.CryptoManager.listKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vCenter HA cluster mode", + Summary: "Set vCenter HA cluster mode", + }, + Key: "vcha.FailoverClusterManager.setClusterMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getClusterMode", + Summary: "getClusterMode", + }, + Key: "vcha.FailoverClusterManager.getClusterMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getClusterHealth", + Summary: "getClusterHealth", + }, + Key: "vcha.FailoverClusterManager.getClusterHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate failover", + Summary: "Initiate a failover from active vCenter Server node to the passive node", + }, + Key: "vcha.FailoverClusterManager.initiateFailover", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query proxy information", + Summary: "Query the common message bus proxy service information", + }, + Key: "host.MessageBusProxy.retrieveInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure proxy", + Summary: "Configure the common message bus proxy service", + }, + Key: "host.MessageBusProxy.configure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove proxy configuration", + Summary: "Remove the common message proxy service configuration and disable the service", + }, + Key: "host.MessageBusProxy.unconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start proxy", + Summary: "Start the common message bus proxy service", + }, + Key: "host.MessageBusProxy.start", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop proxy", + Summary: "Stop the common message bus proxy service", + }, + Key: "host.MessageBusProxy.stop", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload proxy", + Summary: "Reload the common message bus proxy service and enable any configuration changes", + }, + Key: "host.MessageBusProxy.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a virtual disk object", + Summary: "Create a virtual disk object", + }, + Key: "vslm.host.VStorageObjectManager.createDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register a legacy disk to be a virtual disk object", + Summary: "Register a legacy disk to be a virtual disk object", + }, + Key: "vslm.host.VStorageObjectManager.registerDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend a virtual disk to the new capacity", + Summary: "Extend a virtual disk to the new capacity", + }, + Key: "vslm.host.VStorageObjectManager.extendDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate a thin virtual disk", + Summary: "Inflate a thin virtual disk", + }, + Key: "vslm.host.VStorageObjectManager.inflateDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a virtual storage object", + Summary: "Rename a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.renameVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update storage policy on a virtual storage object", + Summary: "Update storage policy on a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.updateVStorageObjectPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a virtual storage object", + Summary: "Delete a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.deleteVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a virtual storage object", + Summary: "Retrieve a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.retrieveVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveVStorageObjectState", + Summary: "retrieveVStorageObjectState", + }, + Key: "vslm.host.VStorageObjectManager.retrieveVStorageObjectState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List virtual storage objects on a datastore", + Summary: "List virtual storage objects on a datastore", + }, + Key: "vslm.host.VStorageObjectManager.listVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone a virtual storage object", + Summary: "Clone a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.cloneVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate a virtual storage object", + Summary: "Relocate a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.relocateVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconcile datastore inventory", + Summary: "Reconcile datastore inventory", + }, + Key: "vslm.host.VStorageObjectManager.reconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Schedule reconcile datastore inventory", + Summary: "Schedule reconcile datastore inventory", + }, + Key: "vslm.host.VStorageObjectManager.scheduleReconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve cluster profile description", + Summary: "Retrieve cluster profile description", + }, + Key: "profile.cluster.ClusterProfile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete cluster profile", + Summary: "Delete cluster profile", + }, + Key: "profile.cluster.ClusterProfile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach cluster profile", + Summary: "Attach cluster profile to cluster", + }, + Key: "profile.cluster.ClusterProfile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach cluster profile", + Summary: "Detach cluster profile from cluster", + }, + Key: "profile.cluster.ClusterProfile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of a cluster against a cluster profile", + }, + Key: "profile.cluster.ClusterProfile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export cluster profile", + Summary: "Export cluster profile to a file", + }, + Key: "profile.cluster.ClusterProfile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update cluster profile", + Summary: "Update configuration of cluster profile", + }, + Key: "profile.cluster.ClusterProfile.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create task collector", + Summary: "Creates a task collector to retrieve all tasks that have executed on the server based on a filter", + }, + Key: "TaskManager.createCollector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create task", + Summary: "Create a task", + }, + Key: "TaskManager.createTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "createTaskWithEntityName", + Summary: "createTaskWithEntityName", + }, + Key: "TaskManager.createTaskWithEntityName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disks for use in vSAN cluster", + Summary: "Queries disk eligibility for use in the vSAN cluster", + }, + Key: "host.VsanSystem.queryDisksForVsan", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add disks to vSAN", + Summary: "Adds the selected disks to the vSAN cluster", + }, + Key: "host.VsanSystem.addDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initialize disks in the vSAN cluster", + Summary: "Initializes the selected disks to be used in the vSAN cluster", + }, + Key: "host.VsanSystem.initializeDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove disk from vSAN", + Summary: "Removes the disks that are used in the vSAN cluster", + }, + Key: "host.VsanSystem.removeDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove disk group from vSAN", + Summary: "Removes the selected disk group from the vSAN cluster", + }, + Key: "host.VsanSystem.removeDiskMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmountDiskMapping", + Summary: "unmountDiskMapping", + }, + Key: "host.VsanSystem.unmountDiskMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSAN configuration", + Summary: "Updates the vSAN configuration for this host", + }, + Key: "host.VsanSystem.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vSAN runtime information", + Summary: "Retrieves the current vSAN runtime information for this host", + }, + Key: "host.VsanSystem.queryHostStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evacuate this host from vSAN cluster", + Summary: "Evacuates the specified host from the vSAN cluster", + }, + Key: "host.VsanSystem.evacuateNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recommission this host back to vSAN cluster", + Summary: "Recommissions the host back to vSAN cluster", + }, + Key: "host.VsanSystem.recommissionNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a ticket to register the vSAN VASA Provider", + Summary: "Retrieves a ticket to register the VASA Provider for vSAN in the Storage Monitoring Service", + }, + Key: "host.VsanSystem.fetchVsanSharedSecret", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.TagPolicy.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.TagPolicy.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.TagPolicy.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.TagPolicy.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.TagPolicy.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.TagPolicy.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.TagPolicy.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create alarm", + Summary: "Create a new alarm", + }, + Key: "alarm.AlarmManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve alarm", + Summary: "Get available alarms defined on the entity", + }, + Key: "alarm.AlarmManager.getAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get alarm actions enabled", + Summary: "Checks if alarm actions are enabled for an entity", + }, + Key: "alarm.AlarmManager.getAlarmActionsEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm actions enabled", + Summary: "Enables or disables firing alarm actions for an entity", + }, + Key: "alarm.AlarmManager.setAlarmActionsEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get alarm state", + Summary: "The state of instantiated alarms on the entity", + }, + Key: "alarm.AlarmManager.getAlarmState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acknowledge alarm", + Summary: "Stops alarm actions from firing until the alarm next triggers on an entity", + }, + Key: "alarm.AlarmManager.acknowledgeAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm status", + Summary: "Sets the status of an alarm for an entity", + }, + Key: "alarm.AlarmManager.setAlarmStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "clearTriggeredAlarms", + Summary: "clearTriggeredAlarms", + }, + Key: "alarm.AlarmManager.clearTriggeredAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "testSMTPSetup", + Summary: "testSMTPSetup", + }, + Key: "alarm.AlarmManager.testSMTPSetup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create private alarm on managed entity", + Summary: "Creates a Private (trigger-only) Alarm on a managed entity", + }, + Key: "alarm.AlarmManager.createPrivateAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query private alarms on managed entity", + Summary: "Retrieves all of the Private (trigger-only) Alarms defined on the specified managed entity", + }, + Key: "alarm.AlarmManager.queryPrivateAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sync triggered alarms list", + Summary: "Retrieves the full list of currently-triggered Alarms, as a list of triggers", + }, + Key: "alarm.AlarmManager.syncTriggeredAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve queued-up alarm triggers", + Summary: "Retrieves any queued-up alarm triggers representing Alarm state changes since the last time this method was called", + }, + Key: "alarm.AlarmManager.retrieveTriggers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group set custom value", + Summary: "Distributed Port Group set custom value", + }, + Key: "dvs.DistributedVirtualPortgroup.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload Distributed Port Group", + Summary: "Reload Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename Distributed Port Group", + Summary: "Rename Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Distributed Port Group", + Summary: "Delete Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag to Distributed Port Group", + Summary: "Add tag to Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group remove tag", + Summary: "Distributed Port Group remove tag", + }, + Key: "dvs.DistributedVirtualPortgroup.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "dvs.DistributedVirtualPortgroup.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group delete network", + Summary: "Distributed Port Group delete network", + }, + Key: "dvs.DistributedVirtualPortgroup.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure Distributed Port Group", + Summary: "Reconfigure Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get Distributed Port Group configuration spec to rollback", + Summary: "Get Distributed Port Group configuration spec to rollback", + }, + Key: "dvs.DistributedVirtualPortgroup.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query CMMDS", + Summary: "Queries CMMDS contents in the vSAN cluster", + }, + Key: "host.VsanInternalSystem.queryCmmds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query physical vSAN disks", + Summary: "Queries the physical vSAN disks", + }, + Key: "host.VsanInternalSystem.queryPhysicalVsanDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects", + Summary: "Queries the vSAN objects in the cluster", + }, + Key: "host.VsanInternalSystem.queryVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects on physical disks", + Summary: "Queries the vSAN objects that have at least one component on the current set of physical disks", + }, + Key: "host.VsanInternalSystem.queryObjectsOnPhysicalVsanDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Drop ownership of DOM objects", + Summary: "Drop ownership of the DOM objects that are owned by this host", + }, + Key: "host.VsanInternalSystem.abdicateDomOwnership", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN statistics", + Summary: "Gathers low level statistic counters from the vSAN cluster", + }, + Key: "host.VsanInternalSystem.queryVsanStatistics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigures vSAN objects", + Summary: "Reconfigures the vSAN objects in the cluster", + }, + Key: "host.VsanInternalSystem.reconfigureDomObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects that are currently synchronizing data", + Summary: "Queries vSAN objects that are updating stale components or synchronizing new replicas", + }, + Key: "host.VsanInternalSystem.querySyncingVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Run diagnostics on vSAN disks", + Summary: "Runs diagnostic tests on vSAN physical disks and verifies if objects are successfully created on the disks", + }, + Key: "host.VsanInternalSystem.runVsanPhysicalDiskDiagnostics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attributes of vSAN objects", + Summary: "Shows the extended attributes of the vSAN objects", + }, + Key: "host.VsanInternalSystem.getVsanObjExtAttrs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configurable vSAN objects", + Summary: "Identifies the vSAN objects that can be reconfigured using the assigned storage policy in the current cluster", + }, + Key: "host.VsanInternalSystem.reconfigurationSatisfiable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN objects available for provisioning", + Summary: "Identifies the vSAN objects that are available for provisioning using the assigned storage policy in the current cluster", + }, + Key: "host.VsanInternalSystem.canProvisionObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteVsanObjects", + Summary: "deleteVsanObjects", + }, + Key: "host.VsanInternalSystem.deleteVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vSAN object format", + Summary: "Upgrade vSAN object format, to fit in vSAN latest features", + }, + Key: "host.VsanInternalSystem.upgradeVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryVsanObjectUuidsByFilter", + Summary: "queryVsanObjectUuidsByFilter", + }, + Key: "host.VsanInternalSystem.queryVsanObjectUuidsByFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN entities available for decommissioning", + Summary: "Identifies the vSAN entities that are available for decommissioning in the current cluster", + }, + Key: "host.VsanInternalSystem.canDecommission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getNetworkIpSettings", + Summary: "getNetworkIpSettings", + }, + Key: "vdcs.IpManager.getNetworkIpSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "allocate", + Summary: "allocate", + }, + Key: "vdcs.IpManager.allocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "release", + Summary: "release", + }, + Key: "vdcs.IpManager.release", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "releaseAll", + Summary: "releaseAll", + }, + Key: "vdcs.IpManager.releaseAll", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryAll", + Summary: "queryAll", + }, + Key: "vdcs.IpManager.queryAll", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile description", + Summary: "Retrieve profile description", + }, + Key: "profile.Profile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove profile", + Summary: "Remove profile", + }, + Key: "profile.Profile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Associate entities", + Summary: "Associate entities with the profile", + }, + Key: "profile.Profile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Dissociate entities", + Summary: "Dissociate entities from the profile", + }, + Key: "profile.Profile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance against the profile", + }, + Key: "profile.Profile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export profile", + Summary: "Export profile to a file", + }, + Key: "profile.Profile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Authenticate credentials in guest", + Summary: "Authenticate credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.validateCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire credentials in guest", + Summary: "Acquire credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.acquireCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Release credentials in guest", + Summary: "Release credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.releaseCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.TagPolicyOption.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.TagPolicyOption.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.TagPolicyOption.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.TagPolicyOption.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.TagPolicyOption.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.TagPolicyOption.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.TagPolicyOption.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update assigned license", + Summary: "Updates the license assigned to an entity", + }, + Key: "LicenseAssignmentManager.updateAssignedLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove assigned license", + Summary: "Removes an assignment of a license to an entity", + }, + Key: "LicenseAssignmentManager.removeAssignedLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query assigned licenses", + Summary: "Queries for all the licenses assigned to an entity or all entities", + }, + Key: "LicenseAssignmentManager.queryAssignedLicenses", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check feature availability", + Summary: "Checks if the corresponding features are licensed for a list of entities", + }, + Key: "LicenseAssignmentManager.isFeatureAvailable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update in-use status of a licensed feature", + Summary: "Updates in-use status of a licensed feature", + }, + Key: "LicenseAssignmentManager.updateFeatureInUse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register licenseable entity", + Summary: "Registers a licenseable entity", + }, + Key: "LicenseAssignmentManager.registerEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister licenseable entity", + Summary: "Unregisters an existing licenseable entity and releases any serial numbers assigned to it.", + }, + Key: "LicenseAssignmentManager.unregisterEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update license entity usage count", + Summary: "Updates the usage count of a license entity", + }, + Key: "LicenseAssignmentManager.updateUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upload license file", + Summary: "Uploads a license file to vCenter Server", + }, + Key: "LicenseAssignmentManager.uploadLicenseFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryAssignedLicensesEx", + Summary: "queryAssignedLicensesEx", + }, + Key: "LicenseAssignmentManager.queryAssignedLicensesEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntity", + Summary: "updateEntity", + }, + Key: "LicenseAssignmentManager.updateEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntitiesProperties", + Summary: "updateEntitiesProperties", + }, + Key: "LicenseAssignmentManager.updateEntitiesProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.VirtualDatacenter.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.VirtualDatacenter.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.VirtualDatacenter.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.VirtualDatacenter.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.VirtualDatacenter.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.VirtualDatacenter.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.VirtualDatacenter.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query options view", + Summary: "Returns nodes in the option hierarchy", + }, + Key: "option.OptionManager.queryView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update option values", + Summary: "Updates one or more properties", + }, + Key: "option.OptionManager.updateValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get diagnostic files", + Summary: "Gets the list of diagnostic files for a given system", + }, + Key: "DiagnosticManager.queryDescriptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Browse diagnostic manager", + Summary: "Returns part of a log file", + }, + Key: "DiagnosticManager.browse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate system logs bundles", + Summary: "Instructs the server to generate system logs bundles", + }, + Key: "DiagnosticManager.generateLogBundles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query file hash", + Summary: "Queries file integrity information", + }, + Key: "DiagnosticManager.queryFileHash", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.ContentLibraryItem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.ContentLibraryItem.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.ContentLibraryItem.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.ContentLibraryItem.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.ContentLibraryItem.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.ContentLibraryItem.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.ContentLibraryItem.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a host profile", + Summary: "Create a host profile", + }, + Key: "profile.host.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.host.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.host.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply host configuration", + Summary: "Apply host configuration", + }, + Key: "profile.host.ProfileManager.applyHostConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMetadata", + Summary: "queryMetadata", + }, + Key: "profile.host.ProfileManager.queryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate configuration task list for host profile", + Summary: "Generates a list of configuration tasks to be performed when applying a host profile", + }, + Key: "profile.host.ProfileManager.generateConfigTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate task list", + Summary: "Generate task list", + }, + Key: "profile.host.ProfileManager.generateTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile metadata", + Summary: "Query profile metadata", + }, + Key: "profile.host.ProfileManager.queryProfileMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query metadata for profile categories", + Summary: "Retrieves the metadata for a set of profile categories", + }, + Key: "profile.host.ProfileManager.queryProfileCategoryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query metadata for profile components", + Summary: "Retrieves the metadata for a set of profile components", + }, + Key: "profile.host.ProfileManager.queryProfileComponentMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile structure", + Summary: "Gets information about the structure of a profile", + }, + Key: "profile.host.ProfileManager.queryProfileStructure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create default profile", + Summary: "Create default profile", + }, + Key: "profile.host.ProfileManager.createDefaultProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host customizations", + Summary: "Update host customizations for host", + }, + Key: "profile.host.ProfileManager.updateAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host customizations", + Summary: "Validate host customizations for host", + }, + Key: "profile.host.ProfileManager.validateAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host customizations", + Summary: "Returns the host customization data associated with a particular host", + }, + Key: "profile.host.ProfileManager.retrieveAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveAnswerFileForProfile", + Summary: "retrieveAnswerFileForProfile", + }, + Key: "profile.host.ProfileManager.retrieveAnswerFileForProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host customizations", + Summary: "Export host customizations for host", + }, + Key: "profile.host.ProfileManager.exportAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check host customizations status", + Summary: "Check the status of the host customizations against associated profile", + }, + Key: "profile.host.ProfileManager.checkAnswerFileStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host customization status", + Summary: "Returns the status of the host customization data associated with the specified hosts", + }, + Key: "profile.host.ProfileManager.queryAnswerFileStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host customizations", + Summary: "Update host customizations", + }, + Key: "profile.host.ProfileManager.updateHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validateHostCustomizations", + Summary: "validateHostCustomizations", + }, + Key: "profile.host.ProfileManager.validateHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostCustomizations", + Summary: "retrieveHostCustomizations", + }, + Key: "profile.host.ProfileManager.retrieveHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostCustomizationsForProfile", + Summary: "retrieveHostCustomizationsForProfile", + }, + Key: "profile.host.ProfileManager.retrieveHostCustomizationsForProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host customizations", + Summary: "Export host customizations", + }, + Key: "profile.host.ProfileManager.exportCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import host customizations", + Summary: "Import host customizations", + }, + Key: "profile.host.ProfileManager.importCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pre-check Remediation", + Summary: "Checks customization data and host state is valid for remediation", + }, + Key: "profile.host.ProfileManager.generateHostConfigTaskSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Batch apply host configuration", + Summary: "Batch apply host configuration", + }, + Key: "profile.host.ProfileManager.applyEntitiesConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare validation of settings to be copied", + Summary: "Generate differences between source and target host profile to validate settings to be copied", + }, + Key: "profile.host.ProfileManager.validateComposition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy settings to host profiles", + Summary: "Copy settings to host profiles", + }, + Key: "profile.host.ProfileManager.compositeProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update the VASA provider state", + Summary: "Updates the VASA provider state for the specified datastores", + }, + Key: "VasaVvolManager.updateVasaProviderState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a new Virtual Volume datastore", + }, + Key: "VasaVvolManager.createVVolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Virtual Volume datastore", + Summary: "Remove Virtual Volume datastore from specified hosts", + }, + Key: "VasaVvolManager.removeVVolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update the VASA client context", + Summary: "Updates the VASA client context on the host", + }, + Key: "VasaVvolManager.updateVasaClientContext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate vMotion migration of VMs to hosts", + Summary: "Checks whether the specified VMs can be migrated with vMotion to all the specified hosts", + }, + Key: "vm.check.ProvisioningChecker.queryVMotionCompatibilityEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate migration of VM to destination", + Summary: "Checks whether the VM can be migrated to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkMigrate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate relocation of VM to destination", + Summary: "Checks whether the VM can be relocated to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkRelocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate cloning VM to destination", + Summary: "Checks whether the VM can be cloned to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "checkInstantClone", + Summary: "checkInstantClone", + }, + Key: "vm.check.ProvisioningChecker.checkInstantClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove inventory view", + Summary: "Remove the inventory view object", + }, + Key: "view.InventoryView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open inventory view folder", + Summary: "Adds the child objects of a given managed entity to the view", + }, + Key: "view.InventoryView.openFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Close inventory view", + Summary: "Notify the server that folders have been closed", + }, + Key: "view.InventoryView.closeFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete container view", + Summary: "Remove a list view object from current contents of this view", + }, + Key: "view.ContainerView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create profile", + Summary: "Create profile", + }, + Key: "profile.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set event history latest page size", + Summary: "Set the last page viewed size of event history", + }, + Key: "event.EventHistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind event history", + Summary: "Moves view to the oldest item of event history", + }, + Key: "event.EventHistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset event history", + Summary: "Moves view to the newest item of event history", + }, + Key: "event.EventHistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove event history", + Summary: "Removes the event history collector", + }, + Key: "event.EventHistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read next event history", + Summary: "Reads view from current position of event history, and then the position is moved to the next newer page", + }, + Key: "event.EventHistoryCollector.readNext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read previous event history", + Summary: "Reads view from current position of event history and moves the position to the next older page", + }, + Key: "event.EventHistoryCollector.readPrev", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecificationByFile", + Summary: "updateHostSubSpecificationByFile", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecificationByData", + Summary: "updateHostSubSpecificationByData", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostSpecification", + Summary: "retrieveHostSpecification", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.retrieveHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSubSpecification", + Summary: "deleteHostSubSpecification", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.deleteHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual NIC custom value", + Summary: "Set the value of a custom filed of a host's virtual NIC manager", + }, + Key: "host.VirtualNicManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network configuration", + Summary: "Gets the network configuration for the specified NIC type", + }, + Key: "host.VirtualNicManager.queryNetConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Select virtual NIC", + Summary: "Select the virtual NIC to be used for the specified NIC type", + }, + Key: "host.VirtualNicManager.selectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deselect virtual NIC", + Summary: "Deselect the virtual NIC used for the specified NIC type", + }, + Key: "host.VirtualNicManager.deselectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query latest statistics for a virtual machine", + Summary: "Queries the latest values of performance statistics of a virtual machine", + }, + Key: "InternalStatsCollector.queryLatestVmStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure host power management policy", + Summary: "Configure host power management policy", + }, + Key: "host.PowerSystem.configurePolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set a custom value for EVC manager", + Summary: "Sets a value in the custom field for Enhanced vMotion Compatibility manager", + }, + Key: "cluster.EVCManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable/reconfigure EVC", + Summary: "Enable/reconfigure Enhanced vMotion Compatibility in a cluster", + }, + Key: "cluster.EVCManager.configureEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable cluster EVC", + Summary: "Disable Enhanced vMotion Compatibility in a cluster", + }, + Key: "cluster.EVCManager.disableEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate EVC configuration", + Summary: "Validates the configuration of Enhanced vMotion Compatibility mode in the managed cluster", + }, + Key: "cluster.EVCManager.checkConfigureEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate hosts in EVC", + Summary: "Validates new hosts in the Enhanced vMotion Compatibility cluster", + }, + Key: "cluster.EVCManager.checkAddHostEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash resource", + Summary: "Configures virtual flash resource on a list of SSD devices", + }, + Key: "host.VFlashManager.configureVFlashResourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash resource", + Summary: "Configures virtual flash resource on a host", + }, + Key: "host.VFlashManager.configureVFlashResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual flash resource", + Summary: "Removes virtual flash resource from a host", + }, + Key: "host.VFlashManager.removeVFlashResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash host swap cache", + Summary: "Configures virtual flash host swap cache", + }, + Key: "host.VFlashManager.configureHostVFlashCache", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual flash module configuration options from a host", + Summary: "Retrieves virtual flash module configuration options from a host", + }, + Key: "host.VFlashManager.getVFlashModuleDefaultConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set managed entity custom value", + Summary: "Sets the value of a custom field of a managed entity", + }, + Key: "ManagedEntity.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload managed entity", + Summary: "Reload the entity state", + }, + Key: "ManagedEntity.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename managed entity", + Summary: "Rename this entity", + }, + Key: "ManagedEntity.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove entity", + Summary: "Deletes the entity and removes it from parent folder", + }, + Key: "ManagedEntity.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the entity", + }, + Key: "ManagedEntity.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the entity", + }, + Key: "ManagedEntity.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ManagedEntity.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host profile description", + Summary: "Retrieve host profile description", + }, + Key: "profile.host.HostProfile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete host profile", + Summary: "Delete host profile", + }, + Key: "profile.host.HostProfile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach host profile", + Summary: "Attach host profile to host or cluster", + }, + Key: "profile.host.HostProfile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach host profile", + Summary: "Detach host profile from host or cluster", + }, + Key: "profile.host.HostProfile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of a host or cluster against a host profile", + }, + Key: "profile.host.HostProfile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host profile", + Summary: "Export host profile to a file", + }, + Key: "profile.host.HostProfile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update reference host", + Summary: "Update reference host", + }, + Key: "profile.host.HostProfile.updateReferenceHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host profile", + Summary: "Update host profile", + }, + Key: "profile.host.HostProfile.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validate", + Summary: "validate", + }, + Key: "profile.host.HostProfile.validate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute profile", + Summary: "Execute profile", + }, + Key: "profile.host.HostProfile.execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure AutoStart Manager", + Summary: "Changes the power on or power off sequence", + }, + Key: "host.AutoStartManager.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Auto power On", + Summary: "Powers On virtual machines according to the current AutoStart configuration", + }, + Key: "host.AutoStartManager.autoPowerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Auto power Off", + Summary: "Powers Off virtual machines according to the current AutoStart configuration", + }, + Key: "host.AutoStartManager.autoPowerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register Fault Tolerant Secondary VM", + Summary: "Registers a Secondary VM with a Fault Tolerant Primary VM", + }, + Key: "host.FaultToleranceManager.registerSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister Fault Tolerant Secondary VM", + Summary: "Unregister a Secondary VM from the associated Primary VM", + }, + Key: "host.FaultToleranceManager.unregisterSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make Primary VM", + Summary: "Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM", + }, + Key: "host.FaultToleranceManager.makePrimary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make peer VM primary", + Summary: "Makes the peer VM primary and terminates the local virtual machine", + }, + Key: "host.FaultToleranceManager.goLivePeerVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop Fault Tolerant virtual machine", + Summary: "Stop a specified virtual machine in a Fault Tolerant pair", + }, + Key: "host.FaultToleranceManager.terminateFaultTolerantVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable Secondary VM", + Summary: "Disable Fault Tolerance on a specified Secondary VM", + }, + Key: "host.FaultToleranceManager.disableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable Secondary VM", + Summary: "Enable Fault Tolerance on a specified Secondary VM", + }, + Key: "host.FaultToleranceManager.enableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start Fault Tolerant Secondary VM", + Summary: "Start Fault Tolerant Secondary VM on remote host", + }, + Key: "host.FaultToleranceManager.startSecondaryOnRemoteHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister Fault Tolerance", + Summary: "Unregister the Fault Tolerance service", + }, + Key: "host.FaultToleranceManager.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set local VM component health", + Summary: "Sets the component health information of the specified local virtual machine", + }, + Key: "host.FaultToleranceManager.setLocalVMComponentHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get peer VM component health", + Summary: "Gets component health information of the FT peer of the specified local virtual machine", + }, + Key: "host.FaultToleranceManager.getPeerVMComponentHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add custom field", + Summary: "Creates a new custom property", + }, + Key: "CustomFieldsManager.addFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove custom field", + Summary: "Removes a custom property", + }, + Key: "CustomFieldsManager.removeFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename custom property", + Summary: "Renames a custom property", + }, + Key: "CustomFieldsManager.renameFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set custom field", + Summary: "Assigns a value to a custom property", + }, + Key: "CustomFieldsManager.setField", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get ManagedEntities", + Summary: "Get the list of ManagedEntities that the name is a Substring of the custom field name and the value is a Substring of the field value.", + }, + Key: "CustomFieldsManager.getEntitiesWithCustomFieldAndValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomFields", + Summary: "retrieveCustomFields", + }, + Key: "CustomFieldsManager.retrieveCustomFields", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update agent virtual machine information", + Summary: "Updates agent virtual machine information", + }, + Key: "EsxAgentConfigManager.updateAgentVmInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query agent virtual machine information", + Summary: "Returns the state for each of the specified agent virtual machines", + }, + Key: "EsxAgentConfigManager.queryAgentVmInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update compute resource agent information", + Summary: "Updates the number of required agent virtual machines for one or more compute resources", + }, + Key: "EsxAgentConfigManager.updateComputeResourceAgentInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compute resource agent information", + Summary: "Retrieves the agent information for one or more compute resources", + }, + Key: "EsxAgentConfigManager.queryComputeResourceAgentInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set folder custom value", + Summary: "Sets the value of a custom field of a folder", + }, + Key: "Folder.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload folder", + Summary: "Reloads the folder", + }, + Key: "Folder.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename folder", + Summary: "Rename the folder", + }, + Key: "Folder.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete folder", + Summary: "Delete this object, deleting its contents and removing it from its parent folder (if any)", + }, + Key: "Folder.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the folder", + }, + Key: "Folder.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the folder", + }, + Key: "Folder.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Folder.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create folder", + Summary: "Creates a new folder", + }, + Key: "Folder.createFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move entities", + Summary: "Moves a set of managed entities into this folder", + }, + Key: "Folder.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Create a new virtual machine", + }, + Key: "Folder.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to the folder", + }, + Key: "Folder.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Create a new cluster compute-resource in this folder", + }, + Key: "Folder.createCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Create a new cluster compute-resource in this folder", + }, + Key: "Folder.createClusterEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host", + Summary: "Create a new single-host compute-resource", + }, + Key: "Folder.addStandaloneHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host and enable lockdown", + Summary: "Create a new single-host compute-resource and enable lockdown mode on the host", + }, + Key: "Folder.addStandaloneHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datacenter", + Summary: "Create a new datacenter with the given name", + }, + Key: "Folder.createDatacenter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister and Delete", + Summary: "Recursively deletes all child virtual machine folders and unregisters all virtual machines", + }, + Key: "Folder.unregisterAndDestroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a vSphere Distributed Switch", + Summary: "Create a vSphere Distributed Switch", + }, + Key: "Folder.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a datastore cluster", + Summary: "Create a datastore cluster", + }, + Key: "Folder.createStoragePod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSpecification", + Summary: "updateHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.updateHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecification", + Summary: "updateHostSubSpecification", + }, + Key: "profile.host.HostSpecificationManager.updateHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostSpecification", + Summary: "retrieveHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.retrieveHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSubSpecification", + Summary: "deleteHostSubSpecification", + }, + Key: "profile.host.HostSpecificationManager.deleteHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSpecification", + Summary: "deleteHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.deleteHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getUpdatedHosts", + Summary: "getUpdatedHosts", + }, + Key: "profile.host.HostSpecificationManager.getUpdatedHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster profile", + Summary: "Create cluster profile", + }, + Key: "profile.cluster.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.cluster.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.cluster.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host kernel modules", + Summary: "Retrieves information about the kernel modules on the host", + }, + Key: "host.KernelModuleSystem.queryModules", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update kernel module option", + Summary: "Specifies the options to be passed to the kernel module when loaded", + }, + Key: "host.KernelModuleSystem.updateModuleOptionString", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query kernel module options", + Summary: "Retrieves the options configured to be passed to a kernel module when loaded", + }, + Key: "host.KernelModuleSystem.queryConfiguredModuleOptionString", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set storage custom value", + Summary: "Sets the value of a custom field of a host storage system", + }, + Key: "host.StorageSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve disk partition information", + Summary: "Gets the partition information for the disks named by the device names", + }, + Key: "host.StorageSystem.retrieveDiskPartitionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Compute disk partition information", + Summary: "Computes the disk partition information given the desired disk layout", + }, + Key: "host.StorageSystem.computeDiskPartitionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Compute disk partition information for resize", + Summary: "Compute disk partition information for resizing a partition", + }, + Key: "host.StorageSystem.computeDiskPartitionInfoForResize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update disk partitions", + Summary: "Change the partitions on the disk by supplying a partition specification and the device name", + }, + Key: "host.StorageSystem.updateDiskPartitions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Format VMFS", + Summary: "Formats a new VMFS on a disk partition", + }, + Key: "host.StorageSystem.formatVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mount VMFS volume", + Summary: "Mounts an unmounted VMFS volume", + }, + Key: "host.StorageSystem.mountVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount VMFS volume", + Summary: "Unmount a mounted VMFS volume", + }, + Key: "host.StorageSystem.unmountVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount VMFS volumes", + Summary: "Unmounts one or more mounted VMFS volumes", + }, + Key: "host.StorageSystem.unmountVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "mountVmfsVolumeEx", + Summary: "mountVmfsVolumeEx", + }, + Key: "host.StorageSystem.mountVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmapVmfsVolumeEx", + Summary: "unmapVmfsVolumeEx", + }, + Key: "host.StorageSystem.unmapVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for unmounted VMFS volume", + Summary: "Removes the state information for a previously unmounted VMFS volume", + }, + Key: "host.StorageSystem.deleteVmfsVolumeState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan VMFS", + Summary: "Rescan for new VMFS volumes", + }, + Key: "host.StorageSystem.rescanVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend VMFS", + Summary: "Extend a VMFS by attaching a disk partition", + }, + Key: "host.StorageSystem.attachVmfsExtent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Expand VMFS extent", + Summary: "Expand the capacity of the VMFS extent", + }, + Key: "host.StorageSystem.expandVmfsExtent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade VMFS", + Summary: "Upgrade the VMFS to the current VMFS version", + }, + Key: "host.StorageSystem.upgradeVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate virtual machine disks", + Summary: "Relocate the disks for all virtual machines into directories if stored in the ROOT", + }, + Key: "host.StorageSystem.upgradeVmLayout", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unbound VMFS volumes", + Summary: "Query for the list of unbound VMFS volumes", + }, + Key: "host.StorageSystem.queryUnresolvedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve VMFS volumes", + Summary: "Resolve the detected copies of VMFS volumes", + }, + Key: "host.StorageSystem.resolveMultipleUnresolvedVmfsVolumes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve VMFS volumes", + Summary: "Resolves the detected copies of VMFS volumes", + }, + Key: "host.StorageSystem.resolveMultipleUnresolvedVmfsVolumesEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount force mounted VMFS", + Summary: "Unmounts a force mounted VMFS volume", + }, + Key: "host.StorageSystem.unmountForceMountedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan HBA", + Summary: "Rescan a specific storage adapter for new storage devices", + }, + Key: "host.StorageSystem.rescanHba", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan all HBAs", + Summary: "Rescan all storage adapters for new storage devices", + }, + Key: "host.StorageSystem.rescanAllHba", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change Software Internet SCSI Status", + Summary: "Enables or disables Software Internet SCSI", + }, + Key: "host.StorageSystem.updateSoftwareInternetScsiEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI discovery properties", + Summary: "Updates the discovery properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiDiscoveryProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI authentication properties", + Summary: "Updates the authentication properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiAuthenticationProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI digest properties", + Summary: "Update the digest properties of an Internet SCSI host bus adapter or target", + }, + Key: "host.StorageSystem.updateInternetScsiDigestProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI advanced options", + Summary: "Update the advanced options of an Internet SCSI host bus adapter or target", + }, + Key: "host.StorageSystem.updateInternetScsiAdvancedOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI IP properties", + Summary: "Updates the IP properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiIPProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI name", + Summary: "Updates the name of an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI alias", + Summary: "Updates the alias of an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Internet SCSI send targets", + Summary: "Adds send target entries to the host bus adapter discovery list", + }, + Key: "host.StorageSystem.addInternetScsiSendTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Internet SCSI send targets", + Summary: "Removes send target entries from the host bus adapter discovery list", + }, + Key: "host.StorageSystem.removeInternetScsiSendTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Internet SCSI static targets ", + Summary: "Adds static target entries to the host bus adapter discovery list", + }, + Key: "host.StorageSystem.addInternetScsiStaticTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Internet SCSI static targets", + Summary: "Removes static target entries from the host bus adapter discovery list", + }, + Key: "host.StorageSystem.removeInternetScsiStaticTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable multiple path", + Summary: "Enable a path for a logical unit", + }, + Key: "host.StorageSystem.enableMultipathPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable multiple path", + Summary: "Disable a path for a logical unit", + }, + Key: "host.StorageSystem.disableMultipathPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set logical unit policy", + Summary: "Set the multipath policy for a logical unit ", + }, + Key: "host.StorageSystem.setMultipathLunPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query path selection policy options", + Summary: "Queries the set of path selection policy options", + }, + Key: "host.StorageSystem.queryPathSelectionPolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query storage array type policy options", + Summary: "Queries the set of storage array type policy options", + }, + Key: "host.StorageSystem.queryStorageArrayTypePolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update SCSI LUN display name", + Summary: "Updates the display name of a SCSI LUN", + }, + Key: "host.StorageSystem.updateScsiLunDisplayName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach SCSI LUN", + Summary: "Blocks I/O operations to the attached SCSI LUN", + }, + Key: "host.StorageSystem.detachScsiLun", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach SCSI LUNs", + Summary: "Blocks I/O operations to one or more attached SCSI LUNs", + }, + Key: "host.StorageSystem.detachScsiLunEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for detached SCSI LUN", + Summary: "Removes the state information for a previously detached SCSI LUN", + }, + Key: "host.StorageSystem.deleteScsiLunState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach SCSI LUN", + Summary: "Allow I/O issue to the specified detached SCSI LUN", + }, + Key: "host.StorageSystem.attachScsiLun", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach SCSI LUNs", + Summary: "Enables I/O operations to one or more detached SCSI LUNs", + }, + Key: "host.StorageSystem.attachScsiLunEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh host storage system", + Summary: "Refresh the storage information and settings to pick up any changes that have occurred", + }, + Key: "host.StorageSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Discover FCOE storage", + Summary: "Discovers new storage using FCOE", + }, + Key: "host.StorageSystem.discoverFcoeHbas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update FCOE HBA state", + Summary: "Mark or unmark the specified FCOE HBA for removal from the host system", + }, + Key: "host.StorageSystem.markForRemoval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Format VFFS", + Summary: "Formats a new VFFS on a SSD disk", + }, + Key: "host.StorageSystem.formatVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend VFFS", + Summary: "Extends a VFFS by attaching a SSD disk", + }, + Key: "host.StorageSystem.extendVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete VFFS", + Summary: "Deletes a VFFS from the host", + }, + Key: "host.StorageSystem.destroyVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mounts VFFS volume", + Summary: "Mounts an unmounted VFFS volume", + }, + Key: "host.StorageSystem.mountVffsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmounts VFFS volume", + Summary: "Unmounts a mounted VFFS volume", + }, + Key: "host.StorageSystem.unmountVffsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for unmounted VFFS volume", + Summary: "Removes the state information for a previously unmounted VFFS volume", + }, + Key: "host.StorageSystem.deleteVffsVolumeState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan VFFS", + Summary: "Rescans for new VFFS volumes", + }, + Key: "host.StorageSystem.rescanVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available SSD disks", + Summary: "Queries available SSD disks", + }, + Key: "host.StorageSystem.queryAvailableSsds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set NFS user", + Summary: "Sets an NFS user", + }, + Key: "host.StorageSystem.setNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change NFS user password", + Summary: "Changes the password of an NFS user", + }, + Key: "host.StorageSystem.changeNFSUserPassword", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query NFS user", + Summary: "Queries an NFS user", + }, + Key: "host.StorageSystem.queryNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear NFS user", + Summary: "Deletes an NFS user", + }, + Key: "host.StorageSystem.clearNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn on disk locator LEDs", + Summary: "Turns on one or more disk locator LEDs", + }, + Key: "host.StorageSystem.turnDiskLocatorLedOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn off locator LEDs", + Summary: "Turns off one or more disk locator LEDs", + }, + Key: "host.StorageSystem.turnDiskLocatorLedOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a flash disk", + Summary: "Marks the disk as a flash disk", + }, + Key: "host.StorageSystem.markAsSsd", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a HDD disk", + Summary: "Marks the disk as a HDD disk", + }, + Key: "host.StorageSystem.markAsNonSsd", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a local disk", + Summary: "Marks the disk as a local disk", + }, + Key: "host.StorageSystem.markAsLocal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a remote disk", + Summary: "Marks the disk as a remote disk", + }, + Key: "host.StorageSystem.markAsNonLocal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "QueryIoFilterProviderId", + Summary: "QueryIoFilterProviderId", + }, + Key: "host.StorageSystem.QueryIoFilterProviderId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "FetchIoFilterSharedSecret", + Summary: "FetchIoFilterSharedSecret", + }, + Key: "host.StorageSystem.FetchIoFilterSharedSecret", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMFS unmap priority", + Summary: "Updates the priority of VMFS space reclamation operation", + }, + Key: "host.StorageSystem.updateVmfsUnmapPriority", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query VMFS config option", + Summary: "Query VMFS config option", + }, + Key: "host.StorageSystem.queryVmfsConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set EVC manager custom value", + Summary: "Sets the value of a custom field for an Enhanced vMotion Compatibility manager", + }, + Key: "cluster.TransitionalEVCManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure cluster EVC", + Summary: "Enable/reconfigure Enhanced vMotion Compatibility for a cluster", + }, + Key: "cluster.TransitionalEVCManager.configureEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable cluster EVC", + Summary: "Disable Enhanced vMotion Compatibility for a cluster", + }, + Key: "cluster.TransitionalEVCManager.disableEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate EVC mode for cluster", + Summary: "Test the validity of configuring Enhanced vMotion Compatibility mode on the managed cluster", + }, + Key: "cluster.TransitionalEVCManager.checkConfigureEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host for EVC cluster", + Summary: "Tests the validity of adding a host into the Enhanced vMotion Compatibility cluster", + }, + Key: "cluster.TransitionalEVCManager.checkAddHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve argument description for event type", + Summary: "Retrieves the argument meta-data for a given event type", + }, + Key: "event.EventManager.retrieveArgumentDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create event collector", + Summary: "Creates an event collector to retrieve all server events based on a filter", + }, + Key: "event.EventManager.createCollector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Log user event", + Summary: "Logs a user-defined event", + }, + Key: "event.EventManager.logUserEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get events", + Summary: "Provides the events selected by the specified filter", + }, + Key: "event.EventManager.QueryEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query events by IDs", + Summary: "Returns the events specified by a list of IDs", + }, + Key: "event.EventManager.queryEventsById", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Post event", + Summary: "Posts the specified event", + }, + Key: "event.EventManager.postEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query latest events in event filter", + Summary: "Query the latest events in the specified filter", + }, + Key: "event.EventManager.queryLastEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create default host profile of specified type", + Summary: "Creates a default host profile of the specified type", + }, + Key: "profile.host.profileEngine.HostProfileManager.createDefaultProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile policy option metadata", + Summary: "Gets the profile policy option metadata for the specified policy names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile metadata", + Summary: "Gets the profile metadata for the specified profile names and profile types", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile category metadata", + Summary: "Gets the profile category metadata for the specified category names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileCategoryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile component metadata", + Summary: "Gets the profile component metadata for the specified component names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileComponentMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute host profile manager engine", + Summary: "Executes the host profile manager engine", + }, + Key: "profile.host.profileEngine.HostProfileManager.execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Bookkeep host profile", + Summary: "Bookkeep host profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.bookKeep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile description", + Summary: "Retrieves description of a profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.retrieveProfileDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update configuration tasks from host configuration", + Summary: "Update configuration tasks from host configuration", + }, + Key: "profile.host.profileEngine.HostProfileManager.updateTaskConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateTaskList", + Summary: "generateTaskList", + }, + Key: "profile.host.profileEngine.HostProfileManager.generateTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateHostConfigTaskSpec", + Summary: "generateHostConfigTaskSpec", + }, + Key: "profile.host.profileEngine.HostProfileManager.generateHostConfigTaskSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile from host configuration", + Summary: "Retrieves a profile from the host's configuration", + }, + Key: "profile.host.profileEngine.HostProfileManager.retrieveProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare host profile for export", + Summary: "Prepares a host profile for export", + }, + Key: "profile.host.profileEngine.HostProfileManager.prepareExport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query user input policy options", + Summary: "Gets a list of policy options that are set to require user inputs", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryUserInputPolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile structure", + Summary: "Gets information about the structure of a profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileStructure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply host configuration", + Summary: "Applies the specified host configuration to the host", + }, + Key: "profile.host.profileEngine.HostProfileManager.applyHostConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host profile manager state", + Summary: "Gets the current state of the host profile manager and plug-ins on a host", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set backup agent custom value", + Summary: "Set backup agent custom value", + }, + Key: "vm.BackupAgent.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start virtual machine backup", + Summary: "Start a backup operation inside the virtual machine guest", + }, + Key: "vm.BackupAgent.startBackup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop virtual machine backup", + Summary: "Stop a backup operation in a virtual machine", + }, + Key: "vm.BackupAgent.abortBackup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify virtual machine snapshot completion", + Summary: "Notify the virtual machine when a snapshot operation is complete", + }, + Key: "vm.BackupAgent.notifySnapshotCompletion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Wait for guest event", + Summary: "Wait for an event delivered by the virtual machine guest", + }, + Key: "vm.BackupAgent.waitForEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh hardware information", + Summary: "Refresh hardware information", + }, + Key: "host.HealthStatusSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset system health sensors", + Summary: "Resets the state of the sensors of the IPMI subsystem", + }, + Key: "host.HealthStatusSystem.resetSystemHealthInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear hardware IPMI System Event Log", + Summary: "Clear hardware IPMI System Event Log", + }, + Key: "host.HealthStatusSystem.clearSystemEventLog", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh hardware IPMI System Event Log", + Summary: "Refresh hardware IPMI System Event Log", + }, + Key: "host.HealthStatusSystem.FetchSystemEventLog", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a virtual disk object", + Summary: "Create a virtual disk object", + }, + Key: "vslm.vcenter.VStorageObjectManager.createDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register a legacy disk to be a virtual disk object", + Summary: "Register a legacy disk to be a virtual disk object", + }, + Key: "vslm.vcenter.VStorageObjectManager.registerDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend a virtual disk to the new capacity", + Summary: "Extend a virtual disk to the new capacity", + }, + Key: "vslm.vcenter.VStorageObjectManager.extendDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate a thin virtual disk", + Summary: "Inflate a thin virtual disk", + }, + Key: "vslm.vcenter.VStorageObjectManager.inflateDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a virtual storage object", + Summary: "Rename a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.renameVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update storage policy on a virtual storage object", + Summary: "Update storage policy on a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.updateVStorageObjectPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a virtual storage object", + Summary: "Delete a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.deleteVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a virtual storage object", + Summary: "Retrieve a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.retrieveVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveVStorageObjectState", + Summary: "retrieveVStorageObjectState", + }, + Key: "vslm.vcenter.VStorageObjectManager.retrieveVStorageObjectState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List virtual storage objects on a datastore", + Summary: "List virtual storage objects on a datastore", + }, + Key: "vslm.vcenter.VStorageObjectManager.listVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone a virtual storage object", + Summary: "Clone a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.cloneVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate a virtual storage object", + Summary: "Relocate a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.relocateVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "attachTagToVStorageObject", + Summary: "attachTagToVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.attachTagToVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "detachTagFromVStorageObject", + Summary: "detachTagFromVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.detachTagFromVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listVStorageObjectsAttachedToTag", + Summary: "listVStorageObjectsAttachedToTag", + }, + Key: "vslm.vcenter.VStorageObjectManager.listVStorageObjectsAttachedToTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listTagsAttachedToVStorageObject", + Summary: "listTagsAttachedToVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.listTagsAttachedToVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconcile datastore inventory", + Summary: "Reconcile datastore inventory", + }, + Key: "vslm.vcenter.VStorageObjectManager.reconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Schedule reconcile datastore inventory", + Summary: "Schedule reconcile datastore inventory", + }, + Key: "vslm.vcenter.VStorageObjectManager.scheduleReconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare a vCenter HA setup", + Summary: "Prepare vCenter HA setup on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.prepare", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy a vCenter HA cluster", + Summary: "Deploy and configure vCenter HA on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.deploy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure a vCenter HA cluster", + Summary: "Configure vCenter HA on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.configure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create passive node", + Summary: "Create a passive node in a vCenter HA Cluster", + }, + Key: "vcha.FailoverClusterConfigurator.createPassiveNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create witness node", + Summary: "Create a witness node in a vCenter HA Cluster", + }, + Key: "vcha.FailoverClusterConfigurator.createWitnessNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getConfig", + Summary: "getConfig", + }, + Key: "vcha.FailoverClusterConfigurator.getConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Destroy the vCenter HA cluster", + Summary: "Destroy the vCenter HA cluster setup and remove all configuration files", + }, + Key: "vcha.FailoverClusterConfigurator.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set graphics manager custom value", + Summary: "Sets the value of a custom field of the graphics manager", + }, + Key: "host.GraphicsManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh graphics information", + Summary: "Refresh graphics device information", + }, + Key: "host.GraphicsManager.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check if shared graphics is active", + Summary: "Check if shared graphics is active on the host", + }, + Key: "host.GraphicsManager.isSharedGraphicsActive", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateGraphicsConfig", + Summary: "updateGraphicsConfig", + }, + Key: "host.GraphicsManager.updateGraphicsConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addKey", + Summary: "addKey", + }, + Key: "encryption.CryptoManagerKmip.addKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addKeys", + Summary: "addKeys", + }, + Key: "encryption.CryptoManagerKmip.addKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKey", + Summary: "removeKey", + }, + Key: "encryption.CryptoManagerKmip.removeKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKeys", + Summary: "removeKeys", + }, + Key: "encryption.CryptoManagerKmip.removeKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listKeys", + Summary: "listKeys", + }, + Key: "encryption.CryptoManagerKmip.listKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerKmipServer", + Summary: "registerKmipServer", + }, + Key: "encryption.CryptoManagerKmip.registerKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "markDefault", + Summary: "markDefault", + }, + Key: "encryption.CryptoManagerKmip.markDefault", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateKmipServer", + Summary: "updateKmipServer", + }, + Key: "encryption.CryptoManagerKmip.updateKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKmipServer", + Summary: "removeKmipServer", + }, + Key: "encryption.CryptoManagerKmip.removeKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listKmipServers", + Summary: "listKmipServers", + }, + Key: "encryption.CryptoManagerKmip.listKmipServers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveKmipServersStatus", + Summary: "retrieveKmipServersStatus", + }, + Key: "encryption.CryptoManagerKmip.retrieveKmipServersStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateKey", + Summary: "generateKey", + }, + Key: "encryption.CryptoManagerKmip.generateKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveKmipServerCert", + Summary: "retrieveKmipServerCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveKmipServerCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uploadKmipServerCert", + Summary: "uploadKmipServerCert", + }, + Key: "encryption.CryptoManagerKmip.uploadKmipServerCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateSelfSignedClientCert", + Summary: "generateSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.generateSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateClientCsr", + Summary: "generateClientCsr", + }, + Key: "encryption.CryptoManagerKmip.generateClientCsr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveSelfSignedClientCert", + Summary: "retrieveSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveClientCsr", + Summary: "retrieveClientCsr", + }, + Key: "encryption.CryptoManagerKmip.retrieveClientCsr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveClientCert", + Summary: "retrieveClientCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateSelfSignedClientCert", + Summary: "updateSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.updateSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateKmsSignedCsrClientCert", + Summary: "updateKmsSignedCsrClientCert", + }, + Key: "encryption.CryptoManagerKmip.updateKmsSignedCsrClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uploadClientCert", + Summary: "uploadClientCert", + }, + Key: "encryption.CryptoManagerKmip.uploadClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set host custom value", + Summary: "Sets the value of a custom field of an host", + }, + Key: "HostSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload host system", + Summary: "Reloads the host system", + }, + Key: "HostSystem.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename host", + Summary: "Rename this host", + }, + Key: "HostSystem.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove host", + Summary: "Removes the host", + }, + Key: "HostSystem.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the host", + }, + Key: "HostSystem.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the host", + }, + Key: "HostSystem.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "HostSystem.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query TPM attestation information", + Summary: "Provides details of the secure boot and TPM status", + }, + Key: "HostSystem.queryTpmAttestationReport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query connection information", + Summary: "Connection information about a host", + }, + Key: "HostSystem.queryConnectionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve internal host capabilities", + Summary: "Retrieves vCenter Server-specific internal host capabilities", + }, + Key: "HostSystem.retrieveInternalCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "", + Summary: "", + }, + Key: "HostSystem.retrieveInternalConfigManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system resources", + Summary: "Update the configuration of the system resource hierarchy", + }, + Key: "HostSystem.updateSystemResources", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system swap configuration", + Summary: "Update the configuration of the system swap", + }, + Key: "HostSystem.updateSystemSwapConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconnect host", + Summary: "Reconnects to a host", + }, + Key: "HostSystem.reconnect", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disconnect host", + Summary: "Disconnects from a host", + }, + Key: "HostSystem.disconnect", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter maintenance mode", + Summary: "Puts the host in maintenance mode", + }, + Key: "HostSystem.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit maintenance mode", + Summary: "Disables maintenance mode", + }, + Key: "HostSystem.exitMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate host reboot", + Summary: "Initiates a host reboot", + }, + Key: "HostSystem.reboot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate host shutdown", + Summary: "Initiates a host shutdown", + }, + Key: "HostSystem.shutdown", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter standby mode", + Summary: "Puts this host into standby mode", + }, + Key: "HostSystem.enterStandbyMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit standby mode", + Summary: "Brings this host out of standby mode", + }, + Key: "HostSystem.exitStandbyMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host overhead", + Summary: "Determines the amount of memory overhead necessary to power on a virtual machine with the specified characteristics", + }, + Key: "HostSystem.queryOverhead", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query memory overhead", + Summary: "Query memory overhead", + }, + Key: "HostSystem.queryOverheadEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere HA host", + Summary: "Reconfigures the host for vSphere HA", + }, + Key: "HostSystem.reconfigureDAS", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Patch Manager", + Summary: "Retrieves a reference to Patch Manager", + }, + Key: "HostSystem.retrievePatchManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host system flags", + Summary: "Update the flags of the host system", + }, + Key: "HostSystem.updateFlags", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send Wake-on-LAN packet", + Summary: "Send Wake-on-LAN packets to the physical NICs specified", + }, + Key: "HostSystem.sendWakeOnLanPacket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable lockdown mode", + Summary: "Enable lockdown mode on this host", + }, + Key: "HostSystem.disableAdmin", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable lockdown mode", + Summary: "Disable lockdown mode on this host", + }, + Key: "HostSystem.enableAdmin", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable lockdown mode", + Summary: "Enable lockdown mode on this host", + }, + Key: "HostSystem.enterLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable lockdown mode", + Summary: "Disable lockdown mode on this host", + }, + Key: "HostSystem.exitLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update management server IP", + Summary: "Update information about the vCenter Server managing this host", + }, + Key: "HostSystem.updateManagementServerIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire CIM service", + Summary: "Establish a remote connection to a CIM interface", + }, + Key: "HostSystem.acquireCimServicesTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IPMI or ILO information used by DPM", + Summary: "Update IPMI or ILO information for this host used by DPM", + }, + Key: "HostSystem.updateIpmi", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update SSL thumbprint registry", + Summary: "Updates the SSL thumbprint registry on the host", + }, + Key: "HostSystem.updateSslThumbprintInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host hardware uptime", + Summary: "Retrieves the hardware uptime for the host in seconds", + }, + Key: "HostSystem.retrieveHardwareUptime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Dynamic Type Manager", + Summary: "Retrieves a reference to Dynamic Type Manager", + }, + Key: "HostSystem.retrieveDynamicTypeManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Managed Method Executer", + Summary: "Retrieves a reference to Managed Method Executer", + }, + Key: "HostSystem.retrieveManagedMethodExecuter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine memory overhead", + Summary: "Query memory overhead for a virtual machine power on", + }, + Key: "HostSystem.queryOverheadEx2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test EVC mode", + Summary: "Test an EVC mode on a host", + }, + Key: "HostSystem.testEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply EVC mode", + Summary: "Applies an EVC mode to a host", + }, + Key: "HostSystem.applyEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check whether the certificate is trusted by vCenter Server", + Summary: "Checks whether the certificate matches the host certificate that vCenter Server trusts", + }, + Key: "HostSystem.checkCertificateTrusted", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare host", + Summary: "Prepare host for encryption", + }, + Key: "HostSystem.prepareCrypto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable encryption", + Summary: "Enable encryption on the current host", + }, + Key: "HostSystem.enableCrypto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure the host key", + Summary: "Configure the encryption key on the current host", + }, + Key: "HostSystem.configureCryptoKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query supported switch specification", + Summary: "Query supported switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.querySupportedSwitchSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible hosts for a vSphere Distributed Switch specification", + Summary: "Returns a list of hosts that are compatible with a given vSphere Distributed Switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostForNewDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible hosts for existing vSphere Distributed Switch", + Summary: "Returns a list of hosts that are compatible with an existing vSphere Distributed Switch", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostForExistingDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible host specification", + Summary: "Query compatible host specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query feature capabilities for vSphere Distributed Switch specification", + Summary: "Queries feature capabilities available for a given vSphere Distributed Switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryFeatureCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query switch by UUID", + Summary: "Query switch by UUID", + }, + Key: "dvs.DistributedVirtualSwitchManager.querySwitchByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration target", + Summary: "Query configuration target", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryDvsConfigTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compatibility of hosts against a vSphere Distributed Switch version", + Summary: "Check compatibility of hosts against a vSphere Distributed Switch version", + }, + Key: "dvs.DistributedVirtualSwitchManager.checkCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update opaque data for set of entities", + Summary: "Update opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.updateOpaqueData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update opaque data for set of entities", + Summary: "Update opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.updateOpaqueDataEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch opaque data for set of entities", + Summary: "Fetch opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.fetchOpaqueData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch opaque data for set of entities", + Summary: "Fetch opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.fetchOpaqueDataEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute opaque command for set of entities", + Summary: "Execute opaque command for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.executeOpaqueCommand", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify vNetwork Distributed Switch host", + Summary: "Rectify vNetwork Distributed Switch host", + }, + Key: "dvs.DistributedVirtualSwitchManager.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export configuration of the entity", + Summary: "Export configuration of the entity", + }, + Key: "dvs.DistributedVirtualSwitchManager.exportEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import configuration of the entity", + Summary: "Import configuration of the entity", + }, + Key: "dvs.DistributedVirtualSwitchManager.importEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "dvs.DistributedVirtualSwitchManager.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query uplink team information", + Summary: "Query uplink team information", + }, + Key: "dvs.DistributedVirtualSwitchManager.QueryDvpgUplinkTeam", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHostNetworkResource", + Summary: "queryHostNetworkResource", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryHostNetworkResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryVwirePort", + Summary: "queryVwirePort", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryVwirePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move file", + Summary: "Move the file, folder, or disk from source datacenter to destination datacenter", + }, + Key: "FileManager.move", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move file", + Summary: "Move the source file or folder to destination datacenter", + }, + Key: "FileManager.moveFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy file", + Summary: "Copy the file, folder, or disk from source datacenter to destination datacenter", + }, + Key: "FileManager.copy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy file", + Summary: "Copy the source file or folder to destination datacenter", + }, + Key: "FileManager.copyFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete file", + Summary: "Delete the file, folder, or disk from source datacenter", + }, + Key: "FileManager.delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete file", + Summary: "Delete the source file or folder from the datastore", + }, + Key: "FileManager.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make Directory", + Summary: "Create a directory using the specified name", + }, + Key: "FileManager.makeDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change owner", + Summary: "Change the owner of the specified file to the specified user", + }, + Key: "FileManager.changeOwner", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query process information", + Summary: "Retrieves information regarding processes", + }, + Key: "host.SystemDebugManager.queryProcessInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set network custom value", + Summary: "Sets the value of a custom field of a host network system", + }, + Key: "host.NetworkSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network configuration", + Summary: "Network configuration information", + }, + Key: "host.NetworkSystem.updateNetworkConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update DNS configuration", + Summary: "Update the DNS configuration for the host", + }, + Key: "host.NetworkSystem.updateDnsConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP route configuration", + Summary: "Update IP route configuration", + }, + Key: "host.NetworkSystem.updateIpRouteConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update console IP route configuration", + Summary: "Update console IP route configuration", + }, + Key: "host.NetworkSystem.updateConsoleIpRouteConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP route table configuration", + Summary: "Applies the IP route table configuration for the host", + }, + Key: "host.NetworkSystem.updateIpRouteTableConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual switch", + Summary: "Add a new virtual switch to the system", + }, + Key: "host.NetworkSystem.addVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual switch", + Summary: "Remove an existing virtual switch from the system", + }, + Key: "host.NetworkSystem.removeVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual switch", + Summary: "Updates the properties of the virtual switch", + }, + Key: "host.NetworkSystem.updateVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add port group", + Summary: "Add a port group to the virtual switch", + }, + Key: "host.NetworkSystem.addPortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove port group", + Summary: "Remove a port group from the virtual switch", + }, + Key: "host.NetworkSystem.removePortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure port group", + Summary: "Reconfigure a port group on the virtual switch", + }, + Key: "host.NetworkSystem.updatePortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update physical NIC link speed", + Summary: "Configure link speed and duplexity", + }, + Key: "host.NetworkSystem.updatePhysicalNicLinkSpeed", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network hint", + Summary: "Request network hint information for a physical NIC", + }, + Key: "host.NetworkSystem.queryNetworkHint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual NIC", + Summary: "Add a virtual host or service console NIC", + }, + Key: "host.NetworkSystem.addVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual NIC", + Summary: "Remove a virtual host or service console NIC", + }, + Key: "host.NetworkSystem.removeVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual NIC", + Summary: "Configure virtual host or VMkernel NIC", + }, + Key: "host.NetworkSystem.updateVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add service console virtual NIC", + Summary: "Add a virtual service console NIC", + }, + Key: "host.NetworkSystem.addServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove service console virtual NIC", + Summary: "Remove a virtual service console NIC", + }, + Key: "host.NetworkSystem.removeServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update service console virtual NIC", + Summary: "Update IP configuration for a service console virtual NIC", + }, + Key: "host.NetworkSystem.updateServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restart virtual network adapter interface", + Summary: "Restart the service console virtual network adapter interface", + }, + Key: "host.NetworkSystem.restartServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh network information", + Summary: "Refresh the network information and settings to detect any changes that have occurred", + }, + Key: "host.NetworkSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Invoke API call on host with transactionId", + Summary: "Invoke API call on host with transactionId", + }, + Key: "host.NetworkSystem.invokeHostTransactionCall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Commit transaction to confirm that host is connected to vCenter Server", + Summary: "Commit transaction to confirm that host is connected to vCenter Server", + }, + Key: "host.NetworkSystem.commitTransaction", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performHostOpaqueNetworkDataOperation", + Summary: "performHostOpaqueNetworkDataOperation", + }, + Key: "host.NetworkSystem.performHostOpaqueNetworkDataOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve available diagnostic partitions", + Summary: "Retrieves a list of available diagnostic partitions", + }, + Key: "host.DiagnosticSystem.queryAvailablePartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change active diagnostic partition", + Summary: "Changes the active diagnostic partition to a different partition", + }, + Key: "host.DiagnosticSystem.selectActivePartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve diagnostic partitionable disks", + Summary: "Retrieves a list of disks that can be used to contain a diagnostic partition", + }, + Key: "host.DiagnosticSystem.queryPartitionCreateOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve diagnostic partition creation description", + Summary: "Retrieves the diagnostic partition creation description for a disk", + }, + Key: "host.DiagnosticSystem.queryPartitionCreateDesc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create diagnostic partition", + Summary: "Creates a diagnostic partition according to the provided creation specification", + }, + Key: "host.DiagnosticSystem.createDiagnosticPartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure host cache performance enhancement", + Summary: "Configures host cache by allocating space on a low latency device (usually a solid state drive) for enhanced system performance", + }, + Key: "host.CacheConfigurationManager.configureCache", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure host update proxy", + Summary: "Reconfigure host update proxy", + }, + Key: "host.HostUpdateProxyManager.reconfigureHostUpdateProxy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve configuration of the host update proxy", + Summary: "Retrieve configuration of the host update proxy", + }, + Key: "host.HostUpdateProxyManager.retrieveHostUpdateProxyConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extensible custom value", + Summary: "Sets the value of a custom field of an extensible managed object", + }, + Key: "ExtensibleManagedObject.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configuring vSphere HA", + Summary: "Configuring vSphere HA", + }, + Key: "DasConfig.ConfigureHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unconfiguring vSphere HA", + Summary: "Unconfiguring vSphere HA", + }, + Key: "DasConfig.UnconfigureHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Migrate virtual machine", + Summary: "Migrates a virtual machine from one host to another", + }, + Key: "Drm.ExecuteVMotionLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power on this virtual machine", + }, + Key: "Drm.ExecuteVmPowerOnLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter standby mode", + Summary: "Puts this host into standby mode", + }, + Key: "Drm.EnterStandbyLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit standby mode", + Summary: "Brings this host out of standby mode", + }, + Key: "Drm.ExitStandbyLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power On this virtual machine", + }, + Key: "Datacenter.ExecuteVmPowerOnLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vCenter Agent", + Summary: "Upgrade the vCenter Agent", + }, + Key: "Upgrade.UpgradeAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vCenter Agents on cluster hosts", + Summary: "Upgrade the vCenter Agents on all cluster hosts", + }, + Key: "ClusterUpgrade.UpgradeAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "ResourcePool.ImportVAppLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set cluster suspended state", + Summary: "Set suspended state of the cluster", + }, + Key: "ClusterComputeResource.setSuspendedState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the virtual machine as an OVF template", + }, + Key: "VirtualMachine.ExportVmLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the vApp as an OVF template", + }, + Key: "VirtualApp.ExportVAppLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start Fault Tolerance Secondary VM", + Summary: "Start Secondary VM as the Primary VM is powered on", + }, + Key: "FaultTolerance.PowerOnSecondaryLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute Storage vMotion for Storage DRS", + Summary: "Execute Storage vMotion migrations for Storage DRS", + }, + Key: "Drm.ExecuteStorageVmotionLro", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply recommendations for SDRS maintenance mode", + Summary: "Apply recommendations to enter into SDRS maintenance mode", + }, + Key: "Drm.ExecuteMaintenanceRecommendationsLro", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter SDRS maintenance mode monitor task", + Summary: "Task that monitors the SDRS maintenance mode activity", + }, + Key: "Drm.TrackEnterMaintenanceLro", + }, + }, + State: []types.BaseElementDescription{ + &types.ElementDescription{ + Description: types.Description{ + Label: "Queued", + Summary: "Task is queued", + }, + Key: "queued", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Running", + Summary: "Task is in progress", + }, + Key: "running", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Success", + Summary: "Task completed successfully", + }, + Key: "success", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Error", + Summary: "Task completed with a failure", + }, + Key: "error", + }, + }, + Reason: []types.BaseTypeDescription{ + &types.TypeDescription{ + Description: types.Description{ + Label: "Alarm task", + Summary: "Task started by an alarm", + }, + Key: "TaskReasonAlarm", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "System task", + Summary: "Task started by the server", + }, + Key: "TaskReasonSystem", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "User task", + Summary: "Task started by a specific user", + }, + Key: "TaskReasonUser", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "Scheduled task", + Summary: "Task started by a scheduled task", + }, + Key: "TaskReasonSchedule", + }, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go b/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go new file mode 100644 index 00000000..628d7e05 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go @@ -0,0 +1,242 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// VirtualDevice is the default set of VirtualDevice types created for a VirtualMachine +// Capture method: +// govc vm.create foo +// govc object.collect -s -dump vm/foo config.hardware.device +var VirtualDevice = []types.BaseVirtualDevice{ + &types.VirtualIDEController{ + VirtualController: types.VirtualController{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 200, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "IDE 0", + Summary: "IDE 0", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 0, + UnitNumber: (*int32)(nil), + }, + BusNumber: 0, + Device: nil, + }, + }, + &types.VirtualIDEController{ + VirtualController: types.VirtualController{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 201, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "IDE 1", + Summary: "IDE 1", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 0, + UnitNumber: (*int32)(nil), + }, + BusNumber: 1, + Device: nil, + }, + }, + &types.VirtualPS2Controller{ + VirtualController: types.VirtualController{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 300, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "PS2 controller 0", + Summary: "PS2 controller 0", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 0, + UnitNumber: (*int32)(nil), + }, + BusNumber: 0, + Device: []int32{600, 700}, + }, + }, + &types.VirtualPCIController{ + VirtualController: types.VirtualController{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 100, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "PCI controller 0", + Summary: "PCI controller 0", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 0, + UnitNumber: (*int32)(nil), + }, + BusNumber: 0, + Device: []int32{500, 12000}, + }, + }, + &types.VirtualSIOController{ + VirtualController: types.VirtualController{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 400, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "SIO controller 0", + Summary: "SIO controller 0", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 0, + UnitNumber: (*int32)(nil), + }, + BusNumber: 0, + Device: nil, + }, + }, + &types.VirtualKeyboard{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 600, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "Keyboard ", + Summary: "Keyboard", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 300, + UnitNumber: types.NewInt32(0), + }, + }, + &types.VirtualPointingDevice{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 700, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "Pointing device", + Summary: "Pointing device; Device", + }, + Backing: &types.VirtualPointingDeviceDeviceBackingInfo{ + VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ + VirtualDeviceBackingInfo: types.VirtualDeviceBackingInfo{}, + DeviceName: "", + UseAutoDetect: types.NewBool(false), + }, + HostPointingDevice: "autodetect", + }, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 300, + UnitNumber: types.NewInt32(1), + }, + }, + &types.VirtualMachineVideoCard{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 500, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "Video card ", + Summary: "Video card", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 100, + UnitNumber: types.NewInt32(0), + }, + VideoRamSizeInKB: 4096, + NumDisplays: 1, + UseAutoDetect: types.NewBool(false), + Enable3DSupport: types.NewBool(false), + Use3dRenderer: "automatic", + GraphicsMemorySizeInKB: 262144, + }, + &types.VirtualMachineVMCIDevice{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 12000, + DeviceInfo: &types.Description{ + DynamicData: types.DynamicData{}, + Label: "VMCI device", + Summary: "Device on the virtual machine PCI bus that provides support for the virtual machine communication interface", + }, + Backing: nil, + Connectable: (*types.VirtualDeviceConnectInfo)(nil), + SlotInfo: nil, + ControllerKey: 100, + UnitNumber: types.NewInt32(17), + }, + Id: -1, + AllowUnrestrictedCommunication: types.NewBool(false), + FilterEnable: types.NewBool(true), + FilterInfo: (*types.VirtualMachineVMCIDeviceFilterInfo)(nil), + }, +} + +// EthernetCard template for types.VirtualEthernetCard +var EthernetCard = types.VirtualE1000{ + VirtualEthernetCard: types.VirtualEthernetCard{ + VirtualDevice: types.VirtualDevice{ + DynamicData: types.DynamicData{}, + Key: 4000, + Backing: &types.VirtualEthernetCardNetworkBackingInfo{ + VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ + VirtualDeviceBackingInfo: types.VirtualDeviceBackingInfo{}, + DeviceName: "VM Network", + UseAutoDetect: types.NewBool(false), + }, + Network: (*types.ManagedObjectReference)(nil), + InPassthroughMode: types.NewBool(false), + }, + Connectable: &types.VirtualDeviceConnectInfo{ + DynamicData: types.DynamicData{}, + StartConnected: true, + AllowGuestControl: true, + Connected: false, + Status: "untried", + }, + SlotInfo: &types.VirtualDevicePciBusSlotInfo{ + VirtualDeviceBusSlotInfo: types.VirtualDeviceBusSlotInfo{}, + PciSlotNumber: 32, + }, + ControllerKey: 100, + UnitNumber: types.NewInt32(7), + }, + AddressType: "generated", + MacAddress: "", + WakeOnLanEnabled: types.NewBool(true), + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/event_manager.go b/vendor/github.com/vmware/govmomi/simulator/event_manager.go new file mode 100644 index 00000000..b7d5d6b2 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/event_manager.go @@ -0,0 +1,494 @@ +/* +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "bytes" + "container/ring" + "log" + "reflect" + "text/template" + "time" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var ( + maxPageSize = 1000 + logEvents = false +) + +type EventManager struct { + mo.EventManager + + root types.ManagedObjectReference + page *ring.Ring + key int32 + collectors map[types.ManagedObjectReference]*EventHistoryCollector + templates map[string]*template.Template +} + +func (m *EventManager) init(r *Registry) { + if len(m.Description.EventInfo) == 0 { + m.Description.EventInfo = esx.EventInfo + } + if m.MaxCollector == 0 { + m.MaxCollector = 1000 + } + m.root = r.content().RootFolder + m.page = ring.New(maxPageSize) + m.collectors = make(map[types.ManagedObjectReference]*EventHistoryCollector) + m.templates = make(map[string]*template.Template) +} + +func (m *EventManager) createCollector(ctx *Context, req *types.CreateCollectorForEvents) (*EventHistoryCollector, *soap.Fault) { + size, err := validatePageSize(req.Filter.MaxCount) + if err != nil { + return nil, err + } + + if len(m.collectors) >= int(m.MaxCollector) { + return nil, Fault("Too many event collectors to create", new(types.InvalidState)) + } + + collector := &EventHistoryCollector{ + m: m, + page: ring.New(size), + } + collector.Filter = req.Filter + collector.fillPage(size) + + return collector, nil +} + +func (m *EventManager) CreateCollectorForEvents(ctx *Context, req *types.CreateCollectorForEvents) soap.HasFault { + body := new(methods.CreateCollectorForEventsBody) + collector, err := m.createCollector(ctx, req) + if err != nil { + body.Fault_ = err + return body + } + + ref := ctx.Session.Put(collector).Reference() + m.collectors[ref] = collector + + body.Res = &types.CreateCollectorForEventsResponse{ + Returnval: ref, + } + + return body +} + +func (m *EventManager) QueryEvents(ctx *Context, req *types.QueryEvents) soap.HasFault { + if Map.IsESX() { + return &methods.QueryEventsBody{ + Fault_: Fault("", new(types.NotImplemented)), + } + } + + body := new(methods.QueryEventsBody) + collector, err := m.createCollector(ctx, &types.CreateCollectorForEvents{Filter: req.Filter}) + if err != nil { + body.Fault_ = err + return body + } + + body.Res = &types.QueryEventsResponse{ + Returnval: collector.GetLatestPage(), + } + + return body +} + +// formatMessage applies the EventDescriptionEventDetail.FullFormat template to the given event's FullFormattedMessage field. +func (m *EventManager) formatMessage(event types.BaseEvent) { + id := reflect.ValueOf(event).Elem().Type().Name() + e := event.GetEvent() + + t, ok := m.templates[id] + if !ok { + for _, info := range m.Description.EventInfo { + if info.Key == id { + t = template.Must(template.New(id).Parse(info.FullFormat)) + m.templates[id] = t + break + } + } + } + + if t != nil { + var buf bytes.Buffer + if err := t.Execute(&buf, event); err != nil { + log.Print(err) + } + e.FullFormattedMessage = buf.String() + } + + if logEvents { + log.Printf("[%s] %s", id, e.FullFormattedMessage) + } +} + +func (m *EventManager) PostEvent(ctx *Context, req *types.PostEvent) soap.HasFault { + m.key++ + event := req.EventToPost.GetEvent() + event.Key = m.key + event.ChainId = event.Key + event.CreatedTime = time.Now() + event.UserName = ctx.Session.UserName + + m.page = m.page.Prev() + m.page.Value = req.EventToPost + m.formatMessage(req.EventToPost) + + for _, c := range m.collectors { + ctx.WithLock(c, func() { + if c.eventMatches(req.EventToPost) { + c.page = c.page.Prev() + c.page.Value = req.EventToPost + Map.Update(c, []types.PropertyChange{{Name: "latestPage", Val: c.GetLatestPage()}}) + } + }) + } + + return &methods.PostEventBody{ + Res: new(types.PostEventResponse), + } +} + +type EventHistoryCollector struct { + mo.EventHistoryCollector + + m *EventManager + page *ring.Ring + pos int +} + +// doEntityEventArgument calls f for each entity argument in the event. +// If f returns true, the iteration stops. +func doEntityEventArgument(event types.BaseEvent, f func(types.ManagedObjectReference, *types.EntityEventArgument) bool) bool { + e := event.GetEvent() + + if arg := e.Vm; arg != nil { + if f(arg.Vm, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.Host; arg != nil { + if f(arg.Host, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.ComputeResource; arg != nil { + if f(arg.ComputeResource, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.Ds; arg != nil { + if f(arg.Datastore, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.Net; arg != nil { + if f(arg.Network, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.Dvs; arg != nil { + if f(arg.Dvs, &arg.EntityEventArgument) { + return true + } + } + + if arg := e.Datacenter; arg != nil { + if f(arg.Datacenter, &arg.EntityEventArgument) { + return true + } + } + + return false +} + +// eventFilterSelf returns true if self is one of the entity arguments in the event. +func eventFilterSelf(event types.BaseEvent, self types.ManagedObjectReference) bool { + return doEntityEventArgument(event, func(ref types.ManagedObjectReference, _ *types.EntityEventArgument) bool { + return self == ref + }) +} + +// eventFilterChildren returns true if a child of self is one of the entity arguments in the event. +func eventFilterChildren(event types.BaseEvent, self types.ManagedObjectReference) bool { + return doEntityEventArgument(event, func(ref types.ManagedObjectReference, _ *types.EntityEventArgument) bool { + seen := false + + var match func(types.ManagedObjectReference) + + match = func(child types.ManagedObjectReference) { + if child == self { + seen = true + return + } + + walk(child, match) + } + + walk(ref, match) + + return seen + }) +} + +// entityMatches returns true if the spec Entity filter matches the event. +func (c *EventHistoryCollector) entityMatches(event types.BaseEvent, spec *types.EventFilterSpec) bool { + e := spec.Entity + if e == nil { + return true + } + + isRootFolder := c.m.root == e.Entity + + switch e.Recursion { + case types.EventFilterSpecRecursionOptionSelf: + return isRootFolder || eventFilterSelf(event, e.Entity) + case types.EventFilterSpecRecursionOptionChildren: + return eventFilterChildren(event, e.Entity) + case types.EventFilterSpecRecursionOptionAll: + if isRootFolder || eventFilterSelf(event, e.Entity) { + return true + } + return eventFilterChildren(event, e.Entity) + } + + return false +} + +// typeMatches returns true if one of the spec EventTypeId types matches the event. +func (c *EventHistoryCollector) typeMatches(event types.BaseEvent, spec *types.EventFilterSpec) bool { + if len(spec.EventTypeId) == 0 { + return true + } + + matches := func(name string) bool { + for _, id := range spec.EventTypeId { + if id == name { + return true + } + } + return false + } + kind := reflect.ValueOf(event).Elem().Type() + + if matches(kind.Name()) { + return true // concrete type + } + + field, ok := kind.FieldByNameFunc(matches) + if ok { + return field.Anonymous // base type (embedded field) + } + return false +} + +// eventMatches returns true one of the filters matches the event. +func (c *EventHistoryCollector) eventMatches(event types.BaseEvent) bool { + spec := c.Filter.(types.EventFilterSpec) + + if !c.typeMatches(event, &spec) { + return false + } + + // TODO: spec.Time, spec.UserName, etc + + return c.entityMatches(event, &spec) +} + +// filePage copies the manager's latest events into the collector's page with Filter applied. +func (c *EventHistoryCollector) fillPage(size int) { + c.pos = 0 + l := c.page.Len() + delta := size - l + + if delta < 0 { + // Shrink ring size + c.page = c.page.Unlink(-delta) + return + } + + matches := 0 + mpage := c.m.page + page := c.page + + if delta != 0 { + // Grow ring size + c.page = c.page.Link(ring.New(delta)) + } + + for i := 0; i < maxPageSize; i++ { + event, ok := mpage.Value.(types.BaseEvent) + mpage = mpage.Prev() + if !ok { + continue + } + + if c.eventMatches(event) { + page.Value = event + page = page.Prev() + matches++ + if matches == size { + break + } + } + } +} + +func validatePageSize(count int32) (int, *soap.Fault) { + size := int(count) + + if size == 0 { + size = 10 // defaultPageSize + } else if size < 0 || size > maxPageSize { + return -1, Fault("", &types.InvalidArgument{InvalidProperty: "maxCount"}) + } + + return size, nil +} + +func (c *EventHistoryCollector) SetCollectorPageSize(ctx *Context, req *types.SetCollectorPageSize) soap.HasFault { + body := new(methods.SetCollectorPageSizeBody) + size, err := validatePageSize(req.MaxCount) + if err != nil { + body.Fault_ = err + return body + } + + ctx.WithLock(c.m, func() { + c.fillPage(size) + }) + + body.Res = new(types.SetCollectorPageSizeResponse) + return body +} + +func (c *EventHistoryCollector) ResetCollector(ctx *Context, req *types.ResetCollector) soap.HasFault { + c.pos = len(c.GetLatestPage()) + + return &methods.ResetCollectorBody{ + Res: new(types.ResetCollectorResponse), + } +} + +func (c *EventHistoryCollector) RewindCollector(ctx *Context, req *types.RewindCollector) soap.HasFault { + c.pos = 0 + return &methods.RewindCollectorBody{ + Res: new(types.RewindCollectorResponse), + } +} + +func (c *EventHistoryCollector) ReadNextEvents(ctx *Context, req *types.ReadNextEvents) soap.HasFault { + body := &methods.ReadNextEventsBody{} + if req.MaxCount <= 0 { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "maxCount"}) + return body + } + body.Res = new(types.ReadNextEventsResponse) + + events := c.GetLatestPage() + nevents := len(events) + if c.pos == nevents { + return body // already read to EOF + } + + start := c.pos + end := start + int(req.MaxCount) + c.pos += int(req.MaxCount) + if end > nevents { + end = nevents + c.pos = nevents + } + + body.Res.Returnval = events[start:end] + + return body +} + +func (c *EventHistoryCollector) ReadPreviousEvents(ctx *Context, req *types.ReadPreviousEvents) soap.HasFault { + body := &methods.ReadPreviousEventsBody{} + if req.MaxCount <= 0 { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "maxCount"}) + return body + } + body.Res = new(types.ReadPreviousEventsResponse) + + events := c.GetLatestPage() + if c.pos == 0 { + return body // already read to EOF + } + + start := c.pos - int(req.MaxCount) + end := c.pos + c.pos -= int(req.MaxCount) + if start < 0 { + start = 0 + c.pos = 0 + } + + body.Res.Returnval = events[start:end] + + return body +} + +func (c *EventHistoryCollector) DestroyCollector(ctx *Context, req *types.DestroyCollector) soap.HasFault { + ctx.Session.Remove(req.This) + + ctx.WithLock(c.m, func() { + delete(c.m.collectors, req.This) + }) + + return &methods.DestroyCollectorBody{ + Res: new(types.DestroyCollectorResponse), + } +} + +func (c *EventHistoryCollector) GetLatestPage() []types.BaseEvent { + var latestPage []types.BaseEvent + + c.page.Do(func(val interface{}) { + if val == nil { + return + } + latestPage = append(latestPage, val.(types.BaseEvent)) + }) + + return latestPage +} + +func (c *EventHistoryCollector) Get() mo.Reference { + clone := *c + + clone.LatestPage = clone.GetLatestPage() + + return &clone +} diff --git a/vendor/github.com/vmware/govmomi/simulator/file_manager.go b/vendor/github.com/vmware/govmomi/simulator/file_manager.go new file mode 100644 index 00000000..831b1b87 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/file_manager.go @@ -0,0 +1,252 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "io" + "os" + "path" + "path/filepath" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type FileManager struct { + mo.FileManager +} + +func (f *FileManager) findDatastore(ref mo.Reference, name string) (*Datastore, types.BaseMethodFault) { + var refs []types.ManagedObjectReference + + if d, ok := asFolderMO(ref); ok { + refs = d.ChildEntity + } + if p, ok := ref.(*StoragePod); ok { + refs = p.ChildEntity + } + + for _, ref := range refs { + obj := Map.Get(ref) + + if ds, ok := obj.(*Datastore); ok && ds.Name == name { + return ds, nil + } + if p, ok := obj.(*StoragePod); ok { + ds, _ := f.findDatastore(p, name) + if ds != nil { + return ds, nil + } + } + if d, ok := asFolderMO(obj); ok { + ds, _ := f.findDatastore(d, name) + if ds != nil { + return ds, nil + } + } + } + + return nil, &types.InvalidDatastore{Name: name} +} + +func (f *FileManager) resolve(dc *types.ManagedObjectReference, name string) (string, types.BaseMethodFault) { + p, fault := parseDatastorePath(name) + if fault != nil { + return "", fault + } + + if dc == nil { + if Map.IsESX() { + dc = &esx.Datacenter.Self + } else { + return "", &types.InvalidArgument{InvalidProperty: "dc"} + } + } + + folder := Map.Get(*dc).(*Datacenter).DatastoreFolder + + ds, fault := f.findDatastore(Map.Get(folder), p.Datastore) + if fault != nil { + return "", fault + } + + dir := ds.Info.GetDatastoreInfo().Url + + return path.Join(dir, p.Path), nil +} + +func (f *FileManager) fault(name string, err error, fault types.BaseFileFault) types.BaseMethodFault { + switch { + case os.IsNotExist(err): + fault = new(types.FileNotFound) + case os.IsExist(err): + fault = new(types.FileAlreadyExists) + } + + fault.GetFileFault().File = name + + return fault.(types.BaseMethodFault) +} + +func (f *FileManager) deleteDatastoreFile(req *types.DeleteDatastoreFile_Task) types.BaseMethodFault { + file, fault := f.resolve(req.Datacenter, req.Name) + if fault != nil { + return fault + } + + _, err := os.Stat(file) + if err != nil { + if os.IsNotExist(err) { + return f.fault(file, err, new(types.CannotDeleteFile)) + } + } + + err = os.RemoveAll(file) + if err != nil { + return f.fault(file, err, new(types.CannotDeleteFile)) + } + + return nil +} + +func (f *FileManager) DeleteDatastoreFileTask(req *types.DeleteDatastoreFile_Task) soap.HasFault { + task := CreateTask(f, "deleteDatastoreFile", func(*Task) (types.AnyType, types.BaseMethodFault) { + return nil, f.deleteDatastoreFile(req) + }) + + return &methods.DeleteDatastoreFile_TaskBody{ + Res: &types.DeleteDatastoreFile_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (f *FileManager) MakeDirectory(req *types.MakeDirectory) soap.HasFault { + body := &methods.MakeDirectoryBody{} + + name, fault := f.resolve(req.Datacenter, req.Name) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + mkdir := os.Mkdir + + if isTrue(req.CreateParentDirectories) { + mkdir = os.MkdirAll + } + + err := mkdir(name, 0700) + if err != nil { + fault = f.fault(req.Name, err, new(types.CannotCreateFile)) + body.Fault_ = Fault(err.Error(), fault) + return body + } + + body.Res = new(types.MakeDirectoryResponse) + return body +} + +func (f *FileManager) moveDatastoreFile(req *types.MoveDatastoreFile_Task) types.BaseMethodFault { + src, fault := f.resolve(req.SourceDatacenter, req.SourceName) + if fault != nil { + return fault + } + + dst, fault := f.resolve(req.DestinationDatacenter, req.DestinationName) + if fault != nil { + return fault + } + + if !isTrue(req.Force) { + _, err := os.Stat(dst) + if err == nil { + return f.fault(dst, nil, new(types.FileAlreadyExists)) + } + } + + err := os.Rename(src, dst) + if err != nil { + return f.fault(src, err, new(types.CannotAccessFile)) + } + + return nil +} + +func (f *FileManager) MoveDatastoreFileTask(req *types.MoveDatastoreFile_Task) soap.HasFault { + task := CreateTask(f, "moveDatastoreFile", func(*Task) (types.AnyType, types.BaseMethodFault) { + return nil, f.moveDatastoreFile(req) + }) + + return &methods.MoveDatastoreFile_TaskBody{ + Res: &types.MoveDatastoreFile_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (f *FileManager) copyDatastoreFile(req *types.CopyDatastoreFile_Task) types.BaseMethodFault { + src, fault := f.resolve(req.SourceDatacenter, req.SourceName) + if fault != nil { + return fault + } + + dst, fault := f.resolve(req.DestinationDatacenter, req.DestinationName) + if fault != nil { + return fault + } + + if !isTrue(req.Force) { + _, err := os.Stat(dst) + if err == nil { + return f.fault(dst, nil, new(types.FileAlreadyExists)) + } + } + + r, err := os.Open(filepath.Clean(src)) + if err != nil { + return f.fault(dst, err, new(types.CannotAccessFile)) + } + defer r.Close() + + w, err := os.Create(dst) + if err != nil { + return f.fault(dst, err, new(types.CannotCreateFile)) + } + defer w.Close() + + if _, err = io.Copy(w, r); err != nil { + return f.fault(dst, err, new(types.CannotCreateFile)) + } + + return nil +} + +func (f *FileManager) CopyDatastoreFileTask(req *types.CopyDatastoreFile_Task) soap.HasFault { + task := CreateTask(f, "copyDatastoreFile", func(*Task) (types.AnyType, types.BaseMethodFault) { + return nil, f.copyDatastoreFile(req) + }) + + return &methods.CopyDatastoreFile_TaskBody{ + Res: &types.CopyDatastoreFile_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/folder.go b/vendor/github.com/vmware/govmomi/simulator/folder.go new file mode 100644 index 00000000..cf26bed9 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/folder.go @@ -0,0 +1,690 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "errors" + "fmt" + "math/rand" + "path" + "strings" + + "github.com/google/uuid" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type Folder struct { + mo.Folder +} + +func asFolderMO(obj mo.Reference) (*mo.Folder, bool) { + if obj == nil { + return nil, false + } + f, ok := getManagedObject(obj).Addr().Interface().(*mo.Folder) + return f, ok +} + +func folderEventArgument(f *mo.Folder) types.FolderEventArgument { + return types.FolderEventArgument{ + Folder: f.Self, + EntityEventArgument: types.EntityEventArgument{Name: f.Name}, + } +} + +// update references when objects are added/removed from a Folder +func folderUpdate(f *mo.Folder, o mo.Reference, u func(mo.Reference, *[]types.ManagedObjectReference, types.ManagedObjectReference)) { + ref := o.Reference() + + if f.Parent == nil { + return // this is the root folder + } + + switch ref.Type { + case "Datacenter", "Folder": + return // nothing to update + } + + dc := Map.getEntityDatacenter(f) + + switch ref.Type { + case "Network", "DistributedVirtualSwitch", "DistributedVirtualPortgroup": + u(dc, &dc.Network, ref) + case "Datastore": + u(dc, &dc.Datastore, ref) + } +} + +func networkSummary(n *mo.Network) types.BaseNetworkSummary { + if n.Summary != nil { + return n.Summary + } + return &types.NetworkSummary{ + Network: &n.Self, + Name: n.Name, + Accessible: true, + } +} + +func folderPutChild(ctx *Context, f *mo.Folder, o mo.Entity) { + Map.PutEntity(f, o) + + ctx.WithLock(f, func() { + f.ChildEntity = append(f.ChildEntity, o.Reference()) + folderUpdate(f, o, Map.AddReference) + + ctx.WithLock(o, func() { + switch e := o.(type) { + case *mo.Network: + e.Summary = networkSummary(e) + case *mo.OpaqueNetwork: + e.Summary = networkSummary(&e.Network) + case *DistributedVirtualPortgroup: + e.Summary = networkSummary(&e.Network) + } + }) + }) +} + +func folderRemoveChild(ctx *Context, f *mo.Folder, o mo.Reference) { + Map.Remove(o.Reference()) + + ctx.WithLock(f, func() { + RemoveReference(&f.ChildEntity, o.Reference()) + + folderUpdate(f, o, Map.RemoveReference) + }) +} + +func folderHasChildType(f *mo.Folder, kind string) bool { + for _, t := range f.ChildType { + if t == kind { + return true + } + } + return false +} + +func (f *Folder) typeNotSupported() *soap.Fault { + return Fault(fmt.Sprintf("%s supports types: %#v", f.Self, f.ChildType), &types.NotSupported{}) +} + +// AddOpaqueNetwork adds an OpaqueNetwork type to the inventory, with default backing to that of an nsx.LogicalSwitch. +// The vSphere API does not have a method to add this directly, so it must either be called directly or via Model.OpaqueNetwork setting. +func (f *Folder) AddOpaqueNetwork(summary types.OpaqueNetworkSummary) error { + if !folderHasChildType(&f.Folder, "Network") { + return errors.New("not a network folder") + } + + if summary.OpaqueNetworkId == "" { + summary.OpaqueNetworkId = uuid.New().String() + } + if summary.OpaqueNetworkType == "" { + summary.OpaqueNetworkType = "nsx.LogicalSwitch" + } + if summary.Name == "" { + summary.Name = summary.OpaqueNetworkType + "-" + summary.OpaqueNetworkId + } + + net := new(mo.OpaqueNetwork) + if summary.Network == nil { + summary.Network = &net.Self + } else { + net.Self = *summary.Network + } + summary.Accessible = true + net.Network.Name = summary.Name + net.Summary = &summary + + folderPutChild(internalContext, &f.Folder, net) + + return nil +} + +type addStandaloneHost struct { + *Folder + ctx *Context + req *types.AddStandaloneHost_Task +} + +func (add *addStandaloneHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + host, err := CreateStandaloneHost(add.ctx, add.Folder, add.req.Spec) + if err != nil { + return nil, err + } + + if add.req.AddConnected { + host.Runtime.ConnectionState = types.HostSystemConnectionStateConnected + } + + return host.Reference(), nil +} + +func (f *Folder) AddStandaloneHostTask(ctx *Context, a *types.AddStandaloneHost_Task) soap.HasFault { + r := &methods.AddStandaloneHost_TaskBody{} + + if folderHasChildType(&f.Folder, "ComputeResource") && folderHasChildType(&f.Folder, "Folder") { + r.Res = &types.AddStandaloneHost_TaskResponse{ + Returnval: NewTask(&addStandaloneHost{f, ctx, a}).Run(), + } + } else { + r.Fault_ = f.typeNotSupported() + } + + return r +} + +func (f *Folder) CreateFolder(ctx *Context, c *types.CreateFolder) soap.HasFault { + r := &methods.CreateFolderBody{} + + if folderHasChildType(&f.Folder, "Folder") { + if obj := Map.FindByName(c.Name, f.ChildEntity); obj != nil { + r.Fault_ = Fault("", &types.DuplicateName{ + Name: c.Name, + Object: f.Self, + }) + + return r + } + + folder := &Folder{} + + folder.Name = c.Name + folder.ChildType = f.ChildType + + folderPutChild(ctx, &f.Folder, folder) + + r.Res = &types.CreateFolderResponse{ + Returnval: folder.Self, + } + } else { + r.Fault_ = f.typeNotSupported() + } + + return r +} + +// StoragePod aka "Datastore Cluster" +type StoragePod struct { + mo.StoragePod +} + +func (f *Folder) CreateStoragePod(ctx *Context, c *types.CreateStoragePod) soap.HasFault { + r := &methods.CreateStoragePodBody{} + + if folderHasChildType(&f.Folder, "StoragePod") { + if obj := Map.FindByName(c.Name, f.ChildEntity); obj != nil { + r.Fault_ = Fault("", &types.DuplicateName{ + Name: c.Name, + Object: f.Self, + }) + + return r + } + + pod := &StoragePod{} + + pod.Name = c.Name + pod.ChildType = []string{"Datastore"} + pod.Summary = new(types.StoragePodSummary) + pod.PodStorageDrsEntry = new(types.PodStorageDrsEntry) + pod.PodStorageDrsEntry.StorageDrsConfig.PodConfig.Enabled = true + + folderPutChild(ctx, &f.Folder, pod) + + r.Res = &types.CreateStoragePodResponse{ + Returnval: pod.Self, + } + } else { + r.Fault_ = f.typeNotSupported() + } + + return r +} + +func (p *StoragePod) MoveIntoFolderTask(ctx *Context, c *types.MoveIntoFolder_Task) soap.HasFault { + f := &Folder{Folder: p.Folder} + res := f.MoveIntoFolderTask(ctx, c) + p.ChildEntity = append(p.ChildEntity, f.ChildEntity...) + return res +} + +func (f *Folder) CreateDatacenter(ctx *Context, c *types.CreateDatacenter) soap.HasFault { + r := &methods.CreateDatacenterBody{} + + if folderHasChildType(&f.Folder, "Datacenter") && folderHasChildType(&f.Folder, "Folder") { + dc := NewDatacenter(ctx, &f.Folder) + + dc.Name = c.Name + + r.Res = &types.CreateDatacenterResponse{ + Returnval: dc.Self, + } + + ctx.postEvent(&types.DatacenterCreatedEvent{ + DatacenterEvent: types.DatacenterEvent{ + Event: types.Event{ + Datacenter: datacenterEventArgument(dc), + }, + }, + Parent: folderEventArgument(&f.Folder), + }) + } else { + r.Fault_ = f.typeNotSupported() + } + + return r +} + +func (f *Folder) CreateClusterEx(ctx *Context, c *types.CreateClusterEx) soap.HasFault { + r := &methods.CreateClusterExBody{} + + if folderHasChildType(&f.Folder, "ComputeResource") && folderHasChildType(&f.Folder, "Folder") { + cluster, err := CreateClusterComputeResource(ctx, f, c.Name, c.Spec) + if err != nil { + r.Fault_ = Fault("", err) + return r + } + + r.Res = &types.CreateClusterExResponse{ + Returnval: cluster.Self, + } + } else { + r.Fault_ = f.typeNotSupported() + } + + return r +} + +type createVM struct { + *Folder + + ctx *Context + req *types.CreateVM_Task + + register bool +} + +// hostsWithDatastore returns hosts that have access to the given datastore path +func hostsWithDatastore(hosts []types.ManagedObjectReference, path string) []types.ManagedObjectReference { + attached := hosts[:0] + var p object.DatastorePath + p.FromString(path) + + for _, host := range hosts { + h := Map.Get(host).(*HostSystem) + if Map.FindByName(p.Datastore, h.Datastore) != nil { + attached = append(attached, host) + } + } + + return attached +} + +func (c *createVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + vm, err := NewVirtualMachine(c.ctx, c.Folder.Self, &c.req.Config) + if err != nil { + folderRemoveChild(c.ctx, &c.Folder.Folder, vm) + return nil, err + } + + vm.ResourcePool = &c.req.Pool + + if c.req.Host == nil { + pool := Map.Get(c.req.Pool).(mo.Entity) + cr := Map.getEntityComputeResource(pool) + + Map.WithLock(cr, func() { + var hosts []types.ManagedObjectReference + switch cr := cr.(type) { + case *mo.ComputeResource: + hosts = cr.Host + case *ClusterComputeResource: + hosts = cr.Host + } + + hosts = hostsWithDatastore(hosts, c.req.Config.Files.VmPathName) + host := hosts[rand.Intn(len(hosts))] + vm.Runtime.Host = &host + }) + } else { + vm.Runtime.Host = c.req.Host + } + + vm.Guest = &types.GuestInfo{ + ToolsStatus: types.VirtualMachineToolsStatusToolsNotInstalled, + ToolsVersion: "0", + ToolsRunningStatus: string(types.VirtualMachineToolsRunningStatusGuestToolsNotRunning), + } + + vm.Summary.Guest = &types.VirtualMachineGuestSummary{ + ToolsStatus: vm.Guest.ToolsStatus, + } + vm.Summary.Config.VmPathName = vm.Config.Files.VmPathName + vm.Summary.Runtime.Host = vm.Runtime.Host + + err = vm.create(&c.req.Config, c.register) + if err != nil { + folderRemoveChild(c.ctx, &c.Folder.Folder, vm) + return nil, err + } + + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + Map.AppendReference(host, &host.Vm, vm.Self) + vm.EnvironmentBrowser = *hostParent(&host.HostSystem).EnvironmentBrowser + + for i := range vm.Datastore { + ds := Map.Get(vm.Datastore[i]).(*Datastore) + Map.AppendReference(ds, &ds.Vm, vm.Self) + } + + pool := Map.Get(*vm.ResourcePool) + // This can be an internal call from VirtualApp.CreateChildVMTask, where pool is already locked. + c.ctx.WithLock(pool, func() { + if rp, ok := asResourcePoolMO(pool); ok { + rp.Vm = append(rp.Vm, vm.Self) + } + if vapp, ok := pool.(*VirtualApp); ok { + vapp.Vm = append(vapp.Vm, vm.Self) + } + }) + + event := vm.event() + c.ctx.postEvent( + &types.VmBeingCreatedEvent{ + VmEvent: event, + ConfigSpec: &c.req.Config, + }, + &types.VmInstanceUuidAssignedEvent{ + VmEvent: event, + InstanceUuid: vm.Config.InstanceUuid, + }, + &types.VmUuidAssignedEvent{ + VmEvent: event, + Uuid: vm.Config.Uuid, + }, + &types.VmCreatedEvent{ + VmEvent: event, + }, + ) + + vm.RefreshStorageInfo(c.ctx, nil) + + return vm.Reference(), nil +} + +func (f *Folder) CreateVMTask(ctx *Context, c *types.CreateVM_Task) soap.HasFault { + return &methods.CreateVM_TaskBody{ + Res: &types.CreateVM_TaskResponse{ + Returnval: NewTask(&createVM{f, ctx, c, false}).Run(), + }, + } +} + +type registerVM struct { + *Folder + + ctx *Context + req *types.RegisterVM_Task +} + +func (c *registerVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + host := c.req.Host + pool := c.req.Pool + + if c.req.AsTemplate { + if host == nil { + return nil, &types.InvalidArgument{InvalidProperty: "host"} + } else if pool != nil { + return nil, &types.InvalidArgument{InvalidProperty: "pool"} + } + + pool = hostParent(&Map.Get(*host).(*HostSystem).HostSystem).ResourcePool + } else { + if pool == nil { + return nil, &types.InvalidArgument{InvalidProperty: "pool"} + } + } + + if c.req.Path == "" { + return nil, &types.InvalidArgument{InvalidProperty: "path"} + } + + s := Map.SearchIndex() + r := s.FindByDatastorePath(&types.FindByDatastorePath{ + This: s.Reference(), + Path: c.req.Path, + Datacenter: Map.getEntityDatacenter(c.Folder).Reference(), + }) + + if ref := r.(*methods.FindByDatastorePathBody).Res.Returnval; ref != nil { + return nil, &types.AlreadyExists{Name: ref.Value} + } + + if c.req.Name == "" { + p, err := parseDatastorePath(c.req.Path) + if err != nil { + return nil, err + } + + c.req.Name = path.Dir(p.Path) + } + + create := NewTask(&createVM{ + Folder: c.Folder, + register: true, + ctx: c.ctx, + req: &types.CreateVM_Task{ + This: c.Folder.Reference(), + Config: types.VirtualMachineConfigSpec{ + Name: c.req.Name, + Files: &types.VirtualMachineFileInfo{ + VmPathName: c.req.Path, + }, + }, + Pool: *pool, + Host: host, + }, + }) + + create.Run() + + if create.Info.Error != nil { + return nil, create.Info.Error.Fault + } + + return create.Info.Result, nil +} + +func (f *Folder) RegisterVMTask(ctx *Context, c *types.RegisterVM_Task) soap.HasFault { + return &methods.RegisterVM_TaskBody{ + Res: &types.RegisterVM_TaskResponse{ + Returnval: NewTask(®isterVM{f, ctx, c}).Run(), + }, + } +} + +func (f *Folder) MoveIntoFolderTask(ctx *Context, c *types.MoveIntoFolder_Task) soap.HasFault { + task := CreateTask(f, "moveIntoFolder", func(t *Task) (types.AnyType, types.BaseMethodFault) { + for _, ref := range c.List { + obj := Map.Get(ref).(mo.Entity) + + parent, ok := Map.Get(*(obj.Entity()).Parent).(*Folder) + + if !ok || !folderHasChildType(&f.Folder, ref.Type) { + return nil, &types.NotSupported{} + } + + folderRemoveChild(ctx, &parent.Folder, ref) + folderPutChild(ctx, &f.Folder, obj) + } + + return nil, nil + }) + + return &methods.MoveIntoFolder_TaskBody{ + Res: &types.MoveIntoFolder_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (f *Folder) CreateDVSTask(ctx *Context, req *types.CreateDVS_Task) soap.HasFault { + task := CreateTask(f, "createDVS", func(t *Task) (types.AnyType, types.BaseMethodFault) { + spec := req.Spec.ConfigSpec.GetDVSConfigSpec() + dvs := &DistributedVirtualSwitch{} + dvs.Name = spec.Name + dvs.Entity().Name = dvs.Name + + if Map.FindByName(dvs.Name, f.ChildEntity) != nil { + return nil, &types.InvalidArgument{InvalidProperty: "name"} + } + + dvs.Uuid = newUUID(dvs.Name) + + folderPutChild(ctx, &f.Folder, dvs) + + dvs.Summary = types.DVSSummary{ + Name: dvs.Name, + Uuid: dvs.Uuid, + NumPorts: spec.NumStandalonePorts, + ProductInfo: req.Spec.ProductInfo, + Description: spec.Description, + } + + configInfo := &types.VMwareDVSConfigInfo{ + DVSConfigInfo: types.DVSConfigInfo{ + Uuid: dvs.Uuid, + Name: spec.Name, + ConfigVersion: spec.ConfigVersion, + NumStandalonePorts: spec.NumStandalonePorts, + MaxPorts: spec.MaxPorts, + UplinkPortPolicy: spec.UplinkPortPolicy, + UplinkPortgroup: spec.UplinkPortgroup, + DefaultPortConfig: spec.DefaultPortConfig, + ExtensionKey: spec.ExtensionKey, + Description: spec.Description, + Policy: spec.Policy, + VendorSpecificConfig: spec.VendorSpecificConfig, + SwitchIpAddress: spec.SwitchIpAddress, + DefaultProxySwitchMaxNumPorts: spec.DefaultProxySwitchMaxNumPorts, + InfrastructureTrafficResourceConfig: spec.InfrastructureTrafficResourceConfig, + NetworkResourceControlVersion: spec.NetworkResourceControlVersion, + }, + } + + if spec.Contact != nil { + configInfo.Contact = *spec.Contact + } + + dvs.Config = configInfo + + if dvs.Summary.ProductInfo == nil { + product := Map.content().About + dvs.Summary.ProductInfo = &types.DistributedVirtualSwitchProductSpec{ + Name: "DVS", + Vendor: product.Vendor, + Version: product.Version, + Build: product.Build, + ForwardingClass: "etherswitch", + } + } + + dvs.AddDVPortgroupTask(ctx, &types.AddDVPortgroup_Task{ + Spec: []types.DVPortgroupConfigSpec{{ + Name: dvs.Name + "-DVUplinks" + strings.TrimPrefix(dvs.Self.Value, "dvs"), + DefaultPortConfig: &types.VMwareDVSPortSetting{ + Vlan: &types.VmwareDistributedVirtualSwitchTrunkVlanSpec{ + VlanId: []types.NumericRange{{Start: 0, End: 4094}}, + }, + UplinkTeamingPolicy: &types.VmwareUplinkPortTeamingPolicy{ + Policy: &types.StringPolicy{ + Value: "loadbalance_srcid", + }, + ReversePolicy: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + NotifySwitches: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + RollingOrder: &types.BoolPolicy{ + Value: types.NewBool(true), + }, + }, + }, + }}, + }) + + return dvs.Reference(), nil + }) + + return &methods.CreateDVS_TaskBody{ + Res: &types.CreateDVS_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (f *Folder) RenameTask(r *types.Rename_Task) soap.HasFault { + return RenameTask(f, r) +} + +func (f *Folder) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + type destroyer interface { + mo.Reference + DestroyTask(*types.Destroy_Task) soap.HasFault + } + + task := CreateTask(f, "destroy", func(*Task) (types.AnyType, types.BaseMethodFault) { + // Attempt to destroy all children + for _, c := range f.ChildEntity { + obj, ok := Map.Get(c).(destroyer) + if !ok { + continue + } + + var fault types.BaseMethodFault + Map.WithLock(obj, func() { + id := obj.DestroyTask(&types.Destroy_Task{ + This: c, + }).(*methods.Destroy_TaskBody).Res.Returnval + + t := Map.Get(id).(*Task) + if t.Info.Error != nil { + fault = t.Info.Error.Fault // For example, can't destroy a powered on VM + } + }) + if fault != nil { + return nil, fault + } + } + + // Remove the folder itself + folderRemoveChild(ctx, &Map.Get(*f.Parent).(*Folder).Folder, f.Self) + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/guest_id.go b/vendor/github.com/vmware/govmomi/simulator/guest_id.go new file mode 100644 index 00000000..87cf4aaf --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/guest_id.go @@ -0,0 +1,171 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import "github.com/vmware/govmomi/vim25/types" + +// GuestID is the list of valid types.VirtualMachineGuestOsIdentifier +var GuestID = []types.VirtualMachineGuestOsIdentifier{ + types.VirtualMachineGuestOsIdentifierDosGuest, + types.VirtualMachineGuestOsIdentifierWin31Guest, + types.VirtualMachineGuestOsIdentifierWin95Guest, + types.VirtualMachineGuestOsIdentifierWin98Guest, + types.VirtualMachineGuestOsIdentifierWinMeGuest, + types.VirtualMachineGuestOsIdentifierWinNTGuest, + types.VirtualMachineGuestOsIdentifierWin2000ProGuest, + types.VirtualMachineGuestOsIdentifierWin2000ServGuest, + types.VirtualMachineGuestOsIdentifierWin2000AdvServGuest, + types.VirtualMachineGuestOsIdentifierWinXPHomeGuest, + types.VirtualMachineGuestOsIdentifierWinXPProGuest, + types.VirtualMachineGuestOsIdentifierWinXPPro64Guest, + types.VirtualMachineGuestOsIdentifierWinNetWebGuest, + types.VirtualMachineGuestOsIdentifierWinNetStandardGuest, + types.VirtualMachineGuestOsIdentifierWinNetEnterpriseGuest, + types.VirtualMachineGuestOsIdentifierWinNetDatacenterGuest, + types.VirtualMachineGuestOsIdentifierWinNetBusinessGuest, + types.VirtualMachineGuestOsIdentifierWinNetStandard64Guest, + types.VirtualMachineGuestOsIdentifierWinNetEnterprise64Guest, + types.VirtualMachineGuestOsIdentifierWinLonghornGuest, + types.VirtualMachineGuestOsIdentifierWinLonghorn64Guest, + types.VirtualMachineGuestOsIdentifierWinNetDatacenter64Guest, + types.VirtualMachineGuestOsIdentifierWinVistaGuest, + types.VirtualMachineGuestOsIdentifierWinVista64Guest, + types.VirtualMachineGuestOsIdentifierWindows7Guest, + types.VirtualMachineGuestOsIdentifierWindows7_64Guest, + types.VirtualMachineGuestOsIdentifierWindows7Server64Guest, + types.VirtualMachineGuestOsIdentifierWindows8Guest, + types.VirtualMachineGuestOsIdentifierWindows8_64Guest, + types.VirtualMachineGuestOsIdentifierWindows8Server64Guest, + types.VirtualMachineGuestOsIdentifierWindows9Guest, + types.VirtualMachineGuestOsIdentifierWindows9_64Guest, + types.VirtualMachineGuestOsIdentifierWindows9Server64Guest, + types.VirtualMachineGuestOsIdentifierWindowsHyperVGuest, + types.VirtualMachineGuestOsIdentifierFreebsdGuest, + types.VirtualMachineGuestOsIdentifierFreebsd64Guest, + types.VirtualMachineGuestOsIdentifierRedhatGuest, + types.VirtualMachineGuestOsIdentifierRhel2Guest, + types.VirtualMachineGuestOsIdentifierRhel3Guest, + types.VirtualMachineGuestOsIdentifierRhel3_64Guest, + types.VirtualMachineGuestOsIdentifierRhel4Guest, + types.VirtualMachineGuestOsIdentifierRhel4_64Guest, + types.VirtualMachineGuestOsIdentifierRhel5Guest, + types.VirtualMachineGuestOsIdentifierRhel5_64Guest, + types.VirtualMachineGuestOsIdentifierRhel6Guest, + types.VirtualMachineGuestOsIdentifierRhel6_64Guest, + types.VirtualMachineGuestOsIdentifierRhel7Guest, + types.VirtualMachineGuestOsIdentifierRhel7_64Guest, + types.VirtualMachineGuestOsIdentifierCentosGuest, + types.VirtualMachineGuestOsIdentifierCentos64Guest, + types.VirtualMachineGuestOsIdentifierCentos6Guest, + types.VirtualMachineGuestOsIdentifierCentos6_64Guest, + types.VirtualMachineGuestOsIdentifierCentos7Guest, + types.VirtualMachineGuestOsIdentifierCentos7_64Guest, + types.VirtualMachineGuestOsIdentifierOracleLinuxGuest, + types.VirtualMachineGuestOsIdentifierOracleLinux64Guest, + types.VirtualMachineGuestOsIdentifierOracleLinux6Guest, + types.VirtualMachineGuestOsIdentifierOracleLinux6_64Guest, + types.VirtualMachineGuestOsIdentifierOracleLinux7Guest, + types.VirtualMachineGuestOsIdentifierOracleLinux7_64Guest, + types.VirtualMachineGuestOsIdentifierSuseGuest, + types.VirtualMachineGuestOsIdentifierSuse64Guest, + types.VirtualMachineGuestOsIdentifierSlesGuest, + types.VirtualMachineGuestOsIdentifierSles64Guest, + types.VirtualMachineGuestOsIdentifierSles10Guest, + types.VirtualMachineGuestOsIdentifierSles10_64Guest, + types.VirtualMachineGuestOsIdentifierSles11Guest, + types.VirtualMachineGuestOsIdentifierSles11_64Guest, + types.VirtualMachineGuestOsIdentifierSles12Guest, + types.VirtualMachineGuestOsIdentifierSles12_64Guest, + types.VirtualMachineGuestOsIdentifierNld9Guest, + types.VirtualMachineGuestOsIdentifierOesGuest, + types.VirtualMachineGuestOsIdentifierSjdsGuest, + types.VirtualMachineGuestOsIdentifierMandrakeGuest, + types.VirtualMachineGuestOsIdentifierMandrivaGuest, + types.VirtualMachineGuestOsIdentifierMandriva64Guest, + types.VirtualMachineGuestOsIdentifierTurboLinuxGuest, + types.VirtualMachineGuestOsIdentifierTurboLinux64Guest, + types.VirtualMachineGuestOsIdentifierUbuntuGuest, + types.VirtualMachineGuestOsIdentifierUbuntu64Guest, + types.VirtualMachineGuestOsIdentifierDebian4Guest, + types.VirtualMachineGuestOsIdentifierDebian4_64Guest, + types.VirtualMachineGuestOsIdentifierDebian5Guest, + types.VirtualMachineGuestOsIdentifierDebian5_64Guest, + types.VirtualMachineGuestOsIdentifierDebian6Guest, + types.VirtualMachineGuestOsIdentifierDebian6_64Guest, + types.VirtualMachineGuestOsIdentifierDebian7Guest, + types.VirtualMachineGuestOsIdentifierDebian7_64Guest, + types.VirtualMachineGuestOsIdentifierDebian8Guest, + types.VirtualMachineGuestOsIdentifierDebian8_64Guest, + types.VirtualMachineGuestOsIdentifierDebian9Guest, + types.VirtualMachineGuestOsIdentifierDebian9_64Guest, + types.VirtualMachineGuestOsIdentifierDebian10Guest, + types.VirtualMachineGuestOsIdentifierDebian10_64Guest, + types.VirtualMachineGuestOsIdentifierAsianux3Guest, + types.VirtualMachineGuestOsIdentifierAsianux3_64Guest, + types.VirtualMachineGuestOsIdentifierAsianux4Guest, + types.VirtualMachineGuestOsIdentifierAsianux4_64Guest, + types.VirtualMachineGuestOsIdentifierAsianux5_64Guest, + types.VirtualMachineGuestOsIdentifierAsianux7_64Guest, + types.VirtualMachineGuestOsIdentifierOpensuseGuest, + types.VirtualMachineGuestOsIdentifierOpensuse64Guest, + types.VirtualMachineGuestOsIdentifierFedoraGuest, + types.VirtualMachineGuestOsIdentifierFedora64Guest, + types.VirtualMachineGuestOsIdentifierCoreos64Guest, + types.VirtualMachineGuestOsIdentifierVmwarePhoton64Guest, + types.VirtualMachineGuestOsIdentifierOther24xLinuxGuest, + types.VirtualMachineGuestOsIdentifierOther26xLinuxGuest, + types.VirtualMachineGuestOsIdentifierOtherLinuxGuest, + types.VirtualMachineGuestOsIdentifierOther3xLinuxGuest, + types.VirtualMachineGuestOsIdentifierGenericLinuxGuest, + types.VirtualMachineGuestOsIdentifierOther24xLinux64Guest, + types.VirtualMachineGuestOsIdentifierOther26xLinux64Guest, + types.VirtualMachineGuestOsIdentifierOther3xLinux64Guest, + types.VirtualMachineGuestOsIdentifierOtherLinux64Guest, + types.VirtualMachineGuestOsIdentifierSolaris6Guest, + types.VirtualMachineGuestOsIdentifierSolaris7Guest, + types.VirtualMachineGuestOsIdentifierSolaris8Guest, + types.VirtualMachineGuestOsIdentifierSolaris9Guest, + types.VirtualMachineGuestOsIdentifierSolaris10Guest, + types.VirtualMachineGuestOsIdentifierSolaris10_64Guest, + types.VirtualMachineGuestOsIdentifierSolaris11_64Guest, + types.VirtualMachineGuestOsIdentifierOs2Guest, + types.VirtualMachineGuestOsIdentifierEComStationGuest, + types.VirtualMachineGuestOsIdentifierEComStation2Guest, + types.VirtualMachineGuestOsIdentifierNetware4Guest, + types.VirtualMachineGuestOsIdentifierNetware5Guest, + types.VirtualMachineGuestOsIdentifierNetware6Guest, + types.VirtualMachineGuestOsIdentifierOpenServer5Guest, + types.VirtualMachineGuestOsIdentifierOpenServer6Guest, + types.VirtualMachineGuestOsIdentifierUnixWare7Guest, + types.VirtualMachineGuestOsIdentifierDarwinGuest, + types.VirtualMachineGuestOsIdentifierDarwin64Guest, + types.VirtualMachineGuestOsIdentifierDarwin10Guest, + types.VirtualMachineGuestOsIdentifierDarwin10_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin11Guest, + types.VirtualMachineGuestOsIdentifierDarwin11_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin12_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin13_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin14_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin15_64Guest, + types.VirtualMachineGuestOsIdentifierDarwin16_64Guest, + types.VirtualMachineGuestOsIdentifierVmkernelGuest, + types.VirtualMachineGuestOsIdentifierVmkernel5Guest, + types.VirtualMachineGuestOsIdentifierVmkernel6Guest, + types.VirtualMachineGuestOsIdentifierVmkernel65Guest, + types.VirtualMachineGuestOsIdentifierOtherGuest, + types.VirtualMachineGuestOsIdentifierOtherGuest64, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/guest_id.sh b/vendor/github.com/vmware/govmomi/simulator/guest_id.sh new file mode 100644 index 00000000..e7981633 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/guest_id.sh @@ -0,0 +1,35 @@ +#!/bin/bash -e + +pushd "$(dirname "$0")" >/dev/null + +{ + cat < guest_id.go + +goimports -w guest_id.go diff --git a/vendor/github.com/vmware/govmomi/simulator/guest_operations_manager.go b/vendor/github.com/vmware/govmomi/simulator/guest_operations_manager.go new file mode 100644 index 00000000..83eeb6b8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/guest_operations_manager.go @@ -0,0 +1,111 @@ +/* +Copyright (c) 2020 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "net/url" + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type GuestOperationsManager struct { + mo.GuestOperationsManager +} + +func (m *GuestOperationsManager) init(r *Registry) { + fm := new(GuestFileManager) + if m.FileManager == nil { + m.FileManager = &types.ManagedObjectReference{ + Type: "GuestFileManager", + Value: "guestOperationsFileManager", + } + } + fm.Self = *m.FileManager + r.Put(fm) + + pm := new(GuestProcessManager) + if m.ProcessManager == nil { + m.ProcessManager = &types.ManagedObjectReference{ + Type: "GuestProcessManager", + Value: "guestOperationsProcessManager", + } + } + pm.Self = *m.ProcessManager + r.Put(pm) +} + +type GuestFileManager struct { + mo.GuestFileManager +} + +func guestURL(ctx *Context, vm *VirtualMachine, path string) string { + return (&url.URL{ + Scheme: ctx.svc.Listen.Scheme, + Host: "*", // See guest.FileManager.TransferURL + Path: guestPrefix + strings.TrimPrefix(path, "/"), + RawQuery: url.Values{ + "id": []string{vm.run.id}, + "token": []string{ctx.Session.Key}, + }.Encode(), + }).String() +} + +func (m *GuestFileManager) InitiateFileTransferToGuest(ctx *Context, req *types.InitiateFileTransferToGuest) soap.HasFault { + body := new(methods.InitiateFileTransferToGuestBody) + + vm := ctx.Map.Get(req.Vm).(*VirtualMachine) + err := vm.run.prepareGuestOperation(vm, req.Auth) + if err != nil { + body.Fault_ = Fault("", err) + return body + } + + body.Res = &types.InitiateFileTransferToGuestResponse{ + Returnval: guestURL(ctx, vm, req.GuestFilePath), + } + + return body +} + +func (m *GuestFileManager) InitiateFileTransferFromGuest(ctx *Context, req *types.InitiateFileTransferFromGuest) soap.HasFault { + body := new(methods.InitiateFileTransferFromGuestBody) + + vm := ctx.Map.Get(req.Vm).(*VirtualMachine) + err := vm.run.prepareGuestOperation(vm, req.Auth) + if err != nil { + body.Fault_ = Fault("", err) + return body + } + + body.Res = &types.InitiateFileTransferFromGuestResponse{ + Returnval: types.FileTransferInformation{ + Attributes: nil, // TODO + Size: 0, // TODO + Url: guestURL(ctx, vm, req.GuestFilePath), + }, + } + + return body +} + +type GuestProcessManager struct { + mo.GuestProcessManager +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go b/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go new file mode 100644 index 00000000..adc1ec67 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go @@ -0,0 +1,252 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "io/ioutil" + "log" + "os" + "path" + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostDatastoreBrowser struct { + mo.HostDatastoreBrowser +} + +type searchDatastore struct { + *HostDatastoreBrowser + + DatastorePath string + SearchSpec *types.HostDatastoreBrowserSearchSpec + + res []types.HostDatastoreBrowserSearchResults + + recurse bool +} + +func (s *searchDatastore) addFile(file os.FileInfo, res *types.HostDatastoreBrowserSearchResults) { + details := s.SearchSpec.Details + if details == nil { + details = new(types.FileQueryFlags) + } + + name := file.Name() + + info := types.FileInfo{ + Path: name, + } + + var finfo types.BaseFileInfo = &info + + if details.FileSize { + info.FileSize = file.Size() + } + + if details.Modification { + mtime := file.ModTime() + info.Modification = &mtime + } + + if isTrue(details.FileOwner) { + // Assume for now this process created all files in the datastore + user := os.Getenv("USER") + + info.Owner = user + } + + if file.IsDir() { + finfo = &types.FolderFileInfo{FileInfo: info} + } else if details.FileType { + switch path.Ext(name) { + case ".img": + finfo = &types.FloppyImageFileInfo{FileInfo: info} + case ".iso": + finfo = &types.IsoImageFileInfo{FileInfo: info} + case ".log": + finfo = &types.VmLogFileInfo{FileInfo: info} + case ".nvram": + finfo = &types.VmNvramFileInfo{FileInfo: info} + case ".vmdk": + // TODO: lookup device to set other fields + finfo = &types.VmDiskFileInfo{FileInfo: info} + case ".vmx": + finfo = &types.VmConfigFileInfo{FileInfo: info} + } + } + + res.File = append(res.File, finfo) +} + +func (s *searchDatastore) queryMatch(file os.FileInfo) bool { + if len(s.SearchSpec.Query) == 0 { + return true + } + + name := file.Name() + ext := path.Ext(name) + + for _, q := range s.SearchSpec.Query { + switch q.(type) { + case *types.FileQuery: + return true + case *types.FolderFileQuery: + if file.IsDir() { + return true + } + case *types.FloppyImageFileQuery: + if ext == ".img" { + return true + } + case *types.IsoImageFileQuery: + if ext == ".iso" { + return true + } + case *types.VmConfigFileQuery: + if ext == ".vmx" { + // TODO: check Filter and Details fields + return true + } + case *types.VmDiskFileQuery: + if ext == ".vmdk" { + // TODO: check Filter and Details fields + return !strings.HasSuffix(name, "-flat.vmdk") + } + case *types.VmLogFileQuery: + if ext == ".log" { + return strings.HasPrefix(name, "vmware") + } + case *types.VmNvramFileQuery: + if ext == ".nvram" { + return true + } + case *types.VmSnapshotFileQuery: + if ext == ".vmsn" { + return true + } + } + } + + return false +} + +func (s *searchDatastore) search(ds *types.ManagedObjectReference, folder string, dir string) error { + files, err := ioutil.ReadDir(dir) + if err != nil { + log.Printf("search %s: %s", dir, err) + return err + } + + res := types.HostDatastoreBrowserSearchResults{ + Datastore: ds, + FolderPath: folder, + } + + for _, file := range files { + name := file.Name() + + if s.queryMatch(file) { + for _, m := range s.SearchSpec.MatchPattern { + if ok, _ := path.Match(m, name); ok { + s.addFile(file, &res) + break + } + } + } + + if s.recurse && file.IsDir() { + _ = s.search(ds, path.Join(folder, name), path.Join(dir, name)) + } + } + + s.res = append(s.res, res) + + return nil +} + +func (s *searchDatastore) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + p, fault := parseDatastorePath(s.DatastorePath) + if fault != nil { + return nil, fault + } + + ref := Map.FindByName(p.Datastore, s.Datastore) + if ref == nil { + return nil, &types.InvalidDatastore{Name: p.Datastore} + } + + ds := ref.(*Datastore) + task.Info.Entity = &ds.Self // TODO: CreateTask() should require mo.Entity, rather than mo.Reference + task.Info.EntityName = ds.Name + + dir := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) + + err := s.search(&ds.Self, s.DatastorePath, dir) + if err != nil { + ff := types.FileFault{ + File: p.Path, + } + + if os.IsNotExist(err) { + return nil, &types.FileNotFound{FileFault: ff} + } + + return nil, &types.InvalidArgument{InvalidProperty: p.Path} + } + + if s.recurse { + return types.ArrayOfHostDatastoreBrowserSearchResults{ + HostDatastoreBrowserSearchResults: s.res, + }, nil + } + + return s.res[0], nil +} + +func (b *HostDatastoreBrowser) SearchDatastoreTask(s *types.SearchDatastore_Task) soap.HasFault { + task := NewTask(&searchDatastore{ + HostDatastoreBrowser: b, + DatastorePath: s.DatastorePath, + SearchSpec: s.SearchSpec, + }) + + return &methods.SearchDatastore_TaskBody{ + Res: &types.SearchDatastore_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (b *HostDatastoreBrowser) SearchDatastoreSubFoldersTask(s *types.SearchDatastoreSubFolders_Task) soap.HasFault { + task := NewTask(&searchDatastore{ + HostDatastoreBrowser: b, + DatastorePath: s.DatastorePath, + SearchSpec: s.SearchSpec, + recurse: true, + }) + + return &methods.SearchDatastoreSubFolders_TaskBody{ + Res: &types.SearchDatastoreSubFolders_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go b/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go new file mode 100644 index 00000000..a4052879 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go @@ -0,0 +1,174 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "os" + "path" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostDatastoreSystem struct { + mo.HostDatastoreSystem + + Host *mo.HostSystem +} + +func (dss *HostDatastoreSystem) add(ctx *Context, ds *Datastore) *soap.Fault { + info := ds.Info.GetDatastoreInfo() + + info.Name = ds.Name + + if e := Map.FindByName(ds.Name, dss.Datastore); e != nil { + return Fault(e.Reference().Value, &types.DuplicateName{ + Name: ds.Name, + Object: e.Reference(), + }) + } + + fi, err := os.Stat(info.Url) + if err == nil && !fi.IsDir() { + err = os.ErrInvalid + } + + if err != nil { + switch { + case os.IsNotExist(err): + return Fault(err.Error(), &types.NotFound{}) + default: + return Fault(err.Error(), &types.HostConfigFault{}) + } + } + + folder := Map.getEntityFolder(dss.Host, "datastore") + ds.Self.Type = typeName(ds) + // Datastore is the only type where create methods do not include the parent (Folder in this case), + // but we need the moref to be unique per DC/datastoreFolder, but not per-HostSystem. + ds.Self.Value += "@" + folder.Self.Value + // TODO: name should be made unique in the case of Local ds type + + ds.Summary.Datastore = &ds.Self + ds.Summary.Name = ds.Name + ds.Summary.Url = info.Url + ds.Capability = types.DatastoreCapability{ + DirectoryHierarchySupported: true, + RawDiskMappingsSupported: false, + PerFileThinProvisioningSupported: true, + StorageIORMSupported: types.NewBool(true), + NativeSnapshotSupported: types.NewBool(false), + TopLevelDirectoryCreateSupported: types.NewBool(true), + SeSparseSupported: types.NewBool(true), + } + + dss.Datastore = append(dss.Datastore, ds.Self) + dss.Host.Datastore = dss.Datastore + parent := hostParent(dss.Host) + Map.AddReference(parent, &parent.Datastore, ds.Self) + + browser := &HostDatastoreBrowser{} + browser.Datastore = dss.Datastore + ds.Browser = Map.Put(browser).Reference() + + folderPutChild(ctx, folder, ds) + + return nil +} + +func (dss *HostDatastoreSystem) CreateLocalDatastore(ctx *Context, c *types.CreateLocalDatastore) soap.HasFault { + r := &methods.CreateLocalDatastoreBody{} + + ds := &Datastore{} + ds.Name = c.Name + ds.Self.Value = c.Path + + ds.Info = &types.LocalDatastoreInfo{ + DatastoreInfo: types.DatastoreInfo{ + Name: c.Name, + Url: c.Path, + }, + Path: c.Path, + } + + ds.Summary.Type = string(types.HostFileSystemVolumeFileSystemTypeOTHER) + ds.Summary.MaintenanceMode = string(types.DatastoreSummaryMaintenanceModeStateNormal) + ds.Summary.Accessible = true + + if err := dss.add(ctx, ds); err != nil { + r.Fault_ = err + return r + } + + ds.Host = append(ds.Host, types.DatastoreHostMount{ + Key: dss.Host.Reference(), + MountInfo: types.HostMountInfo{ + AccessMode: string(types.HostMountModeReadWrite), + Mounted: types.NewBool(true), + Accessible: types.NewBool(true), + }, + }) + + _ = ds.RefreshDatastore(&types.RefreshDatastore{This: ds.Self}) + + r.Res = &types.CreateLocalDatastoreResponse{ + Returnval: ds.Self, + } + + return r +} + +func (dss *HostDatastoreSystem) CreateNasDatastore(ctx *Context, c *types.CreateNasDatastore) soap.HasFault { + r := &methods.CreateNasDatastoreBody{} + + ds := &Datastore{} + ds.Name = path.Base(c.Spec.LocalPath) + ds.Self.Value = c.Spec.RemoteHost + ":" + c.Spec.RemotePath + + ds.Info = &types.NasDatastoreInfo{ + DatastoreInfo: types.DatastoreInfo{ + Url: c.Spec.LocalPath, + }, + Nas: &types.HostNasVolume{ + HostFileSystemVolume: types.HostFileSystemVolume{ + Name: c.Spec.LocalPath, + Type: c.Spec.Type, + }, + RemoteHost: c.Spec.RemoteHost, + RemotePath: c.Spec.RemotePath, + }, + } + + ds.Summary.Type = c.Spec.Type + ds.Summary.MaintenanceMode = string(types.DatastoreSummaryMaintenanceModeStateNormal) + ds.Summary.Accessible = true + + if err := dss.add(ctx, ds); err != nil { + r.Fault_ = err + return r + } + + _ = ds.RefreshDatastore(&types.RefreshDatastore{This: ds.Self}) + + r.Res = &types.CreateNasDatastoreResponse{ + Returnval: ds.Self, + } + + return r +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go b/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go new file mode 100644 index 00000000..fd596386 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go @@ -0,0 +1,87 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostFirewallSystem struct { + mo.HostFirewallSystem +} + +func NewHostFirewallSystem(_ *mo.HostSystem) *HostFirewallSystem { + info := esx.HostFirewallInfo + + return &HostFirewallSystem{ + HostFirewallSystem: mo.HostFirewallSystem{ + FirewallInfo: &info, + }, + } +} + +func DisableRuleset(info *types.HostFirewallInfo, id string) bool { + for i := range info.Ruleset { + if info.Ruleset[i].Key == id { + info.Ruleset[i].Enabled = false + return true + } + } + + return false +} + +func (s *HostFirewallSystem) DisableRuleset(req *types.DisableRuleset) soap.HasFault { + body := &methods.DisableRulesetBody{} + + if DisableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { + body.Res = new(types.DisableRulesetResponse) + return body + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} + +func EnableRuleset(info *types.HostFirewallInfo, id string) bool { + for i := range info.Ruleset { + if info.Ruleset[i].Key == id { + info.Ruleset[i].Enabled = true + return true + } + } + + return false +} + +func (s *HostFirewallSystem) EnableRuleset(req *types.EnableRuleset) soap.HasFault { + body := &methods.EnableRulesetBody{} + + if EnableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { + body.Res = new(types.EnableRulesetResponse) + return body + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_local_account_manager.go b/vendor/github.com/vmware/govmomi/simulator/host_local_account_manager.go new file mode 100644 index 00000000..993e3fe8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_local_account_manager.go @@ -0,0 +1,72 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +// As of vSphere API 5.1, local groups operations are deprecated, so it's not supported here. + +type HostLocalAccountManager struct { + mo.HostLocalAccountManager +} + +func (h *HostLocalAccountManager) CreateUser(req *types.CreateUser) soap.HasFault { + spec := req.User.GetHostAccountSpec() + userDirectory := Map.UserDirectory() + + found := userDirectory.search(true, false, compareFunc(spec.Id, true)) + if len(found) > 0 { + return &methods.CreateUserBody{ + Fault_: Fault("", &types.AlreadyExists{}), + } + } + + userDirectory.addUser(spec.Id) + + return &methods.CreateUserBody{ + Res: &types.CreateUserResponse{}, + } +} + +func (h *HostLocalAccountManager) RemoveUser(req *types.RemoveUser) soap.HasFault { + userDirectory := Map.UserDirectory() + + found := userDirectory.search(true, false, compareFunc(req.UserName, true)) + + if len(found) == 0 { + return &methods.RemoveUserBody{ + Fault_: Fault("", &types.UserNotFound{}), + } + } + + userDirectory.removeUser(req.UserName) + + return &methods.RemoveUserBody{ + Res: &types.RemoveUserResponse{}, + } +} + +func (h *HostLocalAccountManager) UpdateUser(req *types.UpdateUser) soap.HasFault { + return &methods.CreateUserBody{ + Res: &types.CreateUserResponse{}, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_network_system.go b/vendor/github.com/vmware/govmomi/simulator/host_network_system.go new file mode 100644 index 00000000..017837f6 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_network_system.go @@ -0,0 +1,212 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostNetworkSystem struct { + mo.HostNetworkSystem + + Host *mo.HostSystem +} + +func NewHostNetworkSystem(host *mo.HostSystem) *HostNetworkSystem { + return &HostNetworkSystem{ + Host: host, + HostNetworkSystem: mo.HostNetworkSystem{ + NetworkInfo: &types.HostNetworkInfo{ + Vswitch: []types.HostVirtualSwitch{ + { + Name: "vSwitch0", + Portgroup: []string{"VM Network"}, + }, + }, + Portgroup: host.Config.Network.Portgroup, + }, + }, + } +} + +func (s *HostNetworkSystem) init(r *Registry) { + for _, obj := range r.objects { + if h, ok := obj.(*HostSystem); ok { + if h.ConfigManager.NetworkSystem.Value == s.Self.Value { + s.Host = &h.HostSystem + } + } + } +} + +func (s *HostNetworkSystem) folder() *Folder { + f := Map.getEntityDatacenter(s.Host).NetworkFolder + return Map.Get(f).(*Folder) +} + +func (s *HostNetworkSystem) AddVirtualSwitch(c *types.AddVirtualSwitch) soap.HasFault { + r := &methods.AddVirtualSwitchBody{} + + for _, vswitch := range s.NetworkInfo.Vswitch { + if vswitch.Name == c.VswitchName { + r.Fault_ = Fault("", &types.AlreadyExists{Name: c.VswitchName}) + return r + } + } + + s.NetworkInfo.Vswitch = append(s.NetworkInfo.Vswitch, types.HostVirtualSwitch{ + Name: c.VswitchName, + }) + + r.Res = &types.AddVirtualSwitchResponse{} + + return r +} + +func (s *HostNetworkSystem) RemoveVirtualSwitch(c *types.RemoveVirtualSwitch) soap.HasFault { + r := &methods.RemoveVirtualSwitchBody{} + + vs := s.NetworkInfo.Vswitch + + for i, v := range vs { + if v.Name == c.VswitchName { + s.NetworkInfo.Vswitch = append(vs[:i], vs[i+1:]...) + r.Res = &types.RemoveVirtualSwitchResponse{} + return r + } + } + + r.Fault_ = Fault("", &types.NotFound{}) + + return r +} + +func (s *HostNetworkSystem) AddPortGroup(ctx *Context, c *types.AddPortGroup) soap.HasFault { + var vswitch *types.HostVirtualSwitch + + r := &methods.AddPortGroupBody{} + + if c.Portgrp.Name == "" { + r.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "name"}) + return r + } + + for i := range s.NetworkInfo.Vswitch { + if s.NetworkInfo.Vswitch[i].Name == c.Portgrp.VswitchName { + vswitch = &s.NetworkInfo.Vswitch[i] + break + } + } + + if vswitch == nil { + r.Fault_ = Fault("", &types.NotFound{}) + return r + } + + network := &mo.Network{} + network.Name = c.Portgrp.Name + network.Entity().Name = network.Name + + folder := s.folder() + + if obj := Map.FindByName(c.Portgrp.Name, folder.ChildEntity); obj != nil { + r.Fault_ = Fault("", &types.DuplicateName{ + Name: c.Portgrp.Name, + Object: obj.Reference(), + }) + + return r + } + + folderPutChild(ctx, &folder.Folder, network) + + vswitch.Portgroup = append(vswitch.Portgroup, c.Portgrp.Name) + + s.NetworkInfo.Portgroup = append(s.NetworkInfo.Portgroup, types.HostPortGroup{ + Key: "key-vim.host.PortGroup-" + c.Portgrp.Name, + Port: nil, + Spec: c.Portgrp, + }) + + r.Res = &types.AddPortGroupResponse{} + + return r +} + +func (s *HostNetworkSystem) RemovePortGroup(ctx *Context, c *types.RemovePortGroup) soap.HasFault { + var vswitch *types.HostVirtualSwitch + + r := &methods.RemovePortGroupBody{} + + for i, v := range s.NetworkInfo.Vswitch { + for j, pg := range v.Portgroup { + if pg == c.PgName { + vswitch = &s.NetworkInfo.Vswitch[i] + vswitch.Portgroup = append(vswitch.Portgroup[:j], vswitch.Portgroup[j+1:]...) + } + } + } + + if vswitch == nil { + r.Fault_ = Fault("", &types.NotFound{}) + return r + } + + folder := s.folder() + e := Map.FindByName(c.PgName, folder.ChildEntity) + folderRemoveChild(ctx, &folder.Folder, e.Reference()) + + for i, pg := range s.NetworkInfo.Portgroup { + if pg.Spec.Name == c.PgName { + var portgroup = s.NetworkInfo.Portgroup + s.NetworkInfo.Portgroup = append(portgroup[:i], portgroup[i+1:]...) + } + } + + r.Res = &types.RemovePortGroupResponse{} + + return r +} + +func (s *HostNetworkSystem) UpdateNetworkConfig(req *types.UpdateNetworkConfig) soap.HasFault { + s.NetworkConfig = &req.Config + + return &methods.UpdateNetworkConfigBody{ + Res: &types.UpdateNetworkConfigResponse{ + Returnval: types.HostNetworkConfigResult{}, + }, + } +} + +func (s *HostNetworkSystem) QueryNetworkHint(req *types.QueryNetworkHint) soap.HasFault { + var info []types.PhysicalNicHintInfo + + for _, nic := range s.Host.Config.Network.Pnic { + info = append(info, types.PhysicalNicHintInfo{ + Device: nic.Device, + }) + } + + return &methods.QueryNetworkHintBody{ + Res: &types.QueryNetworkHintResponse{ + Returnval: info, + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_storage_system.go b/vendor/github.com/vmware/govmomi/simulator/host_storage_system.go new file mode 100644 index 00000000..da2fd528 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_storage_system.go @@ -0,0 +1,134 @@ +/* +Copyright (c) 2020 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostStorageSystem struct { + mo.HostStorageSystem + + Host *mo.HostSystem + HBA []types.BaseHostHostBusAdapter +} + +func NewHostStorageSystem(h *mo.HostSystem) *HostStorageSystem { + s := &HostStorageSystem{Host: h} + + s.StorageDeviceInfo = &esx.HostStorageDeviceInfo + + s.HBA = fibreChannelHBA + + return s +} + +// RescanAllHba swaps HostStorageSystem.HBA and StorageDeviceInfo.HostBusAdapter. +// This allows testing HBA with and without Fibre Channel data. +func (s *HostStorageSystem) RescanAllHba(ctx *Context, _ *types.RescanAllHba) soap.HasFault { + hba := s.StorageDeviceInfo.HostBusAdapter + s.StorageDeviceInfo.HostBusAdapter = s.HBA + s.HBA = hba + + ctx.WithLock(s.Host, func() { + s.Host.Config.StorageDevice.HostBusAdapter = s.StorageDeviceInfo.HostBusAdapter + }) + + return &methods.RescanAllHbaBody{ + Res: new(types.RescanAllHbaResponse), + } +} + +func (s *HostStorageSystem) RescanVmfs(*Context, *types.RescanVmfs) soap.HasFault { + return &methods.RescanVmfsBody{Res: new(types.RescanVmfsResponse)} +} + +func (s *HostStorageSystem) RefreshStorageSystem(*Context, *types.RefreshStorageSystem) soap.HasFault { + return &methods.RefreshStorageSystemBody{Res: new(types.RefreshStorageSystemResponse)} +} + +// HBA with FibreChannel data, see RescanAllHba() +var fibreChannelHBA = []types.BaseHostHostBusAdapter{ + &types.HostBlockHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.BlockHba-vmhba0", + Device: "vmhba0", + Bus: 0, + Status: "unknown", + Model: "Lewisburg SATA AHCI Controller", + Driver: "vmw_ahci", + Pci: "0000:00:11.5", + }, + }, + &types.HostBlockHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.BlockHba-vmhba1", + Device: "vmhba1", + Bus: 0, + Status: "unknown", + Model: "Lewisburg SATA AHCI Controller", + Driver: "vmw_ahci", + Pci: "0000:00:17.0", + }, + }, + &types.HostFibreChannelHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.FibreChannelHba-vmhba2", + Device: "vmhba2", + Bus: 59, + Status: "online", + Model: "Emulex LightPulse LPe32000 PCIe Fibre Channel Adapter", + Driver: "lpfc", + Pci: "0000:3b:00.0", + }, + PortWorldWideName: 1152922127287604726, + NodeWorldWideName: 2305843631894451702, + PortType: "unknown", + Speed: 16, + }, + &types.HostFibreChannelHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.FibreChannelHba-vmhba3", + Device: "vmhba3", + Bus: 95, + Status: "online", + Model: "Emulex LightPulse LPe32000 PCIe Fibre Channel Adapter", + Driver: "lpfc", + Pci: "0000:5f:00.0", + }, + PortWorldWideName: 1152922127287604554, + NodeWorldWideName: 2305843631894451530, + PortType: "unknown", + Speed: 16, + }, + &types.HostSerialAttachedHba{ + HostHostBusAdapter: types.HostHostBusAdapter{ + Key: "key-vim.host.SerialAttachedHba-vmhba4", + Device: "vmhba4", + Bus: 24, + Status: "unknown", + Model: "PERC H330 Adapter", + Driver: "lsi_mr3", + Pci: "0000:18:00.0", + }, + NodeWorldWideName: "5d0946606e78ac00", + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/host_system.go b/vendor/github.com/vmware/govmomi/simulator/host_system.go new file mode 100644 index 00000000..28c4b3e6 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/host_system.go @@ -0,0 +1,269 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "net" + "os" + "time" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var ( + hostPortUnique = os.Getenv("VCSIM_HOST_PORT_UNIQUE") == "true" +) + +type HostSystem struct { + mo.HostSystem +} + +func asHostSystemMO(obj mo.Reference) (*mo.HostSystem, bool) { + h, ok := getManagedObject(obj).Addr().Interface().(*mo.HostSystem) + return h, ok +} + +func NewHostSystem(host mo.HostSystem) *HostSystem { + if hostPortUnique { // configure unique port for each host + port := &esx.HostSystem.Summary.Config.Port + *port++ + host.Summary.Config.Port = *port + } + + now := time.Now() + + hs := &HostSystem{ + HostSystem: host, + } + + hs.Name = hs.Summary.Config.Name + hs.Summary.Runtime = &hs.Runtime + hs.Summary.Runtime.BootTime = &now + + hardware := *host.Summary.Hardware + hs.Summary.Hardware = &hardware + + info := *esx.HostHardwareInfo + hs.Hardware = &info + + cfg := new(types.HostConfigInfo) + deepCopy(hs.Config, cfg) + hs.Config = cfg + + config := []struct { + ref **types.ManagedObjectReference + obj mo.Reference + }{ + {&hs.ConfigManager.DatastoreSystem, &HostDatastoreSystem{Host: &hs.HostSystem}}, + {&hs.ConfigManager.NetworkSystem, NewHostNetworkSystem(&hs.HostSystem)}, + {&hs.ConfigManager.AdvancedOption, NewOptionManager(nil, esx.Setting)}, + {&hs.ConfigManager.FirewallSystem, NewHostFirewallSystem(&hs.HostSystem)}, + {&hs.ConfigManager.StorageSystem, NewHostStorageSystem(&hs.HostSystem)}, + } + + for _, c := range config { + ref := Map.Put(c.obj).Reference() + + *c.ref = &ref + } + + return hs +} + +func (h *HostSystem) configure(spec types.HostConnectSpec, connected bool) { + h.Runtime.ConnectionState = types.HostSystemConnectionStateDisconnected + if connected { + h.Runtime.ConnectionState = types.HostSystemConnectionStateConnected + } + if net.ParseIP(spec.HostName) != nil { + h.Config.Network.Vnic[0].Spec.Ip.IpAddress = spec.HostName + } + + h.Summary.Config.Name = spec.HostName + h.Name = h.Summary.Config.Name + id := newUUID(h.Name) + h.Summary.Hardware.Uuid = id + h.Hardware.SystemInfo.Uuid = id +} + +func (h *HostSystem) event() types.HostEvent { + return types.HostEvent{ + Event: types.Event{ + Datacenter: datacenterEventArgument(h), + ComputeResource: h.eventArgumentParent(), + Host: h.eventArgument(), + }, + } +} + +func (h *HostSystem) eventArgument() *types.HostEventArgument { + return &types.HostEventArgument{ + Host: h.Self, + EntityEventArgument: types.EntityEventArgument{Name: h.Name}, + } +} + +func (h *HostSystem) eventArgumentParent() *types.ComputeResourceEventArgument { + parent := hostParent(&h.HostSystem) + + return &types.ComputeResourceEventArgument{ + ComputeResource: parent.Self, + EntityEventArgument: types.EntityEventArgument{Name: parent.Name}, + } +} + +func hostParent(host *mo.HostSystem) *mo.ComputeResource { + switch parent := Map.Get(*host.Parent).(type) { + case *mo.ComputeResource: + return parent + case *ClusterComputeResource: + return &parent.ComputeResource + default: + return nil + } +} + +func addComputeResource(s *types.ComputeResourceSummary, h *HostSystem) { + s.TotalCpu += h.Summary.Hardware.CpuMhz + s.TotalMemory += h.Summary.Hardware.MemorySize + s.NumCpuCores += h.Summary.Hardware.NumCpuCores + s.NumCpuThreads += h.Summary.Hardware.NumCpuThreads + s.EffectiveCpu += h.Summary.Hardware.CpuMhz + s.EffectiveMemory += h.Summary.Hardware.MemorySize + s.NumHosts++ + s.NumEffectiveHosts++ + s.OverallStatus = types.ManagedEntityStatusGreen +} + +// CreateDefaultESX creates a standalone ESX +// Adds objects of type: Datacenter, Network, ComputeResource, ResourcePool and HostSystem +func CreateDefaultESX(ctx *Context, f *Folder) { + dc := NewDatacenter(ctx, &f.Folder) + + host := NewHostSystem(esx.HostSystem) + + summary := new(types.ComputeResourceSummary) + addComputeResource(summary, host) + + cr := &mo.ComputeResource{ + Summary: summary, + Network: esx.Datacenter.Network, + } + cr.EnvironmentBrowser = newEnvironmentBrowser() + cr.Self = *host.Parent + cr.Name = host.Name + cr.Host = append(cr.Host, host.Reference()) + host.Network = cr.Network + Map.PutEntity(cr, host) + + pool := NewResourcePool() + cr.ResourcePool = &pool.Self + Map.PutEntity(cr, pool) + pool.Owner = cr.Self + + folderPutChild(ctx, &Map.Get(dc.HostFolder).(*Folder).Folder, cr) +} + +// CreateStandaloneHost uses esx.HostSystem as a template, applying the given spec +// and creating the ComputeResource parent and ResourcePool sibling. +func CreateStandaloneHost(ctx *Context, f *Folder, spec types.HostConnectSpec) (*HostSystem, types.BaseMethodFault) { + if spec.HostName == "" { + return nil, &types.NoHost{} + } + + pool := NewResourcePool() + host := NewHostSystem(esx.HostSystem) + host.configure(spec, false) + + summary := new(types.ComputeResourceSummary) + addComputeResource(summary, host) + + cr := &mo.ComputeResource{ + ConfigurationEx: &types.ComputeResourceConfigInfo{ + VmSwapPlacement: string(types.VirtualMachineConfigInfoSwapPlacementTypeVmDirectory), + }, + Summary: summary, + EnvironmentBrowser: newEnvironmentBrowser(), + } + + Map.PutEntity(cr, Map.NewEntity(host)) + host.Summary.Host = &host.Self + + Map.PutEntity(cr, Map.NewEntity(pool)) + + cr.Name = host.Name + cr.Network = Map.getEntityDatacenter(f).defaultNetwork() + cr.Host = append(cr.Host, host.Reference()) + cr.ResourcePool = &pool.Self + + folderPutChild(ctx, &f.Folder, cr) + pool.Owner = cr.Self + host.Network = cr.Network + + return host, nil +} + +func (h *HostSystem) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + task := CreateTask(h, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if len(h.Vm) > 0 { + return nil, &types.ResourceInUse{} + } + + ctx.postEvent(&types.HostRemovedEvent{HostEvent: h.event()}) + + f := Map.getEntityParent(h, "Folder").(*Folder) + folderRemoveChild(ctx, &f.Folder, h.Reference()) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (h *HostSystem) EnterMaintenanceModeTask(spec *types.EnterMaintenanceMode_Task) soap.HasFault { + task := CreateTask(h, "enterMaintenanceMode", func(t *Task) (types.AnyType, types.BaseMethodFault) { + h.Runtime.InMaintenanceMode = true + return nil, nil + }) + + return &methods.EnterMaintenanceMode_TaskBody{ + Res: &types.EnterMaintenanceMode_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (h *HostSystem) ExitMaintenanceModeTask(spec *types.ExitMaintenanceMode_Task) soap.HasFault { + task := CreateTask(h, "exitMaintenanceMode", func(t *Task) (types.AnyType, types.BaseMethodFault) { + h.Runtime.InMaintenanceMode = false + return nil, nil + }) + + return &methods.ExitMaintenanceMode_TaskBody{ + Res: &types.ExitMaintenanceMode_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/http_nfc_lease.go b/vendor/github.com/vmware/govmomi/simulator/http_nfc_lease.go new file mode 100644 index 00000000..886be5e8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/http_nfc_lease.go @@ -0,0 +1,137 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "io" + "io/ioutil" + "log" + "net/http" + "os" + "strings" + "sync" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HttpNfcLease struct { + mo.HttpNfcLease + files map[string]string +} + +var ( + nfcLease sync.Map // HTTP access to NFC leases are token based and do not require Session auth + nfcPrefix = "/nfc/" +) + +// ServeNFC handles NFC file upload/download +func ServeNFC(w http.ResponseWriter, r *http.Request) { + p := strings.Split(r.URL.Path, "/") + id, name := p[len(p)-2], p[len(p)-1] + ref := types.ManagedObjectReference{Type: "HttpNfcLease", Value: id} + l, ok := nfcLease.Load(ref) + if !ok { + log.Printf("invalid NFC lease: %s", id) + http.NotFound(w, r) + return + } + lease := l.(*HttpNfcLease) + file, ok := lease.files[name] + if !ok { + log.Printf("invalid NFC device id: %s", name) + http.NotFound(w, r) + return + } + + status := http.StatusOK + var dst io.Writer + var src io.ReadCloser + + switch r.Method { + case http.MethodPut, http.MethodPost: + dst = ioutil.Discard + src = r.Body + case http.MethodGet: + f, err := os.Open(file) + if err != nil { + http.NotFound(w, r) + return + } + src = f + default: + status = http.StatusMethodNotAllowed + } + + n, err := io.Copy(dst, src) + _ = src.Close() + + msg := fmt.Sprintf("transferred %d bytes", n) + if err != nil { + status = http.StatusInternalServerError + msg = err.Error() + } + log.Printf("nfc %s %s: %s", r.Method, file, msg) + w.WriteHeader(status) +} + +func NewHttpNfcLease(ctx *Context, entity types.ManagedObjectReference) *HttpNfcLease { + lease := &HttpNfcLease{ + HttpNfcLease: mo.HttpNfcLease{ + Info: &types.HttpNfcLeaseInfo{ + Entity: entity, + LeaseTimeout: 30000, + }, + State: types.HttpNfcLeaseStateReady, + }, + files: make(map[string]string), + } + + ctx.Session.Put(lease) + nfcLease.Store(lease.Reference(), lease) + + return lease +} + +func (l *HttpNfcLease) HttpNfcLeaseComplete(ctx *Context, req *types.HttpNfcLeaseComplete) soap.HasFault { + ctx.Session.Remove(req.This) + nfcLease.Delete(req.This) + + return &methods.HttpNfcLeaseCompleteBody{ + Res: new(types.HttpNfcLeaseCompleteResponse), + } +} + +func (l *HttpNfcLease) HttpNfcLeaseAbort(ctx *Context, req *types.HttpNfcLeaseAbort) soap.HasFault { + ctx.Session.Remove(req.This) + nfcLease.Delete(req.This) + + return &methods.HttpNfcLeaseAbortBody{ + Res: new(types.HttpNfcLeaseAbortResponse), + } +} + +func (l *HttpNfcLease) HttpNfcLeaseProgress(ctx *Context, req *types.HttpNfcLeaseProgress) soap.HasFault { + l.TransferProgress = req.Percent + + return &methods.HttpNfcLeaseProgressBody{ + Res: new(types.HttpNfcLeaseProgressResponse), + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/internal/server.go b/vendor/github.com/vmware/govmomi/simulator/internal/server.go new file mode 100644 index 00000000..f2a394b9 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/internal/server.go @@ -0,0 +1,343 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Implementation of Server + +package internal + +import ( + "crypto/tls" + "crypto/x509" + "fmt" + "log" + "net" + "net/http" + "strings" + "sync" + "time" +) + +// A Server is an HTTP server listening on a system-chosen port on the +// local loopback interface, for use in end-to-end HTTP tests. +type Server struct { + URL string // base URL of form http://ipaddr:port with no trailing slash + Listener net.Listener + + // TLS is the optional TLS configuration, populated with a new config + // after TLS is started. If set on an unstarted server before StartTLS + // is called, existing fields are copied into the new config. + TLS *tls.Config + + // Config may be changed after calling NewUnstartedServer and + // before Start or StartTLS. + Config *http.Server + + // certificate is a parsed version of the TLS config certificate, if present. + certificate *x509.Certificate + + // wg counts the number of outstanding HTTP requests on this server. + // Close blocks until all requests are finished. + wg sync.WaitGroup + + mu sync.Mutex // guards closed and conns + closed bool + conns map[net.Conn]http.ConnState // except terminal states + + // client is configured for use with the server. + // Its transport is automatically closed when Close is called. + client *http.Client +} + +func newLocalListener(serve string) net.Listener { + if serve != "" { + l, err := net.Listen("tcp", serve) + if err != nil { + panic(fmt.Sprintf("httptest: failed to listen on %v: %v", serve, err)) + } + return l + } + l, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + if l, err = net.Listen("tcp6", "[::1]:0"); err != nil { + panic(fmt.Sprintf("httptest: failed to listen on a port: %v", err)) + } + } + return l +} + +// NewServer starts and returns a new Server. +// The caller should call Close when finished, to shut it down. +func NewServer(handler http.Handler) *Server { + ts := NewUnstartedServer(handler, "") + ts.Start() + return ts +} + +// NewUnstartedServer returns a new Server but doesn't start it. +// +// After changing its configuration, the caller should call Start or +// StartTLS. +// +// The caller should call Close when finished, to shut it down. +// serve allows the server's listen address to be specified. +func NewUnstartedServer(handler http.Handler, serve string) *Server { + return &Server{ + Listener: newLocalListener(serve), + Config: &http.Server{Handler: handler}, + } +} + +// Start starts a server from NewUnstartedServer. +func (s *Server) Start() { + if s.URL != "" { + panic("Server already started") + } + if s.client == nil { + s.client = &http.Client{Transport: &http.Transport{}} + } + s.URL = "http://" + s.Listener.Addr().String() + s.wrap() + s.goServe() +} + +// StartTLS starts TLS on a server from NewUnstartedServer. +func (s *Server) StartTLS() { + if s.URL != "" { + panic("Server already started") + } + if s.client == nil { + s.client = &http.Client{Transport: &http.Transport{}} + } + cert, err := tls.X509KeyPair(LocalhostCert, LocalhostKey) + if err != nil { + panic(fmt.Sprintf("httptest: NewTLSServer: %v", err)) + } + + existingConfig := s.TLS + if existingConfig != nil { + s.TLS = existingConfig.Clone() + } else { + s.TLS = new(tls.Config) + } + if s.TLS.NextProtos == nil { + s.TLS.NextProtos = []string{"http/1.1"} + } + if len(s.TLS.Certificates) == 0 { + s.TLS.Certificates = []tls.Certificate{cert} + } + s.certificate, err = x509.ParseCertificate(s.TLS.Certificates[0].Certificate[0]) + if err != nil { + panic(fmt.Sprintf("httptest: NewTLSServer: %v", err)) + } + certpool := x509.NewCertPool() + certpool.AddCert(s.certificate) + s.client.Transport = &http.Transport{ + TLSClientConfig: &tls.Config{ + RootCAs: certpool, + }, + } + s.Listener = tls.NewListener(s.Listener, s.TLS) + s.URL = "https://" + s.Listener.Addr().String() + s.wrap() + s.goServe() +} + +// NewTLSServer starts and returns a new Server using TLS. +// The caller should call Close when finished, to shut it down. +func NewTLSServer(handler http.Handler) *Server { + ts := NewUnstartedServer(handler, "") + ts.StartTLS() + return ts +} + +type closeIdleTransport interface { + CloseIdleConnections() +} + +// Close shuts down the server and blocks until all outstanding +// requests on this server have completed. +func (s *Server) Close() { + s.mu.Lock() + if !s.closed { + s.closed = true + s.Listener.Close() + s.Config.SetKeepAlivesEnabled(false) + for c, st := range s.conns { + // Force-close any idle connections (those between + // requests) and new connections (those which connected + // but never sent a request). StateNew connections are + // super rare and have only been seen (in + // previously-flaky tests) in the case of + // socket-late-binding races from the http Client + // dialing this server and then getting an idle + // connection before the dial completed. There is thus + // a connected connection in StateNew with no + // associated Request. We only close StateIdle and + // StateNew because they're not doing anything. It's + // possible StateNew is about to do something in a few + // milliseconds, but a previous CL to check again in a + // few milliseconds wasn't liked (early versions of + // https://golang.org/cl/15151) so now we just + // forcefully close StateNew. The docs for Server.Close say + // we wait for "outstanding requests", so we don't close things + // in StateActive. + if st == http.StateIdle || st == http.StateNew { + s.closeConn(c) + } + } + // If this server doesn't shut down in 5 seconds, tell the user why. + t := time.AfterFunc(5*time.Second, s.logCloseHangDebugInfo) + defer t.Stop() + } + s.mu.Unlock() + + // Not part of httptest.Server's correctness, but assume most + // users of httptest.Server will be using the standard + // transport, so help them out and close any idle connections for them. + if t, ok := http.DefaultTransport.(closeIdleTransport); ok { + t.CloseIdleConnections() + } + + // Also close the client idle connections. + if s.client != nil { + if t, ok := s.client.Transport.(closeIdleTransport); ok { + t.CloseIdleConnections() + } + } + + s.wg.Wait() +} + +func (s *Server) logCloseHangDebugInfo() { + s.mu.Lock() + defer s.mu.Unlock() + var buf strings.Builder + buf.WriteString("httptest.Server blocked in Close after 5 seconds, waiting for connections:\n") + for c, st := range s.conns { + fmt.Fprintf(&buf, " %T %p %v in state %v\n", c, c, c.RemoteAddr(), st) + } + log.Print(buf.String()) +} + +// CloseClientConnections closes any open HTTP connections to the test Server. +func (s *Server) CloseClientConnections() { + s.mu.Lock() + nconn := len(s.conns) + ch := make(chan struct{}, nconn) + for c := range s.conns { + go s.closeConnChan(c, ch) + } + s.mu.Unlock() + + // Wait for outstanding closes to finish. + // + // Out of paranoia for making a late change in Go 1.6, we + // bound how long this can wait, since golang.org/issue/14291 + // isn't fully understood yet. At least this should only be used + // in tests. + timer := time.NewTimer(5 * time.Second) + defer timer.Stop() + for i := 0; i < nconn; i++ { + select { + case <-ch: + case <-timer.C: + // Too slow. Give up. + return + } + } +} + +// Certificate returns the certificate used by the server, or nil if +// the server doesn't use TLS. +func (s *Server) Certificate() *x509.Certificate { + return s.certificate +} + +// Client returns an HTTP client configured for making requests to the server. +// It is configured to trust the server's TLS test certificate and will +// close its idle connections on Server.Close. +func (s *Server) Client() *http.Client { + return s.client +} + +func (s *Server) goServe() { + s.wg.Add(1) + go func() { + defer s.wg.Done() + s.Config.Serve(s.Listener) + }() +} + +// wrap installs the connection state-tracking hook to know which +// connections are idle. +func (s *Server) wrap() { + oldHook := s.Config.ConnState + s.Config.ConnState = func(c net.Conn, cs http.ConnState) { + s.mu.Lock() + defer s.mu.Unlock() + switch cs { + case http.StateNew: + s.wg.Add(1) + if _, exists := s.conns[c]; exists { + panic("invalid state transition") + } + if s.conns == nil { + s.conns = make(map[net.Conn]http.ConnState) + } + s.conns[c] = cs + if s.closed { + // Probably just a socket-late-binding dial from + // the default transport that lost the race (and + // thus this connection is now idle and will + // never be used). + s.closeConn(c) + } + case http.StateActive: + if oldState, ok := s.conns[c]; ok { + if oldState != http.StateNew && oldState != http.StateIdle { + panic("invalid state transition") + } + s.conns[c] = cs + } + case http.StateIdle: + if oldState, ok := s.conns[c]; ok { + if oldState != http.StateActive { + panic("invalid state transition") + } + s.conns[c] = cs + } + if s.closed { + s.closeConn(c) + } + case http.StateHijacked, http.StateClosed: + s.forgetConn(c) + } + if oldHook != nil { + oldHook(c, cs) + } + } +} + +// closeConn closes c. +// s.mu must be held. +func (s *Server) closeConn(c net.Conn) { s.closeConnChan(c, nil) } + +// closeConnChan is like closeConn, but takes an optional channel to receive a value +// when the goroutine closing c is done. +func (s *Server) closeConnChan(c net.Conn, done chan<- struct{}) { + c.Close() + if done != nil { + done <- struct{}{} + } +} + +// forgetConn removes c from the set of tracked conns and decrements it from the +// waitgroup, unless it was previously removed. +// s.mu must be held. +func (s *Server) forgetConn(c net.Conn) { + if _, ok := s.conns[c]; ok { + delete(s.conns, c) + s.wg.Done() + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/internal/testcert.go b/vendor/github.com/vmware/govmomi/simulator/internal/testcert.go new file mode 100644 index 00000000..40789092 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/internal/testcert.go @@ -0,0 +1,41 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +// LocalhostCert is a PEM-encoded TLS cert with SAN IPs +// "127.0.0.1" and "[::1]", expiring at Jan 29 16:00:00 2084 GMT. +// generated from src/crypto/tls: +// go run generate_cert.go --rsa-bits 1024 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h +var LocalhostCert = []byte(`-----BEGIN CERTIFICATE----- +MIICEzCCAXygAwIBAgIQMIMChMLGrR+QvmQvpwAU6zANBgkqhkiG9w0BAQsFADAS +MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw +MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQDuLnQAI3mDgey3VBzWnB2L39JUU4txjeVE6myuDqkM/uGlfjb9SjY1bIw4 +iA5sBBZzHi3z0h1YV8QPuxEbi4nW91IJm2gsvvZhIrCHS3l6afab4pZBl2+XsDul +rKBxKKtD1rGxlG4LjncdabFn9gvLZad2bSysqz/qTAUStTvqJQIDAQABo2gwZjAO +BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw +AwEB/zAuBgNVHREEJzAlggtleGFtcGxlLmNvbYcEfwAAAYcQAAAAAAAAAAAAAAAA +AAAAATANBgkqhkiG9w0BAQsFAAOBgQCEcetwO59EWk7WiJsG4x8SY+UIAA+flUI9 +tyC4lNhbcF2Idq9greZwbYCqTTTr2XiRNSMLCOjKyI7ukPoPjo16ocHj+P3vZGfs +h1fIw3cSS2OolhloGw/XM6RWPWtPAlGykKLciQrBru5NAPvCMsb/I1DAceTiotQM +fblo6RBxUQ== +-----END CERTIFICATE-----`) + +// LocalhostKey is the private key for localhostCert. +var LocalhostKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDuLnQAI3mDgey3VBzWnB2L39JUU4txjeVE6myuDqkM/uGlfjb9 +SjY1bIw4iA5sBBZzHi3z0h1YV8QPuxEbi4nW91IJm2gsvvZhIrCHS3l6afab4pZB +l2+XsDulrKBxKKtD1rGxlG4LjncdabFn9gvLZad2bSysqz/qTAUStTvqJQIDAQAB +AoGAGRzwwir7XvBOAy5tM/uV6e+Zf6anZzus1s1Y1ClbjbE6HXbnWWF/wbZGOpet +3Zm4vD6MXc7jpTLryzTQIvVdfQbRc6+MUVeLKwZatTXtdZrhu+Jk7hx0nTPy8Jcb +uJqFk541aEw+mMogY/xEcfbWd6IOkp+4xqjlFLBEDytgbIECQQDvH/E6nk+hgN4H +qzzVtxxr397vWrjrIgPbJpQvBsafG7b0dA4AFjwVbFLmQcj2PprIMmPcQrooz8vp +jy4SHEg1AkEA/v13/5M47K9vCxmb8QeD/asydfsgS5TeuNi8DoUBEmiSJwma7FXY +fFUtxuvL7XvjwjN5B30pNEbc6Iuyt7y4MQJBAIt21su4b3sjXNueLKH85Q+phy2U +fQtuUE9txblTu14q3N7gHRZB4ZMhFYyDy8CKrN2cPg/Fvyt0Xlp/DoCzjA0CQQDU +y2ptGsuSmgUtWj3NM9xuwYPm+Z/F84K6+ARYiZ6PYj013sovGKUFfYAqVXVlxtIX +qyUBnu3X9ps8ZfjLZO7BAkEAlT4R5Yl6cGhaJQYZHOde3JEMhNRcVFMO8dJDaFeo +f9Oeos0UUothgiDktdQHxdNEwLjQf7lJJBzV+5OtwswCWA== +-----END RSA PRIVATE KEY-----`) diff --git a/vendor/github.com/vmware/govmomi/simulator/internal/types.go b/vendor/github.com/vmware/govmomi/simulator/internal/types.go new file mode 100644 index 00000000..fa09b31d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/internal/types.go @@ -0,0 +1,73 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package internal + +import ( + "reflect" + + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +// Minimal set of internal types and methods: +// - Fetch() - used by ovftool to collect various managed object properties +// - RetrieveInternalContent() - used by ovftool to obtain a reference to NfcService (which it does not use by default) + +func init() { + types.Add("Fetch", reflect.TypeOf((*Fetch)(nil)).Elem()) +} + +type Fetch struct { + This types.ManagedObjectReference `xml:"_this"` + Prop string `xml:"prop"` +} + +type FetchResponse struct { + Returnval types.AnyType `xml:"returnval,omitempty,typeattr"` +} + +type FetchBody struct { + Res *FetchResponse `xml:"FetchResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *FetchBody) Fault() *soap.Fault { return b.Fault_ } + +func init() { + types.Add("RetrieveInternalContent", reflect.TypeOf((*RetrieveInternalContent)(nil)).Elem()) +} + +type RetrieveInternalContent struct { + This types.ManagedObjectReference `xml:"_this"` +} + +type RetrieveInternalContentResponse struct { + Returnval InternalServiceInstanceContent `xml:"returnval"` +} + +type RetrieveInternalContentBody struct { + Res *RetrieveInternalContentResponse `xml:"RetrieveInternalContentResponse,omitempty"` + Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *RetrieveInternalContentBody) Fault() *soap.Fault { return b.Fault_ } + +type InternalServiceInstanceContent struct { + types.DynamicData + + NfcService types.ManagedObjectReference `xml:"nfcService"` +} diff --git a/vendor/github.com/vmware/govmomi/simulator/ip_pool_manager.go b/vendor/github.com/vmware/govmomi/simulator/ip_pool_manager.go new file mode 100644 index 00000000..d8ef992a --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/ip_pool_manager.go @@ -0,0 +1,387 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "errors" + "fmt" + "net" + "strconv" + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var ipPool = MustNewIpPool(&types.IpPool{ + Id: 1, + Name: "ip-pool", + AvailableIpv4Addresses: 250, + AvailableIpv6Addresses: 250, + AllocatedIpv6Addresses: 0, + AllocatedIpv4Addresses: 0, + Ipv4Config: &types.IpPoolIpPoolConfigInfo{ + Netmask: "10.10.10.255", + Gateway: "10.10.10.1", + SubnetAddress: "10.10.10.0", + Range: "10.10.10.2#250", + }, + Ipv6Config: &types.IpPoolIpPoolConfigInfo{ + Netmask: "2001:4860:0:2001::ff", + Gateway: "2001:4860:0:2001::1", + SubnetAddress: "2001:4860:0:2001::0", + Range: "2001:4860:0:2001::2#250", + }, +}) + +// IpPoolManager implements a simple IP Pool manager in which all pools are shared +// across different datacenters. +type IpPoolManager struct { + mo.IpPoolManager + + pools map[int32]*IpPool + nextPoolId int32 +} + +func (m *IpPoolManager) init(*Registry) { + m.pools = map[int32]*IpPool{ + 1: ipPool, + } + m.nextPoolId = 2 +} + +func (m *IpPoolManager) CreateIpPool(req *types.CreateIpPool) soap.HasFault { + body := &methods.CreateIpPoolBody{} + id := m.nextPoolId + + var err error + m.pools[id], err = NewIpPool(&req.Pool) + if err != nil { + body.Fault_ = Fault("", &types.RuntimeFault{}) + return body + } + + m.nextPoolId++ + + body.Res = &types.CreateIpPoolResponse{ + Returnval: id, + } + + return body +} + +func (m *IpPoolManager) DestroyIpPool(req *types.DestroyIpPool) soap.HasFault { + delete(m.pools, req.Id) + + return &methods.DestroyIpPoolBody{ + Res: &types.DestroyIpPoolResponse{}, + } +} + +func (m *IpPoolManager) QueryIpPools(req *types.QueryIpPools) soap.HasFault { + pools := []types.IpPool{} + + for i := int32(1); i < m.nextPoolId; i++ { + if p, ok := m.pools[i]; ok { + pools = append(pools, *p.config) + } + } + + return &methods.QueryIpPoolsBody{ + Res: &types.QueryIpPoolsResponse{ + Returnval: pools, + }, + } +} + +func (m *IpPoolManager) UpdateIpPool(req *types.UpdateIpPool) soap.HasFault { + body := &methods.UpdateIpPoolBody{} + + var pool *IpPool + var err error + var ok bool + + if pool, ok = m.pools[req.Pool.Id]; !ok { + body.Fault_ = Fault("", &types.NotFoundFault{}) + return body + } + + if pool.config.AllocatedIpv4Addresses+pool.config.AllocatedIpv6Addresses != 0 { + body.Fault_ = Fault("update a pool has been used is not supported", &types.RuntimeFault{}) + return body + } + + m.pools[req.Pool.Id], err = NewIpPool(&req.Pool) + if err != nil { + body.Fault_ = Fault(err.Error(), &types.RuntimeFault{}) + return body + } + + body.Res = &types.UpdateIpPoolResponse{} + + return body +} + +func (m *IpPoolManager) AllocateIpv4Address(req *types.AllocateIpv4Address) soap.HasFault { + body := &methods.AllocateIpv4AddressBody{} + + pool, ok := m.pools[req.PoolId] + if !ok { + body.Fault_ = Fault("", &types.InvalidArgument{}) + return body + } + + ip, err := pool.AllocateIPv4(req.AllocationId) + if err != nil { + body.Fault_ = Fault(err.Error(), &types.RuntimeFault{}) + return body + } + + body.Res = &types.AllocateIpv4AddressResponse{ + Returnval: ip, + } + + return body +} + +func (m *IpPoolManager) AllocateIpv6Address(req *types.AllocateIpv6Address) soap.HasFault { + body := &methods.AllocateIpv6AddressBody{} + + pool, ok := m.pools[req.PoolId] + if !ok { + body.Fault_ = Fault("", &types.InvalidArgument{}) + return body + } + + ip, err := pool.AllocateIpv6(req.AllocationId) + if err != nil { + body.Fault_ = Fault(err.Error(), &types.RuntimeFault{}) + return body + } + + body.Res = &types.AllocateIpv6AddressResponse{ + Returnval: ip, + } + + return body +} + +func (m *IpPoolManager) ReleaseIpAllocation(req *types.ReleaseIpAllocation) soap.HasFault { + body := &methods.ReleaseIpAllocationBody{} + + pool, ok := m.pools[req.PoolId] + if !ok { + body.Fault_ = Fault("", &types.InvalidArgument{}) + return body + } + + pool.ReleaseIpv4(req.AllocationId) + pool.ReleaseIpv6(req.AllocationId) + + body.Res = &types.ReleaseIpAllocationResponse{} + + return body +} + +func (m *IpPoolManager) QueryIPAllocations(req *types.QueryIPAllocations) soap.HasFault { + body := &methods.QueryIPAllocationsBody{} + + pool, ok := m.pools[req.PoolId] + if !ok { + body.Fault_ = Fault("", &types.InvalidArgument{}) + return body + } + + body.Res = &types.QueryIPAllocationsResponse{} + + ipv4, ok := pool.ipv4Allocation[req.ExtensionKey] + if ok { + body.Res.Returnval = append(body.Res.Returnval, types.IpPoolManagerIpAllocation{ + IpAddress: ipv4, + AllocationId: req.ExtensionKey, + }) + } + + ipv6, ok := pool.ipv6Allocation[req.ExtensionKey] + if ok { + body.Res.Returnval = append(body.Res.Returnval, types.IpPoolManagerIpAllocation{ + IpAddress: ipv6, + AllocationId: req.ExtensionKey, + }) + } + + return body +} + +var ( + errNoIpAvailable = errors.New("no ip address available") + errInvalidAllocation = errors.New("allocation id not recognized") +) + +type IpPool struct { + config *types.IpPool + ipv4Allocation map[string]string + ipv6Allocation map[string]string + ipv4Pool []string + ipv6Pool []string +} + +func MustNewIpPool(config *types.IpPool) *IpPool { + pool, err := NewIpPool(config) + if err != nil { + panic(err) + } + + return pool +} + +func NewIpPool(config *types.IpPool) (*IpPool, error) { + pool := &IpPool{ + config: config, + ipv4Allocation: make(map[string]string), + ipv6Allocation: make(map[string]string), + } + + return pool, pool.init() +} + +func (p *IpPool) init() error { + // IPv4 range + if p.config.Ipv4Config != nil { + ranges := strings.Split(p.config.Ipv4Config.Range, ",") + for _, r := range ranges { + sp := strings.Split(r, "#") + if len(sp) != 2 { + return fmt.Errorf("format of range should be ip#number; got %q", r) + } + + ip := net.ParseIP(strings.TrimSpace(sp[0])).To4() + if ip == nil { + return fmt.Errorf("bad ip format: %q", sp[0]) + } + + length, err := strconv.Atoi(sp[1]) + if err != nil { + return err + } + + for i := 0; i < length; i++ { + p.ipv4Pool = append(p.ipv4Pool, net.IPv4(ip[0], ip[1], ip[2], ip[3]+byte(i)).String()) + } + } + } + + // IPv6 range + if p.config.Ipv6Config != nil { + ranges := strings.Split(p.config.Ipv6Config.Range, ",") + for _, r := range ranges { + sp := strings.Split(r, "#") + if len(sp) != 2 { + return fmt.Errorf("format of range should be ip#number; got %q", r) + } + + ip := net.ParseIP(strings.TrimSpace(sp[0])).To16() + if ip == nil { + return fmt.Errorf("bad ip format: %q", sp[0]) + } + + length, err := strconv.Atoi(sp[1]) + if err != nil { + return err + } + + for i := 0; i < length; i++ { + var ipv6 [16]byte + copy(ipv6[:], ip) + ipv6[15] += byte(i) + p.ipv6Pool = append(p.ipv6Pool, net.IP(ipv6[:]).String()) + } + } + } + + return nil +} + +func (p *IpPool) AllocateIPv4(allocation string) (string, error) { + if ip, ok := p.ipv4Allocation[allocation]; ok { + return ip, nil + } + + l := len(p.ipv4Pool) + if l == 0 { + return "", errNoIpAvailable + } + + ip := p.ipv4Pool[l-1] + + p.config.AvailableIpv4Addresses-- + p.config.AllocatedIpv4Addresses++ + p.ipv4Pool = p.ipv4Pool[:l-1] + p.ipv4Allocation[allocation] = ip + + return ip, nil +} + +func (p *IpPool) ReleaseIpv4(allocation string) error { + ip, ok := p.ipv4Allocation[allocation] + if !ok { + return errInvalidAllocation + } + + delete(p.ipv4Allocation, allocation) + p.config.AvailableIpv4Addresses++ + p.config.AllocatedIpv4Addresses-- + p.ipv4Pool = append(p.ipv4Pool, ip) + + return nil +} + +func (p *IpPool) AllocateIpv6(allocation string) (string, error) { + if ip, ok := p.ipv6Allocation[allocation]; ok { + return ip, nil + } + + l := len(p.ipv6Pool) + if l == 0 { + return "", errNoIpAvailable + } + + ip := p.ipv6Pool[l-1] + + p.config.AvailableIpv6Addresses-- + p.config.AllocatedIpv6Addresses++ + p.ipv6Pool = p.ipv6Pool[:l-1] + p.ipv6Allocation[allocation] = ip + + return ip, nil +} + +func (p *IpPool) ReleaseIpv6(allocation string) error { + ip, ok := p.ipv6Allocation[allocation] + if !ok { + return errInvalidAllocation + } + + delete(p.ipv6Allocation, allocation) + p.config.AvailableIpv6Addresses++ + p.config.AllocatedIpv6Addresses-- + p.ipv6Pool = append(p.ipv6Pool, ip) + + return nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/license_manager.go b/vendor/github.com/vmware/govmomi/simulator/license_manager.go new file mode 100644 index 00000000..60973596 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/license_manager.go @@ -0,0 +1,188 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +// Copyright 2017 VMware, Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +// EvalLicense is the default license +var EvalLicense = types.LicenseManagerLicenseInfo{ + LicenseKey: "00000-00000-00000-00000-00000", + EditionKey: "eval", + Name: "Evaluation Mode", + Properties: []types.KeyAnyValue{ + { + Key: "feature", + Value: types.KeyValue{ + Key: "serialuri:2", + Value: "Remote virtual Serial Port Concentrator", + }, + }, + { + Key: "feature", + Value: types.KeyValue{ + Key: "dvs", + Value: "vSphere Distributed Switch", + }, + }, + }, +} + +type LicenseManager struct { + mo.LicenseManager +} + +func (m *LicenseManager) init(r *Registry) { + m.Licenses = []types.LicenseManagerLicenseInfo{EvalLicense} + + if r.IsVPX() { + am := Map.Put(&LicenseAssignmentManager{}).Reference() + m.LicenseAssignmentManager = &am + } +} + +func (m *LicenseManager) AddLicense(req *types.AddLicense) soap.HasFault { + body := &methods.AddLicenseBody{ + Res: &types.AddLicenseResponse{}, + } + + for _, license := range m.Licenses { + if license.LicenseKey == req.LicenseKey { + body.Res.Returnval = licenseInfo(license.LicenseKey, license.Labels) + return body + } + } + + m.Licenses = append(m.Licenses, types.LicenseManagerLicenseInfo{ + LicenseKey: req.LicenseKey, + Labels: req.Labels, + }) + + body.Res.Returnval = licenseInfo(req.LicenseKey, req.Labels) + + return body +} + +func (m *LicenseManager) RemoveLicense(req *types.RemoveLicense) soap.HasFault { + body := &methods.RemoveLicenseBody{ + Res: &types.RemoveLicenseResponse{}, + } + + for i, license := range m.Licenses { + if req.LicenseKey == license.LicenseKey { + m.Licenses = append(m.Licenses[:i], m.Licenses[i+1:]...) + return body + } + } + return body +} + +func (m *LicenseManager) UpdateLicenseLabel(req *types.UpdateLicenseLabel) soap.HasFault { + body := &methods.UpdateLicenseLabelBody{} + + for i := range m.Licenses { + license := &m.Licenses[i] + + if req.LicenseKey != license.LicenseKey { + continue + } + + body.Res = new(types.UpdateLicenseLabelResponse) + + for j := range license.Labels { + label := &license.Labels[j] + + if label.Key == req.LabelKey { + if req.LabelValue == "" { + license.Labels = append(license.Labels[:i], license.Labels[i+1:]...) + } else { + label.Value = req.LabelValue + } + return body + } + } + + license.Labels = append(license.Labels, types.KeyValue{ + Key: req.LabelKey, + Value: req.LabelValue, + }) + + return body + } + + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "licenseKey"}) + return body +} + +type LicenseAssignmentManager struct { + mo.LicenseAssignmentManager +} + +func (m *LicenseAssignmentManager) QueryAssignedLicenses(req *types.QueryAssignedLicenses) soap.HasFault { + body := &methods.QueryAssignedLicensesBody{ + Res: &types.QueryAssignedLicensesResponse{}, + } + + // EntityId can be a HostSystem or the vCenter InstanceUuid + if req.EntityId != "" { + if req.EntityId != Map.content().About.InstanceUuid { + id := types.ManagedObjectReference{ + Type: "HostSystem", + Value: req.EntityId, + } + + if Map.Get(id) == nil { + return body + } + } + } + + body.Res.Returnval = []types.LicenseAssignmentManagerLicenseAssignment{ + { + EntityId: req.EntityId, + AssignedLicense: EvalLicense, + }, + } + + return body +} + +func licenseInfo(key string, labels []types.KeyValue) types.LicenseManagerLicenseInfo { + info := EvalLicense + + info.LicenseKey = key + info.Labels = labels + + return info +} diff --git a/vendor/github.com/vmware/govmomi/simulator/model.go b/vendor/github.com/vmware/govmomi/simulator/model.go new file mode 100644 index 00000000..a551e437 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/model.go @@ -0,0 +1,824 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "context" + "crypto/tls" + "fmt" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "reflect" + + "github.com/google/uuid" + "github.com/vmware/govmomi" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/simulator/vpx" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" + "github.com/vmware/govmomi/vim25/xml" +) + +type DelayConfig struct { + // Delay specifies the number of milliseconds to delay serving a SOAP call. 0 means no delay. + // This can be used to simulate a poorly performing vCenter or network lag. + Delay int + + // Delay specifies the number of milliseconds to delay serving a specific method. + // Each entry in the map represents the name of a method and its associated delay in milliseconds, + // This can be used to simulate a poorly performing vCenter or network lag. + MethodDelay map[string]int + + // DelayJitter defines the delay jitter as a coefficient of variation (stddev/mean). + // This can be used to simulate unpredictable delay. 0 means no jitter, i.e. all invocations get the same delay. + DelayJitter float64 +} + +// Model is used to populate a Model with an initial set of managed entities. +// This is a simple helper for tests running against a simulator, to populate an inventory +// with commonly used models. +// The inventory names generated by a Model have a string prefix per-type and integer suffix per-instance. +// The names are concatenated with their ancestor names and delimited by '_', making the generated names unique. +type Model struct { + Service *Service `json:"-"` + + ServiceContent types.ServiceContent `json:"-"` + RootFolder mo.Folder `json:"-"` + + // Autostart will power on Model created VMs when true + Autostart bool `json:"-"` + + // Datacenter specifies the number of Datacenter entities to create + // Name prefix: DC, vcsim flag: -dc + Datacenter int + + // Portgroup specifies the number of DistributedVirtualPortgroup entities to create per Datacenter + // Name prefix: DVPG, vcsim flag: -pg + Portgroup int + + // PortgroupNSX specifies the number NSX backed DistributedVirtualPortgroup entities to create per Datacenter + // Name prefix: NSXPG, vcsim flag: -nsx-pg + PortgroupNSX int + + // OpaqueNetwork specifies the number of OpaqueNetwork entities to create per Datacenter, + // with Summary.OpaqueNetworkType set to nsx.LogicalSwitch and Summary.OpaqueNetworkId to a random uuid. + // Name prefix: NSX, vcsim flag: -nsx + OpaqueNetwork int + + // Host specifies the number of standalone HostSystems entities to create per Datacenter + // Name prefix: H, vcsim flag: -standalone-host + Host int `json:",omitempty"` + + // Cluster specifies the number of ClusterComputeResource entities to create per Datacenter + // Name prefix: C, vcsim flag: -cluster + Cluster int + + // ClusterHost specifies the number of HostSystems entities to create within a Cluster + // Name prefix: H, vcsim flag: -host + ClusterHost int `json:",omitempty"` + + // Pool specifies the number of ResourcePool entities to create per Cluster + // Note that every cluster has a root ResourcePool named "Resources", as real vCenter does. + // For example: /DC0/host/DC0_C0/Resources + // The root ResourcePool is named "RP0" within other object names. + // When Model.Pool is set to 1 or higher, this creates child ResourcePools under the root pool. + // For example: /DC0/host/DC0_C0/Resources/DC0_C0_RP1 + // Name prefix: RP, vcsim flag: -pool + Pool int + + // Datastore specifies the number of Datastore entities to create + // Each Datastore will have temporary local file storage and will be mounted + // on every HostSystem created by the ModelConfig + // Name prefix: LocalDS, vcsim flag: -ds + Datastore int + + // Machine specifies the number of VirtualMachine entities to create per ResourcePool + // Name prefix: VM, vcsim flag: -vm + Machine int + + // Folder specifies the number of Datacenter to place within a Folder. + // This includes a folder for the Datacenter itself and its host, vm, network and datastore folders. + // All resources for the Datacenter are placed within these folders, rather than the top-level folders. + // Name prefix: F, vcsim flag: -folder + Folder int + + // App specifies the number of VirtualApp to create per Cluster + // Name prefix: APP, vcsim flag: -app + App int + + // Pod specifies the number of StoragePod to create per Cluster + // Name prefix: POD, vcsim flag: -pod + Pod int + + // Delay configurations + DelayConfig DelayConfig `json:"-"` + + // total number of inventory objects, set by Count() + total int + + dirs []string +} + +// ESX is the default Model for a standalone ESX instance +func ESX() *Model { + return &Model{ + ServiceContent: esx.ServiceContent, + RootFolder: esx.RootFolder, + Autostart: true, + Datastore: 1, + Machine: 2, + DelayConfig: DelayConfig{ + Delay: 0, + DelayJitter: 0, + MethodDelay: nil, + }, + } +} + +// VPX is the default Model for a vCenter instance +func VPX() *Model { + return &Model{ + ServiceContent: vpx.ServiceContent, + RootFolder: vpx.RootFolder, + Autostart: true, + Datacenter: 1, + Portgroup: 1, + Host: 1, + Cluster: 1, + ClusterHost: 3, + Datastore: 1, + Machine: 2, + DelayConfig: DelayConfig{ + Delay: 0, + DelayJitter: 0, + MethodDelay: nil, + }, + } +} + +// Count returns a Model with total number of each existing type +func (m *Model) Count() Model { + count := Model{} + + for ref, obj := range Map.objects { + if _, ok := obj.(mo.Entity); !ok { + continue + } + + count.total++ + + switch ref.Type { + case "Datacenter": + count.Datacenter++ + case "DistributedVirtualPortgroup": + count.Portgroup++ + case "ClusterComputeResource": + count.Cluster++ + case "Datastore": + count.Datastore++ + case "HostSystem": + count.Host++ + case "VirtualMachine": + count.Machine++ + case "ResourcePool": + count.Pool++ + case "VirtualApp": + count.App++ + case "Folder": + count.Folder++ + case "StoragePod": + count.Pod++ + case "OpaqueNetwork": + count.OpaqueNetwork++ + } + } + + return count +} + +func (*Model) fmtName(prefix string, num int) string { + return fmt.Sprintf("%s%d", prefix, num) +} + +// kinds maps managed object types to their vcsim wrapper types +var kinds = map[string]reflect.Type{ + "AuthorizationManager": reflect.TypeOf((*AuthorizationManager)(nil)).Elem(), + "ClusterComputeResource": reflect.TypeOf((*ClusterComputeResource)(nil)).Elem(), + "CustomFieldsManager": reflect.TypeOf((*CustomFieldsManager)(nil)).Elem(), + "CustomizationSpecManager": reflect.TypeOf((*CustomizationSpecManager)(nil)).Elem(), + "Datacenter": reflect.TypeOf((*Datacenter)(nil)).Elem(), + "Datastore": reflect.TypeOf((*Datastore)(nil)).Elem(), + "DistributedVirtualPortgroup": reflect.TypeOf((*DistributedVirtualPortgroup)(nil)).Elem(), + "DistributedVirtualSwitch": reflect.TypeOf((*DistributedVirtualSwitch)(nil)).Elem(), + "EnvironmentBrowser": reflect.TypeOf((*EnvironmentBrowser)(nil)).Elem(), + "EventManager": reflect.TypeOf((*EventManager)(nil)).Elem(), + "FileManager": reflect.TypeOf((*FileManager)(nil)).Elem(), + "Folder": reflect.TypeOf((*Folder)(nil)).Elem(), + "GuestOperationsManager": reflect.TypeOf((*GuestOperationsManager)(nil)).Elem(), + "HostDatastoreBrowser": reflect.TypeOf((*HostDatastoreBrowser)(nil)).Elem(), + "HostLocalAccountManager": reflect.TypeOf((*HostLocalAccountManager)(nil)).Elem(), + "HostNetworkSystem": reflect.TypeOf((*HostNetworkSystem)(nil)).Elem(), + "HostSystem": reflect.TypeOf((*HostSystem)(nil)).Elem(), + "IpPoolManager": reflect.TypeOf((*IpPoolManager)(nil)).Elem(), + "LicenseManager": reflect.TypeOf((*LicenseManager)(nil)).Elem(), + "OptionManager": reflect.TypeOf((*OptionManager)(nil)).Elem(), + "OvfManager": reflect.TypeOf((*OvfManager)(nil)).Elem(), + "PerformanceManager": reflect.TypeOf((*PerformanceManager)(nil)).Elem(), + "PropertyCollector": reflect.TypeOf((*PropertyCollector)(nil)).Elem(), + "ResourcePool": reflect.TypeOf((*ResourcePool)(nil)).Elem(), + "SearchIndex": reflect.TypeOf((*SearchIndex)(nil)).Elem(), + "SessionManager": reflect.TypeOf((*SessionManager)(nil)).Elem(), + "StoragePod": reflect.TypeOf((*StoragePod)(nil)).Elem(), + "StorageResourceManager": reflect.TypeOf((*StorageResourceManager)(nil)).Elem(), + "TaskManager": reflect.TypeOf((*TaskManager)(nil)).Elem(), + "UserDirectory": reflect.TypeOf((*UserDirectory)(nil)).Elem(), + "VcenterVStorageObjectManager": reflect.TypeOf((*VcenterVStorageObjectManager)(nil)).Elem(), + "ViewManager": reflect.TypeOf((*ViewManager)(nil)).Elem(), + "VirtualApp": reflect.TypeOf((*VirtualApp)(nil)).Elem(), + "VirtualDiskManager": reflect.TypeOf((*VirtualDiskManager)(nil)).Elem(), + "VirtualMachine": reflect.TypeOf((*VirtualMachine)(nil)).Elem(), + "VmwareDistributedVirtualSwitch": reflect.TypeOf((*DistributedVirtualSwitch)(nil)).Elem(), +} + +func loadObject(content types.ObjectContent) (mo.Reference, error) { + var obj mo.Reference + id := content.Obj + + kind, ok := kinds[id.Type] + if ok { + obj = reflect.New(kind).Interface().(mo.Reference) + } + + if obj == nil { + // No vcsim wrapper for this type, e.g. IoFilterManager + x, err := mo.ObjectContentToType(content, true) + if err != nil { + return nil, err + } + obj = x.(mo.Reference) + } else { + if len(content.PropSet) == 0 { + // via NewServiceInstance() + Map.setReference(obj, id) + } else { + // via Model.Load() + dst := getManagedObject(obj).Addr().Interface().(mo.Reference) + err := mo.LoadObjectContent([]types.ObjectContent{content}, dst) + if err != nil { + return nil, err + } + } + + if x, ok := obj.(interface{ init(*Registry) }); ok { + x.init(Map) + } + } + + return obj, nil +} + +// resolveReferences attempts to resolve any object references that were not included via Load() +// example: Load's dir only contains a single OpaqueNetwork, we need to create a Datacenter and +// place the OpaqueNetwork in the Datacenter's network folder. +func (m *Model) resolveReferences(ctx *Context) error { + dc, ok := Map.Any("Datacenter").(*Datacenter) + if !ok { + // Need to have at least 1 Datacenter + root := Map.Get(Map.content().RootFolder).(*Folder) + ref := root.CreateDatacenter(internalContext, &types.CreateDatacenter{ + This: root.Self, + Name: "DC0", + }).(*methods.CreateDatacenterBody).Res.Returnval + dc = Map.Get(ref).(*Datacenter) + } + + for ref, val := range Map.objects { + me, ok := val.(mo.Entity) + if !ok { + continue + } + e := me.Entity() + if e.Parent == nil || ref.Type == "Folder" { + continue + } + if Map.Get(*e.Parent) == nil { + // object was loaded without its parent, attempt to foster with another parent + switch e.Parent.Type { + case "Folder": + folder := dc.folder(me) + e.Parent = &folder.Self + log.Printf("%s adopted %s", e.Parent, ref) + folderPutChild(ctx, folder, me) + default: + return fmt.Errorf("unable to foster %s with parent type=%s", ref, e.Parent.Type) + } + } + // TODO: resolve any remaining orphan references via mo.References() + } + + return nil +} + +// Load Model from the given directory, as created by the 'govc object.save' command. +func (m *Model) Load(dir string) error { + ctx := internalContext + var s *ServiceInstance + + err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + return nil + } + if filepath.Ext(path) != ".xml" { + return nil + } + + f, err := os.Open(path) + if err != nil { + return err + } + defer func() { _ = f.Close() }() + + dec := xml.NewDecoder(f) + dec.TypeFunc = types.TypeFunc() + var content types.ObjectContent + err = dec.Decode(&content) + if err != nil { + return err + } + + if content.Obj == vim25.ServiceInstance { + s = new(ServiceInstance) + s.Self = content.Obj + Map = NewRegistry() + Map.Put(s) + return mo.LoadObjectContent([]types.ObjectContent{content}, &s.ServiceInstance) + } + + if s == nil { + s = NewServiceInstance(m.ServiceContent, m.RootFolder) + } + + obj, err := loadObject(content) + if err != nil { + return err + } + + Map.Put(obj) + + return nil + }) + + if err != nil { + return err + } + + m.Service = New(s) + + return m.resolveReferences(ctx) +} + +// Create populates the Model with the given ModelConfig +func (m *Model) Create() error { + ctx := internalContext + m.Service = New(NewServiceInstance(m.ServiceContent, m.RootFolder)) + + client := m.Service.client + root := object.NewRootFolder(client) + + // After all hosts are created, this var is used to mount the host datastores. + var hosts []*object.HostSystem + hostMap := make(map[string][]*object.HostSystem) + + // We need to defer VM creation until after the datastores are created. + var vms []func() error + // 1 DVS per DC, added to all hosts + var dvs *object.DistributedVirtualSwitch + // 1 NIC per VM, backed by a DVPG if Model.Portgroup > 0 + vmnet := esx.EthernetCard.Backing + + // addHost adds a cluster host or a stanalone host. + addHost := func(name string, f func(types.HostConnectSpec) (*object.Task, error)) (*object.HostSystem, error) { + spec := types.HostConnectSpec{ + HostName: name, + } + + task, err := f(spec) + if err != nil { + return nil, err + } + + info, err := task.WaitForResult(context.Background(), nil) + if err != nil { + return nil, err + } + + host := object.NewHostSystem(client, info.Result.(types.ManagedObjectReference)) + hosts = append(hosts, host) + + if dvs != nil { + config := &types.DVSConfigSpec{ + Host: []types.DistributedVirtualSwitchHostMemberConfigSpec{{ + Operation: string(types.ConfigSpecOperationAdd), + Host: host.Reference(), + }}, + } + + _, _ = dvs.Reconfigure(ctx, config) + } + + return host, nil + } + + // addMachine returns a func to create a VM. + addMachine := func(prefix string, host *object.HostSystem, pool *object.ResourcePool, folders *object.DatacenterFolders) { + nic := esx.EthernetCard + nic.Backing = vmnet + ds := types.ManagedObjectReference{} + + f := func() error { + for i := 0; i < m.Machine; i++ { + name := m.fmtName(prefix+"_VM", i) + + config := types.VirtualMachineConfigSpec{ + Name: name, + GuestId: string(types.VirtualMachineGuestOsIdentifierOtherGuest), + Files: &types.VirtualMachineFileInfo{ + VmPathName: "[LocalDS_0]", + }, + } + + if pool == nil { + pool, _ = host.ResourcePool(ctx) + } + + var devices object.VirtualDeviceList + + scsi, _ := devices.CreateSCSIController("pvscsi") + ide, _ := devices.CreateIDEController() + cdrom, _ := devices.CreateCdrom(ide.(*types.VirtualIDEController)) + disk := devices.CreateDisk(scsi.(types.BaseVirtualController), ds, + config.Files.VmPathName+" "+path.Join(name, "disk1.vmdk")) + disk.CapacityInKB = 1024 + + devices = append(devices, scsi, cdrom, disk, &nic) + + config.DeviceChange, _ = devices.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) + + task, err := folders.VmFolder.CreateVM(ctx, config, pool, host) + if err != nil { + return err + } + + info, err := task.WaitForResult(ctx, nil) + if err != nil { + return err + } + + vm := object.NewVirtualMachine(client, info.Result.(types.ManagedObjectReference)) + + if m.Autostart { + _, _ = vm.PowerOn(ctx) + } + } + + return nil + } + + vms = append(vms, f) + } + + nfolder := 0 + + for ndc := 0; ndc < m.Datacenter; ndc++ { + dcName := m.fmtName("DC", ndc) + folder := root + fName := m.fmtName("F", nfolder) + + // If Datacenter > Folder, don't create folders for the first N DCs. + if nfolder < m.Folder && ndc >= (m.Datacenter-m.Folder) { + f, err := folder.CreateFolder(ctx, fName) + if err != nil { + return err + } + folder = f + } + + dc, err := folder.CreateDatacenter(ctx, dcName) + if err != nil { + return err + } + + folders, err := dc.Folders(ctx) + if err != nil { + return err + } + + if m.Pod > 0 { + for pod := 0; pod < m.Pod; pod++ { + _, _ = folders.DatastoreFolder.CreateStoragePod(ctx, m.fmtName(dcName+"_POD", pod)) + } + } + + if folder != root { + // Create sub-folders and use them to create any resources that follow + subs := []**object.Folder{&folders.DatastoreFolder, &folders.HostFolder, &folders.NetworkFolder, &folders.VmFolder} + + for _, sub := range subs { + f, err := (*sub).CreateFolder(ctx, fName) + if err != nil { + return err + } + + *sub = f + } + + nfolder++ + } + + if m.Portgroup > 0 || m.PortgroupNSX > 0 { + var spec types.DVSCreateSpec + spec.ConfigSpec = &types.VMwareDVSConfigSpec{} + spec.ConfigSpec.GetDVSConfigSpec().Name = m.fmtName("DVS", 0) + + task, err := folders.NetworkFolder.CreateDVS(ctx, spec) + if err != nil { + return err + } + + info, err := task.WaitForResult(ctx, nil) + if err != nil { + return err + } + + dvs = object.NewDistributedVirtualSwitch(client, info.Result.(types.ManagedObjectReference)) + } + + for npg := 0; npg < m.Portgroup; npg++ { + name := m.fmtName(dcName+"_DVPG", npg) + + task, err := dvs.AddPortgroup(ctx, []types.DVPortgroupConfigSpec{{Name: name}}) + if err != nil { + return err + } + if err = task.Wait(ctx); err != nil { + return err + } + + // Use the 1st DVPG for the VMs eth0 backing + if npg == 0 { + // AddPortgroup_Task does not return the moid, so we look it up by name + net := Map.Get(folders.NetworkFolder.Reference()).(*Folder) + pg := Map.FindByName(name, net.ChildEntity) + + vmnet, _ = object.NewDistributedVirtualPortgroup(client, pg.Reference()).EthernetCardBackingInfo(ctx) + } + } + + for npg := 0; npg < m.PortgroupNSX; npg++ { + name := m.fmtName(dcName+"_NSXPG", npg) + spec := types.DVPortgroupConfigSpec{ + Name: name, + LogicalSwitchUuid: uuid.New().String(), + } + + task, err := dvs.AddPortgroup(ctx, []types.DVPortgroupConfigSpec{spec}) + if err != nil { + return err + } + if err = task.Wait(ctx); err != nil { + return err + } + } + + // Must use simulator methods directly for OpaqueNetwork + networkFolder := Map.Get(folders.NetworkFolder.Reference()).(*Folder) + + for i := 0; i < m.OpaqueNetwork; i++ { + var summary types.OpaqueNetworkSummary + summary.Name = m.fmtName(dcName+"_NSX", i) + err := networkFolder.AddOpaqueNetwork(summary) + if err != nil { + return err + } + } + + for nhost := 0; nhost < m.Host; nhost++ { + name := m.fmtName(dcName+"_H", nhost) + + host, err := addHost(name, func(spec types.HostConnectSpec) (*object.Task, error) { + return folders.HostFolder.AddStandaloneHost(ctx, spec, true, nil, nil) + }) + if err != nil { + return err + } + + addMachine(name, host, nil, folders) + } + + for ncluster := 0; ncluster < m.Cluster; ncluster++ { + clusterName := m.fmtName(dcName+"_C", ncluster) + + cluster, err := folders.HostFolder.CreateCluster(ctx, clusterName, types.ClusterConfigSpecEx{}) + if err != nil { + return err + } + + for nhost := 0; nhost < m.ClusterHost; nhost++ { + name := m.fmtName(clusterName+"_H", nhost) + + _, err = addHost(name, func(spec types.HostConnectSpec) (*object.Task, error) { + return cluster.AddHost(ctx, spec, true, nil, nil) + }) + if err != nil { + return err + } + } + + pool, err := cluster.ResourcePool(ctx) + if err != nil { + return err + } + + prefix := clusterName + "_RP" + + addMachine(prefix+"0", nil, pool, folders) + + for npool := 1; npool <= m.Pool; npool++ { + spec := types.DefaultResourceConfigSpec() + + _, err = pool.Create(ctx, m.fmtName(prefix, npool), spec) + if err != nil { + return err + } + } + + prefix = clusterName + "_APP" + + for napp := 0; napp < m.App; napp++ { + rspec := types.DefaultResourceConfigSpec() + vspec := NewVAppConfigSpec() + name := m.fmtName(prefix, napp) + + vapp, err := pool.CreateVApp(ctx, name, rspec, vspec, nil) + if err != nil { + return err + } + + addMachine(name, nil, vapp.ResourcePool, folders) + } + } + + hostMap[dcName] = hosts + hosts = nil + } + + if m.ServiceContent.RootFolder == esx.RootFolder.Reference() { + // ESX model + host := object.NewHostSystem(client, esx.HostSystem.Reference()) + + dc := object.NewDatacenter(client, esx.Datacenter.Reference()) + folders, err := dc.Folders(ctx) + if err != nil { + return err + } + + hostMap[dc.Reference().Value] = append(hosts, host) + + addMachine(host.Reference().Value, host, nil, folders) + } + + for dc, dchosts := range hostMap { + for i := 0; i < m.Datastore; i++ { + err := m.createLocalDatastore(dc, m.fmtName("LocalDS_", i), dchosts) + if err != nil { + return err + } + } + } + + for _, createVM := range vms { + err := createVM() + if err != nil { + return err + } + } + + // Turn on delay AFTER we're done building the service content + m.Service.delay = &m.DelayConfig + + return nil +} + +func (m *Model) createLocalDatastore(dc string, name string, hosts []*object.HostSystem) error { + ctx := context.Background() + dir, err := ioutil.TempDir("", fmt.Sprintf("govcsim-%s-%s-", dc, name)) + if err != nil { + return err + } + + m.dirs = append(m.dirs, dir) + + for _, host := range hosts { + dss, err := host.ConfigManager().DatastoreSystem(ctx) + if err != nil { + return err + } + + _, err = dss.CreateLocalDatastore(ctx, name, dir) + if err != nil { + return err + } + } + + return nil +} + +// Remove cleans up items created by the Model, such as local datastore directories +func (m *Model) Remove() { + // Remove associated vm containers, if any + for _, obj := range Map.objects { + if vm, ok := obj.(*VirtualMachine); ok { + vm.run.remove(vm) + } + } + + for _, dir := range m.dirs { + _ = os.RemoveAll(dir) + } +} + +// Run calls f with a Client connected to a simulator server instance, which is stopped after f returns. +func (m *Model) Run(f func(context.Context, *vim25.Client) error) error { + ctx := context.Background() + + defer m.Remove() + + if m.Service == nil { + err := m.Create() + if err != nil { + return err + } + } + + m.Service.TLS = new(tls.Config) + m.Service.RegisterEndpoints = true + + s := m.Service.NewServer() + defer s.Close() + + c, err := govmomi.NewClient(ctx, s.URL, true) + if err != nil { + return err + } + + defer c.Logout(ctx) + + return f(ctx, c.Client) +} + +// Run calls Model.Run for each model and will panic if f returns an error. +// If no model is specified, the VPX Model is used by default. +func Run(f func(context.Context, *vim25.Client) error, model ...*Model) { + m := model + if len(m) == 0 { + m = []*Model{VPX()} + } + + for i := range m { + err := m[i].Run(f) + if err != nil { + panic(err) + } + } +} + +// Test calls Run and expects the caller propagate any errors, via testing.T for example. +func Test(f func(context.Context, *vim25.Client), model ...*Model) { + Run(func(ctx context.Context, c *vim25.Client) error { + f(ctx, c) + return nil + }, model...) +} diff --git a/vendor/github.com/vmware/govmomi/simulator/object.go b/vendor/github.com/vmware/govmomi/simulator/object.go new file mode 100644 index 00000000..8a1bed43 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/object.go @@ -0,0 +1,79 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "bytes" + + "github.com/google/uuid" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" + "github.com/vmware/govmomi/vim25/xml" +) + +func SetCustomValue(ctx *Context, req *types.SetCustomValue) soap.HasFault { + body := &methods.SetCustomValueBody{} + + cfm := Map.CustomFieldsManager() + + _, field := cfm.findByNameType(req.Key, req.This.Type) + if field == nil { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "key"}) + return body + } + + res := cfm.SetField(ctx, &types.SetField{ + This: cfm.Reference(), + Entity: req.This, + Key: field.Key, + Value: req.Value, + }) + + if res.Fault() != nil { + body.Fault_ = res.Fault() + return body + } + + body.Res = &types.SetCustomValueResponse{} + return body +} + +// newUUID returns a stable UUID string based on input s +func newUUID(s string) string { + return sha1UUID(s).String() +} + +// sha1UUID returns a stable UUID based on input s +func sha1UUID(s string) uuid.UUID { + return uuid.NewSHA1(uuid.NameSpaceOID, []byte(s)) +} + +// deepCopy uses xml encode/decode to copy src to dst +func deepCopy(src, dst interface{}) { + b, err := xml.Marshal(src) + if err != nil { + panic(err) + } + + dec := xml.NewDecoder(bytes.NewReader(b)) + dec.TypeFunc = types.TypeFunc() + err = dec.Decode(dst) + if err != nil { + panic(err) + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/option_manager.go b/vendor/github.com/vmware/govmomi/simulator/option_manager.go new file mode 100644 index 00000000..efcdee21 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/option_manager.go @@ -0,0 +1,110 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/simulator/vpx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type OptionManager struct { + mo.OptionManager +} + +func NewOptionManager(ref *types.ManagedObjectReference, setting []types.BaseOptionValue) object.Reference { + s := &OptionManager{} + if ref != nil { + s.Self = *ref + } + s.Setting = setting + return s +} + +func (m *OptionManager) init(r *Registry) { + if len(m.Setting) == 0 { + if r.IsVPX() { + m.Setting = vpx.Setting + } else { + m.Setting = esx.Setting + } + } +} + +func (m *OptionManager) QueryOptions(req *types.QueryOptions) soap.HasFault { + body := &methods.QueryOptionsBody{} + res := &types.QueryOptionsResponse{} + + for _, opt := range m.Setting { + if strings.HasPrefix(opt.GetOptionValue().Key, req.Name) { + res.Returnval = append(res.Returnval, opt) + } + } + + if len(res.Returnval) == 0 { + body.Fault_ = Fault("", &types.InvalidName{Name: req.Name}) + } else { + body.Res = res + } + + return body +} + +func (m *OptionManager) find(key string) *types.OptionValue { + for _, opt := range m.Setting { + setting := opt.GetOptionValue() + if setting.Key == key { + return setting + } + } + return nil +} + +func (m *OptionManager) UpdateOptions(req *types.UpdateOptions) soap.HasFault { + body := new(methods.UpdateOptionsBody) + + for _, change := range req.ChangedValue { + setting := change.GetOptionValue() + + // We don't currently include the entire list of default settings for ESX and vCenter, + // this prefix is currently used to test the failure path. + // Real vCenter seems to only allow new options if Key has a "config." prefix. + // TODO: consider behaving the same, which would require including 2 long lists of options in vpx.Setting and esx.Setting + if strings.HasPrefix(setting.Key, "ENOENT.") { + body.Fault_ = Fault("", &types.InvalidName{Name: setting.Key}) + return body + } + + opt := m.find(setting.Key) + if opt != nil { + // This is an existing option. + opt.Value = setting.Value + continue + } + + m.Setting = append(m.Setting, change) + } + + body.Res = new(types.UpdateOptionsResponse) + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/os_unix.go b/vendor/github.com/vmware/govmomi/simulator/os_unix.go new file mode 100644 index 00000000..30ea88e9 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/os_unix.go @@ -0,0 +1,38 @@ +//+build !windows + +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import "syscall" + +func (ds *Datastore) stat() error { + info := ds.Info.GetDatastoreInfo() + var stat syscall.Statfs_t + + err := syscall.Statfs(info.Url, &stat) + if err != nil { + return err + } + + info.FreeSpace = int64(stat.Bfree * uint64(stat.Bsize)) + + ds.Summary.FreeSpace = info.FreeSpace + ds.Summary.Capacity = int64(stat.Blocks * uint64(stat.Bsize)) + + return nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/os_windows.go b/vendor/github.com/vmware/govmomi/simulator/os_windows.go new file mode 100644 index 00000000..55cf2ab0 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/os_windows.go @@ -0,0 +1,26 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import "os" + +func (ds *Datastore) stat() error { + info := ds.Info.GetDatastoreInfo() + + _, err := os.Stat(info.Url) + return err +} diff --git a/vendor/github.com/vmware/govmomi/simulator/ovf_manager.go b/vendor/github.com/vmware/govmomi/simulator/ovf_manager.go new file mode 100644 index 00000000..1540b403 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/ovf_manager.go @@ -0,0 +1,292 @@ +/* +Copyright (c) 2019 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "log" + "math" + "strconv" + "strings" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/ovf" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type OvfManager struct { + mo.OvfManager +} + +func ovfDisk(e *ovf.Envelope, diskID string) *ovf.VirtualDiskDesc { + for _, disk := range e.Disk.Disks { + if strings.HasSuffix(diskID, disk.DiskID) { + return &disk + } + } + return nil +} + +func ovfNetwork(ctx *Context, req *types.CreateImportSpec, item ovf.ResourceAllocationSettingData) types.BaseVirtualDeviceBackingInfo { + if len(item.Connection) == 0 { + return nil + } + pool := ctx.Map.Get(req.ResourcePool).(mo.Entity) + ref := ctx.Map.getEntityDatacenter(pool).defaultNetwork()[0] // Default to VM Network + c := item.Connection[0] + + for _, net := range req.Cisp.NetworkMapping { + if net.Name == c { + ref = net.Network + break + } + } + + switch obj := ctx.Map.Get(ref).(type) { + case *mo.Network: + return &types.VirtualEthernetCardNetworkBackingInfo{ + VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ + DeviceName: obj.Name, + }, + } + case *DistributedVirtualPortgroup: + dvs := ctx.Map.Get(*obj.Config.DistributedVirtualSwitch).(*DistributedVirtualSwitch) + return &types.VirtualEthernetCardDistributedVirtualPortBackingInfo{ + Port: types.DistributedVirtualSwitchPortConnection{ + PortgroupKey: obj.Key, + SwitchUuid: dvs.Config.GetDVSConfigInfo().Uuid, + }, + } + default: + log.Printf("ovf: unknown network type: %T", ref) + return nil + } +} + +func ovfDiskCapacity(disk *ovf.VirtualDiskDesc) int64 { + b, _ := strconv.ParseUint(disk.Capacity, 10, 64) + if disk.CapacityAllocationUnits == nil { + return int64(b) + } + c := strings.Fields(*disk.CapacityAllocationUnits) + if len(c) == 3 && c[0] == "byte" && c[1] == "*" { // "byte * 2^20" + p := strings.Split(c[2], "^") + x, _ := strconv.ParseUint(p[0], 10, 64) + if len(p) == 2 { + y, _ := strconv.ParseUint(p[1], 10, 64) + b *= uint64(math.Pow(float64(x), float64(y))) + } else { + b *= x + } + } + return int64(b / 1024) +} + +func (m *OvfManager) CreateImportSpec(ctx *Context, req *types.CreateImportSpec) soap.HasFault { + body := new(methods.CreateImportSpecBody) + + env, err := ovf.Unmarshal(strings.NewReader(req.OvfDescriptor)) + if err != nil { + body.Fault_ = Fault(err.Error(), &types.InvalidArgument{InvalidProperty: "ovfDescriptor"}) + return body + } + + ds := ctx.Map.Get(req.Datastore).(*Datastore) + path := object.DatastorePath{Datastore: ds.Name} + spec := &types.VirtualMachineImportSpec{ + ConfigSpec: types.VirtualMachineConfigSpec{ + Name: req.Cisp.EntityName, + Version: esx.HardwareVersion, + GuestId: string(types.VirtualMachineGuestOsIdentifierOtherGuest), + Files: &types.VirtualMachineFileInfo{ + VmPathName: path.String(), + }, + NumCPUs: 1, + NumCoresPerSocket: 1, + MemoryMB: 32, + }, + ResPoolEntity: &req.ResourcePool, + } + + if req.Cisp.DeploymentOption == "" && env.DeploymentOption != nil { + for _, c := range env.DeploymentOption.Configuration { + if isTrue(c.Default) { + req.Cisp.DeploymentOption = c.ID + break + } + } + } + + if os := env.VirtualSystem.OperatingSystem; len(os) != 0 { + if id := os[0].OSType; id != nil { + spec.ConfigSpec.GuestId = *id + } + } + + var device object.VirtualDeviceList + result := types.OvfCreateImportSpecResult{ + ImportSpec: spec, + } + + hw := env.VirtualSystem.VirtualHardware[0] + if vmx := hw.System.VirtualSystemType; vmx != nil { + spec.ConfigSpec.Version = *vmx + } + + ndisk := 0 + ndev := 0 + resources := make(map[string]types.BaseVirtualDevice) + + for _, item := range hw.Item { + if req.Cisp.DeploymentOption != "" && item.Configuration != nil { + if req.Cisp.DeploymentOption != *item.Configuration { + continue + } + } + + kind := func() string { + if item.ResourceSubType == nil { + return "unknown" + } + return strings.ToLower(*item.ResourceSubType) + } + + unsupported := func(err error) { + result.Error = append(result.Error, types.LocalizedMethodFault{ + Fault: &types.OvfUnsupportedType{ + Name: item.ElementName, + InstanceId: item.InstanceID, + DeviceType: int32(*item.ResourceType), + }, + LocalizedMessage: err.Error(), + }) + } + + upload := func(file ovf.File, c types.BaseVirtualDevice, n int) { + result.FileItem = append(result.FileItem, types.OvfFileItem{ + DeviceId: fmt.Sprintf("/%s/%s:%d", req.Cisp.EntityName, device.Type(c), n), + Path: file.Href, + Size: int64(file.Size), + CimType: int32(*item.ResourceType), + }) + } + + switch *item.ResourceType { + case 1: // VMCI + case 3: // Number of Virtual CPUs + spec.ConfigSpec.NumCPUs = int32(*item.VirtualQuantity) + case 4: // Memory Size + spec.ConfigSpec.MemoryMB = int64(*item.VirtualQuantity) + case 5: // IDE Controller + d, _ := device.CreateIDEController() + device = append(device, d) + resources[item.InstanceID] = d + case 6: // SCSI Controller + d, err := device.CreateSCSIController(kind()) + if err == nil { + device = append(device, d) + resources[item.InstanceID] = d + } else { + unsupported(err) + } + case 10: // Virtual Network + net := ovfNetwork(ctx, req, item) + if net != nil { + d, err := device.CreateEthernetCard(kind(), net) + if err == nil { + device = append(device, d) + } else { + unsupported(err) + } + } + case 14: // Floppy Drive + if device.PickController((*types.VirtualSIOController)(nil)) == nil { + c := &types.VirtualSIOController{} + c.Key = device.NewKey() + device = append(device, c) + } + d, err := device.CreateFloppy() + if err == nil { + device = append(device, d) + resources[item.InstanceID] = d + } else { + unsupported(err) + } + case 15: // CD/DVD + c, ok := resources[*item.Parent] + if !ok { + continue // Parent is unsupported() + } + d, _ := device.CreateCdrom(c.(*types.VirtualIDEController)) + if len(item.HostResource) != 0 { + for _, file := range env.References { + if strings.HasSuffix(item.HostResource[0], file.ID) { + path.Path = fmt.Sprintf("%s/_deviceImage%d.iso", req.Cisp.EntityName, ndev) + device.InsertIso(d, path.String()) + upload(file, d, ndev) + break + } + } + } + device = append(device, d) + ndev++ + case 17: // Virtual Disk + c, ok := resources[*item.Parent] + if !ok { + continue // Parent is unsupported() + } + path.Path = fmt.Sprintf("%s/disk-%d.vmdk", req.Cisp.EntityName, ndisk) + d := device.CreateDisk(c.(types.BaseVirtualController), ds.Reference(), path.String()) + d.VirtualDevice.DeviceInfo = &types.Description{ + Label: item.ElementName, + } + disk := ovfDisk(env, item.HostResource[0]) + for _, file := range env.References { + if file.ID == *disk.FileRef { + upload(file, d, ndisk) + break + } + } + d.CapacityInKB = ovfDiskCapacity(disk) + device = append(device, d) + ndisk++ + case 23: // USB Controller + case 24: // Video Card + default: + unsupported(fmt.Errorf("unsupported resource type: %d", *item.ResourceType)) + } + } + + spec.ConfigSpec.DeviceChange, _ = device.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) + + for _, p := range req.Cisp.PropertyMapping { + spec.ConfigSpec.ExtraConfig = append(spec.ConfigSpec.ExtraConfig, &types.OptionValue{ + Key: p.Key, + Value: p.Value, + }) + } + + body.Res = &types.CreateImportSpecResponse{ + Returnval: result, + } + + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/performance_manager.go b/vendor/github.com/vmware/govmomi/simulator/performance_manager.go new file mode 100644 index 00000000..d4f548ed --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/performance_manager.go @@ -0,0 +1,255 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "math/rand" + "strconv" + "time" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/simulator/vpx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var realtimeProviderSummary = types.PerfProviderSummary{ + CurrentSupported: true, + SummarySupported: true, + RefreshRate: 20, +} + +var historicProviderSummary = types.PerfProviderSummary{ + CurrentSupported: false, + SummarySupported: true, + RefreshRate: -1, +} + +type PerformanceManager struct { + mo.PerformanceManager + vmMetrics []types.PerfMetricId + hostMetrics []types.PerfMetricId + rpMetrics []types.PerfMetricId + clusterMetrics []types.PerfMetricId + datastoreMetrics []types.PerfMetricId + datacenterMetrics []types.PerfMetricId + perfCounterIndex map[int32]types.PerfCounterInfo + metricData map[string]map[int32][]int64 +} + +func (m *PerformanceManager) init(r *Registry) { + if r.IsESX() { + m.PerfCounter = esx.PerfCounter + m.hostMetrics = esx.HostMetrics + m.vmMetrics = esx.VmMetrics + m.rpMetrics = esx.ResourcePoolMetrics + m.metricData = esx.MetricData + } else { + m.PerfCounter = vpx.PerfCounter + m.hostMetrics = vpx.HostMetrics + m.vmMetrics = vpx.VmMetrics + m.rpMetrics = vpx.ResourcePoolMetrics + m.clusterMetrics = vpx.ClusterMetrics + m.datastoreMetrics = vpx.DatastoreMetrics + m.datacenterMetrics = vpx.DatacenterMetrics + m.metricData = vpx.MetricData + } + m.perfCounterIndex = make(map[int32]types.PerfCounterInfo, len(m.PerfCounter)) + for _, p := range m.PerfCounter { + m.perfCounterIndex[p.Key] = p + } +} + +func (p *PerformanceManager) QueryPerfCounter(ctx *Context, req *types.QueryPerfCounter) soap.HasFault { + body := new(methods.QueryPerfCounterBody) + body.Req = req + body.Res.Returnval = make([]types.PerfCounterInfo, len(req.CounterId)) + for i, id := range req.CounterId { + if info, ok := p.perfCounterIndex[id]; !ok { + body.Fault_ = Fault("", &types.InvalidArgument{ + InvalidProperty: "CounterId", + }) + return body + } else { + body.Res.Returnval[i] = info + } + } + return body +} + +func (p *PerformanceManager) QueryPerfProviderSummary(ctx *Context, req *types.QueryPerfProviderSummary) soap.HasFault { + body := new(methods.QueryPerfProviderSummaryBody) + body.Req = req + body.Res = new(types.QueryPerfProviderSummaryResponse) + + // The entity must exist + if Map.Get(req.Entity) == nil { + body.Fault_ = Fault("", &types.InvalidArgument{ + InvalidProperty: "Entity", + }) + return body + } + + switch req.Entity.Type { + case "VirtualMachine", "HostSystem", "ResourcePool": + body.Res.Returnval = realtimeProviderSummary + default: + body.Res.Returnval = historicProviderSummary + } + body.Res.Returnval.Entity = req.Entity + return body +} + +func (p *PerformanceManager) buildAvailablePerfMetricsQueryResponse(ids []types.PerfMetricId, numCPU int, datastoreURL string) *types.QueryAvailablePerfMetricResponse { + r := new(types.QueryAvailablePerfMetricResponse) + r.Returnval = make([]types.PerfMetricId, 0, len(ids)) + for _, id := range ids { + switch id.Instance { + case "$cpu": + for i := 0; i < numCPU; i++ { + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: strconv.Itoa(i)}) + } + case "$physDisk": + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: datastoreURL}) + case "$file": + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: "DISKFILE"}) + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: "DELTAFILE"}) + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: "SWAPFILE"}) + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: "OTHERFILE"}) + default: + r.Returnval = append(r.Returnval, types.PerfMetricId{CounterId: id.CounterId, Instance: id.Instance}) + } + } + return r +} + +func (p *PerformanceManager) queryAvailablePerfMetric(entity types.ManagedObjectReference, interval int32) *types.QueryAvailablePerfMetricResponse { + switch entity.Type { + case "VirtualMachine": + vm := Map.Get(entity).(*VirtualMachine) + return p.buildAvailablePerfMetricsQueryResponse(p.vmMetrics, int(vm.Summary.Config.NumCpu), vm.Datastore[0].Value) + case "HostSystem": + host := Map.Get(entity).(*HostSystem) + return p.buildAvailablePerfMetricsQueryResponse(p.hostMetrics, int(host.Hardware.CpuInfo.NumCpuThreads), host.Datastore[0].Value) + case "ResourcePool": + return p.buildAvailablePerfMetricsQueryResponse(p.rpMetrics, 0, "") + case "ClusterComputeResource": + if interval != 20 { + return p.buildAvailablePerfMetricsQueryResponse(p.clusterMetrics, 0, "") + } + case "Datastore": + if interval != 20 { + return p.buildAvailablePerfMetricsQueryResponse(p.datastoreMetrics, 0, "") + } + case "Datacenter": + if interval != 20 { + return p.buildAvailablePerfMetricsQueryResponse(p.datacenterMetrics, 0, "") + } + } + + // Don't know how to handle this. Return empty response. + return new(types.QueryAvailablePerfMetricResponse) +} + +func (p *PerformanceManager) QueryAvailablePerfMetric(ctx *Context, req *types.QueryAvailablePerfMetric) soap.HasFault { + body := new(methods.QueryAvailablePerfMetricBody) + body.Req = req + body.Res = p.queryAvailablePerfMetric(req.Entity, req.IntervalId) + + return body +} + +func (p *PerformanceManager) QueryPerf(ctx *Context, req *types.QueryPerf) soap.HasFault { + body := new(methods.QueryPerfBody) + body.Req = req + body.Res = new(types.QueryPerfResponse) + body.Res.Returnval = make([]types.BasePerfEntityMetricBase, len(req.QuerySpec)) + + for i, qs := range req.QuerySpec { + metrics := new(types.PerfEntityMetric) + metrics.Entity = qs.Entity + + // Get metric data for this entity type + metricData, ok := p.metricData[qs.Entity.Type] + if !ok { + body.Fault_ = Fault("", &types.InvalidArgument{ + InvalidProperty: "Entity", + }) + } + var start, end time.Time + if qs.StartTime == nil { + start = time.Now().Add(time.Duration(-365*24) * time.Hour) // Assume we have data for a year + } else { + start = *qs.StartTime + } + if qs.EndTime == nil { + end = time.Now() + } else { + end = *qs.EndTime + } + + // Generate metric series. Divide into n buckets of interval seconds + interval := qs.IntervalId + if interval == -1 || interval == 0 { + interval = 20 // TODO: Determine from entity type + } + n := 1 + int32(end.Sub(start).Seconds())/interval + if n > qs.MaxSample { + n = qs.MaxSample + } + + // Loop through each interval "tick" + metrics.SampleInfo = make([]types.PerfSampleInfo, n) + metrics.Value = make([]types.BasePerfMetricSeries, len(qs.MetricId)) + for tick := int32(0); tick < n; tick++ { + metrics.SampleInfo[tick] = types.PerfSampleInfo{Timestamp: end.Add(time.Duration(-interval*tick) * time.Second), Interval: interval} + } + + for j, mid := range qs.MetricId { + // Create list of metrics for this tick + series := &types.PerfMetricIntSeries{Value: make([]int64, n)} + series.Id = mid + points := metricData[mid.CounterId] + offset := int64(start.Unix()) / int64(interval) + + for tick := int32(0); tick < n; tick++ { + var p int64 + + // Use sample data if we have it. Otherwise, just send 0. + if len(points) > 0 { + p = points[(offset+int64(tick))%int64(len(points))] + scale := p / 5 + if scale > 0 { + // Add some gaussian noise to make the data look more "real" + p += int64(rand.NormFloat64() * float64(scale)) + if p < 0 { + p = 0 + } + } + } else { + p = 0 + } + series.Value[tick] = p + } + metrics.Value[j] = series + } + body.Res.Returnval[i] = metrics + } + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/portgroup.go b/vendor/github.com/vmware/govmomi/simulator/portgroup.go new file mode 100644 index 00000000..17832742 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/portgroup.go @@ -0,0 +1,73 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type DistributedVirtualPortgroup struct { + mo.DistributedVirtualPortgroup +} + +func (s *DistributedVirtualPortgroup) ReconfigureDVPortgroupTask(req *types.ReconfigureDVPortgroup_Task) soap.HasFault { + task := CreateTask(s, "reconfigureDvPortgroup", func(t *Task) (types.AnyType, types.BaseMethodFault) { + s.Config.DefaultPortConfig = req.Spec.DefaultPortConfig + s.Config.NumPorts = req.Spec.NumPorts + s.Config.AutoExpand = req.Spec.AutoExpand + s.Config.Type = req.Spec.Type + s.Config.Description = req.Spec.Description + s.Config.DynamicData = req.Spec.DynamicData + s.Config.Name = req.Spec.Name + s.Config.Policy = req.Spec.Policy + s.Config.PortNameFormat = req.Spec.PortNameFormat + s.Config.VmVnicNetworkResourcePoolKey = req.Spec.VmVnicNetworkResourcePoolKey + s.Config.LogicalSwitchUuid = req.Spec.LogicalSwitchUuid + s.Config.BackingType = req.Spec.BackingType + + return nil, nil + }) + + return &methods.ReconfigureDVPortgroup_TaskBody{ + Res: &types.ReconfigureDVPortgroup_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (s *DistributedVirtualPortgroup) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + task := CreateTask(s, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + vswitch := Map.Get(*s.Config.DistributedVirtualSwitch).(*DistributedVirtualSwitch) + Map.RemoveReference(vswitch, &vswitch.Portgroup, s.Reference()) + Map.removeString(vswitch, &vswitch.Summary.PortgroupName, s.Name) + + f := Map.getEntityParent(vswitch, "Folder").(*Folder) + folderRemoveChild(ctx, &f.Folder, s.Reference()) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } + +} diff --git a/vendor/github.com/vmware/govmomi/simulator/property_collector.go b/vendor/github.com/vmware/govmomi/simulator/property_collector.go new file mode 100644 index 00000000..3ca1c96b --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/property_collector.go @@ -0,0 +1,841 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "context" + "errors" + "log" + "path" + "reflect" + "strings" + "sync" + "time" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/internal" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type PropertyCollector struct { + mo.PropertyCollector + + nopLocker + updates []types.ObjectUpdate + mu sync.Mutex + cancel context.CancelFunc +} + +func NewPropertyCollector(ref types.ManagedObjectReference) object.Reference { + s := &PropertyCollector{} + s.Self = ref + return s +} + +var errMissingField = errors.New("missing field") +var errEmptyField = errors.New("empty field") + +func getObject(ctx *Context, ref types.ManagedObjectReference) (reflect.Value, bool) { + var obj mo.Reference + if ctx.Session == nil { + // Even without permissions to access an object or specific fields, RetrieveProperties + // returns an ObjectContent response as long as the object exists. See retrieveResult.add() + obj = Map.Get(ref) + } else { + obj = ctx.Session.Get(ref) + } + + if obj == nil { + return reflect.Value{}, false + } + + if ctx.Session == nil && ref.Type == "SessionManager" { + // RetrieveProperties on SessionManager without a session always returns empty, + // rather than MissingSet + Fault.NotAuthenticated for each field. + obj = &mo.SessionManager{Self: ref} + } + + // For objects that use internal types that differ from that of the vim25/mo field types. + // See EventHistoryCollector for example. + type get interface { + Get() mo.Reference + } + if o, ok := obj.(get); ok { + obj = o.Get() + } + + return getManagedObject(obj), true +} + +func getManagedObject(obj mo.Reference) reflect.Value { + rval := reflect.ValueOf(obj).Elem() + rtype := rval.Type() + + // PropertyCollector is for Managed Object types only (package mo). + // If the registry object is not in the mo package, assume it is a wrapper + // type where the first field is an embedded mo type. + // We need to dig out the mo type for PropSet.All to work properly and + // for the case where the type has a field of the same name, for example: + // mo.ResourcePool.ResourcePool + for { + if path.Base(rtype.PkgPath()) == "mo" { + break + } + if rtype.Kind() != reflect.Struct || rtype.NumField() == 0 { + log.Panicf("%#v does not have an embedded mo type", obj.Reference()) + } + rval = rval.Field(0) + rtype = rval.Type() + } + + return rval +} + +// wrapValue converts slice types to the appropriate ArrayOf type used in property collector responses. +func wrapValue(rval reflect.Value, rtype reflect.Type) interface{} { + pval := rval.Interface() + + if rval.Kind() == reflect.Slice { + // Convert slice to types.ArrayOf* + switch v := pval.(type) { + case []string: + pval = &types.ArrayOfString{ + String: v, + } + case []uint8: + pval = &types.ArrayOfByte{ + Byte: v, + } + case []int16: + pval = &types.ArrayOfShort{ + Short: v, + } + case []int32: + pval = &types.ArrayOfInt{ + Int: v, + } + case []int64: + pval = &types.ArrayOfLong{ + Long: v, + } + default: + kind := rtype.Elem().Name() + // Remove govmomi interface prefix name + kind = strings.TrimPrefix(kind, "Base") + akind, _ := defaultMapType("ArrayOf" + kind) + a := reflect.New(akind) + a.Elem().FieldByName(kind).Set(rval) + pval = a.Interface() + } + } + + return pval +} + +func fieldValueInterface(f reflect.StructField, rval reflect.Value) interface{} { + if rval.Kind() == reflect.Ptr { + rval = rval.Elem() + } + + return wrapValue(rval, f.Type) +} + +func fieldValue(rval reflect.Value, p string) (interface{}, error) { + var value interface{} + fields := strings.Split(p, ".") + + for i, name := range fields { + kind := rval.Type().Kind() + + if kind == reflect.Interface { + if rval.IsNil() { + continue + } + rval = rval.Elem() + kind = rval.Type().Kind() + } + + if kind == reflect.Ptr { + if rval.IsNil() { + continue + } + rval = rval.Elem() + } + + x := ucFirst(name) + val := rval.FieldByName(x) + if !val.IsValid() { + return nil, errMissingField + } + + if isEmpty(val) { + return nil, errEmptyField + } + + if i == len(fields)-1 { + ftype, _ := rval.Type().FieldByName(x) + value = fieldValueInterface(ftype, val) + break + } + + rval = val + } + + return value, nil +} + +func fieldRefs(f interface{}) []types.ManagedObjectReference { + switch fv := f.(type) { + case types.ManagedObjectReference: + return []types.ManagedObjectReference{fv} + case *types.ArrayOfManagedObjectReference: + return fv.ManagedObjectReference + case nil: + // empty field + } + + return nil +} + +func isEmpty(rval reflect.Value) bool { + switch rval.Kind() { + case reflect.Ptr: + return rval.IsNil() + case reflect.String: + return rval.Len() == 0 + } + + return false +} + +func isTrue(v *bool) bool { + return v != nil && *v +} + +func isFalse(v *bool) bool { + return v == nil || !*v +} + +func lcFirst(s string) string { + return strings.ToLower(s[:1]) + s[1:] +} + +func ucFirst(s string) string { + return strings.ToUpper(s[:1]) + s[1:] +} + +type retrieveResult struct { + *types.RetrieveResult + req *types.RetrievePropertiesEx + collected map[types.ManagedObjectReference]bool + specs map[string]*types.TraversalSpec +} + +func (rr *retrieveResult) add(ctx *Context, name string, val types.AnyType, content *types.ObjectContent) { + if ctx.Session != nil { + content.PropSet = append(content.PropSet, types.DynamicProperty{ + Name: name, + Val: val, + }) + return + } + + content.MissingSet = append(content.MissingSet, types.MissingProperty{ + Path: name, + Fault: types.LocalizedMethodFault{Fault: &types.NotAuthenticated{ + NoPermission: types.NoPermission{ + Object: content.Obj, + PrivilegeId: "System.Read", + }}, + }, + }) +} + +func (rr *retrieveResult) collectAll(ctx *Context, rval reflect.Value, rtype reflect.Type, content *types.ObjectContent) { + for i := 0; i < rval.NumField(); i++ { + val := rval.Field(i) + + f := rtype.Field(i) + + if isEmpty(val) || f.Name == "Self" { + continue + } + + if f.Anonymous { + // recurse into embedded field + rr.collectAll(ctx, val, f.Type, content) + continue + } + + rr.add(ctx, lcFirst(f.Name), fieldValueInterface(f, val), content) + } +} + +func (rr *retrieveResult) collectFields(ctx *Context, rval reflect.Value, fields []string, content *types.ObjectContent) { + seen := make(map[string]bool) + + for i := range content.PropSet { + seen[content.PropSet[i].Name] = true // mark any already collected via embedded field + } + + for _, name := range fields { + if seen[name] { + // rvc 'ls' includes the "name" property twice, then fails with no error message or stack trace + // in RbVmomi::VIM::ObjectContent.to_hash_uncached when it sees the 2nd "name" property. + continue + } + seen[name] = true + + val, err := fieldValue(rval, name) + + switch err { + case nil, errEmptyField: + rr.add(ctx, name, val, content) + case errMissingField: + content.MissingSet = append(content.MissingSet, types.MissingProperty{ + Path: name, + Fault: types.LocalizedMethodFault{Fault: &types.InvalidProperty{ + Name: name, + }}, + }) + } + } +} + +func (rr *retrieveResult) collect(ctx *Context, ref types.ManagedObjectReference) { + if rr.collected[ref] { + return + } + + content := types.ObjectContent{ + Obj: ref, + } + + rval, ok := getObject(ctx, ref) + if !ok { + // Possible if a test uses Map.Remove instead of Destroy_Task + log.Printf("object %s no longer exists", ref) + return + } + + rtype := rval.Type() + match := false + + for _, spec := range rr.req.SpecSet { + for _, p := range spec.PropSet { + if p.Type != ref.Type { + // e.g. ManagedEntity, ComputeResource + field, ok := rtype.FieldByName(p.Type) + + if !(ok && field.Anonymous) { + continue + } + } + match = true + if isTrue(p.All) { + rr.collectAll(ctx, rval, rtype, &content) + continue + } + + rr.collectFields(ctx, rval, p.PathSet, &content) + } + } + + if match { + rr.Objects = append(rr.Objects, content) + } + + rr.collected[ref] = true +} + +func (rr *retrieveResult) selectSet(ctx *Context, obj reflect.Value, s []types.BaseSelectionSpec, refs *[]types.ManagedObjectReference) types.BaseMethodFault { + for _, ss := range s { + ts, ok := ss.(*types.TraversalSpec) + if ok { + if ts.Name != "" { + rr.specs[ts.Name] = ts + } + } + } + + for _, ss := range s { + ts, ok := ss.(*types.TraversalSpec) + if !ok { + ts = rr.specs[ss.GetSelectionSpec().Name] + if ts == nil { + return &types.InvalidArgument{InvalidProperty: "undefined TraversalSpec name"} + } + } + + f, _ := fieldValue(obj, ts.Path) + + for _, ref := range fieldRefs(f) { + if isFalse(ts.Skip) { + *refs = append(*refs, ref) + } + + rval, ok := getObject(ctx, ref) + if ok { + if err := rr.selectSet(ctx, rval, ts.SelectSet, refs); err != nil { + return err + } + } + } + } + + return nil +} + +func (pc *PropertyCollector) collect(ctx *Context, r *types.RetrievePropertiesEx) (*types.RetrieveResult, types.BaseMethodFault) { + var refs []types.ManagedObjectReference + + rr := &retrieveResult{ + RetrieveResult: &types.RetrieveResult{}, + req: r, + collected: make(map[types.ManagedObjectReference]bool), + specs: make(map[string]*types.TraversalSpec), + } + + // Select object references + for _, spec := range r.SpecSet { + for _, o := range spec.ObjectSet { + var rval reflect.Value + ok := false + ctx.WithLock(o.Obj, func() { rval, ok = getObject(ctx, o.Obj) }) + if !ok { + if isFalse(spec.ReportMissingObjectsInResults) { + return nil, &types.ManagedObjectNotFound{Obj: o.Obj} + } + continue + } + + if o.SelectSet == nil || isFalse(o.Skip) { + refs = append(refs, o.Obj) + } + + if err := rr.selectSet(ctx, rval, o.SelectSet, &refs); err != nil { + return nil, err + } + } + } + + for _, ref := range refs { + ctx.WithLock(ref, func() { rr.collect(ctx, ref) }) + } + + return rr.RetrieveResult, nil +} + +func (pc *PropertyCollector) CreateFilter(ctx *Context, c *types.CreateFilter) soap.HasFault { + body := &methods.CreateFilterBody{} + + filter := &PropertyFilter{ + pc: pc, + refs: make(map[types.ManagedObjectReference]struct{}), + } + filter.PartialUpdates = c.PartialUpdates + filter.Spec = c.Spec + + pc.Filter = append(pc.Filter, ctx.Session.Put(filter).Reference()) + + body.Res = &types.CreateFilterResponse{ + Returnval: filter.Self, + } + + return body +} + +func (pc *PropertyCollector) CreatePropertyCollector(ctx *Context, c *types.CreatePropertyCollector) soap.HasFault { + body := &methods.CreatePropertyCollectorBody{} + + cpc := &PropertyCollector{} + + body.Res = &types.CreatePropertyCollectorResponse{ + Returnval: ctx.Session.Put(cpc).Reference(), + } + + return body +} + +func (pc *PropertyCollector) DestroyPropertyCollector(ctx *Context, c *types.DestroyPropertyCollector) soap.HasFault { + pc.CancelWaitForUpdates(&types.CancelWaitForUpdates{This: c.This}) + + body := &methods.DestroyPropertyCollectorBody{} + + for _, ref := range pc.Filter { + filter := ctx.Session.Get(ref).(*PropertyFilter) + filter.DestroyPropertyFilter(ctx, &types.DestroyPropertyFilter{This: ref}) + } + + ctx.Session.Remove(c.This) + ctx.Map.Remove(c.This) + + body.Res = &types.DestroyPropertyCollectorResponse{} + + return body +} + +func (pc *PropertyCollector) RetrievePropertiesEx(ctx *Context, r *types.RetrievePropertiesEx) soap.HasFault { + body := &methods.RetrievePropertiesExBody{} + + res, fault := pc.collect(ctx, r) + + if fault != nil { + switch fault.(type) { + case *types.ManagedObjectNotFound: + body.Fault_ = Fault("The object has already been deleted or has not been completely created", fault) + default: + body.Fault_ = Fault("", fault) + } + } else { + objects := res.Objects[:0] + for _, o := range res.Objects { + propSet := o.PropSet[:0] + for _, p := range o.PropSet { + if p.Val != nil { + propSet = append(propSet, p) + } + } + o.PropSet = propSet + + objects = append(objects, o) + } + res.Objects = objects + body.Res = &types.RetrievePropertiesExResponse{ + Returnval: res, + } + } + + return body +} + +// RetrieveProperties is deprecated, but govmomi is still using it at the moment. +func (pc *PropertyCollector) RetrieveProperties(ctx *Context, r *types.RetrieveProperties) soap.HasFault { + body := &methods.RetrievePropertiesBody{} + + res := pc.RetrievePropertiesEx(ctx, &types.RetrievePropertiesEx{ + This: r.This, + SpecSet: r.SpecSet, + }) + + if res.Fault() != nil { + body.Fault_ = res.Fault() + } else { + body.Res = &types.RetrievePropertiesResponse{ + Returnval: res.(*methods.RetrievePropertiesExBody).Res.Returnval.Objects, + } + } + + return body +} + +func (pc *PropertyCollector) CancelWaitForUpdates(r *types.CancelWaitForUpdates) soap.HasFault { + pc.mu.Lock() + if pc.cancel != nil { + pc.cancel() + } + pc.mu.Unlock() + + return &methods.CancelWaitForUpdatesBody{Res: new(types.CancelWaitForUpdatesResponse)} +} + +func (pc *PropertyCollector) update(u types.ObjectUpdate) { + pc.mu.Lock() + pc.updates = append(pc.updates, u) + pc.mu.Unlock() +} + +func (pc *PropertyCollector) PutObject(o mo.Reference) { + pc.update(types.ObjectUpdate{ + Obj: o.Reference(), + Kind: types.ObjectUpdateKindEnter, + ChangeSet: nil, + }) +} + +func (pc *PropertyCollector) UpdateObject(o mo.Reference, changes []types.PropertyChange) { + pc.update(types.ObjectUpdate{ + Obj: o.Reference(), + Kind: types.ObjectUpdateKindModify, + ChangeSet: changes, + }) +} + +func (pc *PropertyCollector) RemoveObject(ref types.ManagedObjectReference) { + pc.update(types.ObjectUpdate{ + Obj: ref, + Kind: types.ObjectUpdateKindLeave, + ChangeSet: nil, + }) +} + +func (pc *PropertyCollector) apply(ctx *Context, update *types.UpdateSet) types.BaseMethodFault { + for _, ref := range pc.Filter { + filter := ctx.Session.Get(ref).(*PropertyFilter) + + r := &types.RetrievePropertiesEx{} + r.SpecSet = append(r.SpecSet, filter.Spec) + + res, fault := pc.collect(ctx, r) + if fault != nil { + return fault + } + + fu := types.PropertyFilterUpdate{ + Filter: ref, + } + + for _, o := range res.Objects { + if _, ok := filter.refs[o.Obj]; ok { + continue + } + filter.refs[o.Obj] = struct{}{} + ou := types.ObjectUpdate{ + Obj: o.Obj, + Kind: types.ObjectUpdateKindEnter, + } + + for _, p := range o.PropSet { + ou.ChangeSet = append(ou.ChangeSet, types.PropertyChange{ + Op: types.PropertyChangeOpAssign, + Name: p.Name, + Val: p.Val, + }) + } + + fu.ObjectSet = append(fu.ObjectSet, ou) + } + + if len(fu.ObjectSet) != 0 { + update.FilterSet = append(update.FilterSet, fu) + } + } + return nil +} + +func (pc *PropertyCollector) WaitForUpdatesEx(ctx *Context, r *types.WaitForUpdatesEx) soap.HasFault { + wait, cancel := context.WithCancel(context.Background()) + oneUpdate := false + if r.Options != nil { + if max := r.Options.MaxWaitSeconds; max != nil { + // A value of 0 causes WaitForUpdatesEx to do one update calculation and return any results. + oneUpdate = (*max == 0) + if *max > 0 { + wait, cancel = context.WithTimeout(context.Background(), time.Second*time.Duration(*max)) + } + } + } + pc.mu.Lock() + pc.cancel = cancel + pc.mu.Unlock() + + body := &methods.WaitForUpdatesExBody{} + + set := &types.UpdateSet{ + Version: r.Version, + } + + body.Res = &types.WaitForUpdatesExResponse{ + Returnval: set, + } + + apply := func() bool { + if fault := pc.apply(ctx, set); fault != nil { + body.Fault_ = Fault("", fault) + body.Res = nil + return false + } + return true + } + + if r.Version == "" { + apply() // Collect current state + set.Version = "-" // Next request with Version set will wait via loop below + ctx.Map.AddHandler(pc) // Listen for create, update, delete of managed objects + return body + } + + ticker := time.NewTicker(250 * time.Millisecond) // allow for updates to accumulate + defer ticker.Stop() + // Start the wait loop, returning on one of: + // - Client calls CancelWaitForUpdates + // - MaxWaitSeconds was specified and has been exceeded + // - We have updates to send to the client + for { + select { + case <-wait.Done(): + body.Res.Returnval = nil + switch wait.Err() { + case context.Canceled: + log.Printf("%s: WaitForUpdates canceled", pc.Self) + body.Fault_ = Fault("", new(types.RequestCanceled)) // CancelWaitForUpdates was called + body.Res = nil + case context.DeadlineExceeded: + log.Printf("%s: WaitForUpdates MaxWaitSeconds exceeded", pc.Self) + } + + return body + case <-ticker.C: + pc.mu.Lock() + updates := pc.updates + pc.updates = nil // clear updates collected by the managed object CRUD listeners + pc.mu.Unlock() + if len(updates) == 0 { + if oneUpdate { + body.Res.Returnval = nil + return body + } + continue + } + + log.Printf("%s: applying %d updates to %d filters", pc.Self, len(updates), len(pc.Filter)) + + for _, f := range pc.Filter { + filter := ctx.Session.Get(f).(*PropertyFilter) + fu := types.PropertyFilterUpdate{Filter: f} + + for _, update := range updates { + switch update.Kind { + case types.ObjectUpdateKindEnter: // Create + if !apply() { + return body + } + case types.ObjectUpdateKindModify: // Update + log.Printf("%s has %d changes", update.Obj, len(update.ChangeSet)) + if !apply() { // An update may apply to collector traversal specs + return body + } + if _, ok := filter.refs[update.Obj]; ok { + // This object has already been applied by the filter, + // now check if the property spec applies for this update. + update = filter.apply(ctx, update) + if len(update.ChangeSet) != 0 { + fu.ObjectSet = append(fu.ObjectSet, update) + } + } + case types.ObjectUpdateKindLeave: // Delete + if _, ok := filter.refs[update.Obj]; !ok { + continue + } + delete(filter.refs, update.Obj) + fu.ObjectSet = append(fu.ObjectSet, update) + } + } + + if len(fu.ObjectSet) != 0 { + set.FilterSet = append(set.FilterSet, fu) + } + } + if len(set.FilterSet) != 0 { + return body + } + if oneUpdate { + body.Res.Returnval = nil + return body + } + } + } +} + +// WaitForUpdates is deprecated, but pyvmomi is still using it at the moment. +func (pc *PropertyCollector) WaitForUpdates(ctx *Context, r *types.WaitForUpdates) soap.HasFault { + body := &methods.WaitForUpdatesBody{} + + res := pc.WaitForUpdatesEx(ctx, &types.WaitForUpdatesEx{ + This: r.This, + Version: r.Version, + }) + + if res.Fault() != nil { + body.Fault_ = res.Fault() + } else { + body.Res = &types.WaitForUpdatesResponse{ + Returnval: *res.(*methods.WaitForUpdatesExBody).Res.Returnval, + } + } + + return body +} + +// Fetch is not documented in the vSphere SDK, but ovftool depends on it. +// A Fetch request is converted to a RetrievePropertiesEx method call by vcsim. +func (pc *PropertyCollector) Fetch(ctx *Context, req *internal.Fetch) soap.HasFault { + body := new(internal.FetchBody) + + if req.This == vim25.ServiceInstance && req.Prop == "content" { + content := ctx.Map.content() + // ovftool uses API version for 6.0 and fails when these fields are non-nil; TODO + content.VStorageObjectManager = nil + content.HostProfileManager = nil + content.HostSpecManager = nil + content.CryptoManager = nil + content.HostProfileManager = nil + content.HealthUpdateManager = nil + content.FailoverClusterConfigurator = nil + content.FailoverClusterManager = nil + body.Res = &internal.FetchResponse{ + Returnval: content, + } + return body + } + + if ctx.Map.Get(req.This) == nil { + // The Fetch method supports use of super class types, this is a quick hack to support the cases used by ovftool + switch req.This.Type { + case "ManagedEntity": + for o := range ctx.Map.objects { + if o.Value == req.This.Value { + req.This.Type = o.Type + break + } + } + case "ComputeResource": + req.This.Type = "Cluster" + req.This.Type + } + } + + res := pc.RetrievePropertiesEx(ctx, &types.RetrievePropertiesEx{ + SpecSet: []types.PropertyFilterSpec{{ + PropSet: []types.PropertySpec{{ + Type: req.This.Type, + PathSet: []string{req.Prop}, + }}, + ObjectSet: []types.ObjectSpec{{ + Obj: req.This, + }}, + }}}) + + if res.Fault() != nil { + return res + } + + obj := res.(*methods.RetrievePropertiesExBody).Res.Returnval.Objects[0] + if len(obj.PropSet) == 0 { + fault := obj.MissingSet[0].Fault + body.Fault_ = Fault(fault.LocalizedMessage, fault.Fault) + return body + } + + body.Res = &internal.FetchResponse{ + Returnval: obj.PropSet[0].Val, + } + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/property_filter.go b/vendor/github.com/vmware/govmomi/simulator/property_filter.go new file mode 100644 index 00000000..b7a4af5d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/property_filter.go @@ -0,0 +1,108 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "reflect" + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type PropertyFilter struct { + mo.PropertyFilter + + pc *PropertyCollector + refs map[types.ManagedObjectReference]struct{} +} + +func (f *PropertyFilter) DestroyPropertyFilter(ctx *Context, c *types.DestroyPropertyFilter) soap.HasFault { + body := &methods.DestroyPropertyFilterBody{} + + RemoveReference(&f.pc.Filter, c.This) + + ctx.Session.Remove(c.This) + + body.Res = &types.DestroyPropertyFilterResponse{} + + return body +} + +// matches returns true if the change matches one of the filter Spec.PropSet +func (f *PropertyFilter) matches(ctx *Context, ref types.ManagedObjectReference, change *types.PropertyChange) bool { + var kind reflect.Type + + for _, p := range f.Spec.PropSet { + if p.Type != ref.Type { + if kind == nil { + kind = getManagedObject(ctx.Map.Get(ref)).Type() + } + // e.g. ManagedEntity, ComputeResource + field, ok := kind.FieldByName(p.Type) + if !(ok && field.Anonymous) { + continue + } + } + + if isTrue(p.All) { + return true + } + + for _, name := range p.PathSet { + if name == change.Name { + return true + } + + // strings.HasPrefix("runtime.powerState", "runtime") == parent field matches + if strings.HasPrefix(change.Name, name) { + if obj := ctx.Map.Get(ref); obj != nil { // object may have since been deleted + change.Name = name + change.Val, _ = fieldValue(reflect.ValueOf(obj), name) + } + + return true + } + } + } + + return false +} + +// apply the PropertyFilter.Spec to the given ObjectUpdate +func (f *PropertyFilter) apply(ctx *Context, change types.ObjectUpdate) types.ObjectUpdate { + parents := make(map[string]bool) + set := change.ChangeSet + change.ChangeSet = nil + + for i, p := range set { + if f.matches(ctx, change.Obj, &p) { + if p.Name != set[i].Name { + // update matches a parent field from the spec. + if parents[p.Name] { + continue // only return 1 instance of the parent + } + parents[p.Name] = true + } + change.ChangeSet = append(change.ChangeSet, p) + } + } + + return change +} diff --git a/vendor/github.com/vmware/govmomi/simulator/registry.go b/vendor/github.com/vmware/govmomi/simulator/registry.go new file mode 100644 index 00000000..22d419e6 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/registry.go @@ -0,0 +1,558 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "encoding/json" + "fmt" + "os" + "reflect" + "strings" + "sync" + "sync/atomic" + + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +// This is a map from a reference type name to a reference value name prefix. +// It's a convention that VirtualCenter follows. The map is not complete, but +// it should cover the most popular objects. +var refValueMap = map[string]string{ + "DistributedVirtualPortgroup": "dvportgroup", + "EnvironmentBrowser": "envbrowser", + "HostSystem": "host", + "ResourcePool": "resgroup", + "VirtualMachine": "vm", + "VirtualMachineSnapshot": "snapshot", + "VmwareDistributedVirtualSwitch": "dvs", + "DistributedVirtualSwitch": "dvs", +} + +// Map is the default Registry instance. +var Map = NewRegistry() + +// RegisterObject interface supports callbacks when objects are created, updated and deleted from the Registry +type RegisterObject interface { + mo.Reference + PutObject(mo.Reference) + UpdateObject(mo.Reference, []types.PropertyChange) + RemoveObject(types.ManagedObjectReference) +} + +// Registry manages a map of mo.Reference objects +type Registry struct { + counter int64 // Keep first to ensure 64-bit alignment + m sync.Mutex + objects map[types.ManagedObjectReference]mo.Reference + handlers map[types.ManagedObjectReference]RegisterObject + locks map[types.ManagedObjectReference]sync.Locker + + Namespace string + Path string + + tagManager tagManager +} + +// tagManager is an interface to simplify internal interaction with the vapi tag manager simulator. +type tagManager interface { + AttachedObjects(types.VslmTagEntry) ([]types.ManagedObjectReference, types.BaseMethodFault) + AttachedTags(id types.ManagedObjectReference) ([]types.VslmTagEntry, types.BaseMethodFault) + AttachTag(types.ManagedObjectReference, types.VslmTagEntry) types.BaseMethodFault + DetachTag(types.ManagedObjectReference, types.VslmTagEntry) types.BaseMethodFault +} + +// NewRegistry creates a new instances of Registry +func NewRegistry() *Registry { + r := &Registry{ + objects: make(map[types.ManagedObjectReference]mo.Reference), + handlers: make(map[types.ManagedObjectReference]RegisterObject), + locks: make(map[types.ManagedObjectReference]sync.Locker), + + Namespace: vim25.Namespace, + Path: vim25.Path, + } + + return r +} + +func (r *Registry) typeFunc(name string) (reflect.Type, bool) { + if r.Namespace != "" && r.Namespace != vim25.Namespace { + if kind, ok := defaultMapType(r.Namespace + ":" + name); ok { + return kind, ok + } + } + return defaultMapType(name) +} + +// typeName returns the type of the given object. +func typeName(item mo.Reference) string { + return reflect.TypeOf(item).Elem().Name() +} + +// valuePrefix returns the value name prefix of a given object +func valuePrefix(typeName string) string { + if v, ok := refValueMap[typeName]; ok { + return v + } + + return strings.ToLower(typeName) +} + +// newReference returns a new MOR, where Type defaults to type of the given item +// and Value defaults to a unique id for the given type. +func (r *Registry) newReference(item mo.Reference) types.ManagedObjectReference { + ref := item.Reference() + + if ref.Type == "" { + ref.Type = typeName(item) + } + + if ref.Value == "" { + n := atomic.AddInt64(&r.counter, 1) + ref.Value = fmt.Sprintf("%s-%d", valuePrefix(ref.Type), n) + } + + return ref +} + +func (r *Registry) setReference(item mo.Reference, ref types.ManagedObjectReference) { + // mo.Reference() returns a value, not a pointer so use reflect to set the Self field + reflect.ValueOf(item).Elem().FieldByName("Self").Set(reflect.ValueOf(ref)) +} + +// AddHandler adds a RegisterObject handler to the Registry. +func (r *Registry) AddHandler(h RegisterObject) { + r.m.Lock() + r.handlers[h.Reference()] = h + r.m.Unlock() +} + +// NewEntity sets Entity().Self with a new, unique Value. +// Useful for creating object instances from templates. +func (r *Registry) NewEntity(item mo.Entity) mo.Entity { + e := item.Entity() + e.Self.Value = "" + e.Self = r.newReference(item) + return item +} + +// PutEntity sets item.Parent to that of parent.Self before adding item to the Registry. +func (r *Registry) PutEntity(parent mo.Entity, item mo.Entity) mo.Entity { + e := item.Entity() + + if parent != nil { + e.Parent = &parent.Entity().Self + } + + r.Put(item) + + return item +} + +// Get returns the object for the given reference. +func (r *Registry) Get(ref types.ManagedObjectReference) mo.Reference { + r.m.Lock() + defer r.m.Unlock() + + return r.objects[ref] +} + +// Any returns the first instance of entity type specified by kind. +func (r *Registry) Any(kind string) mo.Entity { + r.m.Lock() + defer r.m.Unlock() + + for ref, val := range r.objects { + if ref.Type == kind { + return val.(mo.Entity) + } + } + + return nil +} + +// All returns all entities of type specified by kind. +// If kind is empty - all entities will be returned. +func (r *Registry) All(kind string) []mo.Entity { + r.m.Lock() + defer r.m.Unlock() + + var entities []mo.Entity + for ref, val := range r.objects { + if kind == "" || ref.Type == kind { + if e, ok := val.(mo.Entity); ok { + entities = append(entities, e) + } + } + } + + return entities +} + +// applyHandlers calls the given func for each r.handlers +func (r *Registry) applyHandlers(f func(o RegisterObject)) { + r.m.Lock() + handlers := make([]RegisterObject, 0, len(r.handlers)) + for _, handler := range r.handlers { + handlers = append(handlers, handler) + } + r.m.Unlock() + + for i := range handlers { + f(handlers[i]) + } +} + +// Put adds a new object to Registry, generating a ManagedObjectReference if not already set. +func (r *Registry) Put(item mo.Reference) mo.Reference { + r.m.Lock() + + ref := item.Reference() + if ref.Type == "" || ref.Value == "" { + ref = r.newReference(item) + r.setReference(item, ref) + } + + if me, ok := item.(mo.Entity); ok { + me.Entity().ConfigStatus = types.ManagedEntityStatusGreen + me.Entity().OverallStatus = types.ManagedEntityStatusGreen + me.Entity().EffectiveRole = []int32{-1} // Admin + } + + r.objects[ref] = item + + r.m.Unlock() + + r.applyHandlers(func(o RegisterObject) { + o.PutObject(item) + }) + + return item +} + +// Remove removes an object from the Registry. +func (r *Registry) Remove(item types.ManagedObjectReference) { + r.applyHandlers(func(o RegisterObject) { + o.RemoveObject(item) + }) + + r.m.Lock() + delete(r.objects, item) + delete(r.handlers, item) + delete(r.locks, item) + r.m.Unlock() +} + +// Update dispatches object property changes to RegisterObject handlers, +// such as any PropertyCollector instances with in-progress WaitForUpdates calls. +// The changes are also applied to the given object via mo.ApplyPropertyChange, +// so there is no need to set object fields directly. +func (r *Registry) Update(obj mo.Reference, changes []types.PropertyChange) { + for i := range changes { + if changes[i].Op == "" { + changes[i].Op = types.PropertyChangeOpAssign + } + if changes[i].Val != nil { + rval := reflect.ValueOf(changes[i].Val) + changes[i].Val = wrapValue(rval, rval.Type()) + } + } + + val := getManagedObject(obj).Addr().Interface().(mo.Reference) + + mo.ApplyPropertyChange(val, changes) + + r.applyHandlers(func(o RegisterObject) { + o.UpdateObject(val, changes) + }) +} + +// getEntityParent traverses up the inventory and returns the first object of type kind. +// If no object of type kind is found, the method will panic when it reaches the +// inventory root Folder where the Parent field is nil. +func (r *Registry) getEntityParent(item mo.Entity, kind string) mo.Entity { + var ok bool + for { + parent := item.Entity().Parent + + item, ok = r.Get(*parent).(mo.Entity) + if !ok { + return nil + } + if item.Reference().Type == kind { + return item + } + } +} + +// getEntityDatacenter returns the Datacenter containing the given item +func (r *Registry) getEntityDatacenter(item mo.Entity) *Datacenter { + dc, ok := r.getEntityParent(item, "Datacenter").(*Datacenter) + if ok { + return dc + } + return nil +} + +func (r *Registry) getEntityFolder(item mo.Entity, kind string) *mo.Folder { + dc := Map.getEntityDatacenter(item) + + var ref types.ManagedObjectReference + + switch kind { + case "datastore": + ref = dc.DatastoreFolder + } + + folder, _ := asFolderMO(r.Get(ref)) + + // If Model was created with Folder option, use that Folder; else use top-level folder + for _, child := range folder.ChildEntity { + if child.Type == "Folder" { + folder, _ = asFolderMO(Map.Get(child)) + break + } + } + + return folder +} + +// getEntityComputeResource returns the ComputeResource parent for the given item. +// A ResourcePool for example may have N Parents of type ResourcePool, but the top +// most Parent pool is always a ComputeResource child. +func (r *Registry) getEntityComputeResource(item mo.Entity) mo.Entity { + for { + parent := item.Entity().Parent + + item = r.Get(*parent).(mo.Entity) + + switch item.Reference().Type { + case "ComputeResource": + return item + case "ClusterComputeResource": + return item + } + } +} + +// FindByName returns the first mo.Entity of the given refs whose Name field is equal to the given name. +// If there is no match, nil is returned. +// This method is useful for cases where objects are required to have a unique name, such as Datastore with +// a HostStorageSystem or HostSystem within a ClusterComputeResource. +func (r *Registry) FindByName(name string, refs []types.ManagedObjectReference) mo.Entity { + for _, ref := range refs { + if e, ok := r.Get(ref).(mo.Entity); ok { + if name == e.Entity().Name { + return e + } + } + } + + return nil +} + +// FindReference returns the 1st match found in refs, or nil if not found. +func FindReference(refs []types.ManagedObjectReference, match ...types.ManagedObjectReference) *types.ManagedObjectReference { + for _, ref := range refs { + for _, m := range match { + if ref == m { + return &ref + } + } + } + + return nil +} + +// AppendReference appends the given refs to field. +func (r *Registry) AppendReference(obj mo.Reference, field *[]types.ManagedObjectReference, ref ...types.ManagedObjectReference) { + r.WithLock(obj, func() { + *field = append(*field, ref...) + }) +} + +// AddReference appends ref to field if not already in the given field. +func (r *Registry) AddReference(obj mo.Reference, field *[]types.ManagedObjectReference, ref types.ManagedObjectReference) { + r.WithLock(obj, func() { + if FindReference(*field, ref) == nil { + *field = append(*field, ref) + } + }) +} + +// RemoveReference removes ref from the given field. +func RemoveReference(field *[]types.ManagedObjectReference, ref types.ManagedObjectReference) { + for i, r := range *field { + if r == ref { + *field = append((*field)[:i], (*field)[i+1:]...) + break + } + } +} + +// RemoveReference removes ref from the given field. +func (r *Registry) RemoveReference(obj mo.Reference, field *[]types.ManagedObjectReference, ref types.ManagedObjectReference) { + r.WithLock(obj, func() { + RemoveReference(field, ref) + }) +} + +func (r *Registry) removeString(obj mo.Reference, field *[]string, val string) { + r.WithLock(obj, func() { + for i, name := range *field { + if name == val { + *field = append((*field)[:i], (*field)[i+1:]...) + break + } + } + }) +} + +func (r *Registry) content() types.ServiceContent { + return r.Get(vim25.ServiceInstance).(*ServiceInstance).Content +} + +// IsESX returns true if this Registry maps an ESX model +func (r *Registry) IsESX() bool { + return r.content().About.ApiType == "HostAgent" +} + +// IsVPX returns true if this Registry maps a VPX model +func (r *Registry) IsVPX() bool { + return !r.IsESX() +} + +// SearchIndex returns the SearchIndex singleton +func (r *Registry) SearchIndex() *SearchIndex { + return r.Get(r.content().SearchIndex.Reference()).(*SearchIndex) +} + +// EventManager returns the EventManager singleton +func (r *Registry) EventManager() *EventManager { + return r.Get(r.content().EventManager.Reference()).(*EventManager) +} + +// FileManager returns the FileManager singleton +func (r *Registry) FileManager() *FileManager { + return r.Get(r.content().FileManager.Reference()).(*FileManager) +} + +type VirtualDiskManagerInterface interface { + mo.Reference + MO() mo.VirtualDiskManager + CreateVirtualDiskTask(*Context, *types.CreateVirtualDisk_Task) soap.HasFault + DeleteVirtualDiskTask(*Context, *types.DeleteVirtualDisk_Task) soap.HasFault + MoveVirtualDiskTask(*Context, *types.MoveVirtualDisk_Task) soap.HasFault + CopyVirtualDiskTask(*Context, *types.CopyVirtualDisk_Task) soap.HasFault + QueryVirtualDiskUuid(*Context, *types.QueryVirtualDiskUuid) soap.HasFault + SetVirtualDiskUuid(*Context, *types.SetVirtualDiskUuid) soap.HasFault +} + +// VirtualDiskManager returns the VirtualDiskManager singleton +func (r *Registry) VirtualDiskManager() VirtualDiskManagerInterface { + return r.Get(r.content().VirtualDiskManager.Reference()).(VirtualDiskManagerInterface) +} + +// ViewManager returns the ViewManager singleton +func (r *Registry) ViewManager() *ViewManager { + return r.Get(r.content().ViewManager.Reference()).(*ViewManager) +} + +// UserDirectory returns the UserDirectory singleton +func (r *Registry) UserDirectory() *UserDirectory { + return r.Get(r.content().UserDirectory.Reference()).(*UserDirectory) +} + +// SessionManager returns the SessionManager singleton +func (r *Registry) SessionManager() *SessionManager { + return r.Get(r.content().SessionManager.Reference()).(*SessionManager) +} + +// OptionManager returns the OptionManager singleton +func (r *Registry) OptionManager() *OptionManager { + return r.Get(r.content().Setting.Reference()).(*OptionManager) +} + +// CustomFieldsManager returns CustomFieldsManager singleton +func (r *Registry) CustomFieldsManager() *CustomFieldsManager { + return r.Get(r.content().CustomFieldsManager.Reference()).(*CustomFieldsManager) +} + +func (r *Registry) MarshalJSON() ([]byte, error) { + r.m.Lock() + defer r.m.Unlock() + + vars := struct { + Objects int + Locks int + }{ + len(r.objects), + len(r.locks), + } + + return json.Marshal(vars) +} + +func (r *Registry) locker(obj mo.Reference) sync.Locker { + var ref types.ManagedObjectReference + + switch x := obj.(type) { + case types.ManagedObjectReference: + ref = x + obj = r.Get(ref) // to check for sync.Locker + case *types.ManagedObjectReference: + ref = *x + obj = r.Get(ref) // to check for sync.Locker + default: + ref = obj.Reference() + } + + if mu, ok := obj.(sync.Locker); ok { + return mu + } + + r.m.Lock() + mu, ok := r.locks[ref] + if !ok { + mu = new(sync.Mutex) + r.locks[ref] = mu + } + r.m.Unlock() + + return mu +} + +var enableLocker = os.Getenv("VCSIM_LOCKER") != "false" + +// WithLock holds a lock for the given object while then given function is run. +func (r *Registry) WithLock(obj mo.Reference, f func()) { + if enableLocker { + mu := r.locker(obj) + mu.Lock() + defer mu.Unlock() + } + f() +} + +// nopLocker can be embedded to opt-out of auto-locking (see Registry.WithLock) +type nopLocker struct{} + +func (*nopLocker) Lock() {} +func (*nopLocker) Unlock() {} diff --git a/vendor/github.com/vmware/govmomi/simulator/resource_pool.go b/vendor/github.com/vmware/govmomi/simulator/resource_pool.go new file mode 100644 index 00000000..aefe9b7c --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/resource_pool.go @@ -0,0 +1,402 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "net/url" + "path" + "strings" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type ResourcePool struct { + mo.ResourcePool +} + +func asResourcePoolMO(obj mo.Reference) (*mo.ResourcePool, bool) { + rp, ok := getManagedObject(obj).Addr().Interface().(*mo.ResourcePool) + return rp, ok +} + +func NewResourcePool() *ResourcePool { + pool := &ResourcePool{ + ResourcePool: esx.ResourcePool, + } + + if Map.IsVPX() { + pool.DisabledMethod = nil // Enable VApp methods for VC + } + + return pool +} + +func allResourceFieldsSet(info *types.ResourceAllocationInfo) bool { + return info.Reservation != nil && + info.Limit != nil && + info.ExpandableReservation != nil && + info.Shares != nil +} + +func allResourceFieldsValid(info *types.ResourceAllocationInfo) bool { + if info.Reservation != nil { + if *info.Reservation < 0 { + return false + } + } + + if info.Limit != nil { + if *info.Limit < -1 { + return false + } + } + + if info.Shares != nil { + if info.Shares.Level == types.SharesLevelCustom { + if info.Shares.Shares < 0 { + return false + } + } + } + + if info.OverheadLimit != nil { + return false + } + + return true +} + +func (p *ResourcePool) createChild(name string, spec types.ResourceConfigSpec) (*ResourcePool, *soap.Fault) { + if e := Map.FindByName(name, p.ResourcePool.ResourcePool); e != nil { + return nil, Fault("", &types.DuplicateName{ + Name: e.Entity().Name, + Object: e.Reference(), + }) + } + + if !(allResourceFieldsSet(&spec.CpuAllocation) && allResourceFieldsValid(&spec.CpuAllocation)) { + return nil, Fault("", &types.InvalidArgument{ + InvalidProperty: "spec.cpuAllocation", + }) + } + + if !(allResourceFieldsSet(&spec.MemoryAllocation) && allResourceFieldsValid(&spec.MemoryAllocation)) { + return nil, Fault("", &types.InvalidArgument{ + InvalidProperty: "spec.memoryAllocation", + }) + } + + child := NewResourcePool() + + child.Name = name + child.Owner = p.Owner + child.Summary.GetResourcePoolSummary().Name = name + child.Config.CpuAllocation = spec.CpuAllocation + child.Config.MemoryAllocation = spec.MemoryAllocation + child.Config.Entity = spec.Entity + + return child, nil +} + +func (p *ResourcePool) CreateResourcePool(c *types.CreateResourcePool) soap.HasFault { + body := &methods.CreateResourcePoolBody{} + + child, err := p.createChild(c.Name, c.Spec) + if err != nil { + body.Fault_ = err + return body + } + + Map.PutEntity(p, Map.NewEntity(child)) + + p.ResourcePool.ResourcePool = append(p.ResourcePool.ResourcePool, child.Reference()) + + body.Res = &types.CreateResourcePoolResponse{ + Returnval: child.Reference(), + } + + return body +} + +func updateResourceAllocation(kind string, src, dst *types.ResourceAllocationInfo) types.BaseMethodFault { + if !allResourceFieldsValid(src) { + return &types.InvalidArgument{ + InvalidProperty: fmt.Sprintf("spec.%sAllocation", kind), + } + } + + if src.Reservation != nil { + dst.Reservation = src.Reservation + } + + if src.Limit != nil { + dst.Limit = src.Limit + } + + if src.Shares != nil { + dst.Shares = src.Shares + } + + return nil +} + +func (p *ResourcePool) UpdateConfig(c *types.UpdateConfig) soap.HasFault { + body := &methods.UpdateConfigBody{} + + if c.Name != "" { + if e := Map.FindByName(c.Name, p.ResourcePool.ResourcePool); e != nil { + body.Fault_ = Fault("", &types.DuplicateName{ + Name: e.Entity().Name, + Object: e.Reference(), + }) + return body + } + + p.Name = c.Name + } + + spec := c.Config + + if spec != nil { + if err := updateResourceAllocation("memory", &spec.MemoryAllocation, &p.Config.MemoryAllocation); err != nil { + body.Fault_ = Fault("", err) + return body + } + + if err := updateResourceAllocation("cpu", &spec.CpuAllocation, &p.Config.CpuAllocation); err != nil { + body.Fault_ = Fault("", err) + return body + } + } + + body.Res = &types.UpdateConfigResponse{} + + return body +} + +func (a *VirtualApp) ImportVApp(ctx *Context, req *types.ImportVApp) soap.HasFault { + return (&ResourcePool{ResourcePool: a.ResourcePool}).ImportVApp(ctx, req) +} + +func (p *ResourcePool) ImportVApp(ctx *Context, req *types.ImportVApp) soap.HasFault { + body := new(methods.ImportVAppBody) + + spec, ok := req.Spec.(*types.VirtualMachineImportSpec) + if !ok { + body.Fault_ = Fault(fmt.Sprintf("%T: type not supported", spec), &types.InvalidArgument{InvalidProperty: "spec"}) + return body + } + + dc := ctx.Map.getEntityDatacenter(p) + folder := ctx.Map.Get(dc.VmFolder).(*Folder) + if req.Folder != nil { + if p.Self.Type == "VirtualApp" { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "pool"}) + return body + } + folder = ctx.Map.Get(*req.Folder).(*Folder) + } + + res := folder.CreateVMTask(ctx, &types.CreateVM_Task{ + This: folder.Self, + Config: spec.ConfigSpec, + Pool: p.Self, + Host: req.Host, + }) + + ctask := Map.Get(res.(*methods.CreateVM_TaskBody).Res.Returnval).(*Task) + if ctask.Info.Error != nil { + body.Fault_ = Fault("", ctask.Info.Error.Fault) + return body + } + + lease := NewHttpNfcLease(ctx, ctask.Info.Result.(types.ManagedObjectReference)) + ref := lease.Reference() + lease.Info.Lease = ref + + vm := ctx.Map.Get(lease.Info.Entity).(*VirtualMachine) + device := object.VirtualDeviceList(vm.Config.Hardware.Device) + ndevice := make(map[string]int) + for _, d := range device { + info, ok := d.GetVirtualDevice().Backing.(types.BaseVirtualDeviceFileBackingInfo) + if !ok { + continue + } + var file object.DatastorePath + file.FromString(info.GetVirtualDeviceFileBackingInfo().FileName) + name := path.Base(file.Path) + ds := vm.findDatastore(file.Datastore) + lease.files[name] = path.Join(ds.Info.GetDatastoreInfo().Url, file.Path) + + _, disk := d.(*types.VirtualDisk) + kind := device.Type(d) + n := ndevice[kind] + ndevice[kind]++ + + lease.Info.DeviceUrl = append(lease.Info.DeviceUrl, types.HttpNfcLeaseDeviceUrl{ + Key: fmt.Sprintf("/%s/%s:%d", vm.Self.Value, kind, n), + ImportKey: fmt.Sprintf("/%s/%s:%d", vm.Name, kind, n), + Url: (&url.URL{ + Scheme: "https", + Host: "*", + Path: nfcPrefix + path.Join(ref.Value, name), + }).String(), + SslThumbprint: "", + Disk: types.NewBool(disk), + TargetId: name, + DatastoreKey: "", + FileSize: 0, + }) + } + + body.Res = &types.ImportVAppResponse{ + Returnval: ref, + } + + return body +} + +type VirtualApp struct { + mo.VirtualApp +} + +func NewVAppConfigSpec() types.VAppConfigSpec { + spec := types.VAppConfigSpec{ + Annotation: "vcsim", + VmConfigSpec: types.VmConfigSpec{ + Product: []types.VAppProductSpec{ + { + Info: &types.VAppProductInfo{ + Name: "vcsim", + Vendor: "VMware", + VendorUrl: "http://www.vmware.com/", + Version: "0.1", + }, + ArrayUpdateSpec: types.ArrayUpdateSpec{ + Operation: types.ArrayUpdateOperationAdd, + }, + }, + }, + }, + } + + return spec +} + +func (p *ResourcePool) CreateVApp(req *types.CreateVApp) soap.HasFault { + body := &methods.CreateVAppBody{} + + pool, err := p.createChild(req.Name, req.ResSpec) + if err != nil { + body.Fault_ = err + return body + } + + child := &VirtualApp{} + child.ResourcePool = pool.ResourcePool + child.Self.Type = "VirtualApp" + child.ParentFolder = req.VmFolder + + if child.ParentFolder == nil { + folder := Map.getEntityDatacenter(p).VmFolder + child.ParentFolder = &folder + } + + child.VAppConfig = &types.VAppConfigInfo{ + VmConfigInfo: types.VmConfigInfo{}, + Annotation: req.ConfigSpec.Annotation, + } + + for _, product := range req.ConfigSpec.Product { + child.VAppConfig.Product = append(child.VAppConfig.Product, *product.Info) + } + + Map.PutEntity(p, Map.NewEntity(child)) + + p.ResourcePool.ResourcePool = append(p.ResourcePool.ResourcePool, child.Reference()) + + body.Res = &types.CreateVAppResponse{ + Returnval: child.Reference(), + } + + return body +} + +func (a *VirtualApp) CreateChildVMTask(ctx *Context, req *types.CreateChildVM_Task) soap.HasFault { + body := &methods.CreateChildVM_TaskBody{} + + folder := Map.Get(*a.ParentFolder).(*Folder) + + res := folder.CreateVMTask(ctx, &types.CreateVM_Task{ + This: folder.Self, + Config: req.Config, + Host: req.Host, + Pool: req.This, + }) + + body.Res = &types.CreateChildVM_TaskResponse{ + Returnval: res.(*methods.CreateVM_TaskBody).Res.Returnval, + } + + return body +} + +func (a *VirtualApp) DestroyTask(req *types.Destroy_Task) soap.HasFault { + return (&ResourcePool{ResourcePool: a.ResourcePool}).DestroyTask(req) +} + +func (p *ResourcePool) DestroyTask(req *types.Destroy_Task) soap.HasFault { + task := CreateTask(p, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if strings.HasSuffix(p.Parent.Type, "ComputeResource") { + // Can't destroy the root pool + return nil, &types.InvalidArgument{} + } + + parent, _ := asResourcePoolMO(Map.Get(*p.Parent)) + + // Remove child reference from rp + Map.RemoveReference(parent, &parent.ResourcePool, req.This) + + // The grandchildren become children of the parent (rp) + Map.AppendReference(parent, &parent.ResourcePool, p.ResourcePool.ResourcePool...) + + // And VMs move to the parent + vms := p.ResourcePool.Vm + for _, ref := range vms { + vm := Map.Get(ref).(*VirtualMachine) + Map.WithLock(vm, func() { vm.ResourcePool = &parent.Self }) + } + + Map.AppendReference(parent, &parent.Vm, vms...) + + Map.Remove(req.This) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/search_index.go b/vendor/github.com/vmware/govmomi/simulator/search_index.go new file mode 100644 index 00000000..d89259d5 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/search_index.go @@ -0,0 +1,256 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type SearchIndex struct { + mo.SearchIndex +} + +func (s *SearchIndex) FindByDatastorePath(r *types.FindByDatastorePath) soap.HasFault { + res := &methods.FindByDatastorePathBody{Res: new(types.FindByDatastorePathResponse)} + + for ref, obj := range Map.objects { + vm, ok := asVirtualMachineMO(obj) + if !ok { + continue + } + + if vm.Config.Files.VmPathName == r.Path { + res.Res.Returnval = &ref + break + } + } + + return res +} + +func (s *SearchIndex) FindByInventoryPath(req *types.FindByInventoryPath) soap.HasFault { + body := &methods.FindByInventoryPathBody{Res: new(types.FindByInventoryPathResponse)} + + split := func(c rune) bool { + return c == '/' + } + path := strings.FieldsFunc(req.InventoryPath, split) + if len(path) < 1 { + return body + } + + root := Map.content().RootFolder + o := &root + + for _, name := range path { + f := s.FindChild(&types.FindChild{Entity: *o, Name: name}) + + o = f.(*methods.FindChildBody).Res.Returnval + if o == nil { + break + } + } + + body.Res.Returnval = o + + return body +} + +func (s *SearchIndex) FindChild(req *types.FindChild) soap.HasFault { + body := &methods.FindChildBody{} + + obj := Map.Get(req.Entity) + + if obj == nil { + body.Fault_ = Fault("", &types.ManagedObjectNotFound{Obj: req.Entity}) + return body + } + + body.Res = new(types.FindChildResponse) + + var children []types.ManagedObjectReference + + switch e := obj.(type) { + case *Datacenter: + children = []types.ManagedObjectReference{e.VmFolder, e.HostFolder, e.DatastoreFolder, e.NetworkFolder} + case *Folder: + children = e.ChildEntity + case *mo.ComputeResource: + children = e.Host + children = append(children, *e.ResourcePool) + case *ClusterComputeResource: + children = e.Host + children = append(children, *e.ResourcePool) + case *ResourcePool: + children = e.ResourcePool.ResourcePool + children = append(children, e.Vm...) + case *VirtualApp: + children = e.ResourcePool.ResourcePool + children = append(children, e.Vm...) + } + + match := Map.FindByName(req.Name, children) + + if match != nil { + ref := match.Reference() + body.Res.Returnval = &ref + } + + return body +} + +func (s *SearchIndex) FindByUuid(req *types.FindByUuid) soap.HasFault { + body := &methods.FindByUuidBody{Res: new(types.FindByUuidResponse)} + + if req.VmSearch { + // Find Virtual Machine using UUID + for ref, obj := range Map.objects { + vm, ok := asVirtualMachineMO(obj) + if !ok { + continue + } + if req.InstanceUuid != nil && *req.InstanceUuid { + if vm.Config.InstanceUuid == req.Uuid { + body.Res.Returnval = &ref + break + } + } else { + if vm.Config.Uuid == req.Uuid { + body.Res.Returnval = &ref + break + } + } + } + } else { + // Find Host System using UUID + for ref, obj := range Map.objects { + host, ok := asHostSystemMO(obj) + if !ok { + continue + } + if host.Summary.Hardware.Uuid == req.Uuid { + body.Res.Returnval = &ref + break + } + } + } + + return body +} + +func (s *SearchIndex) FindByDnsName(req *types.FindByDnsName) soap.HasFault { + body := &methods.FindByDnsNameBody{Res: new(types.FindByDnsNameResponse)} + + all := types.FindAllByDnsName(*req) + + switch r := s.FindAllByDnsName(&all).(type) { + case *methods.FindAllByDnsNameBody: + if len(r.Res.Returnval) > 0 { + body.Res.Returnval = &r.Res.Returnval[0] + } + default: + // no need until FindAllByDnsName below returns a Fault + } + + return body +} + +func (s *SearchIndex) FindAllByDnsName(req *types.FindAllByDnsName) soap.HasFault { + body := &methods.FindAllByDnsNameBody{Res: new(types.FindAllByDnsNameResponse)} + + if req.VmSearch { + // Find Virtual Machine using DNS name + for ref, obj := range Map.objects { + vm, ok := asVirtualMachineMO(obj) + if !ok { + continue + } + if vm.Guest.HostName == req.DnsName { + body.Res.Returnval = append(body.Res.Returnval, ref) + } + } + } else { + // Find Host System using DNS name + for ref, obj := range Map.objects { + host, ok := asHostSystemMO(obj) + if !ok { + continue + } + for _, net := range host.Config.Network.NetStackInstance { + if net.DnsConfig.GetHostDnsConfig().HostName == req.DnsName { + body.Res.Returnval = append(body.Res.Returnval, ref) + } + } + } + } + + return body +} + +func (s *SearchIndex) FindByIp(req *types.FindByIp) soap.HasFault { + body := &methods.FindByIpBody{Res: new(types.FindByIpResponse)} + + all := types.FindAllByIp(*req) + + switch r := s.FindAllByIp(&all).(type) { + case *methods.FindAllByIpBody: + if len(r.Res.Returnval) > 0 { + body.Res.Returnval = &r.Res.Returnval[0] + } + default: + // no need until FindAllByIp below returns a Fault + } + + return body +} + +func (s *SearchIndex) FindAllByIp(req *types.FindAllByIp) soap.HasFault { + body := &methods.FindAllByIpBody{Res: new(types.FindAllByIpResponse)} + + if req.VmSearch { + // Find Virtual Machine using IP + for ref, obj := range Map.objects { + vm, ok := asVirtualMachineMO(obj) + if !ok { + continue + } + if vm.Guest.IpAddress == req.Ip { + body.Res.Returnval = append(body.Res.Returnval, ref) + } + } + } else { + // Find Host System using IP + for ref, obj := range Map.objects { + host, ok := asHostSystemMO(obj) + if !ok { + continue + } + for _, net := range host.Config.Network.Vnic { + if net.Spec.Ip.IpAddress == req.Ip { + body.Res.Returnval = append(body.Res.Returnval, ref) + } + } + } + } + + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/service_instance.go b/vendor/github.com/vmware/govmomi/simulator/service_instance.go new file mode 100644 index 00000000..39145642 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/service_instance.go @@ -0,0 +1,95 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "time" + + "github.com/google/uuid" + "github.com/vmware/govmomi/simulator/internal" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type ServiceInstance struct { + mo.ServiceInstance +} + +func NewServiceInstance(content types.ServiceContent, folder mo.Folder) *ServiceInstance { + Map = NewRegistry() + + s := &ServiceInstance{} + + s.Self = vim25.ServiceInstance + s.Content = content + + Map.Put(s) + + f := &Folder{Folder: folder} + Map.Put(f) + + if content.About.ApiType == "HostAgent" { + CreateDefaultESX(internalContext, f) + } else { + content.About.InstanceUuid = uuid.New().String() + } + + refs := mo.References(content) + + for i := range refs { + if Map.Get(refs[i]) != nil { + continue + } + content := types.ObjectContent{Obj: refs[i]} + o, err := loadObject(content) + if err != nil { + panic(err) + } + Map.Put(o) + } + + return s +} + +func (s *ServiceInstance) RetrieveServiceContent(*types.RetrieveServiceContent) soap.HasFault { + return &methods.RetrieveServiceContentBody{ + Res: &types.RetrieveServiceContentResponse{ + Returnval: s.Content, + }, + } +} + +func (*ServiceInstance) CurrentTime(*types.CurrentTime) soap.HasFault { + return &methods.CurrentTimeBody{ + Res: &types.CurrentTimeResponse{ + Returnval: time.Now(), + }, + } +} + +func (s *ServiceInstance) RetrieveInternalContent(*internal.RetrieveInternalContent) soap.HasFault { + return &internal.RetrieveInternalContentBody{ + Res: &internal.RetrieveInternalContentResponse{ + Returnval: internal.InternalServiceInstanceContent{ + NfcService: types.ManagedObjectReference{Type: "NfcService", Value: "NfcService"}, + }, + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/session_manager.go b/vendor/github.com/vmware/govmomi/simulator/session_manager.go new file mode 100644 index 00000000..3689226e --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/session_manager.go @@ -0,0 +1,454 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "context" + "fmt" + "net/http" + "reflect" + "strings" + "sync" + "time" + + "github.com/google/uuid" + "github.com/vmware/govmomi/session" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type SessionManager struct { + mo.SessionManager + nopLocker + + ServiceHostName string + TLSCert func() string + + sessions map[string]Session +} + +func (m *SessionManager) init(*Registry) { + m.sessions = make(map[string]Session) +} + +var ( + // SessionIdleTimeout duration used to expire idle sessions + SessionIdleTimeout time.Duration + + sessionMutex sync.Mutex +) + +func createSession(ctx *Context, name string, locale string) types.UserSession { + now := time.Now().UTC() + + if locale == "" { + locale = session.Locale + } + + session := Session{ + UserSession: types.UserSession{ + Key: uuid.New().String(), + UserName: name, + FullName: name, + LoginTime: now, + LastActiveTime: now, + Locale: locale, + MessageLocale: locale, + ExtensionSession: types.NewBool(false), + }, + Registry: NewRegistry(), + } + + ctx.SetSession(session, true) + + return ctx.Session.UserSession +} + +func (m *SessionManager) getSession(id string) (Session, bool) { + sessionMutex.Lock() + defer sessionMutex.Unlock() + s, ok := m.sessions[id] + return s, ok +} + +func (m *SessionManager) delSession(id string) { + sessionMutex.Lock() + defer sessionMutex.Unlock() + delete(m.sessions, id) +} + +func (m *SessionManager) putSession(s Session) { + sessionMutex.Lock() + defer sessionMutex.Unlock() + m.sessions[s.Key] = s +} + +func (s *SessionManager) validLogin(ctx *Context, req *types.Login) bool { + if ctx.Session != nil { + return false + } + user := ctx.svc.Listen.User + if user == nil || user == DefaultLogin { + return req.UserName != "" && req.Password != "" + } + pass, _ := user.Password() + return req.UserName == user.Username() && req.Password == pass +} + +func (s *SessionManager) Login(ctx *Context, req *types.Login) soap.HasFault { + body := new(methods.LoginBody) + + if s.validLogin(ctx, req) { + body.Res = &types.LoginResponse{ + Returnval: createSession(ctx, req.UserName, req.Locale), + } + } else { + body.Fault_ = invalidLogin + } + + return body +} + +func (s *SessionManager) LoginExtensionByCertificate(ctx *Context, req *types.LoginExtensionByCertificate) soap.HasFault { + body := new(methods.LoginExtensionByCertificateBody) + + if ctx.req.TLS == nil || len(ctx.req.TLS.PeerCertificates) == 0 { + body.Fault_ = Fault("", new(types.NoClientCertificate)) + return body + } + + if req.ExtensionKey == "" || ctx.Session != nil { + body.Fault_ = invalidLogin + } else { + body.Res = &types.LoginExtensionByCertificateResponse{ + Returnval: createSession(ctx, req.ExtensionKey, req.Locale), + } + } + + return body +} + +func (s *SessionManager) LoginByToken(ctx *Context, req *types.LoginByToken) soap.HasFault { + body := new(methods.LoginByTokenBody) + + if ctx.Session != nil { + body.Fault_ = invalidLogin + } else { + var subject struct { + ID string `xml:"Assertion>Subject>NameID"` + } + + if s, ok := ctx.Header.Security.(*Element); ok { + _ = s.Decode(&subject) + } + + if subject.ID == "" { + body.Fault_ = invalidLogin + return body + } + + body.Res = &types.LoginByTokenResponse{ + Returnval: createSession(ctx, subject.ID, req.Locale), + } + } + + return body +} + +func (s *SessionManager) Logout(ctx *Context, _ *types.Logout) soap.HasFault { + session := ctx.Session + s.delSession(session.Key) + pc := Map.content().PropertyCollector + + for ref, obj := range ctx.Session.Registry.objects { + if ref == pc { + continue // don't unregister the PropertyCollector singleton + } + if _, ok := obj.(RegisterObject); ok { + ctx.Map.Remove(ref) // Remove RegisterObject handlers + } + } + + ctx.postEvent(&types.UserLogoutSessionEvent{ + IpAddress: session.IpAddress, + UserAgent: session.UserAgent, + SessionId: session.Key, + LoginTime: &session.LoginTime, + }) + + return &methods.LogoutBody{Res: new(types.LogoutResponse)} +} + +func (s *SessionManager) TerminateSession(ctx *Context, req *types.TerminateSession) soap.HasFault { + body := new(methods.TerminateSessionBody) + + for _, id := range req.SessionId { + if id == ctx.Session.Key { + body.Fault_ = Fault("", new(types.InvalidArgument)) + return body + } + if _, ok := s.getSession(id); !ok { + body.Fault_ = Fault("", new(types.NotFound)) + return body + } + s.delSession(id) + } + + body.Res = new(types.TerminateSessionResponse) + return body +} + +func (s *SessionManager) SessionIsActive(ctx *Context, req *types.SessionIsActive) soap.HasFault { + body := new(methods.SessionIsActiveBody) + + if ctx.Map.IsESX() { + body.Fault_ = Fault("", new(types.NotImplemented)) + return body + } + + body.Res = new(types.SessionIsActiveResponse) + + if session, exists := s.getSession(req.SessionID); exists { + body.Res.Returnval = session.UserName == req.UserName + } + + return body +} + +func (s *SessionManager) AcquireCloneTicket(ctx *Context, _ *types.AcquireCloneTicket) soap.HasFault { + session := *ctx.Session + session.Key = uuid.New().String() + s.putSession(session) + + return &methods.AcquireCloneTicketBody{ + Res: &types.AcquireCloneTicketResponse{ + Returnval: session.Key, + }, + } +} + +func (s *SessionManager) CloneSession(ctx *Context, ticket *types.CloneSession) soap.HasFault { + body := new(methods.CloneSessionBody) + + session, exists := s.getSession(ticket.CloneTicket) + + if exists { + s.delSession(ticket.CloneTicket) // A clone ticket can only be used once + session.Key = uuid.New().String() + ctx.SetSession(session, true) + + body.Res = &types.CloneSessionResponse{ + Returnval: session.UserSession, + } + } else { + body.Fault_ = invalidLogin + } + + return body +} + +func (s *SessionManager) AcquireGenericServiceTicket(ticket *types.AcquireGenericServiceTicket) soap.HasFault { + return &methods.AcquireGenericServiceTicketBody{ + Res: &types.AcquireGenericServiceTicketResponse{ + Returnval: types.SessionManagerGenericServiceTicket{ + Id: uuid.New().String(), + HostName: s.ServiceHostName, + }, + }, + } +} + +// internalContext is the session for use by the in-memory client (Service.RoundTrip) +var internalContext = &Context{ + Context: context.Background(), + Session: &Session{ + UserSession: types.UserSession{ + Key: uuid.New().String(), + }, + Registry: NewRegistry(), + }, + Map: Map, +} + +var invalidLogin = Fault("Login failure", new(types.InvalidLogin)) + +// Context provides per-request Session management. +type Context struct { + req *http.Request + res http.ResponseWriter + svc *Service + + context.Context + Session *Session + Header soap.Header + Caller *types.ManagedObjectReference + Map *Registry +} + +// mapSession maps an HTTP cookie to a Session. +func (c *Context) mapSession() { + if cookie, err := c.req.Cookie(soap.SessionCookieName); err == nil { + if val, ok := c.svc.sm.getSession(cookie.Value); ok { + c.SetSession(val, false) + } + } +} + +func (m *SessionManager) expiredSession(id string, now time.Time) bool { + expired := true + + s, ok := m.getSession(id) + if ok { + expired = now.Sub(s.LastActiveTime) > SessionIdleTimeout + if expired { + m.delSession(id) + } + } + + return expired +} + +// SessionIdleWatch starts a goroutine that calls func expired() at SessionIdleTimeout intervals. +// The goroutine exits if the func returns true. +func SessionIdleWatch(ctx context.Context, id string, expired func(string, time.Time) bool) { + if SessionIdleTimeout == 0 { + return + } + + go func() { + for t := time.NewTimer(SessionIdleTimeout); ; { + select { + case <-ctx.Done(): + return + case now := <-t.C: + if expired(id, now) { + return + } + t.Reset(SessionIdleTimeout) + } + } + }() +} + +// SetSession should be called after successful authentication. +func (c *Context) SetSession(session Session, login bool) { + session.UserAgent = c.req.UserAgent() + session.IpAddress = strings.Split(c.req.RemoteAddr, ":")[0] + session.LastActiveTime = time.Now() + session.CallCount++ + + c.svc.sm.putSession(session) + c.Session = &session + + if login { + http.SetCookie(c.res, &http.Cookie{ + Name: soap.SessionCookieName, + Value: session.Key, + }) + + c.postEvent(&types.UserLoginSessionEvent{ + SessionId: session.Key, + IpAddress: session.IpAddress, + UserAgent: session.UserAgent, + Locale: session.Locale, + }) + + SessionIdleWatch(c.Context, session.Key, c.svc.sm.expiredSession) + } +} + +// WithLock holds a lock for the given object while then given function is run. +func (c *Context) WithLock(obj mo.Reference, f func()) { + if c.Caller != nil && *c.Caller == obj.Reference() { + // Internal method invocation, obj is already locked + f() + return + } + Map.WithLock(obj, f) +} + +// postEvent wraps EventManager.PostEvent for internal use, with a lock on the EventManager. +func (c *Context) postEvent(events ...types.BaseEvent) { + m := Map.EventManager() + c.WithLock(m, func() { + for _, event := range events { + m.PostEvent(c, &types.PostEvent{EventToPost: event}) + } + }) +} + +// Session combines a UserSession and a Registry for per-session managed objects. +type Session struct { + types.UserSession + *Registry +} + +func (s *Session) setReference(item mo.Reference) { + ref := item.Reference() + if ref.Value == "" { + ref.Value = fmt.Sprintf("session[%s]%s", s.Key, uuid.New()) + } + if ref.Type == "" { + ref.Type = typeName(item) + } + s.Registry.setReference(item, ref) +} + +// Put wraps Registry.Put, setting the moref value to include the session key. +func (s *Session) Put(item mo.Reference) mo.Reference { + s.setReference(item) + return s.Registry.Put(item) +} + +// Get wraps Registry.Get, session-izing singleton objects such as SessionManager and the root PropertyCollector. +func (s *Session) Get(ref types.ManagedObjectReference) mo.Reference { + obj := s.Registry.Get(ref) + if obj != nil { + return obj + } + + // Return a session "view" of certain singleton objects + switch ref.Type { + case "SessionManager": + // Clone SessionManager so the PropertyCollector can properly report CurrentSession + m := *Map.SessionManager() + m.CurrentSession = &s.UserSession + + // TODO: we could maintain SessionList as part of the SessionManager singleton + sessionMutex.Lock() + for _, session := range m.sessions { + m.SessionList = append(m.SessionList, session.UserSession) + } + sessionMutex.Unlock() + + return &m + case "PropertyCollector": + if ref == Map.content().PropertyCollector { + // Per-session instance of the PropertyCollector singleton. + // Using reflection here as PropertyCollector might be wrapped with a custom type. + obj = Map.Get(ref) + pc := reflect.New(reflect.TypeOf(obj).Elem()) + obj = pc.Interface().(mo.Reference) + s.Registry.setReference(obj, ref) + return s.Put(obj) + } + } + + return Map.Get(ref) +} diff --git a/vendor/github.com/vmware/govmomi/simulator/simulator.go b/vendor/github.com/vmware/govmomi/simulator/simulator.go new file mode 100644 index 00000000..418c966d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/simulator.go @@ -0,0 +1,920 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "bytes" + "context" + "crypto/tls" + "crypto/x509" + "encoding/base64" + "encoding/json" + "encoding/pem" + "fmt" + "io" + "io/ioutil" + "log" + "math/rand" + "net" + "net/http" + "net/url" + "os" + "path" + "reflect" + "sort" + "strconv" + "strings" + "time" + + "github.com/vmware/govmomi/find" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/internal" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" + "github.com/vmware/govmomi/vim25/xml" +) + +var ( + // Trace when set to true, writes SOAP traffic to stderr + Trace = false + + // TraceFile is the output file when Trace = true + TraceFile = os.Stderr + + // DefaultLogin for authentication + DefaultLogin = url.UserPassword("user", "pass") +) + +// Method encapsulates a decoded SOAP client request +type Method struct { + Name string + This types.ManagedObjectReference + Header soap.Header + Body types.AnyType +} + +// Service decodes incoming requests and dispatches to a Handler +type Service struct { + client *vim25.Client + sm *SessionManager + sdk map[string]*Registry + funcs []handleFunc + delay *DelayConfig + + readAll func(io.Reader) ([]byte, error) + + Listen *url.URL + TLS *tls.Config + ServeMux *http.ServeMux + // RegisterEndpoints will initialize any endpoints added via RegisterEndpoint + RegisterEndpoints bool +} + +// Server provides a simulator Service over HTTP +type Server struct { + *internal.Server + URL *url.URL + Tunnel int + + caFile string +} + +// New returns an initialized simulator Service instance +func New(instance *ServiceInstance) *Service { + s := &Service{ + readAll: ioutil.ReadAll, + sm: Map.SessionManager(), + sdk: make(map[string]*Registry), + } + + s.client, _ = vim25.NewClient(context.Background(), s) + + return s +} + +type serverFaultBody struct { + Reason *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *serverFaultBody) Fault() *soap.Fault { return b.Reason } + +func serverFault(msg string) soap.HasFault { + return &serverFaultBody{Reason: Fault(msg, &types.InvalidRequest{})} +} + +// Fault wraps the given message and fault in a soap.Fault +func Fault(msg string, fault types.BaseMethodFault) *soap.Fault { + f := &soap.Fault{ + Code: "ServerFaultCode", + String: msg, + } + + f.Detail.Fault = fault + + return f +} + +func (s *Service) call(ctx *Context, method *Method) soap.HasFault { + handler := ctx.Map.Get(method.This) + session := ctx.Session + ctx.Caller = &method.This + + if session == nil { + switch method.Name { + case "RetrieveServiceContent", "PbmRetrieveServiceContent", "Fetch", "List", "Login", "LoginByToken", "LoginExtensionByCertificate", "RetrieveProperties", "RetrievePropertiesEx", "CloneSession": + // ok for now, TODO: authz + default: + fault := &types.NotAuthenticated{ + NoPermission: types.NoPermission{ + Object: method.This, + PrivilegeId: "System.View", + }, + } + return &serverFaultBody{Reason: Fault("", fault)} + } + } else { + // Prefer the Session.Registry, ServiceContent.PropertyCollector filter field for example is per-session + if h := session.Get(method.This); h != nil { + handler = h + } + } + + if handler == nil { + msg := fmt.Sprintf("managed object not found: %s", method.This) + log.Print(msg) + fault := &types.ManagedObjectNotFound{Obj: method.This} + return &serverFaultBody{Reason: Fault(msg, fault)} + } + + // Lowercase methods can't be accessed outside their package + name := strings.Title(method.Name) + + if strings.HasSuffix(name, vTaskSuffix) { + // Make golint happy renaming "Foo_Task" -> "FooTask" + name = name[:len(name)-len(vTaskSuffix)] + sTaskSuffix + } + + m := reflect.ValueOf(handler).MethodByName(name) + if !m.IsValid() { + msg := fmt.Sprintf("%s does not implement: %s", method.This, method.Name) + log.Print(msg) + fault := &types.MethodNotFound{Receiver: method.This, Method: method.Name} + return &serverFaultBody{Reason: Fault(msg, fault)} + } + + if e, ok := handler.(mo.Entity); ok { + for _, dm := range e.Entity().DisabledMethod { + if name == dm { + msg := fmt.Sprintf("%s method is disabled: %s", method.This, method.Name) + fault := &types.MethodDisabled{} + return &serverFaultBody{Reason: Fault(msg, fault)} + } + } + } + + // We have a valid call. Introduce a delay if requested + // + if s.delay != nil { + d := 0 + if s.delay.Delay > 0 { + d = s.delay.Delay + } + if md, ok := s.delay.MethodDelay[method.Name]; ok { + d += md + } + if s.delay.DelayJitter > 0 { + d += int(rand.NormFloat64() * s.delay.DelayJitter * float64(d)) + } + if d > 0 { + //fmt.Printf("Delaying method %s %d ms\n", name, d) + time.Sleep(time.Duration(d) * time.Millisecond) + } + } + + var args, res []reflect.Value + if m.Type().NumIn() == 2 { + args = append(args, reflect.ValueOf(ctx)) + } + args = append(args, reflect.ValueOf(method.Body)) + ctx.Map.WithLock(handler, func() { + res = m.Call(args) + }) + + return res[0].Interface().(soap.HasFault) +} + +// RoundTrip implements the soap.RoundTripper interface in process. +// Rather than encode/decode SOAP over HTTP, this implementation uses reflection. +func (s *Service) RoundTrip(ctx context.Context, request, response soap.HasFault) error { + field := func(r soap.HasFault, name string) reflect.Value { + return reflect.ValueOf(r).Elem().FieldByName(name) + } + + // Every struct passed to soap.RoundTrip has "Req" and "Res" fields + req := field(request, "Req") + + // Every request has a "This" field. + this := req.Elem().FieldByName("This") + + method := &Method{ + Name: req.Elem().Type().Name(), + This: this.Interface().(types.ManagedObjectReference), + Body: req.Interface(), + } + + res := s.call(&Context{ + Map: Map, + Context: ctx, + Session: internalContext.Session, + }, method) + + if err := res.Fault(); err != nil { + return soap.WrapSoapFault(err) + } + + field(response, "Res").Set(field(res, "Res")) + + return nil +} + +// soapEnvelope is a copy of soap.Envelope, with namespace changed to "soapenv", +// and additional namespace attributes required by some client libraries. +// Go still has issues decoding with such a namespace, but encoding is ok. +type soapEnvelope struct { + XMLName xml.Name `xml:"soapenv:Envelope"` + Enc string `xml:"xmlns:soapenc,attr"` + Env string `xml:"xmlns:soapenv,attr"` + XSD string `xml:"xmlns:xsd,attr"` + XSI string `xml:"xmlns:xsi,attr"` + Body interface{} `xml:"soapenv:Body"` +} + +type faultDetail struct { + Fault types.AnyType +} + +// soapFault is a copy of soap.Fault, with the same changes as soapEnvelope +type soapFault struct { + XMLName xml.Name `xml:"soapenv:Fault"` + Code string `xml:"faultcode"` + String string `xml:"faultstring"` + Detail struct { + Fault *faultDetail + } `xml:"detail"` +} + +// MarshalXML renames the start element from "Fault" to "${Type}Fault" +func (d *faultDetail) MarshalXML(e *xml.Encoder, start xml.StartElement) error { + kind := reflect.TypeOf(d.Fault).Elem().Name() + start.Name.Local = kind + "Fault" + start.Attr = append(start.Attr, + xml.Attr{ + Name: xml.Name{Local: "xmlns"}, + Value: "urn:" + vim25.Namespace, + }, + xml.Attr{ + Name: xml.Name{Local: "xsi:type"}, + Value: kind, + }) + return e.EncodeElement(d.Fault, start) +} + +// response sets xml.Name.Space when encoding Body. +// Note that namespace is intentionally omitted in the vim25/methods/methods.go Body.Res field tags. +type response struct { + Namespace string + Body soap.HasFault +} + +func (r *response) MarshalXML(e *xml.Encoder, start xml.StartElement) error { + val := reflect.ValueOf(r.Body).Elem().FieldByName("Res") + if !val.IsValid() { + return fmt.Errorf("%T: invalid response type (missing 'Res' field)", r.Body) + } + if val.IsNil() { + return fmt.Errorf("%T: invalid response (nil 'Res' field)", r.Body) + } + res := xml.StartElement{ + Name: xml.Name{ + Space: "urn:" + r.Namespace, + Local: val.Elem().Type().Name(), + }, + } + if err := e.EncodeToken(start); err != nil { + return err + } + if err := e.EncodeElement(val.Interface(), res); err != nil { + return err + } + return e.EncodeToken(start.End()) +} + +// About generates some info about the simulator. +func (s *Service) About(w http.ResponseWriter, r *http.Request) { + var about struct { + Methods []string + Types []string + } + + seen := make(map[string]bool) + + f := reflect.TypeOf((*soap.HasFault)(nil)).Elem() + + for _, obj := range Map.objects { + kind := obj.Reference().Type + if seen[kind] { + continue + } + seen[kind] = true + + about.Types = append(about.Types, kind) + + t := reflect.TypeOf(obj) + for i := 0; i < t.NumMethod(); i++ { + m := t.Method(i) + if seen[m.Name] { + continue + } + seen[m.Name] = true + + in := m.Type.NumIn() + if in < 2 || in > 3 { // at least 2 params (receiver and request), optionally a 3rd param (context) + continue + } + if m.Type.NumOut() != 1 || m.Type.Out(0) != f { // all methods return soap.HasFault + continue + } + + about.Methods = append(about.Methods, strings.Replace(m.Name, "Task", "_Task", 1)) + } + } + + sort.Strings(about.Methods) + sort.Strings(about.Types) + + w.Header().Set("Content-Type", "application/json") + enc := json.NewEncoder(w) + enc.SetIndent("", " ") + _ = enc.Encode(&about) +} + +var endpoints []func(*Service, *Registry) + +// RegisterEndpoint funcs are called after the Server is initialized if Service.RegisterEndpoints=true. +// Such a func would typically register a SOAP endpoint via Service.RegisterSDK or REST endpoint via Service.Handle +func RegisterEndpoint(endpoint func(*Service, *Registry)) { + endpoints = append(endpoints, endpoint) +} + +// Handle registers the handler for the given pattern with Service.ServeMux. +func (s *Service) Handle(pattern string, handler http.Handler) { + s.ServeMux.Handle(pattern, handler) + // Not ideal, but avoids having to add yet another registration mechanism + // so we can optionally use vapi/simulator internally. + if m, ok := handler.(tagManager); ok { + s.sdk[vim25.Path].tagManager = m + } +} + +type muxHandleFunc interface { + HandleFunc(string, func(http.ResponseWriter, *http.Request)) +} + +type handleFunc struct { + pattern string + handler func(http.ResponseWriter, *http.Request) +} + +// HandleFunc dispatches to http.ServeMux.HandleFunc after all endpoints have been registered. +// This allows dispatching to an endpoint's HandleFunc impl, such as vapi/simulator for example. +func (s *Service) HandleFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) { + s.funcs = append(s.funcs, handleFunc{pattern, handler}) +} + +// RegisterSDK adds an HTTP handler for the Registry's Path and Namespace. +func (s *Service) RegisterSDK(r *Registry) { + if s.ServeMux == nil { + s.ServeMux = http.NewServeMux() + } + + s.sdk[r.Path] = r + s.ServeMux.HandleFunc(r.Path, s.ServeSDK) +} + +// StatusSDK can be used to simulate an /sdk HTTP response code other than 200. +// The value of StatusSDK is restored to http.StatusOK after 1 response. +// This can be useful to test vim25.Retry() for example. +var StatusSDK = http.StatusOK + +// ServeSDK implements the http.Handler interface +func (s *Service) ServeSDK(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + w.WriteHeader(http.StatusMethodNotAllowed) + return + } + + if StatusSDK != http.StatusOK { + w.WriteHeader(StatusSDK) + StatusSDK = http.StatusOK // reset + return + } + + body, err := s.readAll(r.Body) + _ = r.Body.Close() + if err != nil { + log.Printf("error reading body: %s", err) + w.WriteHeader(http.StatusBadRequest) + return + } + + if Trace { + fmt.Fprintf(TraceFile, "Request: %s\n", string(body)) + } + + ctx := &Context{ + req: r, + res: w, + svc: s, + + Map: s.sdk[r.URL.Path], + Context: context.Background(), + } + ctx.Map.WithLock(s.sm, ctx.mapSession) + + var res soap.HasFault + var soapBody interface{} + + method, err := UnmarshalBody(ctx.Map.typeFunc, body) + if err != nil { + res = serverFault(err.Error()) + } else { + ctx.Header = method.Header + if method.Name == "Fetch" { + // Redirect any Fetch method calls to the PropertyCollector singleton + method.This = ctx.Map.content().PropertyCollector + } + res = s.call(ctx, method) + } + + if f := res.Fault(); f != nil { + w.WriteHeader(http.StatusInternalServerError) + + // the generated method/*Body structs use the '*soap.Fault' type, + // so we need our own Body type to use the modified '*soapFault' type. + soapBody = struct { + Fault *soapFault + }{ + &soapFault{ + Code: f.Code, + String: f.String, + Detail: struct { + Fault *faultDetail + }{&faultDetail{f.Detail.Fault}}, + }, + } + } else { + w.WriteHeader(http.StatusOK) + + soapBody = &response{ctx.Map.Namespace, res} + } + + var out bytes.Buffer + + fmt.Fprint(&out, xml.Header) + e := xml.NewEncoder(&out) + err = e.Encode(&soapEnvelope{ + Enc: "http://schemas.xmlsoap.org/soap/encoding/", + Env: "http://schemas.xmlsoap.org/soap/envelope/", + XSD: "http://www.w3.org/2001/XMLSchema", + XSI: "http://www.w3.org/2001/XMLSchema-instance", + Body: soapBody, + }) + if err == nil { + err = e.Flush() + } + + if err != nil { + log.Printf("error encoding %s response: %s", method.Name, err) + return + } + + if Trace { + fmt.Fprintf(TraceFile, "Response: %s\n", out.String()) + } + + _, _ = w.Write(out.Bytes()) +} + +func (s *Service) findDatastore(query url.Values) (*Datastore, error) { + ctx := context.Background() + + finder := find.NewFinder(s.client, false) + dc, err := finder.DatacenterOrDefault(ctx, query.Get("dcPath")) + if err != nil { + return nil, err + } + + finder.SetDatacenter(dc) + + ds, err := finder.DatastoreOrDefault(ctx, query.Get("dsName")) + if err != nil { + return nil, err + } + + return Map.Get(ds.Reference()).(*Datastore), nil +} + +const folderPrefix = "/folder/" + +// ServeDatastore handler for Datastore access via /folder path. +func (s *Service) ServeDatastore(w http.ResponseWriter, r *http.Request) { + ds, ferr := s.findDatastore(r.URL.Query()) + if ferr != nil { + log.Printf("failed to locate datastore with query params: %s", r.URL.RawQuery) + w.WriteHeader(http.StatusNotFound) + return + } + + r.URL.Path = strings.TrimPrefix(r.URL.Path, folderPrefix) + p := path.Join(ds.Info.GetDatastoreInfo().Url, r.URL.Path) + + switch r.Method { + case http.MethodPost: + _, err := os.Stat(p) + if err == nil { + // File exists + w.WriteHeader(http.StatusConflict) + return + } + + // File does not exist, fallthrough to create via PUT logic + fallthrough + case http.MethodPut: + dir := path.Dir(p) + _ = os.MkdirAll(dir, 0700) + + f, err := os.Create(p) + if err != nil { + log.Printf("failed to %s '%s': %s", r.Method, p, err) + w.WriteHeader(http.StatusInternalServerError) + return + } + defer f.Close() + + _, _ = io.Copy(f, r.Body) + default: + fs := http.FileServer(http.Dir(ds.Info.GetDatastoreInfo().Url)) + + fs.ServeHTTP(w, r) + } +} + +// ServiceVersions handler for the /sdk/vimServiceVersions.xml path. +func (s *Service) ServiceVersions(w http.ResponseWriter, r *http.Request) { + const versions = xml.Header + ` + + urn:vim25 + %s + + 6.0 + 5.5 + + + +` + fmt.Fprintf(w, versions, s.client.ServiceContent.About.ApiVersion) +} + +// defaultIP returns addr.IP if specified, otherwise attempts to find a non-loopback ipv4 IP +func defaultIP(addr *net.TCPAddr) string { + if !addr.IP.IsUnspecified() { + return addr.IP.String() + } + + nics, err := net.Interfaces() + if err != nil { + return addr.IP.String() + } + + for _, nic := range nics { + if nic.Name == "docker0" || strings.HasPrefix(nic.Name, "vmnet") { + continue + } + addrs, aerr := nic.Addrs() + if aerr != nil { + continue + } + for _, addr := range addrs { + if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() { + if ip.IP.To4() != nil { + return ip.IP.String() + } + } + } + } + + return addr.IP.String() +} + +// NewServer returns an http Server instance for the given service +func (s *Service) NewServer() *Server { + s.RegisterSDK(Map) + + mux := s.ServeMux + vim := Map.Path + "/vimService" + s.sdk[vim] = s.sdk[vim25.Path] + mux.HandleFunc(vim, s.ServeSDK) + mux.HandleFunc(Map.Path+"/vimServiceVersions.xml", s.ServiceVersions) + mux.HandleFunc(folderPrefix, s.ServeDatastore) + mux.HandleFunc(guestPrefix, ServeGuest) + mux.HandleFunc(nfcPrefix, ServeNFC) + mux.HandleFunc("/about", s.About) + + if s.Listen == nil { + s.Listen = new(url.URL) + } + ts := internal.NewUnstartedServer(mux, s.Listen.Host) + addr := ts.Listener.Addr().(*net.TCPAddr) + port := strconv.Itoa(addr.Port) + u := &url.URL{ + Scheme: "http", + Host: net.JoinHostPort(defaultIP(addr), port), + Path: Map.Path, + } + if s.TLS != nil { + u.Scheme += "s" + } + + // Redirect clients to this http server, rather than HostSystem.Name + Map.SessionManager().ServiceHostName = u.Host + + // Add vcsim config to OptionManager for use by SDK handlers (see lookup/simulator for example) + m := Map.OptionManager() + for i := range m.Setting { + setting := m.Setting[i].GetOptionValue() + + if strings.HasSuffix(setting.Key, ".uri") { + // Rewrite any URIs with vcsim's host:port + endpoint, err := url.Parse(setting.Value.(string)) + if err == nil { + endpoint.Scheme = u.Scheme + endpoint.Host = u.Host + setting.Value = endpoint.String() + } + } + } + m.Setting = append(m.Setting, + &types.OptionValue{ + Key: "vcsim.server.url", + Value: u.String(), + }, + ) + + u.User = s.Listen.User + if u.User == nil { + u.User = DefaultLogin + } + s.Listen = u + + if s.RegisterEndpoints { + for i := range endpoints { + endpoints[i](s, Map) + } + } + + for _, f := range s.funcs { + pattern := &url.URL{Path: f.pattern} + endpoint, _ := s.ServeMux.Handler(&http.Request{URL: pattern}) + + if mux, ok := endpoint.(muxHandleFunc); ok { + mux.HandleFunc(f.pattern, f.handler) // e.g. vapi/simulator + } else { + s.ServeMux.HandleFunc(f.pattern, f.handler) + } + } + + if s.TLS != nil { + ts.TLS = s.TLS + ts.TLS.ClientAuth = tls.RequestClientCert // Used by SessionManager.LoginExtensionByCertificate + Map.SessionManager().TLSCert = func() string { + return base64.StdEncoding.EncodeToString(ts.TLS.Certificates[0].Certificate[0]) + } + ts.StartTLS() + } else { + ts.Start() + } + + return &Server{ + Server: ts, + URL: u, + } +} + +// Certificate returns the TLS certificate for the Server if started with TLS enabled. +// This method will panic if TLS is not enabled for the server. +func (s *Server) Certificate() *x509.Certificate { + // By default httptest.StartTLS uses http/internal.LocalhostCert, which we can access here: + cert, _ := x509.ParseCertificate(s.TLS.Certificates[0].Certificate[0]) + return cert +} + +// CertificateInfo returns Server.Certificate() as object.HostCertificateInfo +func (s *Server) CertificateInfo() *object.HostCertificateInfo { + info := new(object.HostCertificateInfo) + info.FromCertificate(s.Certificate()) + return info +} + +// CertificateFile returns a file name, where the file contains the PEM encoded Server.Certificate. +// The temporary file is removed when Server.Close() is called. +func (s *Server) CertificateFile() (string, error) { + if s.caFile != "" { + return s.caFile, nil + } + + f, err := ioutil.TempFile("", "vcsim-") + if err != nil { + return "", err + } + defer f.Close() + + s.caFile = f.Name() + cert := s.Certificate() + return s.caFile, pem.Encode(f, &pem.Block{Type: "CERTIFICATE", Bytes: cert.Raw}) +} + +// proxy tunnels SDK requests +func (s *Server) proxy(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodConnect { + http.Error(w, "", http.StatusMethodNotAllowed) + return + } + + dst, err := net.Dial("tcp", s.URL.Host) + if err != nil { + http.Error(w, err.Error(), http.StatusBadGateway) + return + } + w.WriteHeader(http.StatusOK) + + src, _, err := w.(http.Hijacker).Hijack() + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + go io.Copy(src, dst) + go func() { + _, _ = io.Copy(dst, src) + _ = dst.Close() + _ = src.Close() + }() +} + +// StartTunnel runs an HTTP proxy for tunneling SDK requests that require TLS client certificate authentication. +func (s *Server) StartTunnel() error { + tunnel := &http.Server{ + Addr: fmt.Sprintf("%s:%d", s.URL.Hostname(), s.Tunnel), + Handler: http.HandlerFunc(s.proxy), + } + + l, err := net.Listen("tcp", tunnel.Addr) + if err != nil { + return err + } + + if s.Tunnel == 0 { + s.Tunnel = l.Addr().(*net.TCPAddr).Port + } + + // Set client proxy port (defaults to vCenter host port 80 in real life) + q := s.URL.Query() + q.Set("GOVMOMI_TUNNEL_PROXY_PORT", strconv.Itoa(s.Tunnel)) + s.URL.RawQuery = q.Encode() + + go tunnel.Serve(l) + + return nil +} + +// Close shuts down the server and blocks until all outstanding +// requests on this server have completed. +func (s *Server) Close() { + s.Server.Close() + if s.caFile != "" { + _ = os.Remove(s.caFile) + } +} + +var ( + vim25MapType = types.TypeFunc() +) + +func defaultMapType(name string) (reflect.Type, bool) { + typ, ok := vim25MapType(name) + if !ok { + // See TestIssue945, in which case Go does not resolve the namespace and name == "ns1:TraversalSpec" + // Without this hack, the SelectSet would be all nil's + kind := strings.SplitN(name, ":", 2) + if len(kind) == 2 { + typ, ok = vim25MapType(kind[1]) + } + } + return typ, ok +} + +// Element can be used to defer decoding of an XML node. +type Element struct { + start xml.StartElement + inner struct { + Content string `xml:",innerxml"` + } + typeFunc func(string) (reflect.Type, bool) +} + +func (e *Element) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { + e.start = start + + return d.DecodeElement(&e.inner, &start) +} + +func (e *Element) decoder() *xml.Decoder { + decoder := xml.NewDecoder(strings.NewReader(e.inner.Content)) + decoder.TypeFunc = e.typeFunc // required to decode interface types + return decoder +} + +func (e *Element) Decode(val interface{}) error { + return e.decoder().DecodeElement(val, &e.start) +} + +// UnmarshalBody extracts the Body from a soap.Envelope and unmarshals to the corresponding govmomi type +func UnmarshalBody(typeFunc func(string) (reflect.Type, bool), data []byte) (*Method, error) { + body := &Element{typeFunc: typeFunc} + req := soap.Envelope{ + Header: &soap.Header{ + Security: new(Element), + }, + Body: body, + } + + err := xml.Unmarshal(data, &req) + if err != nil { + return nil, fmt.Errorf("xml.Unmarshal: %s", err) + } + + var start xml.StartElement + var ok bool + decoder := body.decoder() + + for { + tok, derr := decoder.Token() + if derr != nil { + return nil, fmt.Errorf("decoding: %s", derr) + } + if start, ok = tok.(xml.StartElement); ok { + break + } + } + + if !ok { + return nil, fmt.Errorf("decoding: method token not found") + } + + kind := start.Name.Local + rtype, ok := typeFunc(kind) + if !ok { + return nil, fmt.Errorf("no vmomi type defined for '%s'", kind) + } + + val := reflect.New(rtype).Interface() + + err = decoder.DecodeElement(val, &start) + if err != nil { + return nil, fmt.Errorf("decoding %s: %s", kind, err) + } + + method := &Method{Name: kind, Header: *req.Header, Body: val} + + field := reflect.ValueOf(val).Elem().FieldByName("This") + + method.This = field.Interface().(types.ManagedObjectReference) + + return method, nil +} diff --git a/vendor/github.com/vmware/govmomi/simulator/snapshot.go b/vendor/github.com/vmware/govmomi/simulator/snapshot.go new file mode 100644 index 00000000..0001e289 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/snapshot.go @@ -0,0 +1,167 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "os" + "path" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type VirtualMachineSnapshot struct { + mo.VirtualMachineSnapshot +} + +func (v *VirtualMachineSnapshot) createSnapshotFiles() types.BaseMethodFault { + vm := Map.Get(v.Vm).(*VirtualMachine) + + snapshotDirectory := vm.Config.Files.SnapshotDirectory + if snapshotDirectory == "" { + snapshotDirectory = vm.Config.Files.VmPathName + } + + index := 1 + for { + fileName := fmt.Sprintf("%s-Snapshot%d.vmsn", vm.Name, index) + f, err := vm.createFile(snapshotDirectory, fileName, false) + if err != nil { + switch err.(type) { + case *types.FileAlreadyExists: + index++ + continue + default: + return err + } + } + + _ = f.Close() + + p, _ := parseDatastorePath(snapshotDirectory) + vm.useDatastore(p.Datastore) + datastorePath := object.DatastorePath{ + Datastore: p.Datastore, + Path: path.Join(p.Path, fileName), + } + + dataLayoutKey := vm.addFileLayoutEx(datastorePath, 0) + vm.addSnapshotLayout(v.Self, dataLayoutKey) + vm.addSnapshotLayoutEx(v.Self, dataLayoutKey, -1) + + return nil + } +} + +func (v *VirtualMachineSnapshot) removeSnapshotFiles(ctx *Context) types.BaseMethodFault { + // TODO: also remove delta disks that were created when snapshot was taken + + vm := Map.Get(v.Vm).(*VirtualMachine) + + for idx, sLayout := range vm.Layout.Snapshot { + if sLayout.Key == v.Self { + vm.Layout.Snapshot = append(vm.Layout.Snapshot[:idx], vm.Layout.Snapshot[idx+1:]...) + break + } + } + + for idx, sLayoutEx := range vm.LayoutEx.Snapshot { + if sLayoutEx.Key == v.Self { + for _, file := range vm.LayoutEx.File { + if file.Key == sLayoutEx.DataKey || file.Key == sLayoutEx.MemoryKey { + p, fault := parseDatastorePath(file.Name) + if fault != nil { + return fault + } + + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + datastore := Map.FindByName(p.Datastore, host.Datastore).(*Datastore) + dFilePath := path.Join(datastore.Info.GetDatastoreInfo().Url, p.Path) + + _ = os.Remove(dFilePath) + } + } + + vm.LayoutEx.Snapshot = append(vm.LayoutEx.Snapshot[:idx], vm.LayoutEx.Snapshot[idx+1:]...) + } + } + + vm.RefreshStorageInfo(ctx, nil) + + return nil +} + +func (v *VirtualMachineSnapshot) RemoveSnapshotTask(ctx *Context, req *types.RemoveSnapshot_Task) soap.HasFault { + task := CreateTask(v, "removeSnapshot", func(t *Task) (types.AnyType, types.BaseMethodFault) { + var changes []types.PropertyChange + + vm := Map.Get(v.Vm).(*VirtualMachine) + Map.WithLock(vm, func() { + if vm.Snapshot.CurrentSnapshot != nil && *vm.Snapshot.CurrentSnapshot == req.This { + parent := findParentSnapshotInTree(vm.Snapshot.RootSnapshotList, req.This) + changes = append(changes, types.PropertyChange{Name: "snapshot.currentSnapshot", Val: parent}) + } + + rootSnapshots := removeSnapshotInTree(vm.Snapshot.RootSnapshotList, req.This, req.RemoveChildren) + changes = append(changes, types.PropertyChange{Name: "snapshot.rootSnapshotList", Val: rootSnapshots}) + + if len(rootSnapshots) == 0 { + changes = []types.PropertyChange{ + {Name: "snapshot", Val: nil}, + } + } + + Map.Get(req.This).(*VirtualMachineSnapshot).removeSnapshotFiles(ctx) + + Map.Update(vm, changes) + }) + + Map.Remove(req.This) + + return nil, nil + }) + + return &methods.RemoveSnapshot_TaskBody{ + Res: &types.RemoveSnapshot_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (v *VirtualMachineSnapshot) RevertToSnapshotTask(req *types.RevertToSnapshot_Task) soap.HasFault { + task := CreateTask(v, "revertToSnapshot", func(t *Task) (types.AnyType, types.BaseMethodFault) { + vm := Map.Get(v.Vm).(*VirtualMachine) + + Map.WithLock(vm, func() { + Map.Update(vm, []types.PropertyChange{ + {Name: "snapshot.currentSnapshot", Val: v.Self}, + }) + }) + + return nil, nil + }) + + return &methods.RevertToSnapshot_TaskBody{ + Res: &types.RevertToSnapshot_TaskResponse{ + Returnval: task.Run(), + }, + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/storage_resource_manager.go b/vendor/github.com/vmware/govmomi/simulator/storage_resource_manager.go new file mode 100644 index 00000000..4d53173c --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/storage_resource_manager.go @@ -0,0 +1,184 @@ +/* +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strconv" + "time" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type StorageResourceManager struct { + mo.StorageResourceManager +} + +func (m *StorageResourceManager) ConfigureStorageDrsForPodTask(req *types.ConfigureStorageDrsForPod_Task) soap.HasFault { + task := CreateTask(m, "configureStorageDrsForPod", func(*Task) (types.AnyType, types.BaseMethodFault) { + cluster := Map.Get(req.Pod).(*StoragePod) + + if s := req.Spec.PodConfigSpec; s != nil { + config := &cluster.PodStorageDrsEntry.StorageDrsConfig.PodConfig + + if s.Enabled != nil { + config.Enabled = *s.Enabled + } + if s.DefaultVmBehavior != "" { + config.DefaultVmBehavior = s.DefaultVmBehavior + } + } + + return nil, nil + }) + + return &methods.ConfigureStorageDrsForPod_TaskBody{ + Res: &types.ConfigureStorageDrsForPod_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *StorageResourceManager) pod(ref *types.ManagedObjectReference) *StoragePod { + if ref == nil { + return nil + } + cluster := Map.Get(*ref).(*StoragePod) + config := &cluster.PodStorageDrsEntry.StorageDrsConfig.PodConfig + + if !config.Enabled { + return nil + } + + if len(cluster.ChildEntity) == 0 { + return nil + } + + return cluster +} + +func (m *StorageResourceManager) RecommendDatastores(req *types.RecommendDatastores) soap.HasFault { + spec := req.StorageSpec.PodSelectionSpec + body := new(methods.RecommendDatastoresBody) + res := new(types.RecommendDatastoresResponse) + key := 0 + invalid := func(prop string) soap.HasFault { + body.Fault_ = Fault("", &types.InvalidArgument{ + InvalidProperty: prop, + }) + return body + } + add := func(cluster *StoragePod, ds types.ManagedObjectReference) { + key++ + res.Returnval.Recommendations = append(res.Returnval.Recommendations, types.ClusterRecommendation{ + Key: strconv.Itoa(key), + Type: "V1", + Time: time.Now(), + Rating: 1, + Reason: "storagePlacement", + ReasonText: "Satisfy storage initial placement requests", + WarningText: "", + WarningDetails: (*types.LocalizableMessage)(nil), + Prerequisite: nil, + Action: []types.BaseClusterAction{ + &types.StoragePlacementAction{ + ClusterAction: types.ClusterAction{ + Type: "StoragePlacementV1", + Target: (*types.ManagedObjectReference)(nil), + }, + Vm: (*types.ManagedObjectReference)(nil), + RelocateSpec: types.VirtualMachineRelocateSpec{ + Service: (*types.ServiceLocator)(nil), + Folder: (*types.ManagedObjectReference)(nil), + Datastore: &ds, + DiskMoveType: "moveAllDiskBackingsAndAllowSharing", + Pool: (*types.ManagedObjectReference)(nil), + Host: (*types.ManagedObjectReference)(nil), + Disk: nil, + Transform: "", + DeviceChange: nil, + Profile: nil, + }, + Destination: ds, + SpaceUtilBefore: 5.00297212600708, + SpaceDemandBefore: 5.00297212600708, + SpaceUtilAfter: 5.16835880279541, + SpaceDemandAfter: 5.894514083862305, + IoLatencyBefore: 0, + }, + }, + Target: &cluster.Self, + }) + } + + var devices object.VirtualDeviceList + + switch types.StoragePlacementSpecPlacementType(req.StorageSpec.Type) { + case types.StoragePlacementSpecPlacementTypeCreate: + if req.StorageSpec.ResourcePool == nil { + return invalid("resourcePool") + } + if req.StorageSpec.ConfigSpec == nil { + return invalid("configSpec") + } + for _, d := range req.StorageSpec.ConfigSpec.DeviceChange { + devices = append(devices, d.GetVirtualDeviceConfigSpec().Device) + } + cluster := m.pod(spec.StoragePod) + if cluster == nil { + if f := req.StorageSpec.ConfigSpec.Files; f == nil || f.VmPathName == "" { + return invalid("configSpec.files") + } + } + case types.StoragePlacementSpecPlacementTypeClone: + if req.StorageSpec.Folder == nil { + return invalid("folder") + } + if req.StorageSpec.Vm == nil { + return invalid("vm") + } + if req.StorageSpec.CloneName == "" { + return invalid("cloneName") + } + if req.StorageSpec.CloneSpec == nil { + return invalid("cloneSpec") + } + } + + for _, placement := range spec.InitialVmConfig { + cluster := m.pod(&placement.StoragePod) + if cluster == nil { + return invalid("podSelectionSpec.storagePod") + } + + for _, disk := range placement.Disk { + if devices.FindByKey(disk.DiskId) == nil { + return invalid("podSelectionSpec.initialVmConfig.disk.fileBacking") + } + } + + for _, ds := range cluster.ChildEntity { + add(cluster, ds) + } + } + + body.Res = res + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/task.go b/vendor/github.com/vmware/govmomi/simulator/task.go new file mode 100644 index 00000000..3b5939c5 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/task.go @@ -0,0 +1,109 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "reflect" + "strings" + "time" + + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +const vTaskSuffix = "_Task" // vmomi suffix +const sTaskSuffix = "Task" // simulator suffix (avoiding golint warning) + +type Task struct { + mo.Task + + Execute func(*Task) (types.AnyType, types.BaseMethodFault) +} + +func NewTask(runner TaskRunner) *Task { + ref := runner.Reference() + name := reflect.TypeOf(runner).Elem().Name() + name = strings.Replace(name, "VM", "Vm", 1) // "VM" for the type to make go-lint happy, but "Vm" for the vmodl ID + return CreateTask(ref, name, runner.Run) +} + +func CreateTask(e mo.Reference, name string, run func(*Task) (types.AnyType, types.BaseMethodFault)) *Task { + ref := e.Reference() + id := name + + if strings.HasSuffix(id, sTaskSuffix) { + id = id[:len(id)-len(sTaskSuffix)] + name = id + vTaskSuffix + } + + task := &Task{ + Execute: run, + } + + task.Self = Map.newReference(task) + task.Info.Key = task.Self.Value + task.Info.Task = task.Self + task.Info.Name = ucFirst(name) + task.Info.DescriptionId = fmt.Sprintf("%s.%s", ref.Type, id) + task.Info.Entity = &ref + task.Info.EntityName = ref.Value + task.Info.Reason = &types.TaskReasonUser{UserName: "vcsim"} // TODO: Context.Session.User + task.Info.QueueTime = time.Now() + task.Info.State = types.TaskInfoStateQueued + + Map.Put(task) + + return task +} + +type TaskRunner interface { + mo.Reference + + Run(*Task) (types.AnyType, types.BaseMethodFault) +} + +func (t *Task) Run() types.ManagedObjectReference { + now := time.Now() + + Map.Update(t, []types.PropertyChange{ + {Name: "info.startTime", Val: now}, + {Name: "info.state", Val: types.TaskInfoStateRunning}, + }) + + res, err := t.Execute(t) + state := types.TaskInfoStateSuccess + var fault interface{} + if err != nil { + state = types.TaskInfoStateError + fault = types.LocalizedMethodFault{ + Fault: err, + LocalizedMessage: fmt.Sprintf("%T", err), + } + } + + now = time.Now() + + Map.Update(t, []types.PropertyChange{ + {Name: "info.completeTime", Val: now}, + {Name: "info.state", Val: state}, + {Name: "info.result", Val: res}, + {Name: "info.error", Val: fault}, + }) + + return t.Self +} diff --git a/vendor/github.com/vmware/govmomi/simulator/task_manager.go b/vendor/github.com/vmware/govmomi/simulator/task_manager.go new file mode 100644 index 00000000..a1b036f4 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/task_manager.go @@ -0,0 +1,64 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "sync" + + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/simulator/vpx" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +var recentTaskMax = 200 // the VC limit + +type TaskManager struct { + mo.TaskManager + sync.Mutex +} + +func (m *TaskManager) init(r *Registry) { + if len(m.Description.MethodInfo) == 0 { + if r.IsVPX() { + m.Description = vpx.Description + } else { + m.Description = esx.Description + } + } + r.AddHandler(m) +} + +func (m *TaskManager) PutObject(obj mo.Reference) { + ref := obj.Reference() + if ref.Type != "Task" { + return + } + + m.Lock() + recent := append(m.RecentTask, ref) + if len(recent) > recentTaskMax { + recent = recent[1:] + } + + Map.Update(m, []types.PropertyChange{{Name: "recentTask", Val: recent}}) + m.Unlock() +} + +func (*TaskManager) RemoveObject(types.ManagedObjectReference) {} + +func (*TaskManager) UpdateObject(mo.Reference, []types.PropertyChange) {} diff --git a/vendor/github.com/vmware/govmomi/simulator/user_directory.go b/vendor/github.com/vmware/govmomi/simulator/user_directory.go new file mode 100644 index 00000000..929409b0 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/user_directory.go @@ -0,0 +1,104 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +var DefaultUserGroup = []*types.UserSearchResult{ + {FullName: "root", Group: true, Principal: "root"}, + {FullName: "root", Group: false, Principal: "root"}, + {FullName: "administrator", Group: false, Principal: "admin"}, +} + +type UserDirectory struct { + mo.UserDirectory + + userGroup []*types.UserSearchResult +} + +func (m *UserDirectory) init(*Registry) { + m.userGroup = DefaultUserGroup +} + +func (u *UserDirectory) RetrieveUserGroups(req *types.RetrieveUserGroups) soap.HasFault { + compare := compareFunc(req.SearchStr, req.ExactMatch) + + res := u.search(req.FindUsers, req.FindGroups, compare) + + body := &methods.RetrieveUserGroupsBody{ + Res: &types.RetrieveUserGroupsResponse{ + Returnval: res, + }, + } + + return body +} + +func (u *UserDirectory) search(findUsers, findGroups bool, compare func(string) bool) (res []types.BaseUserSearchResult) { + for _, ug := range u.userGroup { + if findUsers && !ug.Group || findGroups && ug.Group { + if compare(ug.Principal) { + res = append(res, ug) + } + } + } + + return res +} + +func (u *UserDirectory) addUser(id string) { + u.add(id, false) +} + +func (u *UserDirectory) removeUser(id string) { + u.remove(id, false) +} + +func (u *UserDirectory) add(id string, group bool) { + user := &types.UserSearchResult{ + FullName: id, + Group: group, + Principal: id, + } + + u.userGroup = append(u.userGroup, user) +} + +func (u *UserDirectory) remove(id string, group bool) { + for i, ug := range u.userGroup { + if ug.Group == group && ug.Principal == id { + u.userGroup = append(u.userGroup[:i], u.userGroup[i+1:]...) + return + } + } +} + +func compareFunc(compared string, exactly bool) func(string) bool { + return func(s string) bool { + if exactly { + return s == compared + } + return strings.Contains(strings.ToLower(s), strings.ToLower(compared)) + } +} diff --git a/vendor/github.com/vmware/govmomi/simulator/view_manager.go b/vendor/github.com/vmware/govmomi/simulator/view_manager.go new file mode 100644 index 00000000..001e2f9a --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/view_manager.go @@ -0,0 +1,267 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "reflect" + + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type ViewManager struct { + mo.ViewManager + + entities map[string]bool +} + +var entities = []struct { + Type reflect.Type + Container bool +}{ + {reflect.TypeOf((*mo.ManagedEntity)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.Folder)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.StoragePod)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.Datacenter)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.ComputeResource)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.ClusterComputeResource)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.HostSystem)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.ResourcePool)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.VirtualApp)(nil)).Elem(), true}, + {reflect.TypeOf((*mo.VirtualMachine)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.Datastore)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.Network)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.OpaqueNetwork)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.DistributedVirtualPortgroup)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.DistributedVirtualSwitch)(nil)).Elem(), false}, + {reflect.TypeOf((*mo.VmwareDistributedVirtualSwitch)(nil)).Elem(), false}, +} + +func (m *ViewManager) init(*Registry) { + m.entities = make(map[string]bool, len(entities)) + for _, e := range entities { + m.entities[e.Type.Name()] = e.Container + } +} + +func destroyView(ref types.ManagedObjectReference) soap.HasFault { + return &methods.DestroyViewBody{ + Res: &types.DestroyViewResponse{}, + } +} + +func (m *ViewManager) CreateContainerView(ctx *Context, req *types.CreateContainerView) soap.HasFault { + body := &methods.CreateContainerViewBody{} + + root := Map.Get(req.Container) + if root == nil { + body.Fault_ = Fault("", &types.ManagedObjectNotFound{Obj: req.Container}) + return body + } + + if !m.entities[root.Reference().Type] { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "container"}) + return body + } + + container := &ContainerView{ + mo.ContainerView{ + Container: root.Reference(), + Recursive: req.Recursive, + Type: req.Type, + }, + make(map[string]bool), + } + + for _, ctype := range container.Type { + if _, ok := m.entities[ctype]; !ok { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "type"}) + return body + } + + container.types[ctype] = true + + for _, e := range entities { + // Check for embedded types + if f, ok := e.Type.FieldByName(ctype); ok && f.Anonymous { + container.types[e.Type.Name()] = true + } + } + } + + ctx.Session.setReference(container) + + body.Res = &types.CreateContainerViewResponse{ + Returnval: container.Self, + } + + seen := make(map[types.ManagedObjectReference]bool) + container.add(root, seen) + + ctx.Session.Registry.Put(container) + + return body +} + +type ContainerView struct { + mo.ContainerView + + types map[string]bool +} + +func (v *ContainerView) DestroyView(ctx *Context, c *types.DestroyView) soap.HasFault { + ctx.Session.Remove(c.This) + return destroyView(c.This) +} + +func (v *ContainerView) include(o types.ManagedObjectReference) bool { + if len(v.types) == 0 { + return true + } + + return v.types[o.Type] +} + +func walk(root mo.Reference, f func(child types.ManagedObjectReference)) { + if _, ok := root.(types.ManagedObjectReference); ok || root == nil { + return + } + + var children []types.ManagedObjectReference + + switch e := getManagedObject(root).Addr().Interface().(type) { + case *mo.Datacenter: + children = []types.ManagedObjectReference{e.VmFolder, e.HostFolder, e.DatastoreFolder, e.NetworkFolder} + case *mo.Folder: + children = e.ChildEntity + case *mo.ComputeResource: + children = e.Host + children = append(children, *e.ResourcePool) + case *mo.ClusterComputeResource: + children = e.Host + children = append(children, *e.ResourcePool) + case *mo.ResourcePool: + children = e.ResourcePool + children = append(children, e.Vm...) + case *mo.VirtualApp: + children = e.ResourcePool.ResourcePool + children = append(children, e.Vm...) + case *mo.HostSystem: + children = e.Vm + } + + for _, child := range children { + f(child) + } +} + +func (v *ContainerView) add(root mo.Reference, seen map[types.ManagedObjectReference]bool) { + walk(root, func(child types.ManagedObjectReference) { + if v.include(child) { + if !seen[child] { + seen[child] = true + v.View = append(v.View, child) + } + } + + if v.Recursive { + v.add(Map.Get(child), seen) + } + }) +} + +func (m *ViewManager) CreateListView(ctx *Context, req *types.CreateListView) soap.HasFault { + body := new(methods.CreateListViewBody) + list := new(ListView) + + if err := list.add(req.Obj); err != nil { + body.Fault_ = Fault("", err) + return body + } + + ctx.Session.Put(list) + + body.Res = &types.CreateListViewResponse{ + Returnval: list.Self, + } + + return body +} + +type ListView struct { + mo.ListView +} + +func (v *ListView) update() { + Map.Update(v, []types.PropertyChange{{Name: "view", Val: v.View}}) +} + +func (v *ListView) add(refs []types.ManagedObjectReference) *types.ManagedObjectNotFound { + for _, ref := range refs { + obj := Map.Get(ref) + if obj == nil { + return &types.ManagedObjectNotFound{Obj: ref} + } + v.View = append(v.View, ref) + } + return nil +} + +func (v *ListView) DestroyView(ctx *Context, c *types.DestroyView) soap.HasFault { + ctx.Session.Remove(c.This) + return destroyView(c.This) +} + +func (v *ListView) ModifyListView(req *types.ModifyListView) soap.HasFault { + body := new(methods.ModifyListViewBody) + + for _, ref := range req.Remove { + RemoveReference(&v.View, ref) + } + + if err := v.add(req.Add); err != nil { + body.Fault_ = Fault("", err) + return body + } + + body.Res = new(types.ModifyListViewResponse) + + if len(req.Remove) != 0 || len(req.Add) != 0 { + v.update() + } + + return body +} + +func (v *ListView) ResetListView(req *types.ResetListView) soap.HasFault { + body := new(methods.ResetListViewBody) + + v.View = nil + + if err := v.add(req.Obj); err != nil { + body.Fault_ = Fault("", err) + return body + } + + body.Res = new(types.ResetListViewResponse) + + v.update() + + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/virtual_disk_manager.go b/vendor/github.com/vmware/govmomi/simulator/virtual_disk_manager.go new file mode 100644 index 00000000..52e3c702 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/virtual_disk_manager.go @@ -0,0 +1,220 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "fmt" + "os" + "strings" + + "github.com/google/uuid" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type VirtualDiskManager struct { + mo.VirtualDiskManager +} + +func (m *VirtualDiskManager) MO() mo.VirtualDiskManager { + return m.VirtualDiskManager +} + +func vdmNames(name string) []string { + return []string{ + strings.Replace(name, ".vmdk", "-flat.vmdk", 1), + name, + } +} + +func vdmCreateVirtualDisk(op types.VirtualDeviceConfigSpecFileOperation, req *types.CreateVirtualDisk_Task) types.BaseMethodFault { + fm := Map.FileManager() + + file, fault := fm.resolve(req.Datacenter, req.Name) + if fault != nil { + return fault + } + + shouldReplace := op == types.VirtualDeviceConfigSpecFileOperationReplace + shouldExist := op == "" + for _, name := range vdmNames(file) { + _, err := os.Stat(name) + if err == nil { + if shouldExist { + return nil + } + if shouldReplace { + if err = os.Truncate(file, 0); err != nil { + return fm.fault(name, err, new(types.CannotCreateFile)) + } + return nil + } + return fm.fault(name, nil, new(types.FileAlreadyExists)) + } else if shouldExist { + return fm.fault(name, nil, new(types.FileNotFound)) + } + + f, err := os.Create(name) + if err != nil { + return fm.fault(name, err, new(types.CannotCreateFile)) + } + + _ = f.Close() + } + + return nil +} + +func (m *VirtualDiskManager) CreateVirtualDiskTask(_ *Context, req *types.CreateVirtualDisk_Task) soap.HasFault { + task := CreateTask(m, "createVirtualDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + if err := vdmCreateVirtualDisk(types.VirtualDeviceConfigSpecFileOperationCreate, req); err != nil { + return "", err + } + return req.Name, nil + }) + + return &methods.CreateVirtualDisk_TaskBody{ + Res: &types.CreateVirtualDisk_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VirtualDiskManager) DeleteVirtualDiskTask(_ *Context, req *types.DeleteVirtualDisk_Task) soap.HasFault { + task := CreateTask(m, "deleteVirtualDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + fm := Map.FileManager() + + for _, name := range vdmNames(req.Name) { + err := fm.deleteDatastoreFile(&types.DeleteDatastoreFile_Task{ + Name: name, + Datacenter: req.Datacenter, + }) + + if err != nil { + return nil, err + } + } + + return nil, nil + }) + + return &methods.DeleteVirtualDisk_TaskBody{ + Res: &types.DeleteVirtualDisk_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VirtualDiskManager) MoveVirtualDiskTask(_ *Context, req *types.MoveVirtualDisk_Task) soap.HasFault { + task := CreateTask(m, "moveVirtualDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + fm := Map.FileManager() + + dest := vdmNames(req.DestName) + + for i, name := range vdmNames(req.SourceName) { + err := fm.moveDatastoreFile(&types.MoveDatastoreFile_Task{ + SourceName: name, + SourceDatacenter: req.SourceDatacenter, + DestinationName: dest[i], + DestinationDatacenter: req.DestDatacenter, + Force: req.Force, + }) + + if err != nil { + return nil, err + } + } + + return nil, nil + }) + + return &methods.MoveVirtualDisk_TaskBody{ + Res: &types.MoveVirtualDisk_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VirtualDiskManager) CopyVirtualDiskTask(_ *Context, req *types.CopyVirtualDisk_Task) soap.HasFault { + task := CreateTask(m, "copyVirtualDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + if req.DestSpec != nil { + if Map.IsVPX() { + return nil, new(types.NotImplemented) + } + } + + fm := Map.FileManager() + + dest := vdmNames(req.DestName) + + for i, name := range vdmNames(req.SourceName) { + err := fm.copyDatastoreFile(&types.CopyDatastoreFile_Task{ + SourceName: name, + SourceDatacenter: req.SourceDatacenter, + DestinationName: dest[i], + DestinationDatacenter: req.DestDatacenter, + Force: req.Force, + }) + + if err != nil { + return nil, err + } + } + + return nil, nil + }) + + return &methods.CopyVirtualDisk_TaskBody{ + Res: &types.CopyVirtualDisk_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VirtualDiskManager) QueryVirtualDiskUuid(_ *Context, req *types.QueryVirtualDiskUuid) soap.HasFault { + body := new(methods.QueryVirtualDiskUuidBody) + + fm := Map.FileManager() + + file, fault := fm.resolve(req.Datacenter, req.Name) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + _, err := os.Stat(file) + if err != nil { + fault = fm.fault(req.Name, err, new(types.CannotAccessFile)) + body.Fault_ = Fault(fmt.Sprintf("File %s was not found", req.Name), fault) + return body + } + + body.Res = &types.QueryVirtualDiskUuidResponse{ + Returnval: uuid.NewSHA1(uuid.NameSpaceOID, []byte(file)).String(), + } + + return body +} + +func (m *VirtualDiskManager) SetVirtualDiskUuid(_ *Context, req *types.SetVirtualDiskUuid) soap.HasFault { + body := new(methods.SetVirtualDiskUuidBody) + // TODO: validate uuid format and persist + body.Res = new(types.SetVirtualDiskUuidResponse) + return body +} diff --git a/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go b/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go new file mode 100644 index 00000000..9068d25e --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go @@ -0,0 +1,2122 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net" + "os" + "path" + "path/filepath" + "reflect" + "strconv" + "strings" + "sync/atomic" + "time" + + "github.com/google/uuid" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type VirtualMachine struct { + mo.VirtualMachine + + log string + sid int32 + run container + uid uuid.UUID + imc *types.CustomizationSpec +} + +func asVirtualMachineMO(obj mo.Reference) (*mo.VirtualMachine, bool) { + vm, ok := getManagedObject(obj).Addr().Interface().(*mo.VirtualMachine) + return vm, ok +} + +func NewVirtualMachine(ctx *Context, parent types.ManagedObjectReference, spec *types.VirtualMachineConfigSpec) (*VirtualMachine, types.BaseMethodFault) { + vm := &VirtualMachine{} + vm.Parent = &parent + + folder := Map.Get(parent) + f, _ := asFolderMO(folder) + folderPutChild(ctx, f, vm) + + if spec.Name == "" { + return vm, &types.InvalidVmConfig{Property: "configSpec.name"} + } + + if spec.Files == nil || spec.Files.VmPathName == "" { + return vm, &types.InvalidVmConfig{Property: "configSpec.files.vmPathName"} + } + + rspec := types.DefaultResourceConfigSpec() + vm.Guest = &types.GuestInfo{} + vm.Config = &types.VirtualMachineConfigInfo{ + ExtraConfig: []types.BaseOptionValue{&types.OptionValue{Key: "govcsim", Value: "TRUE"}}, + Tools: &types.ToolsConfigInfo{}, + MemoryAllocation: &rspec.MemoryAllocation, + CpuAllocation: &rspec.CpuAllocation, + LatencySensitivity: &types.LatencySensitivity{Level: types.LatencySensitivitySensitivityLevelNormal}, + } + vm.Layout = &types.VirtualMachineFileLayout{} + vm.LayoutEx = &types.VirtualMachineFileLayoutEx{ + Timestamp: time.Now(), + } + vm.Snapshot = nil // intentionally set to nil until a snapshot is created + vm.Storage = &types.VirtualMachineStorageInfo{ + Timestamp: time.Now(), + } + vm.Summary.Guest = &types.VirtualMachineGuestSummary{} + vm.Summary.Vm = &vm.Self + vm.Summary.Storage = &types.VirtualMachineStorageSummary{ + Timestamp: time.Now(), + } + + vmx := vm.vmx(spec) + if vmx.Path == "" { + // Append VM Name as the directory name if not specified + vmx.Path = spec.Name + } + + dc := Map.getEntityDatacenter(folder.(mo.Entity)) + ds := Map.FindByName(vmx.Datastore, dc.Datastore).(*Datastore) + dir := path.Join(ds.Info.GetDatastoreInfo().Url, vmx.Path) + + if path.Ext(vmx.Path) == ".vmx" { + dir = path.Dir(dir) + // Ignore error here, deferring to createFile + _ = os.Mkdir(dir, 0700) + } else { + // Create VM directory, renaming if already exists + name := dir + + for i := 0; i < 1024; /* just in case */ i++ { + err := os.Mkdir(name, 0700) + if err != nil { + if os.IsExist(err) { + name = fmt.Sprintf("%s (%d)", dir, i) + continue + } + return nil, &types.FileFault{File: name} + } + break + } + vmx.Path = path.Join(path.Base(name), spec.Name+".vmx") + } + + spec.Files.VmPathName = vmx.String() + + dsPath := path.Dir(spec.Files.VmPathName) + vm.uid = sha1UUID(spec.Files.VmPathName) + + defaults := types.VirtualMachineConfigSpec{ + NumCPUs: 1, + NumCoresPerSocket: 1, + MemoryMB: 32, + Uuid: vm.uid.String(), + InstanceUuid: newUUID(strings.ToUpper(spec.Files.VmPathName)), + Version: esx.HardwareVersion, + Files: &types.VirtualMachineFileInfo{ + SnapshotDirectory: dsPath, + SuspendDirectory: dsPath, + LogDirectory: dsPath, + }, + } + + // Add the default devices + defaults.DeviceChange, _ = object.VirtualDeviceList(esx.VirtualDevice).ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) + + err := vm.configure(&defaults) + if err != nil { + return vm, err + } + + vm.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff + vm.Runtime.ConnectionState = types.VirtualMachineConnectionStateConnected + vm.Summary.Runtime = vm.Runtime + + vm.Summary.QuickStats.GuestHeartbeatStatus = types.ManagedEntityStatusGray + vm.Summary.OverallStatus = types.ManagedEntityStatusGreen + vm.ConfigStatus = types.ManagedEntityStatusGreen + + return vm, nil +} + +func (o *VirtualMachine) RenameTask(r *types.Rename_Task) soap.HasFault { + return RenameTask(o, r) +} + +func (vm *VirtualMachine) event() types.VmEvent { + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + + return types.VmEvent{ + Event: types.Event{ + Datacenter: datacenterEventArgument(host), + ComputeResource: host.eventArgumentParent(), + Host: host.eventArgument(), + Vm: &types.VmEventArgument{ + EntityEventArgument: types.EntityEventArgument{Name: vm.Name}, + Vm: vm.Self, + }, + }, + } +} + +func (vm *VirtualMachine) apply(spec *types.VirtualMachineConfigSpec) { + if spec.Files == nil { + spec.Files = new(types.VirtualMachineFileInfo) + } + + apply := []struct { + src string + dst *string + }{ + {spec.AlternateGuestName, &vm.Config.AlternateGuestName}, + {spec.Annotation, &vm.Config.Annotation}, + {spec.Firmware, &vm.Config.Firmware}, + {spec.InstanceUuid, &vm.Config.InstanceUuid}, + {spec.LocationId, &vm.Config.LocationId}, + {spec.NpivWorldWideNameType, &vm.Config.NpivWorldWideNameType}, + {spec.Name, &vm.Name}, + {spec.Name, &vm.Config.Name}, + {spec.Name, &vm.Summary.Config.Name}, + {spec.GuestId, &vm.Config.GuestId}, + {spec.GuestId, &vm.Config.GuestFullName}, + {spec.GuestId, &vm.Summary.Guest.GuestId}, + {spec.GuestId, &vm.Summary.Config.GuestId}, + {spec.GuestId, &vm.Summary.Config.GuestFullName}, + {spec.Uuid, &vm.Config.Uuid}, + {spec.Uuid, &vm.Summary.Config.Uuid}, + {spec.InstanceUuid, &vm.Config.InstanceUuid}, + {spec.InstanceUuid, &vm.Summary.Config.InstanceUuid}, + {spec.Version, &vm.Config.Version}, + {spec.Files.VmPathName, &vm.Config.Files.VmPathName}, + {spec.Files.VmPathName, &vm.Summary.Config.VmPathName}, + {spec.Files.SnapshotDirectory, &vm.Config.Files.SnapshotDirectory}, + {spec.Files.SuspendDirectory, &vm.Config.Files.SuspendDirectory}, + {spec.Files.LogDirectory, &vm.Config.Files.LogDirectory}, + } + + for _, f := range apply { + if f.src != "" { + *f.dst = f.src + } + } + + applyb := []struct { + src *bool + dst **bool + }{ + {spec.NestedHVEnabled, &vm.Config.NestedHVEnabled}, + {spec.CpuHotAddEnabled, &vm.Config.CpuHotAddEnabled}, + {spec.CpuHotRemoveEnabled, &vm.Config.CpuHotRemoveEnabled}, + {spec.GuestAutoLockEnabled, &vm.Config.GuestAutoLockEnabled}, + {spec.MemoryHotAddEnabled, &vm.Config.MemoryHotAddEnabled}, + {spec.MemoryReservationLockedToMax, &vm.Config.MemoryReservationLockedToMax}, + {spec.MessageBusTunnelEnabled, &vm.Config.MessageBusTunnelEnabled}, + {spec.NpivTemporaryDisabled, &vm.Config.NpivTemporaryDisabled}, + {spec.NpivOnNonRdmDisks, &vm.Config.NpivOnNonRdmDisks}, + {spec.ChangeTrackingEnabled, &vm.Config.ChangeTrackingEnabled}, + } + + for _, f := range applyb { + if f.src != nil { + *f.dst = f.src + } + } + + if spec.Flags != nil { + vm.Config.Flags = *spec.Flags + } + + if spec.LatencySensitivity != nil { + vm.Config.LatencySensitivity = spec.LatencySensitivity + } + + if spec.ManagedBy != nil { + vm.Config.ManagedBy = spec.ManagedBy + } + + if spec.BootOptions != nil { + vm.Config.BootOptions = spec.BootOptions + } + + if spec.RepConfig != nil { + vm.Config.RepConfig = spec.RepConfig + } + + if spec.Tools != nil { + vm.Config.Tools = spec.Tools + } + + if spec.ConsolePreferences != nil { + vm.Config.ConsolePreferences = spec.ConsolePreferences + } + + if spec.CpuAffinity != nil { + vm.Config.CpuAffinity = spec.CpuAffinity + } + + if spec.CpuAllocation != nil { + vm.Config.CpuAllocation = spec.CpuAllocation + } + + if spec.MemoryAffinity != nil { + vm.Config.MemoryAffinity = spec.MemoryAffinity + } + + if spec.MemoryAllocation != nil { + vm.Config.MemoryAllocation = spec.MemoryAllocation + } + + if spec.LatencySensitivity != nil { + vm.Config.LatencySensitivity = spec.LatencySensitivity + } + + if spec.MemoryMB != 0 { + vm.Config.Hardware.MemoryMB = int32(spec.MemoryMB) + vm.Summary.Config.MemorySizeMB = vm.Config.Hardware.MemoryMB + } + + if spec.NumCPUs != 0 { + vm.Config.Hardware.NumCPU = spec.NumCPUs + vm.Summary.Config.NumCpu = vm.Config.Hardware.NumCPU + } + + if spec.NumCoresPerSocket != 0 { + vm.Config.Hardware.NumCoresPerSocket = spec.NumCoresPerSocket + } + + if spec.GuestId != "" { + vm.Guest.GuestFamily = guestFamily(spec.GuestId) + } + + vm.Config.Modified = time.Now() +} + +var extraConfigAlias = map[string]string{ + "ip0": "SET.guest.ipAddress", +} + +func extraConfigKey(key string) string { + if k, ok := extraConfigAlias[key]; ok { + return k + } + return key +} + +func (vm *VirtualMachine) applyExtraConfig(spec *types.VirtualMachineConfigSpec) { + var changes []types.PropertyChange + for _, c := range spec.ExtraConfig { + val := c.GetOptionValue() + key := strings.TrimPrefix(extraConfigKey(val.Key), "SET.") + if key == val.Key { + vm.Config.ExtraConfig = append(vm.Config.ExtraConfig, c) + continue + } + changes = append(changes, types.PropertyChange{Name: key, Val: val.Value}) + + switch key { + case "guest.ipAddress": + if len(vm.Guest.Net) > 0 { + ip := val.Value.(string) + vm.Guest.Net[0].IpAddress = []string{ip} + changes = append(changes, + types.PropertyChange{Name: "summary." + key, Val: ip}, + types.PropertyChange{Name: "guest.net", Val: vm.Guest.Net}, + ) + } + case "guest.hostName": + changes = append(changes, + types.PropertyChange{Name: "summary." + key, Val: val.Value}, + ) + } + } + if len(changes) != 0 { + Map.Update(vm, changes) + } +} + +func validateGuestID(id string) types.BaseMethodFault { + for _, x := range GuestID { + if id == string(x) { + return nil + } + } + + return &types.InvalidArgument{InvalidProperty: "configSpec.guestId"} +} + +func (vm *VirtualMachine) configure(spec *types.VirtualMachineConfigSpec) types.BaseMethodFault { + vm.apply(spec) + + if spec.MemoryAllocation != nil { + if err := updateResourceAllocation("memory", spec.MemoryAllocation, vm.Config.MemoryAllocation); err != nil { + return err + } + } + + if spec.CpuAllocation != nil { + if err := updateResourceAllocation("cpu", spec.CpuAllocation, vm.Config.CpuAllocation); err != nil { + return err + } + } + + if spec.GuestId != "" { + if err := validateGuestID(spec.GuestId); err != nil { + return err + } + } + + return vm.configureDevices(spec) +} + +func getVMFileType(fileName string) types.VirtualMachineFileLayoutExFileType { + var fileType types.VirtualMachineFileLayoutExFileType + + fileExt := path.Ext(fileName) + fileNameNoExt := strings.TrimSuffix(fileName, fileExt) + + switch fileExt { + case ".vmx": + fileType = types.VirtualMachineFileLayoutExFileTypeConfig + case ".core": + fileType = types.VirtualMachineFileLayoutExFileTypeCore + case ".vmdk": + fileType = types.VirtualMachineFileLayoutExFileTypeDiskDescriptor + if strings.HasSuffix(fileNameNoExt, "-digest") { + fileType = types.VirtualMachineFileLayoutExFileTypeDigestDescriptor + } + + extentSuffixes := []string{"-flat", "-delta", "-s", "-rdm", "-rdmp"} + for _, suffix := range extentSuffixes { + if strings.HasSuffix(fileNameNoExt, suffix) { + fileType = types.VirtualMachineFileLayoutExFileTypeDiskExtent + } else if strings.HasSuffix(fileNameNoExt, "-digest"+suffix) { + fileType = types.VirtualMachineFileLayoutExFileTypeDigestExtent + } + } + case ".psf": + fileType = types.VirtualMachineFileLayoutExFileTypeDiskReplicationState + case ".vmxf": + fileType = types.VirtualMachineFileLayoutExFileTypeExtendedConfig + case ".vmft": + fileType = types.VirtualMachineFileLayoutExFileTypeFtMetadata + case ".log": + fileType = types.VirtualMachineFileLayoutExFileTypeLog + case ".nvram": + fileType = types.VirtualMachineFileLayoutExFileTypeNvram + case ".png", ".bmp": + fileType = types.VirtualMachineFileLayoutExFileTypeScreenshot + case ".vmsn": + fileType = types.VirtualMachineFileLayoutExFileTypeSnapshotData + case ".vmsd": + fileType = types.VirtualMachineFileLayoutExFileTypeSnapshotList + case ".xml": + if strings.HasSuffix(fileNameNoExt, "-aux") { + fileType = types.VirtualMachineFileLayoutExFileTypeSnapshotManifestList + } + case ".stat": + fileType = types.VirtualMachineFileLayoutExFileTypeStat + case ".vmss": + fileType = types.VirtualMachineFileLayoutExFileTypeSuspend + case ".vmem": + if strings.Contains(fileNameNoExt, "Snapshot") { + fileType = types.VirtualMachineFileLayoutExFileTypeSnapshotMemory + } else { + fileType = types.VirtualMachineFileLayoutExFileTypeSuspendMemory + } + case ".vswp": + if strings.HasPrefix(fileNameNoExt, "vmx-") { + fileType = types.VirtualMachineFileLayoutExFileTypeUwswap + } else { + fileType = types.VirtualMachineFileLayoutExFileTypeSwap + } + case "": + if strings.HasPrefix(fileNameNoExt, "imcf-") { + fileType = types.VirtualMachineFileLayoutExFileTypeGuestCustomization + } + } + + return fileType +} + +func (vm *VirtualMachine) addFileLayoutEx(datastorePath object.DatastorePath, fileSize int64) int32 { + var newKey int32 + for _, layoutFile := range vm.LayoutEx.File { + if layoutFile.Name == datastorePath.String() { + return layoutFile.Key + } + + if layoutFile.Key >= newKey { + newKey = layoutFile.Key + 1 + } + } + + fileType := getVMFileType(filepath.Base(datastorePath.Path)) + + switch fileType { + case types.VirtualMachineFileLayoutExFileTypeNvram, types.VirtualMachineFileLayoutExFileTypeSnapshotList: + vm.addConfigLayout(datastorePath.Path) + case types.VirtualMachineFileLayoutExFileTypeLog: + vm.addLogLayout(datastorePath.Path) + case types.VirtualMachineFileLayoutExFileTypeSwap: + vm.addSwapLayout(datastorePath.String()) + } + + vm.LayoutEx.File = append(vm.LayoutEx.File, types.VirtualMachineFileLayoutExFileInfo{ + Accessible: types.NewBool(true), + BackingObjectId: "", + Key: newKey, + Name: datastorePath.String(), + Size: fileSize, + Type: string(fileType), + UniqueSize: fileSize, + }) + + vm.LayoutEx.Timestamp = time.Now() + + vm.updateStorage() + + return newKey +} + +func (vm *VirtualMachine) addConfigLayout(name string) { + for _, config := range vm.Layout.ConfigFile { + if config == name { + return + } + } + + vm.Layout.ConfigFile = append(vm.Layout.ConfigFile, name) + + vm.updateStorage() +} + +func (vm *VirtualMachine) addLogLayout(name string) { + for _, log := range vm.Layout.LogFile { + if log == name { + return + } + } + + vm.Layout.LogFile = append(vm.Layout.LogFile, name) + + vm.updateStorage() +} + +func (vm *VirtualMachine) addSwapLayout(name string) { + vm.Layout.SwapFile = name + + vm.updateStorage() +} + +func (vm *VirtualMachine) addSnapshotLayout(snapshot types.ManagedObjectReference, dataKey int32) { + for _, snapshotLayout := range vm.Layout.Snapshot { + if snapshotLayout.Key == snapshot { + return + } + } + + var snapshotFiles []string + for _, file := range vm.LayoutEx.File { + if file.Key == dataKey || file.Type == "diskDescriptor" { + snapshotFiles = append(snapshotFiles, file.Name) + } + } + + vm.Layout.Snapshot = append(vm.Layout.Snapshot, types.VirtualMachineFileLayoutSnapshotLayout{ + Key: snapshot, + SnapshotFile: snapshotFiles, + }) + + vm.updateStorage() +} + +func (vm *VirtualMachine) addSnapshotLayoutEx(snapshot types.ManagedObjectReference, dataKey int32, memoryKey int32) { + for _, snapshotLayoutEx := range vm.LayoutEx.Snapshot { + if snapshotLayoutEx.Key == snapshot { + return + } + } + + vm.LayoutEx.Snapshot = append(vm.LayoutEx.Snapshot, types.VirtualMachineFileLayoutExSnapshotLayout{ + DataKey: dataKey, + Disk: vm.LayoutEx.Disk, + Key: snapshot, + MemoryKey: memoryKey, + }) + + vm.LayoutEx.Timestamp = time.Now() + + vm.updateStorage() +} + +// Updates both vm.Layout.Disk and vm.LayoutEx.Disk +func (vm *VirtualMachine) updateDiskLayouts() types.BaseMethodFault { + var disksLayout []types.VirtualMachineFileLayoutDiskLayout + var disksLayoutEx []types.VirtualMachineFileLayoutExDiskLayout + + disks := object.VirtualDeviceList(vm.Config.Hardware.Device).SelectByType((*types.VirtualDisk)(nil)) + for _, disk := range disks { + disk := disk.(*types.VirtualDisk) + diskBacking := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo) + + diskLayout := &types.VirtualMachineFileLayoutDiskLayout{Key: disk.Key} + diskLayoutEx := &types.VirtualMachineFileLayoutExDiskLayout{Key: disk.Key} + + // Iterate through disk and its parents + for { + dFileName := diskBacking.GetVirtualDeviceFileBackingInfo().FileName + + var fileKeys []int32 + + // Add disk descriptor and extent files + for _, diskName := range vdmNames(dFileName) { + // get full path including datastore location + p, fault := parseDatastorePath(diskName) + if fault != nil { + return fault + } + + datastore := vm.useDatastore(p.Datastore) + dFilePath := path.Join(datastore.Info.GetDatastoreInfo().Url, p.Path) + + var fileSize int64 + // If file can not be opened - fileSize will be 0 + if dFileInfo, err := os.Stat(dFilePath); err == nil { + fileSize = dFileInfo.Size() + } + + diskKey := vm.addFileLayoutEx(*p, fileSize) + fileKeys = append(fileKeys, diskKey) + } + + diskLayout.DiskFile = append(diskLayout.DiskFile, dFileName) + diskLayoutEx.Chain = append(diskLayoutEx.Chain, types.VirtualMachineFileLayoutExDiskUnit{ + FileKey: fileKeys, + }) + + if parent := diskBacking.Parent; parent != nil { + diskBacking = parent + } else { + break + } + } + + disksLayout = append(disksLayout, *diskLayout) + disksLayoutEx = append(disksLayoutEx, *diskLayoutEx) + } + + vm.Layout.Disk = disksLayout + + vm.LayoutEx.Disk = disksLayoutEx + vm.LayoutEx.Timestamp = time.Now() + + vm.updateStorage() + + return nil +} + +func (vm *VirtualMachine) updateStorage() types.BaseMethodFault { + // Committed - sum of Size for each file in vm.LayoutEx.File + // Unshared - sum of Size for each disk (.vmdk) in vm.LayoutEx.File + // Uncommitted - disk capacity minus disk usage (only currently used disk) + var datastoresUsage []types.VirtualMachineUsageOnDatastore + + disks := object.VirtualDeviceList(vm.Config.Hardware.Device).SelectByType((*types.VirtualDisk)(nil)) + + for _, file := range vm.LayoutEx.File { + p, fault := parseDatastorePath(file.Name) + if fault != nil { + return fault + } + + datastore := vm.useDatastore(p.Datastore) + dsUsage := &types.VirtualMachineUsageOnDatastore{ + Datastore: datastore.Self, + } + + for idx, usage := range datastoresUsage { + if usage.Datastore == datastore.Self { + datastoresUsage = append(datastoresUsage[:idx], datastoresUsage[idx+1:]...) + dsUsage = &usage + break + } + } + + dsUsage.Committed = file.Size + + if path.Ext(file.Name) == ".vmdk" { + dsUsage.Unshared = file.Size + } + + for _, disk := range disks { + disk := disk.(*types.VirtualDisk) + backing := disk.Backing.(types.BaseVirtualDeviceFileBackingInfo).GetVirtualDeviceFileBackingInfo() + + if backing.FileName == file.Name { + dsUsage.Uncommitted = disk.CapacityInBytes + } + } + + datastoresUsage = append(datastoresUsage, *dsUsage) + } + + vm.Storage.PerDatastoreUsage = datastoresUsage + vm.Storage.Timestamp = time.Now() + + storageSummary := &types.VirtualMachineStorageSummary{ + Timestamp: time.Now(), + } + + for _, usage := range datastoresUsage { + storageSummary.Committed += usage.Committed + storageSummary.Uncommitted += usage.Uncommitted + storageSummary.Unshared += usage.Unshared + } + + vm.Summary.Storage = storageSummary + + return nil +} + +func (vm *VirtualMachine) RefreshStorageInfo(ctx *Context, req *types.RefreshStorageInfo) soap.HasFault { + body := new(methods.RefreshStorageInfoBody) + + if vm.Runtime.Host == nil { + // VM not fully created + return body + } + + // Validate that all files in vm.LayoutEx.File can still be found + for idx := len(vm.LayoutEx.File) - 1; idx >= 0; idx-- { + file := vm.LayoutEx.File[idx] + + p, fault := parseDatastorePath(file.Name) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + if _, err := os.Stat(p.String()); err != nil { + vm.LayoutEx.File = append(vm.LayoutEx.File[:idx], vm.LayoutEx.File[idx+1:]...) + } + } + + // Directories will be used to locate VM files. + // Does not include information about virtual disk file locations. + locations := []string{ + vm.Config.Files.VmPathName, + vm.Config.Files.SnapshotDirectory, + vm.Config.Files.LogDirectory, + vm.Config.Files.SuspendDirectory, + vm.Config.Files.FtMetadataDirectory, + } + + for _, directory := range locations { + if directory == "" { + continue + } + + p, fault := parseDatastorePath(directory) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + datastore := vm.useDatastore(p.Datastore) + directory := path.Join(datastore.Info.GetDatastoreInfo().Url, p.Path) + + if path.Ext(p.Path) == ".vmx" { + directory = path.Dir(directory) // vm.Config.Files.VmPathName can be a directory or full path to .vmx + } + + if _, err := os.Stat(directory); err != nil { + // Can not access the directory + continue + } + + files, err := ioutil.ReadDir(directory) + if err != nil { + body.Fault_ = soap.ToSoapFault(err) + return body + } + + for _, file := range files { + datastorePath := object.DatastorePath{ + Datastore: p.Datastore, + Path: strings.TrimPrefix(file.Name(), datastore.Info.GetDatastoreInfo().Url), + } + + vm.addFileLayoutEx(datastorePath, file.Size()) + } + } + + fault := vm.updateDiskLayouts() + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + vm.LayoutEx.Timestamp = time.Now() + + body.Res = new(types.RefreshStorageInfoResponse) + + return body +} + +func (vm *VirtualMachine) findDatastore(name string) *Datastore { + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + + return Map.FindByName(name, host.Datastore).(*Datastore) +} + +func (vm *VirtualMachine) useDatastore(name string) *Datastore { + ds := vm.findDatastore(name) + if FindReference(vm.Datastore, ds.Self) == nil { + vm.Datastore = append(vm.Datastore, ds.Self) + } + + return ds +} + +func (vm *VirtualMachine) vmx(spec *types.VirtualMachineConfigSpec) object.DatastorePath { + var p object.DatastorePath + vmx := vm.Config.Files.VmPathName + if spec != nil { + vmx = spec.Files.VmPathName + } + p.FromString(vmx) + return p +} + +func (vm *VirtualMachine) createFile(spec string, name string, register bool) (*os.File, types.BaseMethodFault) { + p, fault := parseDatastorePath(spec) + if fault != nil { + return nil, fault + } + + ds := vm.useDatastore(p.Datastore) + + file := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) + + if name != "" { + if path.Ext(p.Path) == ".vmx" { + file = path.Dir(file) // vm.Config.Files.VmPathName can be a directory or full path to .vmx + } + + file = path.Join(file, name) + } + + if register { + f, err := os.Open(filepath.Clean(file)) + if err != nil { + log.Printf("register %s: %s", vm.Reference(), err) + if os.IsNotExist(err) { + return nil, &types.NotFound{} + } + + return nil, &types.InvalidArgument{} + } + + return f, nil + } + + _, err := os.Stat(file) + if err == nil { + fault := &types.FileAlreadyExists{FileFault: types.FileFault{File: file}} + log.Printf("%T: %s", fault, file) + return nil, fault + } + + // Create parent directory if needed + dir := path.Dir(file) + _, err = os.Stat(dir) + if err != nil { + if os.IsNotExist(err) { + _ = os.Mkdir(dir, 0700) + } + } + + f, err := os.Create(file) + if err != nil { + log.Printf("create(%s): %s", file, err) + return nil, &types.FileFault{ + File: file, + } + } + + return f, nil +} + +// Rather than keep an fd open for each VM, open/close the log for each messages. +// This is ok for now as we do not do any heavy VM logging. +func (vm *VirtualMachine) logPrintf(format string, v ...interface{}) { + f, err := os.OpenFile(vm.log, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0) + if err != nil { + log.Println(err) + return + } + log.New(f, "vmx ", log.Flags()).Printf(format, v...) + _ = f.Close() +} + +func (vm *VirtualMachine) create(spec *types.VirtualMachineConfigSpec, register bool) types.BaseMethodFault { + vm.apply(spec) + + if spec.Version != "" { + v := strings.TrimPrefix(spec.Version, "vmx-") + _, err := strconv.Atoi(v) + if err != nil { + log.Printf("unsupported hardware version: %s", spec.Version) + return new(types.NotSupported) + } + } + + files := []struct { + spec string + name string + use *string + }{ + {vm.Config.Files.VmPathName, "", nil}, + {vm.Config.Files.VmPathName, fmt.Sprintf("%s.nvram", vm.Name), nil}, + {vm.Config.Files.LogDirectory, "vmware.log", &vm.log}, + } + + for _, file := range files { + f, err := vm.createFile(file.spec, file.name, register) + if err != nil { + return err + } + if file.use != nil { + *file.use = f.Name() + } + _ = f.Close() + } + + vm.logPrintf("created") + + return vm.configureDevices(spec) +} + +var vmwOUI = net.HardwareAddr([]byte{0x0, 0xc, 0x29}) + +// From http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.vsphere.networking.doc%2FGUID-DC7478FF-DC44-4625-9AD7-38208C56A552.html +// "The host generates generateMAC addresses that consists of the VMware OUI 00:0C:29 and the last three octets in hexadecimal +// format of the virtual machine UUID. The virtual machine UUID is based on a hash calculated by using the UUID of the +// ESXi physical machine and the path to the configuration file (.vmx) of the virtual machine." +func (vm *VirtualMachine) generateMAC(unit int32) string { + id := []byte(vm.Config.Uuid) + + offset := len(id) - len(vmwOUI) + key := id[offset] + byte(unit) // add device unit number, giving each VM NIC a unique MAC + id = append([]byte{key}, id[offset+1:]...) + + mac := append(vmwOUI, id...) + + return mac.String() +} + +func numberToString(n int64, sep rune) string { + buf := &bytes.Buffer{} + if n < 0 { + n = -n + buf.WriteRune('-') + } + s := strconv.FormatInt(n, 10) + pos := 3 - (len(s) % 3) + for i := 0; i < len(s); i++ { + if pos == 3 { + if i != 0 { + buf.WriteRune(sep) + } + pos = 0 + } + pos++ + buf.WriteByte(s[i]) + } + + return buf.String() +} + +func getDiskSize(disk *types.VirtualDisk) int64 { + if disk.CapacityInBytes == 0 { + return disk.CapacityInKB * 1024 + } + return disk.CapacityInBytes +} + +func (vm *VirtualMachine) validateSwitchMembers(id string) types.BaseMethodFault { + var dswitch *DistributedVirtualSwitch + + var find func(types.ManagedObjectReference) + find = func(child types.ManagedObjectReference) { + s, ok := Map.Get(child).(*DistributedVirtualSwitch) + if ok && s.Uuid == id { + dswitch = s + return + } + walk(Map.Get(child), find) + } + f := Map.getEntityDatacenter(vm).NetworkFolder + walk(Map.Get(f), find) // search in NetworkFolder and any sub folders + + if dswitch == nil { + log.Printf("DVS %s cannot be found", id) + return new(types.NotFound) + } + + h := Map.Get(*vm.Runtime.Host).(*HostSystem) + c := hostParent(&h.HostSystem) + isMember := func(val types.ManagedObjectReference) bool { + for _, mem := range dswitch.Summary.HostMember { + if mem == val { + return true + } + } + log.Printf("%s is not a member of VDS %s", h.Name, dswitch.Name) + return false + } + + for _, ref := range c.Host { + if !isMember(ref) { + return &types.InvalidArgument{InvalidProperty: "spec.deviceChange.device.port.switchUuid"} + } + } + + return nil +} + +func (vm *VirtualMachine) configureDevice(devices object.VirtualDeviceList, spec *types.VirtualDeviceConfigSpec) types.BaseMethodFault { + device := spec.Device + d := device.GetVirtualDevice() + var controller types.BaseVirtualController + + if d.Key <= 0 { + // Keys can't be negative; Key 0 is reserved + d.Key = devices.NewKey() + d.Key *= -1 + } + + // Choose a unique key + for { + if devices.FindByKey(d.Key) == nil { + break + } + d.Key++ + } + + label := devices.Name(device) + summary := label + dc := Map.getEntityDatacenter(Map.Get(*vm.Parent).(mo.Entity)) + + switch x := device.(type) { + case types.BaseVirtualEthernetCard: + controller = devices.PickController((*types.VirtualPCIController)(nil)) + var net types.ManagedObjectReference + var name string + + switch b := d.Backing.(type) { + case *types.VirtualEthernetCardNetworkBackingInfo: + name = b.DeviceName + summary = name + net = Map.FindByName(b.DeviceName, dc.Network).Reference() + b.Network = &net + case *types.VirtualEthernetCardDistributedVirtualPortBackingInfo: + summary = fmt.Sprintf("DVSwitch: %s", b.Port.SwitchUuid) + net.Type = "DistributedVirtualPortgroup" + net.Value = b.Port.PortgroupKey + if err := vm.validateSwitchMembers(b.Port.SwitchUuid); err != nil { + return err + } + } + + Map.Update(vm, []types.PropertyChange{ + {Name: "summary.config.numEthernetCards", Val: vm.Summary.Config.NumEthernetCards + 1}, + {Name: "network", Val: append(vm.Network, net)}, + }) + + c := x.GetVirtualEthernetCard() + if c.MacAddress == "" { + if c.UnitNumber == nil { + devices.AssignController(device, controller) + } + c.MacAddress = vm.generateMAC(*c.UnitNumber - 7) // Note 7 == PCI offset + } + + if spec.Operation == types.VirtualDeviceConfigSpecOperationAdd { + vm.Guest.Net = append(vm.Guest.Net, types.GuestNicInfo{ + Network: name, + IpAddress: nil, + MacAddress: c.MacAddress, + Connected: true, + DeviceConfigId: c.Key, + }) + } + case *types.VirtualDisk: + summary = fmt.Sprintf("%s KB", numberToString(x.CapacityInKB, ',')) + switch b := d.Backing.(type) { + case types.BaseVirtualDeviceFileBackingInfo: + info := b.GetVirtualDeviceFileBackingInfo() + var path object.DatastorePath + path.FromString(info.FileName) + + if path.Path == "" { + filename, err := vm.genVmdkPath(path) + if err != nil { + return err + } + + info.FileName = filename + } + + err := vdmCreateVirtualDisk(spec.FileOperation, &types.CreateVirtualDisk_Task{ + Datacenter: &dc.Self, + Name: info.FileName, + }) + if err != nil { + return err + } + + Map.Update(vm, []types.PropertyChange{ + {Name: "summary.config.numVirtualDisks", Val: vm.Summary.Config.NumVirtualDisks + 1}, + }) + + p, _ := parseDatastorePath(info.FileName) + ds := vm.findDatastore(p.Datastore) + info.Datastore = &ds.Self + + // XXX: compare disk size and free space until windows stat is supported + Map.WithLock(ds, func() { + ds.Summary.FreeSpace -= getDiskSize(x) + ds.Info.GetDatastoreInfo().FreeSpace = ds.Summary.FreeSpace + }) + + vm.updateDiskLayouts() + } + case *types.VirtualCdrom: + if b, ok := d.Backing.(types.BaseVirtualDeviceFileBackingInfo); ok { + summary = "ISO " + b.GetVirtualDeviceFileBackingInfo().FileName + } + } + + if d.UnitNumber == nil && controller != nil { + devices.AssignController(device, controller) + } + + if d.DeviceInfo == nil { + d.DeviceInfo = &types.Description{ + Label: label, + Summary: summary, + } + } else { + info := d.DeviceInfo.GetDescription() + if info.Label == "" { + info.Label = label + } + if info.Summary == "" { + info.Summary = summary + } + } + + return nil +} + +func (vm *VirtualMachine) removeDevice(devices object.VirtualDeviceList, spec *types.VirtualDeviceConfigSpec) object.VirtualDeviceList { + key := spec.Device.GetVirtualDevice().Key + + for i, d := range devices { + if d.GetVirtualDevice().Key != key { + continue + } + + devices = append(devices[:i], devices[i+1:]...) + + switch device := spec.Device.(type) { + case *types.VirtualDisk: + if spec.FileOperation == types.VirtualDeviceConfigSpecFileOperationDestroy { + var file string + + switch b := device.Backing.(type) { + case types.BaseVirtualDeviceFileBackingInfo: + file = b.GetVirtualDeviceFileBackingInfo().FileName + + p, _ := parseDatastorePath(file) + ds := vm.findDatastore(p.Datastore) + + Map.WithLock(ds, func() { + ds.Summary.FreeSpace += getDiskSize(device) + ds.Info.GetDatastoreInfo().FreeSpace = ds.Summary.FreeSpace + }) + } + + if file != "" { + dc := Map.getEntityDatacenter(vm) + dm := Map.VirtualDiskManager() + if dc == nil { + continue // parent was destroyed + } + dm.DeleteVirtualDiskTask(internalContext, &types.DeleteVirtualDisk_Task{ + Name: file, + Datacenter: &dc.Self, + }) + } + } + Map.Update(vm, []types.PropertyChange{ + {Name: "summary.config.numVirtualDisks", Val: vm.Summary.Config.NumVirtualDisks - 1}, + }) + + vm.updateDiskLayouts() + case types.BaseVirtualEthernetCard: + var net types.ManagedObjectReference + + switch b := device.GetVirtualEthernetCard().Backing.(type) { + case *types.VirtualEthernetCardNetworkBackingInfo: + net = *b.Network + case *types.VirtualEthernetCardDistributedVirtualPortBackingInfo: + net.Type = "DistributedVirtualPortgroup" + net.Value = b.Port.PortgroupKey + } + + networks := vm.Network + RemoveReference(&networks, net) + Map.Update(vm, []types.PropertyChange{ + {Name: "summary.config.numEthernetCards", Val: vm.Summary.Config.NumEthernetCards - 1}, + {Name: "network", Val: networks}, + }) + } + + break + } + + return devices +} + +func (vm *VirtualMachine) genVmdkPath(p object.DatastorePath) (string, types.BaseMethodFault) { + if p.Datastore == "" { + p.FromString(vm.Config.Files.VmPathName) + } + if p.Path == "" { + p.Path = vm.Config.Name + } else { + p.Path = path.Dir(p.Path) + } + vmdir := p.String() + index := 0 + for { + var filename string + if index == 0 { + filename = fmt.Sprintf("%s.vmdk", vm.Config.Name) + } else { + filename = fmt.Sprintf("%s_%d.vmdk", vm.Config.Name, index) + } + + f, err := vm.createFile(vmdir, filename, false) + if err != nil { + switch err.(type) { + case *types.FileAlreadyExists: + index++ + continue + default: + return "", err + } + } + + _ = f.Close() + _ = os.Remove(f.Name()) + + return path.Join(vmdir, filename), nil + } +} + +func (vm *VirtualMachine) configureDevices(spec *types.VirtualMachineConfigSpec) types.BaseMethodFault { + devices := object.VirtualDeviceList(vm.Config.Hardware.Device) + + for i, change := range spec.DeviceChange { + dspec := change.GetVirtualDeviceConfigSpec() + device := dspec.Device.GetVirtualDevice() + invalid := &types.InvalidDeviceSpec{DeviceIndex: int32(i)} + + switch dspec.FileOperation { + case types.VirtualDeviceConfigSpecFileOperationCreate: + switch dspec.Device.(type) { + case *types.VirtualDisk: + if device.UnitNumber == nil { + return invalid + } + } + } + + switch dspec.Operation { + case types.VirtualDeviceConfigSpecOperationAdd: + if devices.FindByKey(device.Key) != nil && device.ControllerKey == 0 { + // Note: real ESX does not allow adding base controllers (ControllerKey = 0) + // after VM is created (returns success but device is not added). + continue + } else if device.UnitNumber != nil && devices.SelectByType(dspec.Device).Select(func(d types.BaseVirtualDevice) bool { + base := d.GetVirtualDevice() + if base.UnitNumber != nil { + if base.ControllerKey != device.ControllerKey { + return false + } + return *base.UnitNumber == *device.UnitNumber + } + return false + }) != nil { + // UnitNumber for this device type is taken + return invalid + } + + key := device.Key + err := vm.configureDevice(devices, dspec) + if err != nil { + return err + } + + devices = append(devices, dspec.Device) + if key != device.Key { + // Update ControllerKey refs + for i := range spec.DeviceChange { + ckey := &spec.DeviceChange[i].GetVirtualDeviceConfigSpec().Device.GetVirtualDevice().ControllerKey + if *ckey == key { + *ckey = device.Key + } + } + } + case types.VirtualDeviceConfigSpecOperationEdit: + rspec := *dspec + rspec.Device = devices.FindByKey(device.Key) + if rspec.Device == nil { + return invalid + } + devices = vm.removeDevice(devices, &rspec) + device.DeviceInfo.GetDescription().Summary = "" // regenerate summary + + err := vm.configureDevice(devices, dspec) + if err != nil { + return err + } + + devices = append(devices, dspec.Device) + case types.VirtualDeviceConfigSpecOperationRemove: + devices = vm.removeDevice(devices, dspec) + } + } + + Map.Update(vm, []types.PropertyChange{ + {Name: "config.hardware.device", Val: []types.BaseVirtualDevice(devices)}, + }) + + vm.updateDiskLayouts() + + vm.applyExtraConfig(spec) // Do this after device config, as some may apply to the devices themselves (e.g. ethernet -> guest.net) + + return nil +} + +type powerVMTask struct { + *VirtualMachine + + state types.VirtualMachinePowerState + ctx *Context +} + +func (c *powerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { + c.logPrintf("running power task: requesting %s, existing %s", + c.state, c.VirtualMachine.Runtime.PowerState) + + if c.VirtualMachine.Runtime.PowerState == c.state { + return nil, &types.InvalidPowerState{ + RequestedState: c.state, + ExistingState: c.VirtualMachine.Runtime.PowerState, + } + } + + var boot types.AnyType + if c.state == types.VirtualMachinePowerStatePoweredOn { + boot = time.Now() + } + + event := c.event() + switch c.state { + case types.VirtualMachinePowerStatePoweredOn: + c.run.start(c.VirtualMachine) + c.ctx.postEvent( + &types.VmStartingEvent{VmEvent: event}, + &types.VmPoweredOnEvent{VmEvent: event}, + ) + c.customize() + case types.VirtualMachinePowerStatePoweredOff: + c.run.stop(c.VirtualMachine) + c.ctx.postEvent( + &types.VmStoppingEvent{VmEvent: event}, + &types.VmPoweredOffEvent{VmEvent: event}, + ) + case types.VirtualMachinePowerStateSuspended: + c.run.pause(c.VirtualMachine) + c.ctx.postEvent( + &types.VmSuspendingEvent{VmEvent: event}, + &types.VmSuspendedEvent{VmEvent: event}, + ) + } + + Map.Update(c.VirtualMachine, []types.PropertyChange{ + {Name: "runtime.powerState", Val: c.state}, + {Name: "summary.runtime.powerState", Val: c.state}, + {Name: "summary.runtime.bootTime", Val: boot}, + }) + + return nil, nil +} + +func (vm *VirtualMachine) PowerOnVMTask(ctx *Context, c *types.PowerOnVM_Task) soap.HasFault { + if vm.Config.Template { + return &methods.PowerOnVM_TaskBody{ + Fault_: Fault("cannot powerOn a template", &types.InvalidState{}), + } + } + + runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOn, ctx} + task := CreateTask(runner.Reference(), "powerOn", runner.Run) + + return &methods.PowerOnVM_TaskBody{ + Res: &types.PowerOnVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) PowerOffVMTask(ctx *Context, c *types.PowerOffVM_Task) soap.HasFault { + runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOff, ctx} + task := CreateTask(runner.Reference(), "powerOff", runner.Run) + + return &methods.PowerOffVM_TaskBody{ + Res: &types.PowerOffVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) SuspendVMTask(ctx *Context, req *types.SuspendVM_Task) soap.HasFault { + runner := &powerVMTask{vm, types.VirtualMachinePowerStateSuspended, ctx} + task := CreateTask(runner.Reference(), "suspend", runner.Run) + + return &methods.SuspendVM_TaskBody{ + Res: &types.SuspendVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) ResetVMTask(ctx *Context, req *types.ResetVM_Task) soap.HasFault { + task := CreateTask(vm, "reset", func(task *Task) (types.AnyType, types.BaseMethodFault) { + res := vm.PowerOffVMTask(ctx, &types.PowerOffVM_Task{This: vm.Self}) + ctask := Map.Get(res.(*methods.PowerOffVM_TaskBody).Res.Returnval).(*Task) + if ctask.Info.Error != nil { + return nil, ctask.Info.Error.Fault + } + + _ = vm.PowerOnVMTask(ctx, &types.PowerOnVM_Task{This: vm.Self}) + + return nil, nil + }) + + return &methods.ResetVM_TaskBody{ + Res: &types.ResetVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) ReconfigVMTask(ctx *Context, req *types.ReconfigVM_Task) soap.HasFault { + task := CreateTask(vm, "reconfigVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + ctx.postEvent(&types.VmReconfiguredEvent{ + VmEvent: vm.event(), + ConfigSpec: req.Spec, + }) + + if vm.Config.Template { + expect := types.VirtualMachineConfigSpec{ + Name: req.Spec.Name, + Annotation: req.Spec.Annotation, + } + if !reflect.DeepEqual(&req.Spec, &expect) { + log.Printf("template reconfigure only allows name and annotation change") + return nil, new(types.NotSupported) + } + } + + err := vm.configure(&req.Spec) + + return nil, err + }) + + return &methods.ReconfigVM_TaskBody{ + Res: &types.ReconfigVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) UpgradeVMTask(req *types.UpgradeVM_Task) soap.HasFault { + body := &methods.UpgradeVM_TaskBody{} + + task := CreateTask(vm, "upgradeVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if vm.Config.Version != esx.HardwareVersion { + Map.Update(vm, []types.PropertyChange{{ + Name: "config.version", Val: esx.HardwareVersion, + }}) + } + return nil, nil + }) + + body.Res = &types.UpgradeVM_TaskResponse{ + Returnval: task.Run(), + } + + return body +} + +func (vm *VirtualMachine) DestroyTask(ctx *Context, req *types.Destroy_Task) soap.HasFault { + dc := ctx.Map.getEntityDatacenter(vm) + + task := CreateTask(vm, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if dc == nil { + return nil, &types.ManagedObjectNotFound{Obj: vm.Self} // If our Parent was destroyed, so were we. + } + + r := vm.UnregisterVM(ctx, &types.UnregisterVM{ + This: req.This, + }) + + if r.Fault() != nil { + return nil, r.Fault().VimFault().(types.BaseMethodFault) + } + + // Remove all devices + devices := object.VirtualDeviceList(vm.Config.Hardware.Device) + spec, _ := devices.ConfigSpec(types.VirtualDeviceConfigSpecOperationRemove) + vm.configureDevices(&types.VirtualMachineConfigSpec{DeviceChange: spec}) + + // Delete VM files from the datastore (ignoring result for now) + m := Map.FileManager() + + _ = m.DeleteDatastoreFileTask(&types.DeleteDatastoreFile_Task{ + This: m.Reference(), + Name: vm.Config.Files.LogDirectory, + Datacenter: &dc.Self, + }) + + vm.run.remove(vm) + + return nil, nil + }) + + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) SetCustomValue(ctx *Context, req *types.SetCustomValue) soap.HasFault { + return SetCustomValue(ctx, req) +} + +func (vm *VirtualMachine) UnregisterVM(ctx *Context, c *types.UnregisterVM) soap.HasFault { + r := &methods.UnregisterVMBody{} + + if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOn { + r.Fault_ = Fault("", &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOff, + ExistingState: vm.Runtime.PowerState, + }) + + return r + } + + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + Map.RemoveReference(host, &host.Vm, vm.Self) + + if vm.ResourcePool != nil { + switch pool := Map.Get(*vm.ResourcePool).(type) { + case *ResourcePool: + Map.RemoveReference(pool, &pool.Vm, vm.Self) + case *VirtualApp: + Map.RemoveReference(pool, &pool.Vm, vm.Self) + } + } + + for i := range vm.Datastore { + ds := Map.Get(vm.Datastore[i]).(*Datastore) + Map.RemoveReference(ds, &ds.Vm, vm.Self) + } + + ctx.postEvent(&types.VmRemovedEvent{VmEvent: vm.event()}) + if f, ok := asFolderMO(Map.getEntityParent(vm, "Folder")); ok { + folderRemoveChild(ctx, f, c.This) + } + + r.Res = new(types.UnregisterVMResponse) + + return r +} + +type vmFolder interface { + CreateVMTask(ctx *Context, c *types.CreateVM_Task) soap.HasFault +} + +func (vm *VirtualMachine) CloneVMTask(ctx *Context, req *types.CloneVM_Task) soap.HasFault { + pool := req.Spec.Location.Pool + if pool == nil { + if !vm.Config.Template { + pool = vm.ResourcePool + } + } + folder, _ := asFolderMO(Map.Get(req.Folder)) + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + event := vm.event() + + ctx.postEvent(&types.VmBeingClonedEvent{ + VmCloneEvent: types.VmCloneEvent{ + VmEvent: event, + }, + DestFolder: folderEventArgument(folder), + DestName: req.Name, + DestHost: *host.eventArgument(), + }) + + vmx := vm.vmx(nil) + vmx.Path = req.Name + if ref := req.Spec.Location.Datastore; ref != nil { + ds := Map.Get(*ref).(*Datastore).Name + vmx.Datastore = ds + } + + task := CreateTask(vm, "cloneVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if pool == nil { + return nil, &types.InvalidArgument{InvalidProperty: "spec.location.pool"} + } + config := types.VirtualMachineConfigSpec{ + Name: req.Name, + GuestId: vm.Config.GuestId, + Files: &types.VirtualMachineFileInfo{ + VmPathName: vmx.String(), + }, + } + if req.Spec.Config != nil { + config.ExtraConfig = req.Spec.Config.ExtraConfig + } + + defaultDevices := object.VirtualDeviceList(esx.VirtualDevice) + devices := vm.Config.Hardware.Device + for _, device := range devices { + var fop types.VirtualDeviceConfigSpecFileOperation + + if defaultDevices.Find(object.VirtualDeviceList(devices).Name(device)) != nil { + // Default devices are added during CreateVMTask + continue + } + + switch disk := device.(type) { + case *types.VirtualDisk: + // TODO: consider VirtualMachineCloneSpec.DiskMoveType + fop = types.VirtualDeviceConfigSpecFileOperationCreate + + // Leave FileName empty so CreateVM will just create a new one under VmPathName + disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo).FileName = "" + disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo).Parent = nil + } + + config.DeviceChange = append(config.DeviceChange, &types.VirtualDeviceConfigSpec{ + Operation: types.VirtualDeviceConfigSpecOperationAdd, + Device: device, + FileOperation: fop, + }) + } + + res := Map.Get(req.Folder).(vmFolder).CreateVMTask(ctx, &types.CreateVM_Task{ + This: folder.Self, + Config: config, + Pool: *pool, + Host: vm.Runtime.Host, + }) + + ctask := Map.Get(res.(*methods.CreateVM_TaskBody).Res.Returnval).(*Task) + if ctask.Info.Error != nil { + return nil, ctask.Info.Error.Fault + } + + ref := ctask.Info.Result.(types.ManagedObjectReference) + clone := Map.Get(ref).(*VirtualMachine) + clone.configureDevices(&types.VirtualMachineConfigSpec{DeviceChange: req.Spec.Location.DeviceChange}) + if req.Spec.Config != nil && req.Spec.Config.DeviceChange != nil { + clone.configureDevices(&types.VirtualMachineConfigSpec{DeviceChange: req.Spec.Config.DeviceChange}) + } + + if req.Spec.Template { + _ = clone.MarkAsTemplate(&types.MarkAsTemplate{This: clone.Self}) + } + + ctx.postEvent(&types.VmClonedEvent{ + VmCloneEvent: types.VmCloneEvent{VmEvent: clone.event()}, + SourceVm: *event.Vm, + }) + + return ref, nil + }) + + return &methods.CloneVM_TaskBody{ + Res: &types.CloneVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) RelocateVMTask(ctx *Context, req *types.RelocateVM_Task) soap.HasFault { + task := CreateTask(vm, "relocateVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + var changes []types.PropertyChange + + if ref := req.Spec.Datastore; ref != nil { + ds := Map.Get(*ref).(*Datastore) + Map.RemoveReference(ds, &ds.Vm, *ref) + + // TODO: migrate vm.Config.Files, vm.Summary.Config.VmPathName, vm.Layout and vm.LayoutEx + + changes = append(changes, types.PropertyChange{Name: "datastore", Val: []types.ManagedObjectReference{*ref}}) + } + + if ref := req.Spec.Pool; ref != nil { + pool := Map.Get(*ref).(*ResourcePool) + Map.RemoveReference(pool, &pool.Vm, *ref) + + changes = append(changes, types.PropertyChange{Name: "resourcePool", Val: ref}) + } + + if ref := req.Spec.Host; ref != nil { + host := Map.Get(*ref).(*HostSystem) + Map.RemoveReference(host, &host.Vm, *ref) + + changes = append(changes, + types.PropertyChange{Name: "runtime.host", Val: ref}, + types.PropertyChange{Name: "summary.runtime.host", Val: ref}, + ) + } + + if ref := req.Spec.Folder; ref != nil { + folder := Map.Get(*ref).(*Folder) + folder.MoveIntoFolderTask(ctx, &types.MoveIntoFolder_Task{ + List: []types.ManagedObjectReference{vm.Self}, + }) + } + + Map.Update(vm, changes) + + return nil, nil + }) + + return &methods.RelocateVM_TaskBody{ + Res: &types.RelocateVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) customize() { + if vm.imc == nil { + return + } + + changes := []types.PropertyChange{ + {Name: "config.tools.pendingCustomization", Val: ""}, + } + + hostname := "" + address := "" + + switch c := vm.imc.Identity.(type) { + case *types.CustomizationLinuxPrep: + hostname = customizeName(vm, c.HostName) + case *types.CustomizationSysprep: + hostname = customizeName(vm, c.UserData.ComputerName) + } + + for i, s := range vm.imc.NicSettingMap { + nic := &vm.Guest.Net[i] + if s.MacAddress != "" { + nic.MacAddress = s.MacAddress + } + if nic.DnsConfig == nil { + nic.DnsConfig = new(types.NetDnsConfigInfo) + } + if s.Adapter.DnsDomain != "" { + nic.DnsConfig.DomainName = s.Adapter.DnsDomain + } + if len(s.Adapter.DnsServerList) != 0 { + nic.DnsConfig.IpAddress = s.Adapter.DnsServerList + } + if hostname != "" { + nic.DnsConfig.HostName = hostname + } + if len(vm.imc.GlobalIPSettings.DnsSuffixList) != 0 { + nic.DnsConfig.SearchDomain = vm.imc.GlobalIPSettings.DnsSuffixList + } + if nic.IpConfig == nil { + nic.IpConfig = new(types.NetIpConfigInfo) + } + + switch ip := s.Adapter.Ip.(type) { + case *types.CustomizationCustomIpGenerator: + case *types.CustomizationDhcpIpGenerator: + case *types.CustomizationFixedIp: + if address == "" { + address = ip.IpAddress + } + nic.IpAddress = []string{ip.IpAddress} + nic.IpConfig.IpAddress = []types.NetIpConfigInfoIpAddress{{ + IpAddress: ip.IpAddress, + }} + case *types.CustomizationUnknownIpGenerator: + } + } + + if len(vm.imc.NicSettingMap) != 0 { + changes = append(changes, types.PropertyChange{Name: "guest.net", Val: vm.Guest.Net}) + } + if hostname != "" { + changes = append(changes, types.PropertyChange{Name: "guest.hostName", Val: hostname}) + } + if address != "" { + changes = append(changes, types.PropertyChange{Name: "guest.ipAddress", Val: address}) + } + + vm.imc = nil + Map.Update(vm, changes) +} + +func (vm *VirtualMachine) CustomizeVMTask(req *types.CustomizeVM_Task) soap.HasFault { + task := CreateTask(vm, "customizeVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOn { + return nil, &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOff, + ExistingState: vm.Runtime.PowerState, + } + } + if vm.Config.Tools.PendingCustomization != "" { + return nil, new(types.CustomizationPending) + } + if len(vm.Guest.Net) != len(req.Spec.NicSettingMap) { + return nil, &types.NicSettingMismatch{ + NumberOfNicsInSpec: int32(len(req.Spec.NicSettingMap)), + NumberOfNicsInVM: int32(len(vm.Guest.Net)), + } + } + + vm.imc = &req.Spec + vm.Config.Tools.PendingCustomization = uuid.New().String() + + return nil, nil + }) + + return &methods.CustomizeVM_TaskBody{ + Res: &types.CustomizeVM_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) CreateSnapshotTask(req *types.CreateSnapshot_Task) soap.HasFault { + task := CreateTask(vm, "createSnapshot", func(t *Task) (types.AnyType, types.BaseMethodFault) { + var changes []types.PropertyChange + + if vm.Snapshot == nil { + vm.Snapshot = &types.VirtualMachineSnapshotInfo{} + } + + snapshot := &VirtualMachineSnapshot{} + snapshot.Vm = vm.Reference() + snapshot.Config = *vm.Config + + Map.Put(snapshot) + + treeItem := types.VirtualMachineSnapshotTree{ + Snapshot: snapshot.Self, + Vm: snapshot.Vm, + Name: req.Name, + Description: req.Description, + Id: atomic.AddInt32(&vm.sid, 1), + CreateTime: time.Now(), + State: vm.Runtime.PowerState, + Quiesced: req.Quiesce, + BackupManifest: "", + ReplaySupported: types.NewBool(false), + } + + cur := vm.Snapshot.CurrentSnapshot + if cur != nil { + parent := Map.Get(*cur).(*VirtualMachineSnapshot) + parent.ChildSnapshot = append(parent.ChildSnapshot, snapshot.Self) + + ss := findSnapshotInTree(vm.Snapshot.RootSnapshotList, *cur) + ss.ChildSnapshotList = append(ss.ChildSnapshotList, treeItem) + } else { + changes = append(changes, types.PropertyChange{ + Name: "snapshot.rootSnapshotList", + Val: append(vm.Snapshot.RootSnapshotList, treeItem), + }) + } + + snapshot.createSnapshotFiles() + + changes = append(changes, types.PropertyChange{Name: "snapshot.currentSnapshot", Val: snapshot.Self}) + Map.Update(vm, changes) + + return snapshot.Self, nil + }) + + return &methods.CreateSnapshot_TaskBody{ + Res: &types.CreateSnapshot_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) RevertToCurrentSnapshotTask(req *types.RevertToCurrentSnapshot_Task) soap.HasFault { + body := &methods.RevertToCurrentSnapshot_TaskBody{} + + if vm.Snapshot == nil || vm.Snapshot.CurrentSnapshot == nil { + body.Fault_ = Fault("snapshot not found", &types.NotFound{}) + + return body + } + + task := CreateTask(vm, "revertSnapshot", func(t *Task) (types.AnyType, types.BaseMethodFault) { + return nil, nil + }) + + body.Res = &types.RevertToCurrentSnapshot_TaskResponse{ + Returnval: task.Run(), + } + + return body +} + +func (vm *VirtualMachine) RemoveAllSnapshotsTask(ctx *Context, req *types.RemoveAllSnapshots_Task) soap.HasFault { + task := CreateTask(vm, "RemoveAllSnapshots", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if vm.Snapshot == nil { + return nil, nil + } + + refs := allSnapshotsInTree(vm.Snapshot.RootSnapshotList) + + Map.Update(vm, []types.PropertyChange{ + {Name: "snapshot", Val: nil}, + }) + + for _, ref := range refs { + Map.Get(ref).(*VirtualMachineSnapshot).removeSnapshotFiles(ctx) + Map.Remove(ref) + } + + return nil, nil + }) + + return &methods.RemoveAllSnapshots_TaskBody{ + Res: &types.RemoveAllSnapshots_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (vm *VirtualMachine) ShutdownGuest(ctx *Context, c *types.ShutdownGuest) soap.HasFault { + r := &methods.ShutdownGuestBody{} + // should be poweron + if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOff { + r.Fault_ = Fault("", &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOn, + ExistingState: vm.Runtime.PowerState, + }) + + return r + } + // change state + vm.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff + vm.Summary.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff + + event := vm.event() + ctx.postEvent( + &types.VmGuestShutdownEvent{VmEvent: event}, + &types.VmPoweredOffEvent{VmEvent: event}, + ) + vm.run.stop(vm) + + Map.Update(vm, []types.PropertyChange{ + {Name: "runtime.powerState", Val: types.VirtualMachinePowerStatePoweredOff}, + {Name: "summary.runtime.powerState", Val: types.VirtualMachinePowerStatePoweredOff}, + }) + + r.Res = new(types.ShutdownGuestResponse) + + return r +} + +func (vm *VirtualMachine) MarkAsTemplate(req *types.MarkAsTemplate) soap.HasFault { + r := &methods.MarkAsTemplateBody{} + + if vm.Config.Template { + r.Fault_ = Fault("", new(types.NotSupported)) + return r + } + + if vm.Runtime.PowerState != types.VirtualMachinePowerStatePoweredOff { + r.Fault_ = Fault("", &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOff, + ExistingState: vm.Runtime.PowerState, + }) + return r + } + + vm.Config.Template = true + vm.Summary.Config.Template = true + vm.ResourcePool = nil + + r.Res = new(types.MarkAsTemplateResponse) + + return r +} + +func (vm *VirtualMachine) MarkAsVirtualMachine(req *types.MarkAsVirtualMachine) soap.HasFault { + r := &methods.MarkAsVirtualMachineBody{} + + if !vm.Config.Template { + r.Fault_ = Fault("", new(types.NotSupported)) + return r + } + + if vm.Runtime.PowerState != types.VirtualMachinePowerStatePoweredOff { + r.Fault_ = Fault("", &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOff, + ExistingState: vm.Runtime.PowerState, + }) + return r + } + + vm.Config.Template = false + vm.Summary.Config.Template = false + vm.ResourcePool = &req.Pool + if req.Host != nil { + vm.Runtime.Host = req.Host + } + + r.Res = new(types.MarkAsVirtualMachineResponse) + + return r +} + +func findSnapshotInTree(tree []types.VirtualMachineSnapshotTree, ref types.ManagedObjectReference) *types.VirtualMachineSnapshotTree { + if tree == nil { + return nil + } + + for i, ss := range tree { + if ss.Snapshot == ref { + return &tree[i] + } + + target := findSnapshotInTree(ss.ChildSnapshotList, ref) + if target != nil { + return target + } + } + + return nil +} + +func findParentSnapshot(tree types.VirtualMachineSnapshotTree, ref types.ManagedObjectReference) *types.ManagedObjectReference { + for _, ss := range tree.ChildSnapshotList { + if ss.Snapshot == ref { + return &tree.Snapshot + } + + res := findParentSnapshot(ss, ref) + if res != nil { + return res + } + } + + return nil +} + +func findParentSnapshotInTree(tree []types.VirtualMachineSnapshotTree, ref types.ManagedObjectReference) *types.ManagedObjectReference { + if tree == nil { + return nil + } + + for _, ss := range tree { + res := findParentSnapshot(ss, ref) + if res != nil { + return res + } + } + + return nil +} + +func removeSnapshotInTree(tree []types.VirtualMachineSnapshotTree, ref types.ManagedObjectReference, removeChildren bool) []types.VirtualMachineSnapshotTree { + if tree == nil { + return tree + } + + var result []types.VirtualMachineSnapshotTree + + for _, ss := range tree { + if ss.Snapshot == ref { + if !removeChildren { + result = append(result, ss.ChildSnapshotList...) + } + } else { + ss.ChildSnapshotList = removeSnapshotInTree(ss.ChildSnapshotList, ref, removeChildren) + result = append(result, ss) + } + } + + return result +} + +func allSnapshotsInTree(tree []types.VirtualMachineSnapshotTree) []types.ManagedObjectReference { + var result []types.ManagedObjectReference + + if tree == nil { + return result + } + + for _, ss := range tree { + result = append(result, ss.Snapshot) + result = append(result, allSnapshotsInTree(ss.ChildSnapshotList)...) + } + + return result +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go b/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go new file mode 100644 index 00000000..17658870 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go @@ -0,0 +1,20 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package vpx contains SOAP responses from a vCenter server, captured using `govc ... -dump`. +*/ +package vpx diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager.go b/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager.go new file mode 100644 index 00000000..11ca6839 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager.go @@ -0,0 +1,21801 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import "github.com/vmware/govmomi/vim25/types" + +// PerfCounter is the default template for the PerformanceManager perfCounter property. +// Capture method: +// govc object.collect -s -dump PerformanceManager:PerfMgr perfCounter + +var PerfCounter = []types.PerfCounterInfo{ + { + Key: 1, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 2, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 3, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 4, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "CPU usage as a percentage during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 5, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 6, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 7, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 8, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage in MHz", + Summary: "CPU usage in megahertz during the interval", + }, + Key: "usagemhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 9, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reserved capacity", + Summary: "Total CPU capacity reserved by virtual machines", + }, + Key: "reservedCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 10, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "Amount of time spent on system processes on each virtual CPU in the virtual machine", + }, + Key: "system", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 11, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Wait", + Summary: "Total CPU time spent in wait state", + }, + Key: "wait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 12, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ready", + Summary: "Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval", + }, + Key: "ready", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 13, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Idle", + Summary: "Total time that the CPU spent in an idle state", + }, + Key: "idle", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 14, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Used", + Summary: "Total CPU usage", + }, + Key: "used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 15, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Capacity Provisioned", + Summary: "Capacity in MHz of the physical CPU cores", + }, + Key: "capacity.provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 16, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Capacity Entitlement", + Summary: "CPU resources devoted by the ESXi scheduler to the virtual machines and resource pools", + }, + Key: "capacity.entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 17, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Capacity Usage", + Summary: "CPU usage as a percent during the interval.", + }, + Key: "capacity.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 18, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Capacity Demand", + Summary: "The amount of CPU resources a VM would use if there were no CPU contention or CPU limit", + }, + Key: "capacity.demand", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 19, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Capacity Contention", + Summary: "Percent of time the VM is unable to run because it is contending for access to the physical CPU(s)", + }, + Key: "capacity.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 20, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Core Count Provisioned", + Summary: "The number of virtual processors provisioned to the entity.", + }, + Key: "corecount.provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 21, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Core Count Usage", + Summary: "The number of virtual processors running on the host.", + }, + Key: "corecount.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 22, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU Core Count Contention", + Summary: "Time the VM vCPU is ready to run, but is unable to run due to co-scheduling constraints", + }, + Key: "corecount.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 23, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 24, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 25, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 26, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host consumed %", + Summary: "Percentage of host physical memory that has been consumed", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 27, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation consumed", + Summary: "Memory reservation consumed by powered-on virtual machines", + }, + Key: "reservedCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 28, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 29, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 30, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 31, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Granted", + Summary: "Amount of host physical memory or physical memory that is mapped for a virtual machine or a host", + }, + Key: "granted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 32, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 33, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 34, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 35, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active", + Summary: "Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi", + }, + Key: "active", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 36, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 37, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 38, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 39, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared", + Summary: "Amount of guest physical memory that is shared within a single virtual machine or across virtual machines", + }, + Key: "shared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 40, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 41, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 42, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 43, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Zero pages", + Summary: "Guest physical memory pages whose content is 0x00", + }, + Key: "zero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 44, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 45, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 46, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 47, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reservation available", + Summary: "Amount by which reservation can be raised", + }, + Key: "unreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 48, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 49, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 50, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 51, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap consumed", + Summary: "Swap storage space consumed", + }, + Key: "swapused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 52, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapunreserved", + Summary: "swapunreserved", + }, + Key: "swapunreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 53, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapunreserved", + Summary: "swapunreserved", + }, + Key: "swapunreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 54, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapunreserved", + Summary: "swapunreserved", + }, + Key: "swapunreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 55, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapunreserved", + Summary: "swapunreserved", + }, + Key: "swapunreserved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 56, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 57, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 58, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 59, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Shared common", + Summary: "Amount of host physical memory that backs shared guest physical memory (Shared)", + }, + Key: "sharedcommon", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 60, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 61, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 62, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 63, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap", + Summary: "Virtual address space of ESXi that is dedicated to its heap", + }, + Key: "heap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 64, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 65, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 66, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 67, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heap free", + Summary: "Free address space in the heap of ESXi. This is less than or equal to Heap", + }, + Key: "heapfree", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 68, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Free state", + Summary: "Current memory availability state of ESXi. Possible values are high, clear, soft, hard, low. The state value determines the techniques used for memory reclamation from virtual machines", + }, + Key: "state", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 69, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 70, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 71, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 72, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swapped", + Summary: "Amount of guest physical memory that is swapped out to the swap space", + }, + Key: "swapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 73, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 74, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 75, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 76, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap target", + Summary: "Amount of memory that ESXi needs to reclaim by swapping", + }, + Key: "swaptarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 77, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapIn", + Summary: "swapIn", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 78, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapIn", + Summary: "swapIn", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 79, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapIn", + Summary: "swapIn", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 80, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapIn", + Summary: "swapIn", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 81, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapOut", + Summary: "swapOut", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 82, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapOut", + Summary: "swapOut", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 83, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapOut", + Summary: "swapOut", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 84, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "swapOut", + Summary: "swapOut", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 85, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in rate", + Summary: "Rate at which guest physical memory is swapped in from the swap space", + }, + Key: "swapinRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 86, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out rate", + Summary: "Rate at which guest physical memory is swapped out to the swap space", + }, + Key: "swapoutRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 87, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap out", + Summary: "Amount of memory that is swapped out for the Service Console", + }, + Key: "swapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 88, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap in", + Summary: "Amount of memory that is swapped in for the Service Console", + }, + Key: "swapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 89, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 90, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 91, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 92, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Ballooned memory", + Summary: "Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest", + }, + Key: "vmmemctl", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 93, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 94, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 95, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 96, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Balloon target", + Summary: "Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi", + }, + Key: "vmmemctltarget", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 97, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 98, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 99, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 100, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Consumed", + Summary: "Amount of host physical memory consumed for backing up guest physical memory pages", + }, + Key: "consumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 101, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 102, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 103, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 104, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead consumed", + Summary: "Host physical memory consumed by ESXi data structures for running the virtual machines", + }, + Key: "overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 105, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compressed", + Summary: "Guest physical memory pages that have undergone memory compression", + }, + Key: "compressed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 106, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compression rate", + Summary: "Rate of guest physical memory page compression by ESXi", + }, + Key: "compressionRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 107, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Decompression rate", + Summary: "Rate of guest physical memory decompression", + }, + Key: "decompressionRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 108, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Capacity Provisioned", + Summary: "Total amount of memory available to the host", + }, + Key: "capacity.provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 109, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Capacity Entitlement", + Summary: "Amount of host physical memory the VM is entitled to, as determined by the ESXi scheduler", + }, + Key: "capacity.entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 110, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Capacity Usable", + Summary: "Amount of physical memory available for use by virtual machines on this host", + }, + Key: "capacity.usable", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 111, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Capacity Usage", + Summary: "Amount of physical memory actively used", + }, + Key: "capacity.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 112, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Capacity Contention", + Summary: "Percentage of time VMs are waiting to access swapped, compressed or ballooned memory", + }, + Key: "capacity.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 113, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vm", + Summary: "vm", + }, + Key: "capacity.usage.vm", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 114, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vmOvrhd", + Summary: "vmOvrhd", + }, + Key: "capacity.usage.vmOvrhd", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 115, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vmkOvrhd", + Summary: "vmkOvrhd", + }, + Key: "capacity.usage.vmkOvrhd", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 116, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "userworld", + Summary: "userworld", + }, + Key: "capacity.usage.userworld", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 117, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vm", + Summary: "vm", + }, + Key: "reservedCapacity.vm", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 118, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vmOvhd", + Summary: "vmOvhd", + }, + Key: "reservedCapacity.vmOvhd", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 119, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vmkOvrhd", + Summary: "vmkOvrhd", + }, + Key: "reservedCapacity.vmkOvrhd", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 120, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "userworld", + Summary: "userworld", + }, + Key: "reservedCapacity.userworld", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 121, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Reserved Capacity %", + Summary: "Percent of memory that has been reserved either through VMkernel use, by userworlds or due to VM memory reservations", + }, + Key: "reservedCapacityPct", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 122, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Consumed by VMs", + Summary: "Amount of physical memory consumed by VMs on this host", + }, + Key: "consumed.vms", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 123, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory Consumed by userworlds", + Summary: "Amount of physical memory consumed by userworlds on this host", + }, + Key: "consumed.userworlds", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 124, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 125, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 126, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 127, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval.", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 128, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read requests", + Summary: "Number of disk reads during the collection interval", + }, + Key: "numberRead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 129, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write requests", + Summary: "Number of disk writes during the collection interval", + }, + Key: "numberWrite", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 130, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Average number of kilobytes read from the disk each second during the collection interval", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 131, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Average number of kilobytes written to disk each second during the collection interval", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 132, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Command latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI command issued by the guest OS to the virtual machine", + }, + Key: "totalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 133, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all disks used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 134, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Commands aborted", + Summary: "Number of SCSI commands aborted during the collection interval", + }, + Key: "commandsAborted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 135, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Bus resets", + Summary: "Number of SCSI-bus reset commands issued during the collection interval", + }, + Key: "busResets", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 136, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of disk reads per second during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 137, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of disk writes per second during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 138, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk Throughput Usage", + Summary: "Aggregated disk I/O rate, including the rates for all virtual machines running on the host during the collection interval", + }, + Key: "throughput.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 139, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk Throughput Contention", + Summary: "Average amount of time for an I/O operation to complete successfully", + }, + Key: "throughput.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 140, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk SCSI Reservation Conflicts", + Summary: "Number of SCSI reservation conflicts for the LUN during the collection interval", + }, + Key: "scsiReservationConflicts", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 141, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk SCSI Reservation Conflicts %", + Summary: "Number of SCSI reservation conflicts for the LUN as a percent of total commands during the collection interval", + }, + Key: "scsiReservationCnflctsPct", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 142, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 143, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 144, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 145, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Network utilization (combined transmit-rates and receive-rates) during the interval", + }, + Key: "usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 146, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packets received", + Summary: "Number of packets received during the interval", + }, + Key: "packetsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 147, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packets transmitted", + Summary: "Number of packets transmitted during the interval", + }, + Key: "packetsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 148, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data receive rate", + Summary: "Average rate at which data was received during the interval", + }, + Key: "received", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 149, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data transmit rate", + Summary: "Average rate at which data was transmitted during the interval", + }, + Key: "transmitted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 150, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Net Throughput Provisioned", + Summary: "The maximum network bandwidth for the host", + }, + Key: "throughput.provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 151, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Net Throughput Usable", + Summary: "The current available network bandwidth for the host", + }, + Key: "throughput.usable", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 152, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Net Throughput Usage", + Summary: "The current network bandwidth usage for the host", + }, + Key: "throughput.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 153, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Net Throughput Contention", + Summary: "The aggregate network dropped packets for the host", + }, + Key: "throughput.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 154, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Packets Received and Transmitted per Second", + Summary: "Average rate of packets received and transmitted per second", + }, + Key: "throughput.packetsPerSec", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 155, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Uptime", + Summary: "Total time elapsed, in seconds, since last system startup", + }, + Key: "uptime", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "s", + Summary: "Second", + }, + Key: "second", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 156, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heartbeat", + Summary: "Number of heartbeats issued per virtual machine during the interval", + }, + Key: "heartbeat", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 157, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Usage", + Summary: "Current power usage", + }, + Key: "power", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 158, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cap", + Summary: "Maximum allowed power usage", + }, + Key: "powerCap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 159, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Energy usage", + Summary: "Total energy used since last stats reset", + }, + Key: "energy", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "J", + Summary: "Joule", + }, + Key: "joule", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 160, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host Power Capacity Provisioned", + Summary: "Current power usage as a percentage of maximum allowed power.", + }, + Key: "capacity.usagePct", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 161, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of commands issued per second by the storage adapter during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 162, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second by the storage adapter during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 163, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second by the storage adapter during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 164, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data by the storage adapter", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 165, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data by the storage adapter", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 166, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read by the storage adapter takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 167, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write by the storage adapter takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 168, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all storage adapters used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 169, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Throughput Contention", + Summary: "Average amount of time for an I/O operation to complete successfully", + }, + Key: "throughput.cont", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 170, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Outstanding I/Os", + Summary: "The percent of I/Os that have been issued but have not yet completed", + }, + Key: "OIOsPct", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 171, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second to the virtual disk during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 172, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second to the virtual disk during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 173, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data from the virtual disk", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 174, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data to the virtual disk", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 175, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read from the virtual disk takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 176, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write to the virtual disk takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 177, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Disk Throughput Contention", + Summary: "Average amount of time for an I/O operation to complete successfully", + }, + Key: "throughput.cont", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 178, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second to the datastore during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 179, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second to the datastore during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 180, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data from the datastore", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 181, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data to the datastore", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 182, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read from the datastore takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 183, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write to the datastore takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 184, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all datastores used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 185, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control aggregated IOPS", + Summary: "Storage I/O Control aggregated IOPS", + }, + Key: "datastoreIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 186, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control normalized latency", + Summary: "Storage I/O Control size-normalized I/O latency", + }, + Key: "sizeNormalizedDatastoreLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 187, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "usage", + Summary: "usage", + }, + Key: "throughput.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 188, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "contention", + Summary: "contention", + }, + Key: "throughput.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 189, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "busResets", + Summary: "busResets", + }, + Key: "busResets", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 190, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "commandsAborted", + Summary: "commandsAborted", + }, + Key: "commandsAborted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 191, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control active time percentage", + Summary: "Percentage of time Storage I/O Control actively controlled datastore latency", + }, + Key: "siocActiveTimePercentage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 192, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Path Throughput Contention", + Summary: "Average amount of time for an I/O operation to complete successfully", + }, + Key: "throughput.cont", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 193, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Highest latency", + Summary: "Highest latency value across all storage paths used by the host", + }, + Key: "maxTotalLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 194, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Disk Throughput Usage", + Summary: "Virtual disk I/O rate", + }, + Key: "throughput.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 195, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Disk Number of Terminations", + Summary: "Number of terminations to a virtual disk", + }, + Key: "commandsAborted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 196, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Disk Number of Resets", + Summary: "Number of resets to a virtual disk", + }, + Key: "busResets", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 197, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Outstanding I/Os", + Summary: "The number of I/Os that have been issued but have not yet completed", + }, + Key: "outstandingIOs", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 198, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Number Queued", + Summary: "The current number of I/Os that are waiting to be issued", + }, + Key: "queued", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 199, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Queue Depth", + Summary: "The maximum number of I/Os that can be outstanding at a given time", + }, + Key: "queueDepth", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 200, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Queue Command Latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI command, during the collection interval", + }, + Key: "queueLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 201, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Adapter Throughput Usage", + Summary: "The storage adapter's I/O rate", + }, + Key: "throughput.usag", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage adapter", + Summary: "Storage adapter", + }, + Key: "storageAdapter", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 202, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Path Bus Resets", + Summary: "Number of SCSI-bus reset commands issued during the collection interval", + }, + Key: "busResets", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 203, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Path Command Terminations", + Summary: "Number of SCSI commands terminated during the collection interval", + }, + Key: "commandsAborted", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 204, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage Path Throughput Usage", + Summary: "Storage path I/O rate", + }, + Key: "throughput.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 205, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for VMs", + Summary: "Average pNic I/O rate for VMs", + }, + Key: "throughput.usage.vm", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 206, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for NFS", + Summary: "Average pNic I/O rate for NFS", + }, + Key: "throughput.usage.nfs", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 207, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for vMotion", + Summary: "Average pNic I/O rate for vMotion", + }, + Key: "throughput.usage.vmotion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 208, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for FT", + Summary: "Average pNic I/O rate for FT", + }, + Key: "throughput.usage.ft", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 209, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for iSCSI", + Summary: "Average pNic I/O rate for iSCSI", + }, + Key: "throughput.usage.iscsi", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 210, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pNic Throughput Usage for HBR", + Summary: "Average pNic I/O rate for HBR", + }, + Key: "throughput.usage.hbr", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 211, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host Power Capacity Usable", + Summary: "Current maximum allowed power usage.", + }, + Key: "capacity.usable", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 212, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host Power Capacity Usage", + Summary: "Current power usage", + }, + Key: "capacity.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Power", + Summary: "Power", + }, + Key: "power", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "W", + Summary: "Watt", + }, + Key: "watt", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 213, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Worst case allocation", + Summary: "Amount of CPU resources allocated to the virtual machine or resource pool, based on the total cluster capacity and the resource configuration of the resource hierarchy", + }, + Key: "cpuentitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 214, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Entitlement", + Summary: "Memory allocation as calculated by the VMkernel scheduler based on current estimated demand and reservation, limit, and shares policies set for all virtual machines and resource pools in the host or cluster", + }, + Key: "mementitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 215, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU fairness", + Summary: "Fairness of distributed CPU resource allocation", + }, + Key: "cpufairness", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cluster services", + Summary: "Cluster services", + }, + Key: "clusterServices", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 216, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory fairness", + Summary: "Aggregate available memory resources of all the hosts within a cluster", + }, + Key: "memfairness", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cluster services", + Summary: "Cluster services", + }, + Key: "clusterServices", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 217, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Packets Throughput Transmitted", + Summary: "The rate of transmitted packets for this VDS", + }, + Key: "throughput.pktsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 218, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Multicast Packets Throughput Transmitted", + Summary: "The rate of transmitted Multicast packets for this VDS", + }, + Key: "throughput.pktsTxMulticast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 219, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Broadcast Packets Throughput Transmitted", + Summary: "The rate of transmitted Broadcast packets for this VDS", + }, + Key: "throughput.pktsTxBroadcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 220, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Packets Throughput Received", + Summary: "The rate of received packets for this vDS", + }, + Key: "throughput.pktsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 221, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Multicast Packets Throughput Received", + Summary: "The rate of received Multicast packets for this VDS", + }, + Key: "throughput.pktsRxMulticast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 222, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Broadcast Packets Throughput Received", + Summary: "The rate of received Broadcast packets for this VDS", + }, + Key: "throughput.pktsRxBroadcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 223, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Dropped Transmitted Packets Throughput", + Summary: "Count of dropped transmitted packets for this VDS", + }, + Key: "throughput.droppedTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 224, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VDS Dropped Received Packets Throughput", + Summary: "Count of dropped received packets for this VDS", + }, + Key: "throughput.droppedRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 225, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Packets Throughput Transmitted", + Summary: "The rate of transmitted packets for this DVPort", + }, + Key: "throughput.vds.pktsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 226, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Multicast Packets Throughput Transmitted", + Summary: "The rate of transmitted multicast packets for this DVPort", + }, + Key: "throughput.vds.pktsTxMcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 227, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Broadcast Packets Throughput Transmitted", + Summary: "The rate of transmitted broadcast packets for this DVPort", + }, + Key: "throughput.vds.pktsTxBcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 228, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Packets Throughput Received", + Summary: "The rate of received packets for this DVPort", + }, + Key: "throughput.vds.pktsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 229, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Multicast Packets Throughput Received", + Summary: "The rate of received multicast packets for this DVPort", + }, + Key: "throughput.vds.pktsRxMcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 230, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort Broadcast Packets Throughput Received", + Summary: "The rate of received broadcast packets for this DVPort", + }, + Key: "throughput.vds.pktsRxBcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 231, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort dropped transmitted packets throughput", + Summary: "Count of dropped transmitted packets for this DVPort", + }, + Key: "throughput.vds.droppedTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 232, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "DVPort dropped received packets throughput", + Summary: "Count of dropped received packets for this DVPort", + }, + Key: "throughput.vds.droppedRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 233, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG Packets Throughput Transmitted", + Summary: "The rate of transmitted packets for this LAG", + }, + Key: "throughput.vds.lagTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 234, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG Multicast Packets Throughput Transmitted", + Summary: "The rate of transmitted Multicast packets for this LAG", + }, + Key: "throughput.vds.lagTxMcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 235, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG Broadcast Packets Throughput Transmitted", + Summary: "The rate of transmitted Broadcast packets for this LAG", + }, + Key: "throughput.vds.lagTxBcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 236, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG packets Throughput received", + Summary: "The rate of received packets for this LAG", + }, + Key: "throughput.vds.lagRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 237, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG multicast packets throughput received", + Summary: "The rate of received multicast packets for this LAG", + }, + Key: "throughput.vds.lagRxMcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 238, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG Broadcast packets Throughput received", + Summary: "The rate of received Broadcast packets for this LAG", + }, + Key: "throughput.vds.lagRxBcast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 239, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG dropped transmitted packets throughput", + Summary: "Count of dropped transmitted packets for this LAG", + }, + Key: "throughput.vds.lagDropTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 240, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "LAG dropped received packets throughput", + Summary: "Count of dropped received packets for this LAG", + }, + Key: "throughput.vds.lagDropRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 241, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network packets throughput transmitted", + Summary: "The rate of transmitted packets for this network", + }, + Key: "throughput.vds.txTotal", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 242, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network non-unicast packets throughput transmitted", + Summary: "The rate of transmitted non-unicast packets for this network", + }, + Key: "throughput.vds.txNoUnicast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 243, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network cross-router packets throughput transmitted", + Summary: "The rate of transmitted cross-router packets for this network", + }, + Key: "throughput.vds.txCrsRouter", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 244, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped transmitted packets throughput", + Summary: "Count of dropped transmitted packets for this network", + }, + Key: "throughput.vds.txDrop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 245, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network packets throughput received", + Summary: "The rate of received packets for this network", + }, + Key: "throughput.vds.rxTotal", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 246, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped received packets due to destination IP error throughput", + Summary: "Count of dropped received packets with destination IP error for this network", + }, + Key: "throughput.vds.rxDestErr", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 247, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped received packets throughput", + Summary: "Count of dropped received packets for this network", + }, + Key: "throughput.vds.rxDrop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 248, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to match mapping entry for a unicast MAC throughput", + Summary: "Count of transmitted packets that cannot find matched mapping entry for this network", + }, + Key: "throughput.vds.macFlood", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 249, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to allocate a new mapping entry during translation phase", + Summary: "Count of transmitted packets that failed to acquire new mapping entry during translation phase for this network", + }, + Key: "throughput.vds.macLKUPFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 250, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to allocate a new mapping entry during learning phase", + Summary: "Count of transmitted packets that failed to acquire new mapping entry during learning phase for this network", + }, + Key: "throughput.vds.macUPDTFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 251, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found Matched ARP Entry Throughput", + Summary: "Count of transmitted packets that found matched ARP entry for this network", + }, + Key: "throughput.vds.arpFound", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 252, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found Matched ARP Entry Marked as Unknown Throughput", + Summary: "Count of transmitted packets whose matched arp entry is marked as unknown for this network", + }, + Key: "throughput.vds.arpUnknown", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 253, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Failed to Allocate ARP Entry During Translation Phase Throughput", + Summary: "Count of transmitted packets that failed to acquire new ARP entry during translation phase for this network", + }, + Key: "throughput.vds.arpLKUPFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 254, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network found the same ARP requests have been sent into queue throughput", + Summary: "Count of transmitted packets whose ARP requests have already been sent into queue for this network", + }, + Key: "throughput.vds.arpWait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 255, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found ARP Queries Have Been Expired Throughput", + Summary: "Count of arp queries that have been expired for this network", + }, + Key: "throughput.vds.arpTimeout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 256, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM power on count", + Summary: "Number of virtual machine power on operations", + }, + Key: "numPoweron", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 257, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM power off count", + Summary: "Number of virtual machine power off operations", + }, + Key: "numPoweroff", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 258, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM suspend count", + Summary: "Number of virtual machine suspend operations", + }, + Key: "numSuspend", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 259, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM reset count", + Summary: "Number of virtual machine reset operations", + }, + Key: "numReset", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 260, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM guest reboot count", + Summary: "Number of virtual machine guest reboot operations", + }, + Key: "numRebootGuest", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 261, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM standby guest count", + Summary: "Number of virtual machine standby guest operations", + }, + Key: "numStandbyGuest", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 262, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM guest shutdown count", + Summary: "Number of virtual machine guest shutdown operations", + }, + Key: "numShutdownGuest", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 263, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM create count", + Summary: "Number of virtual machine create operations", + }, + Key: "numCreate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 264, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM delete count", + Summary: "Number of virtual machine delete operations", + }, + Key: "numDestroy", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 265, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM register count", + Summary: "Number of virtual machine register operations", + }, + Key: "numRegister", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 266, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM unregister count", + Summary: "Number of virtual machine unregister operations", + }, + Key: "numUnregister", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 267, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM reconfigure count", + Summary: "Number of virtual machine reconfigure operations", + }, + Key: "numReconfigure", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 268, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM clone count", + Summary: "Number of virtual machine clone operations", + }, + Key: "numClone", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 269, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM template deploy count", + Summary: "Number of virtual machine template deploy operations", + }, + Key: "numDeploy", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 270, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM host change count (non-powered-on VMs)", + Summary: "Number of host change operations for powered-off and suspended VMs", + }, + Key: "numChangeHost", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 271, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM datastore change count (non-powered-on VMs)", + Summary: "Number of datastore change operations for powered-off and suspended virtual machines", + }, + Key: "numChangeDS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 272, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM host and datastore change count (non-powered-on VMs)", + Summary: "Number of host and datastore change operations for powered-off and suspended virtual machines", + }, + Key: "numChangeHostDS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 273, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vMotion count", + Summary: "Number of migrations with vMotion (host change operations for powered-on VMs)", + }, + Key: "numVMotion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 274, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage vMotion count", + Summary: "Number of migrations with Storage vMotion (datastore change operations for powered-on VMs)", + }, + Key: "numSVMotion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 275, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VM host and datastore change count (powered-on VMs)", + Summary: "Number of host and datastore change operations for powered-on and suspended virtual machines", + }, + Key: "numXVMotion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual machine operations", + Summary: "Virtual machine operations", + }, + Key: "vmop", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 276, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Effective CPU resources", + Summary: "Total available CPU resources of all hosts within a cluster", + }, + Key: "effectivecpu", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cluster services", + Summary: "Cluster services", + }, + Key: "clusterServices", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 277, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Effective memory resources", + Summary: "Total amount of machine memory of all hosts in the cluster that is available for use for virtual machine memory and overhead memory", + }, + Key: "effectivemem", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cluster services", + Summary: "Cluster services", + }, + Key: "clusterServices", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 278, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total", + Summary: "Total amount of CPU resources of all hosts in the cluster", + }, + Key: "totalmhz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 279, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total", + Summary: "Total amount of host physical memory of all hosts in the cluster that is available for virtual machine memory (physical memory for use by the guest OS) and virtual machine overhead memory", + }, + Key: "totalmb", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 280, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Current failover level", + Summary: "vSphere HA number of failures that can be tolerated", + }, + Key: "failover", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cluster services", + Summary: "Cluster services", + }, + Key: "clusterServices", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 281, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Space actually used", + Summary: "Amount of space actually used by the virtual machine or the datastore", + }, + Key: "used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 282, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Space potentially used", + Summary: "Amount of storage set aside for use by a datastore or a virtual machine", + }, + Key: "provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 283, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Capacity", + Summary: "Configured size of the datastore", + }, + Key: "capacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 284, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Space not shared", + Summary: "Amount of space associated exclusively with a virtual machine", + }, + Key: "unshared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 285, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead due to delta disk backings", + Summary: "Storage overhead of a virtual machine or a datastore due to delta disk backings", + }, + Key: "deltaused", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 286, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "provisioned", + Summary: "provisioned", + }, + Key: "capacity.provisioned", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 287, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "usage", + Summary: "usage", + }, + Key: "capacity.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 288, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "contention", + Summary: "contention", + }, + Key: "capacity.contention", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 289, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation latency", + Summary: "The latency of an activation operation in vCenter Server", + }, + Key: "activationlatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 290, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation latency", + Summary: "The latency of an activation operation in vCenter Server", + }, + Key: "activationlatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 291, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation latency", + Summary: "The latency of an activation operation in vCenter Server", + }, + Key: "activationlatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 292, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation count", + Summary: "Activation operations in vCenter Server", + }, + Key: "activationstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 293, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation count", + Summary: "Activation operations in vCenter Server", + }, + Key: "activationstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 294, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Activation count", + Summary: "Activation operations in vCenter Server", + }, + Key: "activationstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 295, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "buffersz", + Summary: "buffersz", + }, + Key: "buffersz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 296, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "cachesz", + Summary: "cachesz", + }, + Key: "cachesz", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 297, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Context switch rate", + Summary: "Number of context switches per second on the system where vCenter Server is running", + }, + Key: "ctxswitchesrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 298, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "diskreadsectorrate", + Summary: "diskreadsectorrate", + }, + Key: "diskreadsectorrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 299, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk read rate", + Summary: "Number of disk reads per second on the system where vCenter Server is running", + }, + Key: "diskreadsrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 300, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "diskwritesectorrate", + Summary: "diskwritesectorrate", + }, + Key: "diskwritesectorrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 301, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk write rate", + Summary: "Number of disk writes per second on the system where vCenter Server is running", + }, + Key: "diskwritesrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 302, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync latency", + Summary: "The latency of a host sync operation in vCenter Server", + }, + Key: "hostsynclatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 303, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync latency", + Summary: "The latency of a host sync operation in vCenter Server", + }, + Key: "hostsynclatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 304, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync latency", + Summary: "The latency of a host sync operation in vCenter Server", + }, + Key: "hostsynclatencystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 305, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync count", + Summary: "The number of host sync operations in vCenter Server", + }, + Key: "hostsyncstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 306, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync count", + Summary: "The number of host sync operations in vCenter Server", + }, + Key: "hostsyncstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 307, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host sync count", + Summary: "The number of host sync operations in vCenter Server", + }, + Key: "hostsyncstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 308, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Inventory statistics", + Summary: "vCenter Server inventory statistics", + }, + Key: "inventorystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 309, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Inventory statistics", + Summary: "vCenter Server inventory statistics", + }, + Key: "inventorystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 310, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Inventory statistics", + Summary: "vCenter Server inventory statistics", + }, + Key: "inventorystats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 311, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Locking statistics", + Summary: "vCenter Server locking statistics", + }, + Key: "lockstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 312, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Locking statistics", + Summary: "vCenter Server locking statistics", + }, + Key: "lockstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 313, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Locking statistics", + Summary: "vCenter Server locking statistics", + }, + Key: "lockstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 314, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server LRO statistics", + Summary: "vCenter Server LRO statistics", + }, + Key: "lrostats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 315, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server LRO statistics", + Summary: "vCenter Server LRO statistics", + }, + Key: "lrostats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 316, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server LRO statistics", + Summary: "vCenter Server LRO statistics", + }, + Key: "lrostats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 317, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Miscellaneous", + Summary: "Miscellaneous statistics", + }, + Key: "miscstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 318, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Miscellaneous", + Summary: "Miscellaneous statistics", + }, + Key: "miscstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 319, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Miscellaneous", + Summary: "Miscellaneous statistics", + }, + Key: "miscstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 320, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Managed object reference statistics", + Summary: "Managed object reference counts in vCenter Server", + }, + Key: "morefregstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 321, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Managed object reference statistics", + Summary: "Managed object reference counts in vCenter Server", + }, + Key: "morefregstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 322, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Managed object reference statistics", + Summary: "Managed object reference counts in vCenter Server", + }, + Key: "morefregstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 323, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Received packet rate", + Summary: "Rate of the number of total packets received per second on the system where vCenter Server is running", + }, + Key: "packetrecvrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 324, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Sent packet rate", + Summary: "Number of total packets sent per second on the system where vCenter Server is running", + }, + Key: "packetsentrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 325, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU system", + Summary: "Total system CPU used on the system where vCenter Server in running", + }, + Key: "systemcpuusage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 326, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Page fault rate", + Summary: "Number of page faults per second on the system where vCenter Server is running", + }, + Key: "pagefaultrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 327, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical memory", + Summary: "Physical memory used by vCenter", + }, + Key: "physicalmemusage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 328, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU privileged", + Summary: "CPU used by vCenter Server in privileged mode", + }, + Key: "priviledgedcpuusage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 329, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Scoreboard statistics", + Summary: "Object counts in vCenter Server", + }, + Key: "scoreboard", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 330, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Scoreboard statistics", + Summary: "Object counts in vCenter Server", + }, + Key: "scoreboard", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 331, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Scoreboard statistics", + Summary: "Object counts in vCenter Server", + }, + Key: "scoreboard", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 332, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Session statistics", + Summary: "The statistics of client sessions connected to vCenter Server", + }, + Key: "sessionstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 333, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Session statistics", + Summary: "The statistics of client sessions connected to vCenter Server", + }, + Key: "sessionstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 334, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Session statistics", + Summary: "The statistics of client sessions connected to vCenter Server", + }, + Key: "sessionstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 335, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System call rate", + Summary: "Number of systems calls made per second on the system where vCenter Server is running", + }, + Key: "syscallsrate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 336, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System statistics", + Summary: "The statistics of vCenter Server as a running system such as thread statistics and heap statistics", + }, + Key: "systemstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 337, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System statistics", + Summary: "The statistics of vCenter Server as a running system such as thread statistics and heap statistics", + }, + Key: "systemstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 338, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System statistics", + Summary: "The statistics of vCenter Server as a running system such as thread statistics and heap statistics", + }, + Key: "systemstats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 339, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU user", + Summary: "CPU used by vCenter Server in user mode", + }, + Key: "usercpuusage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 340, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server service statistics", + Summary: "vCenter service statistics such as events, alarms, and tasks", + }, + Key: "vcservicestats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 341, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server service statistics", + Summary: "vCenter service statistics such as events, alarms, and tasks", + }, + Key: "vcservicestats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 342, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter Server service statistics", + Summary: "vCenter service statistics such as events, alarms, and tasks", + }, + Key: "vcservicestats", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter debugging information", + Summary: "vCenter debugging information", + }, + Key: "vcDebugInfo", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 343, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual memory", + Summary: "Virtual memory used by vCenter Server", + }, + Key: "virtualmemusage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vCenter resource usage information", + Summary: "vCenter resource usage information", + }, + Key: "vcResources", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 1, + AssociatedCounterId: nil, + }, + { + Key: 344, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average number of outstanding read requests", + Summary: "Average number of outstanding read requests to the virtual disk during the collection interval", + }, + Key: "readOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 345, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average number of outstanding write requests", + Summary: "Average number of outstanding write requests to the virtual disk during the collection interval", + }, + Key: "writeOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 346, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read workload metric", + Summary: "Storage DRS virtual disk metric for the read workload model", + }, + Key: "readLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 347, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write workload metric", + Summary: "Storage DRS virtual disk metric for the write workload model", + }, + Key: "writeLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 348, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (1 min average)", + Summary: "CPU active average over 1 minute", + }, + Key: "actav1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 349, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore bytes read", + Summary: "Storage DRS datastore bytes read", + }, + Key: "datastoreReadBytes", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 350, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore bytes written", + Summary: "Storage DRS datastore bytes written", + }, + Key: "datastoreWriteBytes", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 351, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore read I/O rate", + Summary: "Storage DRS datastore read I/O rate", + }, + Key: "datastoreReadIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 352, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore write I/O rate", + Summary: "Storage DRS datastore write I/O rate", + }, + Key: "datastoreWriteIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 353, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore outstanding read requests", + Summary: "Storage DRS datastore outstanding read requests", + }, + Key: "datastoreReadOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 354, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore outstanding write requests", + Summary: "Storage DRS datastore outstanding write requests", + }, + Key: "datastoreWriteOIO", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 355, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore normalized read latency", + Summary: "Storage DRS datastore normalized read latency", + }, + Key: "datastoreNormalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 356, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore normalized write latency", + Summary: "Storage DRS datastore normalized write latency", + }, + Key: "datastoreNormalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 2, + AssociatedCounterId: nil, + }, + { + Key: 357, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore read workload metric", + Summary: "Storage DRS datastore metric for read workload model", + }, + Key: "datastoreReadLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 358, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage DRS datastore write workload metric", + Summary: "Storage DRS datastore metric for write workload model", + }, + Key: "datastoreWriteLoadMetric", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 359, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore latency observed by VMs", + Summary: "The average datastore latency as seen by virtual machines", + }, + Key: "datastoreVMObservedLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 360, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network packets throughput transmitted", + Summary: "The rate of transmitted packets for this network", + }, + Key: "throughput.vds.txTotal", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 361, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network non-unicast packets throughput transmitted", + Summary: "The rate of transmitted non-unicast packets for this network", + }, + Key: "throughput.vds.txNoUnicast", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 362, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network cross-router packets throughput transmitted", + Summary: "The rate of transmitted cross-router packets for this network", + }, + Key: "throughput.vds.txCrsRouter", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 363, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped transmitted packets throughput", + Summary: "Count of dropped transmitted packets for this network", + }, + Key: "throughput.vds.txDrop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 364, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network packets throughput received", + Summary: "The rate of received packets for this network", + }, + Key: "throughput.vds.rxTotal", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 365, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped received packets due to destination IP error throughput", + Summary: "Count of dropped received packets with destination IP error for this network", + }, + Key: "throughput.vds.rxDestErr", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 366, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network dropped received packets throughput", + Summary: "Count of dropped received packets for this network", + }, + Key: "throughput.vds.rxDrop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 367, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to match mapping entry for a unicast MAC throughput", + Summary: "Count of transmitted packets that cannot find matched mapping entry for this network", + }, + Key: "throughput.vds.macFlood", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 368, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to allocate a new mapping entry during translation phase", + Summary: "Count of transmitted packets that failed to acquire new mapping entry during translation phase for this network", + }, + Key: "throughput.vds.macLKUPFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 369, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network failed to allocate a new mapping entry during learning phase", + Summary: "Count of transmitted packets that failed to acquire new mapping entry during learning phase for this network", + }, + Key: "throughput.vds.macUPDTFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 370, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found Matched ARP Entry Throughput", + Summary: "Count of transmitted packets that found matched ARP entry for this network", + }, + Key: "throughput.vds.arpFound", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 371, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found Matched ARP Entry Marked as Unknown Throughput", + Summary: "Count of transmitted packets whose matched arp entry is marked as unknown for this network", + }, + Key: "throughput.vds.arpUnknown", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 372, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Failed to Allocate ARP Entry During Translation Phase Throughput", + Summary: "Count of transmitted packets that failed to acquire new ARP entry during translation phase for this network", + }, + Key: "throughput.vds.arpLKUPFull", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 373, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN network found the same ARP requests have been sent into queue throughput", + Summary: "Count of transmitted packets whose ARP requests have already been sent into queue for this network", + }, + Key: "throughput.vds.arpWait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 374, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VXLAN Network Found ARP Queries Have Been Expired Throughput", + Summary: "Count of arp queries that have been expired for this network", + }, + Key: "throughput.vds.arpTimeout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 386, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap wait", + Summary: "CPU time spent waiting for swap-in", + }, + Key: "swapwait", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 387, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 388, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 389, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 390, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading)", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 391, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 392, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 393, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 394, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Core Utilization", + Summary: "CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized)", + }, + Key: "coreUtilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 395, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total capacity", + Summary: "Total CPU capacity reserved by and available for virtual machines", + }, + Key: "totalCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 396, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Latency", + Summary: "Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU(s)", + }, + Key: "latency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 397, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Entitlement", + Summary: "CPU resources devoted by the ESX scheduler", + }, + Key: "entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 398, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Demand", + Summary: "The amount of CPU resources a virtual machine would use if there were no CPU contention or CPU limit", + }, + Key: "demand", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 399, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Co-stop", + Summary: "Time the virtual machine is ready to run, but is unable to run due to co-scheduling constraints", + }, + Key: "costop", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 400, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max limited", + Summary: "Time the virtual machine is ready to run, but is not run due to maxing out its CPU limit setting", + }, + Key: "maxlimited", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 401, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overlap", + Summary: "Time the virtual machine was interrupted to perform system services on behalf of itself or other virtual machines", + }, + Key: "overlap", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 402, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Run", + Summary: "Time the virtual machine is scheduled to run", + }, + Key: "run", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 403, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Demand-to-entitlement ratio", + Summary: "CPU resource entitlement to CPU demand ratio (in percents)", + }, + Key: "demandEntitlementRatio", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 404, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Readiness", + Summary: "Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU", + }, + Key: "readiness", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU", + Summary: "CPU", + }, + Key: "cpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 405, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 406, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 407, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 408, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap in", + Summary: "Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter", + }, + Key: "swapin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 409, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 410, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 411, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 412, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Swap out", + Summary: "Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on.", + }, + Key: "swapout", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 413, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 414, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 415, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 416, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMkernel consumed", + Summary: "Amount of host physical memory consumed by VMkernel", + }, + Key: "sysUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 417, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active write", + Summary: "Amount of guest physical memory that is being actively written by guest. Activeness is estimated by ESXi", + }, + Key: "activewrite", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 418, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead reserved", + Summary: "Host physical memory reserved by ESXi, for its data structures, for running the virtual machine", + }, + Key: "overheadMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 419, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Total reservation", + Summary: "Total reservation, available and consumed, for powered-on virtual machines", + }, + Key: "totalCapacity", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 420, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compressed", + Summary: "Amount of guest physical memory pages compressed by ESXi", + }, + Key: "zipped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 421, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Compression saved", + Summary: "Host physical memory, reclaimed from a virtual machine, by memory compression. This value is less than the value of 'Compressed' memory", + }, + Key: "zipSaved", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 422, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Page-fault latency", + Summary: "Percentage of time the virtual machine spent waiting to swap in or decompress guest physical memory", + }, + Key: "latency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 423, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Entitlement", + Summary: "Amount of host physical memory the virtual machine deserves, as determined by ESXi", + }, + Key: "entitlement", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 424, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Reclamation threshold", + Summary: "Threshold of free host physical memory below which ESXi will begin actively reclaiming memory from virtual machines by swapping, compression and ballooning", + }, + Key: "lowfreethreshold", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 425, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 426, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in rate", + Summary: "Rate at which guest physical memory is swapped in from the host swap cache", + }, + Key: "llSwapInRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 427, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out rate", + Summary: "Rate at which guest physical memory is swapped out to the host swap cache", + }, + Key: "llSwapOutRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 428, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Overhead active", + Summary: "Estimate of the host physical memory, from Overhead consumed, that is actively read or written to by ESXi", + }, + Key: "overheadTouched", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 429, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 430, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 431, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache consumed", + Summary: "Storage space consumed on the host swap cache for storing swapped guest physical memory pages", + }, + Key: "llSwapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 432, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 433, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 434, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 435, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap in", + Summary: "Amount of guest physical memory swapped in from host cache", + }, + Key: "llSwapIn", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 436, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 437, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 438, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 439, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Host cache swap out", + Summary: "Amount of guest physical memory swapped out to the host swap cache", + }, + Key: "llSwapOut", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 440, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Size", + Summary: "Space used for holding VMFS Pointer Blocks in memory", + }, + Key: "vmfs.pbc.size", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 441, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum VMFS PB Cache Size", + Summary: "Maximum size the VMFS Pointer Block Cache can grow to", + }, + Key: "vmfs.pbc.sizeMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 442, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS Working Set", + Summary: "Amount of file blocks whose addresses are cached in the VMFS PB Cache", + }, + Key: "vmfs.pbc.workingSet", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "TB", + Summary: "Terabyte", + }, + Key: "teraBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 443, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum VMFS Working Set", + Summary: "Maximum amount of file blocks whose addresses are cached in the VMFS PB Cache", + }, + Key: "vmfs.pbc.workingSetMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "TB", + Summary: "Terabyte", + }, + Key: "teraBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 444, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Overhead", + Summary: "Amount of VMFS heap used by the VMFS PB Cache", + }, + Key: "vmfs.pbc.overhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 445, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VMFS PB Cache Capacity Miss Ratio", + Summary: "Trailing average of the ratio of capacity misses to compulsory misses for the VMFS PB Cache", + }, + Key: "vmfs.pbc.capMissRatio", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory", + Summary: "Memory", + }, + Key: "mem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 446, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Commands issued", + Summary: "Number of SCSI commands issued during the collection interval", + }, + Key: "commands", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 447, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device read latency", + Summary: "Average amount of time, in milliseconds, to read from the physical device", + }, + Key: "deviceReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 448, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel read latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI read command", + }, + Key: "kernelReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 449, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI read command issued from the guest OS to the virtual machine", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 450, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue read latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI read command, during the collection interval", + }, + Key: "queueReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 451, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device write latency", + Summary: "Average amount of time, in milliseconds, to write to the physical device", + }, + Key: "deviceWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 452, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel write latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI write command", + }, + Key: "kernelWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 453, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "Average amount of time taken during the collection interval to process a SCSI write command issued by the guest OS to the virtual machine", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 454, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue write latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI write command, during the collection interval", + }, + Key: "queueWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 455, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Physical device command latency", + Summary: "Average amount of time, in milliseconds, to complete a SCSI command from the physical device", + }, + Key: "deviceLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 456, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Kernel command latency", + Summary: "Average amount of time, in milliseconds, spent by VMkernel to process each SCSI command", + }, + Key: "kernelLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 457, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Queue command latency", + Summary: "Average amount of time spent in the VMkernel queue, per SCSI command, during the collection interval", + }, + Key: "queueLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 458, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Maximum queue depth", + Summary: "Maximum queue depth", + }, + Key: "maxQueueDepth", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 459, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of SCSI commands issued per second during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk", + Summary: "Disk", + }, + Key: "disk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 460, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Receive packets dropped", + Summary: "Number of receives dropped", + }, + Key: "droppedRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 461, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Transmit packets dropped", + Summary: "Number of transmits dropped", + }, + Key: "droppedTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 462, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data receive rate", + Summary: "Average amount of data received per second", + }, + Key: "bytesRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 463, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Data transmit rate", + Summary: "Average amount of data transmitted per second", + }, + Key: "bytesTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 464, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Broadcast receives", + Summary: "Number of broadcast packets received during the sampling interval", + }, + Key: "broadcastRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 465, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Broadcast transmits", + Summary: "Number of broadcast packets transmitted during the sampling interval", + }, + Key: "broadcastTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 466, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Multicast receives", + Summary: "Number of multicast packets received during the sampling interval", + }, + Key: "multicastRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 467, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Multicast transmits", + Summary: "Number of multicast packets transmitted during the sampling interval", + }, + Key: "multicastTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 468, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packet receive errors", + Summary: "Number of packets with errors received during the sampling interval", + }, + Key: "errorsRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 469, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Packet transmit errors", + Summary: "Number of packets with errors transmitted during the sampling interval", + }, + Key: "errorsTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 470, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Unknown protocol frames", + Summary: "Number of frames with unknown protocol received during the sampling interval", + }, + Key: "unknownProtos", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "summation", + StatsType: "delta", + Level: 2, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 471, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pnicBytesRx", + Summary: "pnicBytesRx", + }, + Key: "pnicBytesRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 472, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "pnicBytesTx", + Summary: "pnicBytesTx", + }, + Key: "pnicBytesTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Network", + Summary: "Network", + }, + Key: "net", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 473, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Heartbeat", + Summary: "Number of heartbeats issued per virtual machine during the interval", + }, + Key: "heartbeat", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 474, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Disk usage", + Summary: "Amount of disk space usage for each mount point", + }, + Key: "diskUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 475, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (None)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "none", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 476, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Average)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 477, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Maximum)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "maximum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 478, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU usage (Minimum)", + Summary: "Amount of CPU used by the Service Console and other applications during the interval", + }, + Key: "resourceCpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "minimum", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 479, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory touched", + Summary: "Memory touched by the system resource group", + }, + Key: "resourceMemTouched", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 480, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory mapped", + Summary: "Memory mapped by the system resource group", + }, + Key: "resourceMemMapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 481, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory share saved", + Summary: "Memory saved due to sharing by the system resource group", + }, + Key: "resourceMemShared", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 482, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory swapped", + Summary: "Memory swapped out by the system resource group", + }, + Key: "resourceMemSwapped", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 483, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory overhead", + Summary: "Overhead memory consumed by the system resource group", + }, + Key: "resourceMemOverhead", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 484, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory shared", + Summary: "Memory shared by the system resource group", + }, + Key: "resourceMemCow", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 485, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory zero", + Summary: "Zero filled memory used by the system resource group", + }, + Key: "resourceMemZero", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 486, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU running (1 min. average)", + Summary: "CPU running average over 1 minute of the system resource group", + }, + Key: "resourceCpuRun1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 487, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU active (1 min average)", + Summary: "CPU active average over 1 minute of the system resource group", + }, + Key: "resourceCpuAct1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 488, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU maximum limited (1 min)", + Summary: "CPU maximum limited over 1 minute of the system resource group", + }, + Key: "resourceCpuMaxLimited1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 489, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU running (5 min average)", + Summary: "CPU running average over 5 minutes of the system resource group", + }, + Key: "resourceCpuRun5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 490, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU active (5 min average)", + Summary: "CPU active average over 5 minutes of the system resource group", + }, + Key: "resourceCpuAct5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 491, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU maximum limited (5 min)", + Summary: "CPU maximum limited over 5 minutes of the system resource group", + }, + Key: "resourceCpuMaxLimited5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 492, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation minimum (in MHz)", + Summary: "CPU allocation reservation (in MHz) of the system resource group", + }, + Key: "resourceCpuAllocMin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 493, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation maximum (in MHz)", + Summary: "CPU allocation limit (in MHz) of the system resource group", + }, + Key: "resourceCpuAllocMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 494, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource CPU allocation shares", + Summary: "CPU allocation shares of the system resource group", + }, + Key: "resourceCpuAllocShares", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 495, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation minimum (in KB)", + Summary: "Memory allocation reservation (in KB) of the system resource group", + }, + Key: "resourceMemAllocMin", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 496, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation maximum (in KB)", + Summary: "Memory allocation limit (in KB) of the system resource group", + }, + Key: "resourceMemAllocMax", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 497, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory allocation shares", + Summary: "Memory allocation shares of the system resource group", + }, + Key: "resourceMemAllocShares", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 498, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "OS Uptime", + Summary: "Total time elapsed, in seconds, since last operating system boot-up", + }, + Key: "osUptime", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "s", + Summary: "Second", + }, + Key: "second", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 499, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource memory consumed", + Summary: "Memory consumed by the system resource group", + }, + Key: "resourceMemConsumed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 500, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "File descriptors used", + Summary: "Number of file descriptors used by the system resource group", + }, + Key: "resourceFdUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "System", + Summary: "System", + }, + Key: "sys", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 501, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (1 min peak)", + Summary: "CPU active peak over 1 minute", + }, + Key: "actpk1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 502, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (1 min average)", + Summary: "CPU running average over 1 minute", + }, + Key: "runav1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 503, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (5 min average)", + Summary: "CPU active average over 5 minutes", + }, + Key: "actav5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 504, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (5 min peak)", + Summary: "CPU active peak over 5 minutes", + }, + Key: "actpk5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 505, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (5 min average)", + Summary: "CPU running average over 5 minutes", + }, + Key: "runav5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 506, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (15 min average)", + Summary: "CPU active average over 15 minutes", + }, + Key: "actav15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 507, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Active (15 min peak)", + Summary: "CPU active peak over 15 minutes", + }, + Key: "actpk15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 508, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (15 min average)", + Summary: "CPU running average over 15 minutes", + }, + Key: "runav15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 509, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (1 min peak)", + Summary: "CPU running peak over 1 minute", + }, + Key: "runpk1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 510, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (1 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 1 minute", + }, + Key: "maxLimited1", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 511, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (5 min peak)", + Summary: "CPU running peak over 5 minutes", + }, + Key: "runpk5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 512, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (5 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 5 minutes", + }, + Key: "maxLimited5", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 513, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Running (15 min peak)", + Summary: "CPU running peak over 15 minutes", + }, + Key: "runpk15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 514, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Throttled (15 min average)", + Summary: "Amount of CPU resources over the limit that were refused, average over 15 minutes", + }, + Key: "maxLimited15", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 515, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Group CPU sample count", + Summary: "Group CPU sample count", + }, + Key: "sampleCount", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 516, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Group CPU sample period", + Summary: "Group CPU sample period", + }, + Key: "samplePeriod", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Resource group CPU", + Summary: "Resource group CPU", + }, + Key: "rescpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 517, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "Amount of total configured memory that is available for use", + }, + Key: "memUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 518, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory swap used", + Summary: "Sum of the memory swapped by all powered-on virtual machines on the host", + }, + Key: "swapUsed", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 519, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "CPU usage", + Summary: "Amount of Service Console CPU usage", + }, + Key: "cpuUsage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Management agent", + Summary: "Management agent", + }, + Key: "managementAgent", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MHz", + Summary: "Megahertz", + }, + Key: "megaHertz", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 520, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average commands issued per second", + Summary: "Average number of commands issued per second on the storage path during the collection interval", + }, + Key: "commandsAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 521, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read requests per second", + Summary: "Average number of read commands issued per second on the storage path during the collection interval", + }, + Key: "numberReadAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 522, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write requests per second", + Summary: "Average number of write commands issued per second on the storage path during the collection interval", + }, + Key: "numberWriteAveraged", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 523, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read rate", + Summary: "Rate of reading data on the storage path", + }, + Key: "read", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 524, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write rate", + Summary: "Rate of writing data on the storage path", + }, + Key: "write", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 525, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read latency", + Summary: "The average time a read issued on the storage path takes", + }, + Key: "totalReadLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 526, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write latency", + Summary: "The average time a write issued on the storage path takes", + }, + Key: "totalWriteLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage path", + Summary: "Storage path", + }, + Key: "storagePath", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 3, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 527, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read request size", + Summary: "Average read request size in bytes", + }, + Key: "readIOSize", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 528, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write request size", + Summary: "Average write request size in bytes", + }, + Key: "writeIOSize", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 529, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of small seeks", + Summary: "Number of seeks during the interval that were less than 64 LBNs apart", + }, + Key: "smallSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 530, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of medium seeks", + Summary: "Number of seeks during the interval that were between 64 and 8192 LBNs apart", + }, + Key: "mediumSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 531, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of large seeks", + Summary: "Number of seeks during the interval that were greater than 8192 LBNs apart", + }, + Key: "largeSeeks", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 532, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read Latency (us)", + Summary: "Read latency in microseconds", + }, + Key: "readLatencyUS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 533, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write Latency (us)", + Summary: "Write latency in microseconds", + }, + Key: "writeLatencyUS", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 534, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache I/Os per second for the virtual disk", + Summary: "The average virtual Flash Read Cache I/Os per second value for the virtual disk", + }, + Key: "vFlashCacheIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 535, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache latency for the virtual disk", + Summary: "The average virtual Flash Read Cache latency value for the virtual disk", + }, + Key: "vFlashCacheLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "µs", + Summary: "Microsecond", + }, + Key: "microsecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 536, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual Flash Read Cache throughput for virtual disk", + Summary: "The average virtual Flash Read Cache throughput value for the virtual disk", + }, + Key: "vFlashCacheThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual disk", + Summary: "Virtual disk", + }, + Key: "virtualDisk", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 537, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Storage I/O Control datastore maximum queue depth", + Summary: "Storage I/O Control datastore maximum queue depth", + }, + Key: "datastoreMaxQueueDepth", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Datastore", + Summary: "Datastore", + }, + Key: "datastore", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 1, + PerDeviceLevel: 3, + AssociatedCounterId: nil, + }, + { + Key: 538, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication VM Count", + Summary: "Current number of replicated virtual machines", + }, + Key: "hbrNumVms", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 539, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Replication Data Receive Rate", + Summary: "Average amount of data received per second", + }, + Key: "hbrNetRx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 540, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Replication Data Transmit Rate", + Summary: "Average amount of data transmitted per second", + }, + Key: "hbrNetTx", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Replication", + Summary: "vSphere Replication", + }, + Key: "hbr", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 541, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Number of caches controlled by the virtual flash module", + Summary: "Number of caches controlled by the virtual flash module", + }, + Key: "numActiveVMDKs", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Virtual flash", + Summary: "Virtual flash module related statistical values", + }, + Key: "vflashModule", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 542, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read IOPS", + Summary: "Read IOPS", + }, + Key: "readIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 543, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read throughput", + Summary: "Read throughput in kBps", + }, + Key: "readThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 544, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average read latency", + Summary: "Average read latency in ms", + }, + Key: "readAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 545, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max read latency", + Summary: "Max read latency in ms", + }, + Key: "readMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 546, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Cache hit rate", + Summary: "Cache hit rate percentage", + }, + Key: "readCacheHitRate", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 547, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Read congestion per sampling interval", + Summary: "Read congestion", + }, + Key: "readCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 548, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write IOPS", + Summary: "Write IOPS", + }, + Key: "writeIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 549, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write throughput", + Summary: "Write throughput in kBps", + }, + Key: "writeThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 550, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average write latency", + Summary: "Average write latency in ms", + }, + Key: "writeAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 551, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max write latency", + Summary: "Max write latency in ms", + }, + Key: "writeMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 552, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Write congestion per sampling interval", + Summary: "Write congestion", + }, + Key: "writeCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 553, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write IOPS", + Summary: "Recovery write IOPS", + }, + Key: "recoveryWriteIops", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 554, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write through-put", + Summary: "Recovery write through-put in kBps", + }, + Key: "recoveryWriteThroughput", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KBps", + Summary: "Kilobytes per second", + }, + Key: "kiloBytesPerSecond", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 555, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Average recovery write latency", + Summary: "Average recovery write latency in ms", + }, + Key: "recoveryWriteAvgLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 556, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Max recovery write latency", + Summary: "Max recovery write latency in ms", + }, + Key: "recoveryWriteMaxLatency", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "ms", + Summary: "Millisecond", + }, + Key: "millisecond", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 557, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Recovery write congestion per sampling interval", + Summary: "Recovery write congestion", + }, + Key: "recoveryWriteCongestion", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "VSAN DOM Objects", + Summary: "VSAN DOM object related statistical values", + }, + Key: "vsanDomObj", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "num", + Summary: "Number", + }, + Key: "number", + }, + RollupType: "average", + StatsType: "rate", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 558, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 559, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 560, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 561, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Utilization", + Summary: "The utilization of a GPU in percentages", + }, + Key: "utilization", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 562, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 563, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 564, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 565, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory used", + Summary: "The amount of GPU memory used in kilobytes", + }, + Key: "mem.used", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "KB", + Summary: "Kilobyte", + }, + Key: "kiloBytes", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 566, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "none", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 567, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 568, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "maximum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 569, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Memory usage", + Summary: "The amount of GPU memory used in percentages of the total available", + }, + Key: "mem.usage", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "%", + Summary: "Percentage", + }, + Key: "percent", + }, + RollupType: "minimum", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 570, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Temperature", + Summary: "The temperature of a GPU in degrees celsius", + }, + Key: "temperature", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "GPU", + Summary: "GPU", + }, + Key: "gpu", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "℃", + Summary: "Temperature in degrees Celsius", + }, + Key: "celsius", + }, + RollupType: "average", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, + { + Key: 571, + NameInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "Persistent memory available reservation", + Summary: "Persistent memory available reservation on a host.", + }, + Key: "available.reservation", + }, + GroupInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "PMEM", + Summary: "PMEM", + }, + Key: "pmem", + }, + UnitInfo: &types.ElementDescription{ + Description: types.Description{ + Label: "MB", + Summary: "Megabyte", + }, + Key: "megaBytes", + }, + RollupType: "latest", + StatsType: "absolute", + Level: 4, + PerDeviceLevel: 4, + AssociatedCounterId: nil, + }, +} + +var VmMetrics = []types.PerfMetricId{ + { + CounterId: 12, + Instance: "$cpu", + }, + { + CounterId: 401, + Instance: "$cpu", + }, + { + CounterId: 2, + Instance: "", + }, + { + CounterId: 14, + Instance: "", + }, + { + CounterId: 10, + Instance: "", + }, + { + CounterId: 401, + Instance: "", + }, + { + CounterId: 402, + Instance: "$cpu", + }, + { + CounterId: 396, + Instance: "", + }, + { + CounterId: 13, + Instance: "", + }, + { + CounterId: 11, + Instance: "$cpu", + }, + { + CounterId: 386, + Instance: "$cpu", + }, + { + CounterId: 399, + Instance: "$cpu", + }, + { + CounterId: 397, + Instance: "", + }, + { + CounterId: 6, + Instance: "$cpu", + }, + { + CounterId: 404, + Instance: "$cpu", + }, + { + CounterId: 386, + Instance: "", + }, + { + CounterId: 14, + Instance: "$cpu", + }, + { + CounterId: 11, + Instance: "", + }, + { + CounterId: 400, + Instance: "$cpu", + }, + { + CounterId: 6, + Instance: "", + }, + { + CounterId: 399, + Instance: "", + }, + { + CounterId: 403, + Instance: "", + }, + { + CounterId: 404, + Instance: "", + }, + { + CounterId: 398, + Instance: "", + }, + { + CounterId: 13, + Instance: "$cpu", + }, + { + CounterId: 400, + Instance: "", + }, + { + CounterId: 402, + Instance: "", + }, + { + CounterId: 12, + Instance: "", + }, + { + CounterId: 184, + Instance: "", + }, + { + CounterId: 180, + Instance: "$physDisk", + }, + { + CounterId: 181, + Instance: "$physDisk", + }, + { + CounterId: 178, + Instance: "$physDisk", + }, + { + CounterId: 182, + Instance: "$physDisk", + }, + { + CounterId: 179, + Instance: "$physDisk", + }, + { + CounterId: 183, + Instance: "$physDisk", + }, + { + CounterId: 133, + Instance: "", + }, + { + CounterId: 37, + Instance: "", + }, + { + CounterId: 74, + Instance: "", + }, + { + CounterId: 426, + Instance: "", + }, + { + CounterId: 70, + Instance: "", + }, + { + CounterId: 107, + Instance: "", + }, + { + CounterId: 422, + Instance: "", + }, + { + CounterId: 105, + Instance: "", + }, + { + CounterId: 85, + Instance: "", + }, + { + CounterId: 428, + Instance: "", + }, + { + CounterId: 418, + Instance: "", + }, + { + CounterId: 102, + Instance: "", + }, + { + CounterId: 33, + Instance: "", + }, + { + CounterId: 427, + Instance: "", + }, + { + CounterId: 94, + Instance: "", + }, + { + CounterId: 29, + Instance: "", + }, + { + CounterId: 420, + Instance: "", + }, + { + CounterId: 417, + Instance: "", + }, + { + CounterId: 98, + Instance: "", + }, + { + CounterId: 423, + Instance: "", + }, + { + CounterId: 106, + Instance: "", + }, + { + CounterId: 86, + Instance: "", + }, + { + CounterId: 41, + Instance: "", + }, + { + CounterId: 421, + Instance: "", + }, + { + CounterId: 429, + Instance: "", + }, + { + CounterId: 406, + Instance: "", + }, + { + CounterId: 90, + Instance: "", + }, + { + CounterId: 24, + Instance: "", + }, + { + CounterId: 410, + Instance: "", + }, + { + CounterId: 149, + Instance: "vmnic1", + }, + { + CounterId: 466, + Instance: "4000", + }, + { + CounterId: 146, + Instance: "", + }, + { + CounterId: 461, + Instance: "", + }, + { + CounterId: 148, + Instance: "vmnic1", + }, + { + CounterId: 462, + Instance: "vmnic0", + }, + { + CounterId: 143, + Instance: "vmnic0", + }, + { + CounterId: 463, + Instance: "vmnic1", + }, + { + CounterId: 147, + Instance: "", + }, + { + CounterId: 463, + Instance: "4000", + }, + { + CounterId: 462, + Instance: "vmnic1", + }, + { + CounterId: 462, + Instance: "4000", + }, + { + CounterId: 461, + Instance: "4000", + }, + { + CounterId: 146, + Instance: "vmnic0", + }, + { + CounterId: 465, + Instance: "4000", + }, + { + CounterId: 460, + Instance: "4000", + }, + { + CounterId: 149, + Instance: "4000", + }, + { + CounterId: 148, + Instance: "4000", + }, + { + CounterId: 462, + Instance: "", + }, + { + CounterId: 149, + Instance: "vmnic0", + }, + { + CounterId: 143, + Instance: "4000", + }, + { + CounterId: 463, + Instance: "", + }, + { + CounterId: 147, + Instance: "vmnic1", + }, + { + CounterId: 466, + Instance: "", + }, + { + CounterId: 472, + Instance: "4000", + }, + { + CounterId: 143, + Instance: "", + }, + { + CounterId: 146, + Instance: "vmnic1", + }, + { + CounterId: 146, + Instance: "4000", + }, + { + CounterId: 472, + Instance: "", + }, + { + CounterId: 471, + Instance: "", + }, + { + CounterId: 460, + Instance: "", + }, + { + CounterId: 147, + Instance: "4000", + }, + { + CounterId: 471, + Instance: "4000", + }, + { + CounterId: 148, + Instance: "", + }, + { + CounterId: 147, + Instance: "vmnic0", + }, + { + CounterId: 465, + Instance: "", + }, + { + CounterId: 464, + Instance: "4000", + }, + { + CounterId: 464, + Instance: "", + }, + { + CounterId: 148, + Instance: "vmnic0", + }, + { + CounterId: 463, + Instance: "vmnic0", + }, + { + CounterId: 467, + Instance: "", + }, + { + CounterId: 143, + Instance: "vmnic1", + }, + { + CounterId: 149, + Instance: "", + }, + { + CounterId: 467, + Instance: "4000", + }, + { + CounterId: 159, + Instance: "", + }, + { + CounterId: 157, + Instance: "", + }, + { + CounterId: 504, + Instance: "", + }, + { + CounterId: 507, + Instance: "", + }, + { + CounterId: 513, + Instance: "", + }, + { + CounterId: 348, + Instance: "", + }, + { + CounterId: 505, + Instance: "", + }, + { + CounterId: 514, + Instance: "", + }, + { + CounterId: 506, + Instance: "", + }, + { + CounterId: 512, + Instance: "", + }, + { + CounterId: 508, + Instance: "", + }, + { + CounterId: 515, + Instance: "", + }, + { + CounterId: 509, + Instance: "", + }, + { + CounterId: 501, + Instance: "", + }, + { + CounterId: 516, + Instance: "", + }, + { + CounterId: 503, + Instance: "", + }, + { + CounterId: 511, + Instance: "", + }, + { + CounterId: 510, + Instance: "", + }, + { + CounterId: 502, + Instance: "", + }, + { + CounterId: 155, + Instance: "", + }, + { + CounterId: 473, + Instance: "", + }, + { + CounterId: 498, + Instance: "", + }, + { + CounterId: 174, + Instance: "", + }, + { + CounterId: 173, + Instance: "", + }, +} + +// ************************* Host metrics ************************************ + +var HostMetrics = []types.PerfMetricId{ + { + CounterId: 386, + Instance: "", + }, + { + CounterId: 395, + Instance: "", + }, + { + CounterId: 14, + Instance: "", + }, + { + CounterId: 399, + Instance: "", + }, + { + CounterId: 392, + Instance: "", + }, + { + CounterId: 392, + Instance: "$cpu", + }, + { + CounterId: 11, + Instance: "", + }, + { + CounterId: 398, + Instance: "", + }, + { + CounterId: 388, + Instance: "", + }, + { + CounterId: 388, + Instance: "$cpu", + }, + { + CounterId: 13, + Instance: "", + }, + { + CounterId: 396, + Instance: "", + }, + { + CounterId: 12, + Instance: "", + }, + { + CounterId: 9, + Instance: "", + }, + { + CounterId: 2, + Instance: "", + }, + { + CounterId: 14, + Instance: "$cpu", + }, + { + CounterId: 404, + Instance: "", + }, + { + CounterId: 6, + Instance: "", + }, + { + CounterId: 2, + Instance: "$cpu", + }, + { + CounterId: 13, + Instance: "$cpu", + }, + { + CounterId: 185, + Instance: "d10c389e-c75b7dc4", + }, + { + CounterId: 179, + Instance: "$physDisk", + }, + { + CounterId: 178, + Instance: "$physDisk", + }, + { + CounterId: 358, + Instance: "$physDisk", + }, + { + CounterId: 537, + Instance: "$physDisk", + }, + { + CounterId: 354, + Instance: "$physDisk", + }, + { + CounterId: 191, + Instance: "$physDisk", + }, + { + CounterId: 352, + Instance: "$physDisk", + }, + { + CounterId: 359, + Instance: "$physDisk", + }, + { + CounterId: 184, + Instance: "", + }, + { + CounterId: 186, + Instance: "$physDisk", + }, + { + CounterId: 351, + Instance: "$physDisk", + }, + { + CounterId: 180, + Instance: "$physDisk", + }, + { + CounterId: 353, + Instance: "$physDisk", + }, + { + CounterId: 356, + Instance: "$physDisk", + }, + { + CounterId: 355, + Instance: "$physDisk", + }, + { + CounterId: 350, + Instance: "$physDisk", + }, + { + CounterId: 349, + Instance: "$physDisk", + }, + { + CounterId: 182, + Instance: "$physDisk", + }, + { + CounterId: 357, + Instance: "$physDisk", + }, + { + CounterId: 181, + Instance: "$physDisk", + }, + { + CounterId: 185, + Instance: "$physDisk", + }, + { + CounterId: 183, + Instance: "$physDisk", + }, + + { + CounterId: 455, + Instance: "$physDisk", + }, + { + CounterId: 133, + Instance: "", + }, + { + CounterId: 456, + Instance: "$physDisk", + }, + { + CounterId: 457, + Instance: "$physDisk", + }, + { + CounterId: 129, + Instance: "$physDisk", + }, + { + CounterId: 448, + Instance: "$physDisk", + }, + { + CounterId: 130, + Instance: "", + }, + { + CounterId: 447, + Instance: "$physDisk", + }, + { + CounterId: 458, + Instance: "$physDisk", + }, + { + CounterId: 131, + Instance: "$physDisk", + }, + { + CounterId: 134, + Instance: "$physDisk", + }, + { + CounterId: 446, + Instance: "$physDisk", + }, + { + CounterId: 450, + Instance: "$physDisk", + }, + { + CounterId: 451, + Instance: "$physDisk", + }, + { + CounterId: 453, + Instance: "$physDisk", + }, + { + CounterId: 452, + Instance: "$physDisk", + }, + { + CounterId: 454, + Instance: "$physDisk", + }, + { + CounterId: 128, + Instance: "$physDisk", + }, + { + CounterId: 132, + Instance: "$physDisk", + }, + { + CounterId: 459, + Instance: "$physDisk", + }, + { + CounterId: 130, + Instance: "$physDisk", + }, + { + CounterId: 125, + Instance: "", + }, + { + CounterId: 131, + Instance: "", + }, + { + CounterId: 449, + Instance: "$physDisk", + }, + { + CounterId: 135, + Instance: "$physDisk", + }, + { + CounterId: 136, + Instance: "$physDisk", + }, + { + CounterId: 137, + Instance: "$physDisk", + }, + { + CounterId: 538, + Instance: "", + }, + { + CounterId: 540, + Instance: "", + }, + { + CounterId: 539, + Instance: "", + }, + { + CounterId: 65, + Instance: "", + }, + { + CounterId: 27, + Instance: "", + }, + { + CounterId: 419, + Instance: "", + }, + { + CounterId: 443, + Instance: "", + }, + { + CounterId: 437, + Instance: "", + }, + { + CounterId: 24, + Instance: "", + }, + { + CounterId: 68, + Instance: "", + }, + { + CounterId: 422, + Instance: "", + }, + { + CounterId: 106, + Instance: "", + }, + { + CounterId: 410, + Instance: "", + }, + { + CounterId: 33, + Instance: "", + }, + { + CounterId: 105, + Instance: "", + }, + { + CounterId: 107, + Instance: "", + }, + { + CounterId: 61, + Instance: "", + }, + { + CounterId: 445, + Instance: "", + }, + { + CounterId: 417, + Instance: "", + }, + { + CounterId: 406, + Instance: "", + }, + { + CounterId: 444, + Instance: "", + }, + { + CounterId: 427, + Instance: "", + }, + { + CounterId: 85, + Instance: "", + }, + { + CounterId: 424, + Instance: "", + }, + { + CounterId: 49, + Instance: "", + }, + { + CounterId: 414, + Instance: "", + }, + { + CounterId: 98, + Instance: "", + }, + { + CounterId: 29, + Instance: "", + }, + { + CounterId: 57, + Instance: "", + }, + { + CounterId: 441, + Instance: "", + }, + { + CounterId: 41, + Instance: "", + }, + { + CounterId: 86, + Instance: "", + }, + { + CounterId: 433, + Instance: "", + }, + { + CounterId: 45, + Instance: "", + }, + { + CounterId: 426, + Instance: "", + }, + { + CounterId: 429, + Instance: "", + }, + { + CounterId: 440, + Instance: "", + }, + { + CounterId: 102, + Instance: "", + }, + { + CounterId: 90, + Instance: "", + }, + { + CounterId: 37, + Instance: "", + }, + { + CounterId: 442, + Instance: "", + }, + { + CounterId: 469, + Instance: "vmnic0", + }, + { + CounterId: 460, + Instance: "", + }, + { + CounterId: 463, + Instance: "", + }, + { + CounterId: 143, + Instance: "", + }, + { + CounterId: 465, + Instance: "", + }, + { + CounterId: 461, + Instance: "", + }, + { + CounterId: 468, + Instance: "", + }, + { + CounterId: 143, + Instance: "vmnic0", + }, + { + CounterId: 467, + Instance: "vmnic0", + }, + { + CounterId: 149, + Instance: "vmnic0", + }, + { + CounterId: 149, + Instance: "", + }, + { + CounterId: 470, + Instance: "", + }, + { + CounterId: 466, + Instance: "", + }, + { + CounterId: 146, + Instance: "", + }, + { + CounterId: 465, + Instance: "vmnic0", + }, + { + CounterId: 461, + Instance: "vmnic0", + }, + { + CounterId: 466, + Instance: "vmnic0", + }, + { + CounterId: 146, + Instance: "vmnic0", + }, + { + CounterId: 464, + Instance: "vmnic0", + }, + { + CounterId: 148, + Instance: "vmnic0", + }, + { + CounterId: 460, + Instance: "vmnic0", + }, + { + CounterId: 468, + Instance: "vmnic0", + }, + { + CounterId: 147, + Instance: "", + }, + { + CounterId: 463, + Instance: "vmnic0", + }, + { + CounterId: 462, + Instance: "vmnic0", + }, + { + CounterId: 464, + Instance: "", + }, + { + CounterId: 470, + Instance: "vmnic0", + }, + { + CounterId: 148, + Instance: "", + }, + { + CounterId: 462, + Instance: "", + }, + { + CounterId: 467, + Instance: "", + }, + { + CounterId: 469, + Instance: "", + }, + { + CounterId: 147, + Instance: "vmnic0", + }, + { + CounterId: 159, + Instance: "", + }, + { + CounterId: 158, + Instance: "", + }, + { + CounterId: 157, + Instance: "", + }, + { + CounterId: 503, + Instance: "", + }, + { + CounterId: 511, + Instance: "", + }, + { + CounterId: 504, + Instance: "", + }, + { + CounterId: 501, + Instance: "", + }, + { + CounterId: 513, + Instance: "", + }, + { + CounterId: 516, + Instance: "", + }, + { + CounterId: 507, + Instance: "", + }, + { + CounterId: 508, + Instance: "", + }, + { + CounterId: 502, + Instance: "", + }, + { + CounterId: 348, + Instance: "", + }, + { + CounterId: 505, + Instance: "", + }, + { + CounterId: 510, + Instance: "", + }, + { + CounterId: 512, + Instance: "", + }, + { + CounterId: 515, + Instance: "", + }, + { + CounterId: 514, + Instance: "", + }, + { + CounterId: 506, + Instance: "", + }, + { + CounterId: 509, + Instance: "", + }, + { + CounterId: 161, + Instance: "vmhba32", + }, + { + CounterId: 162, + Instance: "vmhba1", + }, + { + CounterId: 166, + Instance: "vmhba32", + }, + { + CounterId: 163, + Instance: "vmhba1", + }, + { + CounterId: 163, + Instance: "vmhba0", + }, + { + CounterId: 168, + Instance: "", + }, + { + CounterId: 167, + Instance: "vmhba32", + }, + { + CounterId: 162, + Instance: "vmhba0", + }, + { + CounterId: 164, + Instance: "vmhba1", + }, + { + CounterId: 167, + Instance: "vmhba1", + }, + { + CounterId: 167, + Instance: "vmhba0", + }, + { + CounterId: 162, + Instance: "vmhba32", + }, + { + CounterId: 164, + Instance: "vmhba0", + }, + { + CounterId: 166, + Instance: "vmhba1", + }, + { + CounterId: 166, + Instance: "vmhba0", + }, + { + CounterId: 165, + Instance: "vmhba1", + }, + { + CounterId: 165, + Instance: "vmhba0", + }, + { + CounterId: 164, + Instance: "vmhba32", + }, + { + CounterId: 161, + Instance: "vmhba1", + }, + { + CounterId: 161, + Instance: "vmhba0", + }, + { + CounterId: 163, + Instance: "vmhba32", + }, + { + CounterId: 165, + Instance: "vmhba32", + }, + { + CounterId: 520, + Instance: "$physDisk", + }, + { + CounterId: 523, + Instance: "$physDisk", + }, + { + CounterId: 193, + Instance: "", + }, + { + CounterId: 522, + Instance: "$physDisk", + }, + { + CounterId: 524, + Instance: "$physDisk", + }, + { + CounterId: 521, + Instance: "$physDisk", + }, + { + CounterId: 525, + Instance: "$physDisk", + }, + { + CounterId: 526, + Instance: "$physDisk", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 482, + Instance: "host/system/svmotion", + }, + { + CounterId: 483, + Instance: "host/system/kernel/root", + }, + { + CounterId: 479, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 499, + Instance: "host/system/kernel/var", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 485, + Instance: "host/system/kernel/var", + }, + { + CounterId: 480, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 481, + Instance: "host/system/vmotion", + }, + { + CounterId: 488, + Instance: "host/vim", + }, + { + CounterId: 484, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 481, + Instance: "host/iofilters/spm", + }, + { + CounterId: 480, + Instance: "host/vim", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 483, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 500, + Instance: "host/system/kernel/var", + }, + { + CounterId: 500, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 480, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 499, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 485, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 482, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 481, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 484, + Instance: "host/system/kernel/root", + }, + { + CounterId: 481, + Instance: "host/system/kernel/root", + }, + { + CounterId: 480, + Instance: "host/system/kernel/var", + }, + { + CounterId: 479, + Instance: "host/system/kernel/root", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 485, + Instance: "host/system/kernel", + }, + { + CounterId: 499, + Instance: "host/iofilters", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 484, + Instance: "host/system/kernel", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 481, + Instance: "host/system/kernel/var", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 480, + Instance: "host/system/kernel", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 476, + Instance: "host/system/kernel", + }, + { + CounterId: 483, + Instance: "host/system/kernel/var", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 500, + Instance: "host/system/kernel", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 496, + Instance: "host/system", + }, + { + CounterId: 500, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 494, + Instance: "host/system", + }, + { + CounterId: 482, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 482, + Instance: "host/system/kernel", + }, + { + CounterId: 491, + Instance: "host/system", + }, + { + CounterId: 487, + Instance: "host/system", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 481, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 500, + Instance: "host/vim/vmci", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 482, + Instance: "host/iofilters/spm", + }, + { + CounterId: 499, + Instance: "host/system", + }, + { + CounterId: 485, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/system/kernel", + }, + { + CounterId: 483, + Instance: "host/system/vmotion", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 484, + Instance: "host/system", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 476, + Instance: "host/vim", + }, + { + CounterId: 499, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 493, + Instance: "host/system", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 481, + Instance: "host/system", + }, + { + CounterId: 479, + Instance: "host/system/kernel/var", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 476, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 500, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 499, + Instance: "host", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 479, + Instance: "host/system/drivers", + }, + { + CounterId: 476, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 484, + Instance: "host", + }, + { + CounterId: 485, + Instance: "host/system/kernel/root", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 483, + Instance: "host/system/drivers", + }, + { + CounterId: 479, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 481, + Instance: "host", + }, + { + CounterId: 480, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 479, + Instance: "host/system/vmotion", + }, + { + CounterId: 500, + Instance: "host", + }, + { + CounterId: 476, + Instance: "host/system/kernel/var", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 481, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 481, + Instance: "host/system/svmotion", + }, + { + CounterId: 484, + Instance: "host/system/helper", + }, + { + CounterId: 499, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 500, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 500, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 476, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 499, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 482, + Instance: "host/system/kernel/var", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 485, + Instance: "host/system/svmotion", + }, + { + CounterId: 476, + Instance: "host/iofilters", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 482, + Instance: "host/vim", + }, + { + CounterId: 484, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 480, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 479, + Instance: "host/system/kernel", + }, + { + CounterId: 486, + Instance: "host/system/vmotion", + }, + { + CounterId: 492, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 485, + Instance: "host/vim", + }, + { + CounterId: 483, + Instance: "host/system/helper", + }, + { + CounterId: 476, + Instance: "host/system/vmotion", + }, + { + CounterId: 489, + Instance: "host/system", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 499, + Instance: "host/system/svmotion", + }, + { + CounterId: 485, + Instance: "host/iofilters/spm", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 481, + Instance: "host/system/helper", + }, + { + CounterId: 497, + Instance: "host/system", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 480, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 491, + Instance: "host/system/vmotion", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 485, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 476, + Instance: "host/system/drivers", + }, + { + CounterId: 485, + Instance: "host/system/vmotion", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 483, + Instance: "host/iofilters", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 485, + Instance: "host/system/drivers", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 499, + Instance: "host/system/ft", + }, + { + CounterId: 483, + Instance: "host/system/ft", + }, + { + CounterId: 484, + Instance: "host/system/ft", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 480, + Instance: "host/system/vmotion", + }, + { + CounterId: 487, + Instance: "host/vim", + }, + { + CounterId: 484, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 484, + Instance: "host/system/vmotion", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 486, + Instance: "host/vim", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 483, + Instance: "host/system", + }, + { + CounterId: 495, + Instance: "host/system", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 499, + Instance: "host/system/vmotion", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 488, + Instance: "host/system/vmotion", + }, + { + CounterId: 489, + Instance: "host/system/vmotion", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 481, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 492, + Instance: "host/system/vmotion", + }, + { + CounterId: 485, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 499, + Instance: "host/system/helper", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 493, + Instance: "host/system/vmotion", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 479, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 482, + Instance: "host/system/kernel/root", + }, + { + CounterId: 495, + Instance: "host/vim", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 479, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 481, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 495, + Instance: "host/system/vmotion", + }, + { + CounterId: 482, + Instance: "host", + }, + { + CounterId: 480, + Instance: "host/system/svmotion", + }, + { + CounterId: 480, + Instance: "host/user", + }, + { + CounterId: 483, + Instance: "host/system/svmotion", + }, + { + CounterId: 480, + Instance: "host", + }, + { + CounterId: 488, + Instance: "host/system", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 481, + Instance: "host/vim", + }, + { + CounterId: 483, + Instance: "host/vim", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 490, + Instance: "host/vim", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 484, + Instance: "host/vim/tmp", + }, + { + CounterId: 491, + Instance: "host/vim", + }, + { + CounterId: 481, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 490, + Instance: "host/system", + }, + { + CounterId: 482, + Instance: "host/system/drivers", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 482, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 479, + Instance: "host/iofilters/spm", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 479, + Instance: "host/vim/vimuser", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 499, + Instance: "host/system/kernel", + }, + { + CounterId: 481, + Instance: "host/system/kernel/hostdstats", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 485, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 485, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 481, + Instance: "host/system/drivers", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 492, + Instance: "host/vim", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 499, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 484, + Instance: "host/system/drivers", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 485, + Instance: "host", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 485, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 496, + Instance: "host/system/vmotion", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 500, + Instance: "host/system/svmotion", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 485, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 484, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 482, + Instance: "host/vim/vimuser", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 486, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 485, + Instance: "host/system/ft", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 483, + Instance: "host/user", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 481, + Instance: "host/iofilters", + }, + { + CounterId: 476, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 499, + Instance: "host/system/kernel/root", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 479, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 481, + Instance: "host/system/ft", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 499, + Instance: "host/vim/tmp", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 480, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 484, + Instance: "host/vim", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 484, + Instance: "host/system/kernel/var", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 481, + Instance: "host/vim/vmci", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 476, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 479, + Instance: "host/user", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 487, + Instance: "host/system/vmotion", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 476, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 500, + Instance: "host/system/vmotion", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 476, + Instance: "host/vim/vimuser", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 482, + Instance: "host/system/helper", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 155, + Instance: "", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/slp", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 480, + Instance: "host/system/helper", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 500, + Instance: "host/user", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 479, + Instance: "host/system/svmotion", + }, + { + CounterId: 480, + Instance: "host/system/ft", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 500, + Instance: "host/system/kernel/root", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 485, + Instance: "host/system/helper", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 482, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 482, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 483, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 483, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 476, + Instance: "host/vim/vmci", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 476, + Instance: "host/system/ft", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 480, + Instance: "host/system/drivers", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 489, + Instance: "host/vim", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 480, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 484, + Instance: "host/system/svmotion", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 500, + Instance: "host/system/helper", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/wsman", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 497, + Instance: "host/system/vmotion", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 494, + Instance: "host/system/vmotion", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 482, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 500, + Instance: "host/vim", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 476, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 482, + Instance: "host/system/vmotion", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 479, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vsanperfsvc", + }, + { + CounterId: 500, + Instance: "host/system/ft", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 500, + Instance: "host/vim/vimuser", + }, + { + CounterId: 480, + Instance: "host/vim/vimuser", + }, + { + CounterId: 483, + Instance: "host/vim/vimuser", + }, + { + CounterId: 484, + Instance: "host/vim/vimuser", + }, + { + CounterId: 485, + Instance: "host/vim/vimuser", + }, + { + CounterId: 476, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 493, + Instance: "host/vim", + }, + { + CounterId: 483, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 484, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 499, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 500, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 499, + Instance: "host/vim", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 479, + Instance: "host/vim", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 476, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 485, + Instance: "host/iofilters", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vobd", + }, + { + CounterId: 479, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 476, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 481, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 483, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 485, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 494, + Instance: "host/vim", + }, + { + CounterId: 496, + Instance: "host/vim", + }, + { + CounterId: 497, + Instance: "host/vim", + }, + { + CounterId: 481, + Instance: "host/vim/vimuser", + }, + { + CounterId: 483, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 479, + Instance: "host/vim/vmci", + }, + { + CounterId: 480, + Instance: "host/vim/vmci", + }, + { + CounterId: 499, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 482, + Instance: "host/vim/vmci", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 483, + Instance: "host/vim/vmci", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 500, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 479, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 484, + Instance: "host/vim/vmci", + }, + { + CounterId: 482, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 485, + Instance: "host/vim/vmci", + }, + { + CounterId: 499, + Instance: "host/vim/vmci", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 476, + Instance: "host/system/kernel/root", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 500, + Instance: "host/vim/tmp", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 499, + Instance: "host/user", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 476, + Instance: "host/vim/tmp", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 479, + Instance: "host/vim/vimuser/terminal", + }, + { + CounterId: 479, + Instance: "host/vim/tmp", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/smartd", + }, + { + CounterId: 476, + Instance: "host", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 480, + Instance: "host/vim/tmp", + }, + { + CounterId: 476, + Instance: "host/system/svmotion", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 483, + Instance: "host", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 490, + Instance: "host/system/vmotion", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 481, + Instance: "host/vim/tmp", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 483, + Instance: "host/vim/tmp", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 485, + Instance: "host/vim/tmp", + }, + { + CounterId: 483, + Instance: "host/iofilters/spm", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 480, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 484, + Instance: "host/iofilters/spm", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 500, + Instance: "host/iofilters", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/dhclientrelease", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 479, + Instance: "host/system/helper", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 500, + Instance: "host/system", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 479, + Instance: "host/iofilters", + }, + { + CounterId: 480, + Instance: "host/iofilters", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 482, + Instance: "host/iofilters", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 484, + Instance: "host/iofilters", + }, + { + CounterId: 476, + Instance: "host/system/helper", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 499, + Instance: "host/system/drivers", + }, + { + CounterId: 500, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 482, + Instance: "host/system", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/awk", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 484, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/dhclient", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 484, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 479, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 483, + Instance: "host/system/kernel/tmp", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/head", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/vpxa", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 480, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 481, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 482, + Instance: "host/system/ft", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor", + }, + { + CounterId: 482, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/usbArbitrator", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/ls", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/pgrep", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 483, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 500, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 485, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/probe", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 481, + Instance: "host/system/kernel", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 482, + Instance: "host/vim/tmp", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 483, + Instance: "host/vim/vimuser/terminal/ssh", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/vmkbacktrace", + }, + { + CounterId: 499, + Instance: "host/iofilters/iofiltervpd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/hostdCgiServer", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/hbrca", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/init", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 480, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/uwdaemons", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 500, + Instance: "host/system/drivers", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/lacpd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 499, + Instance: "host/system/kernel/opt", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vmkiscsid", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/upitd", + }, + { + CounterId: 481, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 479, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/lbt", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 482, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/aam", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/vsish", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 484, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/likewise", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/snmpd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 482, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe/stats", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/logging", + }, + { + CounterId: 484, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 480, + Instance: "host/system/kernel/root", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 485, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 484, + Instance: "host/vim/vimuser/terminal/shell", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 479, + Instance: "host/system/ft", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/netcpa", + }, + { + CounterId: 499, + Instance: "host/iofilters/vmwarevmcrypt", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/sh", + }, + { + CounterId: 479, + Instance: "host", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 476, + Instance: "host/system/kernel/etc", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/vmkdevmgr", + }, + { + CounterId: 500, + Instance: "host/iofilters/spm", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 476, + Instance: "host/iofilters/spm", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/dcui", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/upittraced", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 480, + Instance: "host/iofilters/spm", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/nfsgssd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/hostd-probe", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 499, + Instance: "host/iofilters/spm", + }, + { + CounterId: 500, + Instance: "host/system/kernel/iofilters", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/sioc", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/nscd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/net-daemons", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 476, + Instance: "host/user", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/boot", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/ntpd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/memScrubber", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/vvold", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/vmkeventd", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/pcscd", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 481, + Instance: "host/user", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 480, + Instance: "host/system", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/nfcd", + }, + { + CounterId: 484, + Instance: "host/vim/vmvisor/plugins", + }, + { + CounterId: 482, + Instance: "host/user", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/sensord", + }, + { + CounterId: 500, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 484, + Instance: "host/user", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/vvoltraced", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/swapobjd", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/sfcb", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/osfsd", + }, + { + CounterId: 485, + Instance: "host/user", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 480, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 476, + Instance: "host/vim/vmvisor/hostd-probe/stats/logger", + }, + { + CounterId: 481, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 499, + Instance: "host/vim/vimuser", + }, + { + CounterId: 482, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 479, + Instance: "host/vim/vmvisor/rabbitmqproxy", + }, + { + CounterId: 483, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 485, + Instance: "host/vim/vmvisor/sfcb_aux", + }, + { + CounterId: 499, + Instance: "host/vim/vmvisor/vmfstraced", + }, + { + CounterId: 541, + Instance: "vfc", + }, +} + +// ************************************** Cluster Metrics ************************************** +var ClusterMetrics = []types.PerfMetricId{ + { + CounterId: 22, + Instance: "", + }, + { + CounterId: 2, + Instance: "", + }, + { + CounterId: 9, + Instance: "", + }, + { + CounterId: 7, + Instance: "", + }, + { + CounterId: 8, + Instance: "", + }, + { + CounterId: 3, + Instance: "", + }, + { + CounterId: 4, + Instance: "", + }, + { + CounterId: 15, + Instance: "", + }, + { + CounterId: 17, + Instance: "", + }, + { + CounterId: 18, + Instance: "", + }, + { + CounterId: 19, + Instance: "", + }, + { + CounterId: 20, + Instance: "", + }, + { + CounterId: 21, + Instance: "", + }, + { + CounterId: 6, + Instance: "", + }, + { + CounterId: 139, + Instance: "", + }, + { + CounterId: 138, + Instance: "", + }, + { + CounterId: 107, + Instance: "", + }, + { + CounterId: 29, + Instance: "", + }, + { + CounterId: 33, + Instance: "", + }, + { + CounterId: 37, + Instance: "", + }, + { + CounterId: 41, + Instance: "", + }, + { + CounterId: 49, + Instance: "", + }, + { + CounterId: 90, + Instance: "", + }, + { + CounterId: 105, + Instance: "", + }, + { + CounterId: 106, + Instance: "", + }, + { + CounterId: 27, + Instance: "", + }, + { + CounterId: 108, + Instance: "", + }, + { + CounterId: 110, + Instance: "", + }, + { + CounterId: 111, + Instance: "", + }, + { + CounterId: 109, + Instance: "", + }, + { + CounterId: 112, + Instance: "", + }, + { + CounterId: 25, + Instance: "", + }, + { + CounterId: 103, + Instance: "", + }, + { + CounterId: 99, + Instance: "", + }, + { + CounterId: 30, + Instance: "", + }, + { + CounterId: 34, + Instance: "", + }, + { + CounterId: 38, + Instance: "", + }, + { + CounterId: 42, + Instance: "", + }, + { + CounterId: 50, + Instance: "", + }, + { + CounterId: 98, + Instance: "", + }, + { + CounterId: 26, + Instance: "", + }, + { + CounterId: 104, + Instance: "", + }, + { + CounterId: 100, + Instance: "", + }, + { + CounterId: 31, + Instance: "", + }, + { + CounterId: 102, + Instance: "", + }, + { + CounterId: 39, + Instance: "", + }, + { + CounterId: 43, + Instance: "", + }, + { + CounterId: 51, + Instance: "", + }, + { + CounterId: 92, + Instance: "", + }, + { + CounterId: 24, + Instance: "", + }, + { + CounterId: 35, + Instance: "", + }, + { + CounterId: 91, + Instance: "", + }, + { + CounterId: 153, + Instance: "", + }, + { + CounterId: 152, + Instance: "", + }, + { + CounterId: 151, + Instance: "", + }, + { + CounterId: 150, + Instance: "", + }, + { + CounterId: 157, + Instance: "", + }, + { + CounterId: 158, + Instance: "", + }, + { + CounterId: 159, + Instance: "", + }, + { + CounterId: 262, + Instance: "", + }, + { + CounterId: 257, + Instance: "", + }, + { + CounterId: 258, + Instance: "", + }, + { + CounterId: 259, + Instance: "", + }, + { + CounterId: 260, + Instance: "", + }, + { + CounterId: 261, + Instance: "", + }, + { + CounterId: 256, + Instance: "", + }, + { + CounterId: 263, + Instance: "", + }, + { + CounterId: 264, + Instance: "", + }, + { + CounterId: 265, + Instance: "", + }, + { + CounterId: 266, + Instance: "", + }, + { + CounterId: 267, + Instance: "", + }, + { + CounterId: 268, + Instance: "", + }, + { + CounterId: 269, + Instance: "", + }, + { + CounterId: 270, + Instance: "", + }, + { + CounterId: 271, + Instance: "", + }, + { + CounterId: 272, + Instance: "", + }, + { + CounterId: 273, + Instance: "", + }, + { + CounterId: 274, + Instance: "", + }, + { + CounterId: 275, + Instance: "", + }, +} + +// *************************************** Datastore metrics **************************************** +var DatastoreMetrics = []types.PerfMetricId{ + { + CounterId: 178, + Instance: "", + }, + { + CounterId: 188, + Instance: "", + }, + { + CounterId: 187, + Instance: "", + }, + { + CounterId: 181, + Instance: "", + }, + { + CounterId: 180, + Instance: "", + }, + { + CounterId: 179, + Instance: "", + }, + { + CounterId: 281, + Instance: "", + }, + { + CounterId: 281, + Instance: "$file", + }, + + { + CounterId: 282, + Instance: "", + }, + { + CounterId: 282, + Instance: "$file", + }, + { + CounterId: 283, + Instance: "", + }, + { + CounterId: 284, + Instance: "", + }, + { + CounterId: 284, + Instance: "$file", + }, + + { + CounterId: 288, + Instance: "", + }, + { + CounterId: 286, + Instance: "", + }, + { + CounterId: 287, + Instance: "", + }, + { + CounterId: 287, + Instance: "$file", + }, +} + +// ********************************************* Resource pool metrics *********************************** +var ResourcePoolMetrics = []types.PerfMetricId{ + { + CounterId: 6, + Instance: "", + }, + { + CounterId: 213, + Instance: "", + }, + { + CounterId: 7, + Instance: "", + }, + { + CounterId: 8, + Instance: "", + }, + { + CounterId: 16, + Instance: "", + }, + { + CounterId: 17, + Instance: "", + }, + { + CounterId: 18, + Instance: "", + }, + { + CounterId: 19, + Instance: "", + }, + { + CounterId: 20, + Instance: "", + }, + { + CounterId: 22, + Instance: "", + }, + { + CounterId: 138, + Instance: "", + }, + { + CounterId: 139, + Instance: "", + }, + { + CounterId: 112, + Instance: "", + }, + { + CounterId: 102, + Instance: "", + }, + { + CounterId: 98, + Instance: "", + }, + { + CounterId: 29, + Instance: "", + }, + { + CounterId: 33, + Instance: "", + }, + { + CounterId: 37, + Instance: "", + }, + { + CounterId: 41, + Instance: "", + }, + { + CounterId: 70, + Instance: "", + }, + { + CounterId: 90, + Instance: "", + }, + { + CounterId: 108, + Instance: "", + }, + { + CounterId: 109, + Instance: "", + }, + { + CounterId: 111, + Instance: "", + }, + { + CounterId: 214, + Instance: "", + }, + { + CounterId: 105, + Instance: "", + }, + { + CounterId: 106, + Instance: "", + }, + { + CounterId: 107, + Instance: "", + }, + { + CounterId: 103, + Instance: "", + }, + { + CounterId: 99, + Instance: "", + }, + { + CounterId: 30, + Instance: "", + }, + { + CounterId: 34, + Instance: "", + }, + { + CounterId: 38, + Instance: "", + }, + { + CounterId: 42, + Instance: "", + }, + { + CounterId: 71, + Instance: "", + }, + { + CounterId: 92, + Instance: "", + }, + { + CounterId: 104, + Instance: "", + }, + { + CounterId: 100, + Instance: "", + }, + { + CounterId: 31, + Instance: "", + }, + { + CounterId: 35, + Instance: "", + }, + { + CounterId: 39, + Instance: "", + }, + { + CounterId: 43, + Instance: "", + }, + { + CounterId: 72, + Instance: "", + }, + { + CounterId: 91, + Instance: "", + }, + { + CounterId: 152, + Instance: "", + }, + { + CounterId: 153, + Instance: "", + }, + { + CounterId: 157, + Instance: "", + }, + { + CounterId: 159, + Instance: "", + }, +} + +// ********************************************* Datacenter metrics *********************************** +var DatacenterMetrics = []types.PerfMetricId{ + { + CounterId: 256, + Instance: "", + }, + { + CounterId: 257, + Instance: "", + }, + { + CounterId: 258, + Instance: "", + }, + { + CounterId: 259, + Instance: "", + }, + { + CounterId: 260, + Instance: "", + }, + { + CounterId: 261, + Instance: "", + }, + { + CounterId: 262, + Instance: "", + }, + { + CounterId: 263, + Instance: "", + }, + { + CounterId: 264, + Instance: "", + }, + { + CounterId: 265, + Instance: "", + }, + { + CounterId: 266, + Instance: "", + }, + { + CounterId: 267, + Instance: "", + }, + { + CounterId: 268, + Instance: "", + }, + { + CounterId: 269, + Instance: "", + }, + { + CounterId: 270, + Instance: "", + }, + { + CounterId: 271, + Instance: "", + }, + { + CounterId: 272, + Instance: "", + }, + { + CounterId: 273, + Instance: "", + }, + { + CounterId: 274, + Instance: "", + }, + { + CounterId: 275, + Instance: "", + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager_data.go b/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager_data.go new file mode 100644 index 00000000..3c42c535 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/performance_manager_data.go @@ -0,0 +1,1877 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package vpx + +var MetricData = map[string]map[int32][]int64{ + "VirtualMachine": VmMetricData, + "HostSystem": HostMetricData, + "ResourcePool": ResourcePoolMetricData, + "ClusterComputeResource": ClusterMetricData, + "Datastore": DatastoreMetricData, + "Datacenter": DatacenterMetricData, +} + +var VmMetricData = map[int32][]int64{ + 130: []int64{42, 57, 9, 13, 14, 25, 8, 16, 6, 13, 67, 34, 292, 89, 27, 75, 98, 59, 49, 85, 127, 116, 179, 196, 161, 170, 174, 35, 26, 20, + 25, 42, 10, 45, 24, 64, 9, 21, 6, 18, 19, 9, 16, 18, 5, 124, 97, 25, 18, 20, 28, 28, 22, 11, 12, 139, 155, 149, 179, 173, + 135, 73, 73, 67, 49, 37, 12, 28, 18, 36, 59, 18, 21, 17, 27, 137, 140, 118, 137, 265, 246, 250, 114, 43, 26, 17, 7, 36, 89, 15, + 45, 47, 49, 13, 47, 34, 52, 16, 7, 25}, + 155: []int64{2948499, 2948519, 2948539, 2948559, 2948579, 2948599, 2948619, 2948639, 2948659, 2948679, 2948699, 2948719, 2948739, 2948759, 2948779, 2948799, 2948819, 2948839, 2948859, 2948879, 2948899, 2948919, 2948939, 2948959, 2948979, 2948999, 2949019, 2949039, 2949059, 2949079, + 2949099, 2949119, 2949139, 2949159, 2949179, 2949199, 2949219, 2949239, 2949259, 2949279, 2949299, 2949319, 2949339, 2949359, 2949379, 2949399, 2949419, 2949439, 2949459, 2949479, 2949499, 2949519, 2949539, 2949559, 2949579, 2949599, 2949619, 2949639, 2949659, 2949679, + 2949699, 2949719, 2949739, 2949759, 2949779, 2949799, 2949819, 2949839, 2949859, 2949879, 2949899, 2949919, 2949939, 2949959, 2949979, 2949999, 2950019, 2950039, 2950059, 2950079, 2950099, 2950119, 2950139, 2950159, 2950179, 2950199, 2950219, 2950239, 2950259, 2950279, + 2950299, 2950319, 2950339, 2950359, 2950379, 2950399, 2950419, 2950439, 2950459, 2950479}, + 173: []int64{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 180, 12, 4, 1, 12, 8, 0, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 1, 0, 17, 1, 1, 0, 2, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 15, 0, 0, 6, 0, + 3, 0, 0, 6, 6, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 7, 4, 6, 5, 86, 63, 80, 2, 0, 2, 0, 0, 0, 17, 0, + 0, 1, 0, 0, 4, 1, 0, 0, 1, 0}, + 399: []int64{4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 2, 12, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 0, 0, 1, 0, 3}, + 504: []int64{2000, 2200, 2200, 2200, 2200, 1700, 1700, 1700, 1700, 1700, 2300, 2300, 2300, 2300, 2300, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2000, 2000, 2000, 2000, 2000, + 1900, 1900, 1900, 1700, 1700, 1700, 1700, 1500, 1500, 1500, 1600, 1600, 1600, 1600, 1600, 2100, 4700, 4700, 4700, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, + 2000, 1600, 1600, 1600, 1600, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1900, 2600, 3900, 3900, 4200, 4300, 5100, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500, + 5200, 5200, 5200, 5200, 4300, 3700, 2300, 2200, 2300, 2300}, + 174: []int64{368, 141, 143, 106, 119, 157, 88, 127, 137, 106, 211, 225, 202, 226, 234, 920, 268, 181, 204, 241, 219, 168, 221, 234, 184, 185, 236, 195, 168, 222, + 185, 189, 134, 130, 160, 122, 84, 113, 153, 95, 110, 141, 91, 108, 130, 3372, 1942, 151, 102, 158, 162, 100, 143, 122, 109, 211, 229, 173, 187, 237, + 200, 205, 241, 184, 204, 217, 182, 195, 219, 213, 211, 214, 189, 182, 245, 2671, 612, 1055, 595, 644, 747, 611, 336, 244, 118, 113, 128, 93, 94, 130, + 359, 131, 151, 94, 137, 149, 106, 109, 127, 124}, + 70: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 473: []int64{30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 27, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, + 133: []int64{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, + 1, 0, 0, 1, 1, 1, 1, 1, 1, 0}, + 348: []int64{1100, 1200, 1200, 1000, 1200, 1200, 1300, 900, 900, 900, 1800, 1800, 1900, 1200, 1200, 1200, 1200, 1300, 1200, 1400, 1500, 1400, 1200, 1000, 1100, 1200, 1200, 1000, 900, 800, + 900, 1000, 1000, 1100, 1300, 1400, 1300, 900, 900, 900, 1100, 1100, 1000, 800, 900, 2500, 4000, 4300, 2600, 1400, 1300, 1300, 1000, 800, 900, 1100, 1100, 1000, 900, 900, + 1000, 900, 1100, 1000, 1300, 1300, 1300, 1000, 900, 900, 1200, 1200, 1100, 800, 1000, 2200, 3200, 4400, 4100, 4500, 4900, 5000, 4200, 2600, 1500, 1100, 1200, 1100, 900, 800, + 1000, 1200, 1200, 1000, 1200, 1400, 1400, 1100, 1000, 1100}, + 422: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 146: []int64{1914, 1692, 2171, 2999, 2254, 2014, 1687, 1823, 2251, 3286, 1916, 1903, 4747, 1782, 2203, 2301, 1853, 4708, 5656, 2070, 5121, 1839, 1987, 4985, 3396, 1857, 2212, 1822, 1689, 1917, + 1831, 1862, 2163, 3297, 1996, 2070, 1871, 1868, 2199, 3065, 1718, 2055, 1825, 1692, 2169, 2685, 1867, 1917, 3203, 2016, 2132, 1713, 1881, 1989, 3266, 1886, 2182, 1748, 1819, 2060, + 1752, 1931, 2123, 2909, 2026, 2015, 1681, 1792, 2184, 3277, 1639, 2075, 1690, 1740, 5110, 7545, 7854, 9835, 10912, 10197, 10426, 12296, 3728, 2135, 3253, 1784, 5195, 1824, 1578, 1959, + 1772, 1917, 2176, 3091, 2022, 4991, 1829, 4629, 5412, 3269}, + 463: []int64{277, 274, 338, 383, 297, 274, 275, 274, 339, 541, 288, 259, 752, 276, 338, 276, 274, 729, 838, 292, 838, 275, 275, 748, 542, 274, 338, 274, 274, 277, + 277, 275, 337, 392, 291, 276, 274, 274, 337, 541, 274, 278, 274, 276, 338, 279, 274, 274, 390, 293, 338, 274, 275, 276, 543, 274, 339, 274, 277, 274, + 275, 275, 337, 391, 289, 277, 275, 275, 339, 541, 274, 274, 274, 275, 810, 520, 535, 592, 668, 562, 605, 575, 329, 276, 542, 274, 828, 274, 274, 276, + 276, 278, 339, 390, 289, 753, 277, 747, 812, 541}, + 472: []int64{281, 281, 347, 392, 304, 280, 282, 280, 347, 555, 295, 265, 770, 282, 347, 283, 280, 749, 861, 299, 861, 282, 281, 767, 556, 280, 347, 280, 280, 283, + 283, 282, 345, 401, 298, 282, 280, 281, 346, 556, 280, 284, 280, 282, 347, 285, 280, 281, 399, 300, 347, 280, 282, 282, 557, 280, 347, 280, 283, 281, + 281, 281, 346, 401, 295, 283, 281, 281, 347, 555, 280, 281, 280, 281, 832, 530, 546, 603, 681, 572, 617, 585, 336, 283, 556, 280, 850, 280, 280, 282, + 281, 284, 347, 400, 296, 772, 283, 767, 834, 555}, + 147: []int64{842, 813, 1012, 1671, 1013, 717, 821, 706, 1005, 1804, 868, 782, 2000, 755, 986, 947, 691, 1958, 2756, 967, 2241, 708, 755, 1939, 1716, 706, 1047, 715, 711, 825, + 838, 722, 904, 1800, 882, 800, 661, 805, 1098, 1685, 676, 913, 774, 738, 960, 1241, 755, 804, 1738, 985, 983, 729, 703, 745, 1630, 721, 1148, 769, 825, 807, + 741, 793, 1035, 1636, 1005, 809, 720, 756, 1076, 1737, 677, 824, 663, 714, 2056, 5216, 5689, 7065, 7549, 7205, 7517, 8701, 2154, 855, 1724, 772, 2254, 749, 705, 754, + 758, 878, 1049, 1683, 896, 2047, 729, 1907, 2105, 1704}, + 2: []int64{776, 604, 442, 846, 463, 524, 454, 410, 439, 607, 1540, 404, 759, 477, 484, 646, 683, 537, 1027, 473, 746, 429, 538, 527, 632, 603, 449, 441, 386, 405, + 492, 579, 430, 928, 648, 550, 447, 408, 444, 540, 666, 390, 427, 417, 435, 3590, 2309, 394, 751, 571, 621, 398, 413, 392, 567, 652, 437, 402, 509, 403, + 534, 604, 440, 825, 471, 569, 435, 430, 442, 563, 770, 400, 444, 418, 563, 2381, 1941, 1925, 2335, 2025, 2530, 2252, 868, 443, 594, 571, 602, 417, 388, 411, + 727, 600, 471, 825, 546, 713, 431, 522, 587, 544}, + 148: []int64{218, 203, 246, 299, 225, 245, 202, 203, 246, 416, 205, 243, 220, 203, 246, 337, 203, 256, 315, 219, 264, 203, 203, 259, 416, 203, 246, 203, 202, 245, + 203, 203, 245, 308, 215, 245, 203, 203, 246, 415, 203, 245, 203, 203, 245, 427, 203, 244, 308, 216, 245, 202, 203, 245, 416, 203, 246, 202, 203, 245, + 203, 203, 245, 306, 217, 245, 202, 203, 246, 416, 202, 245, 202, 203, 259, 510, 462, 659, 772, 808, 928, 1177, 384, 260, 416, 203, 260, 203, 202, 245, + 218, 203, 245, 306, 217, 259, 203, 216, 260, 416}, + 402: []int64{3278, 2525, 1849, 3540, 1919, 2330, 1902, 1734, 1847, 2544, 6355, 1703, 3167, 1986, 2096, 2826, 2870, 2240, 4305, 2010, 3145, 1824, 2268, 2234, 2706, 2527, 1901, 1834, 1653, 1723, + 2097, 2407, 1811, 3960, 2643, 2540, 1859, 1735, 1892, 2288, 2747, 1635, 1845, 1759, 1798, 14863, 9491, 1680, 3272, 2287, 2612, 1686, 1750, 1643, 2387, 2719, 1845, 1689, 2202, 1687, + 2255, 2533, 1818, 3440, 1994, 2365, 1850, 1806, 1843, 2352, 3217, 1682, 1859, 1788, 2376, 10120, 8065, 7951, 9802, 8339, 10497, 9331, 3611, 1890, 2510, 2444, 2522, 1734, 1667, 1707, + 3036, 2513, 1987, 3455, 2276, 2964, 1814, 2178, 2413, 2269}, + 503: []int64{1200, 1200, 1200, 1200, 1200, 1100, 1100, 1100, 1100, 1100, 1200, 1200, 1200, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1400, 1400, 1200, 1200, 1200, 1200, 1200, + 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1000, 1100, 1400, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1400, 1100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1100, 1100, 1100, 1000, 1100, 1300, 1500, 1700, 1900, 2100, 2500, 2700, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, + 2600, 2400, 2100, 1900, 1700, 1400, 1200, 1100, 1100, 1100}, + 421: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 184: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 466: []int64{20, 20, 23, 22, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 20, 21, 20, 21, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 20, 20, + 20, 20, 20, 25, 20, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 21, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 20, + 20, 20, 20, 24, 20, 21, 20, 20, 20, 20, 20, 21, 20, 21, 20, 20, 20, 21, 20, 20, 20, 20, 20, 23, 20, 20, 20, 20, 20, 20, + 21, 20, 20, 20, 20, 20, 21, 20, 20, 20}, + 410: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 505: []int64{1100, 1100, 1100, 1100, 1100, 1000, 1000, 1000, 1000, 1000, 1100, 1100, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1300, 1300, 1300, 1100, 1200, 1100, 1100, 1100, + 1100, 1100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1300, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, + 1300, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1200, 1400, 1600, 1800, 2000, 2300, 2500, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2600, + 2400, 2200, 2000, 1800, 1600, 1400, 1100, 1100, 1100, 1100}, + 149: []int64{277, 274, 338, 383, 297, 274, 275, 274, 339, 541, 288, 259, 752, 276, 338, 276, 274, 729, 838, 292, 838, 275, 275, 748, 542, 274, 338, 274, 274, 277, + 277, 275, 337, 392, 291, 276, 274, 274, 337, 541, 274, 278, 274, 276, 338, 279, 274, 274, 390, 293, 338, 274, 275, 276, 543, 274, 339, 274, 277, 274, + 275, 275, 337, 391, 289, 277, 275, 275, 339, 541, 274, 274, 274, 275, 810, 520, 535, 592, 668, 562, 605, 575, 329, 276, 542, 274, 828, 274, 274, 276, + 276, 278, 339, 390, 289, 753, 277, 747, 812, 541}, + 509: []int64{2200, 2200, 2200, 2200, 4000, 4000, 4000, 1300, 1200, 1900, 5400, 5400, 5400, 2200, 2200, 2000, 2200, 2200, 2200, 4100, 4100, 4100, 1700, 1900, 1900, 1900, 1800, 1400, 1200, 1200, + 1300, 2000, 2000, 2000, 4600, 4600, 4600, 1500, 1500, 1600, 2400, 2400, 2400, 1300, 1400, 10500, 10900, 10900, 10900, 3900, 3900, 3900, 1500, 1300, 1700, 2000, 2000, 2000, 1500, 1500, + 1500, 1500, 2500, 2500, 3700, 3700, 3700, 1600, 1400, 1700, 2400, 2400, 2400, 1500, 2200, 6600, 6600, 6600, 4700, 7400, 7400, 7400, 6800, 5100, 4800, 1900, 2300, 2300, 2300, 1400, + 2200, 2200, 2200, 2000, 3700, 3700, 3700, 3300, 2200, 2200}, + 143: []int64{496, 477, 584, 682, 522, 519, 478, 477, 585, 958, 494, 503, 972, 480, 585, 614, 477, 985, 1153, 511, 1103, 479, 479, 1007, 959, 478, 585, 477, 477, 522, + 480, 479, 583, 701, 507, 521, 477, 478, 583, 957, 477, 523, 477, 479, 584, 706, 478, 519, 698, 510, 584, 476, 479, 521, 959, 478, 585, 477, 480, 520, + 478, 479, 583, 698, 506, 522, 478, 478, 585, 957, 477, 520, 476, 478, 1070, 1030, 998, 1251, 1441, 1371, 1534, 1752, 714, 537, 958, 477, 1088, 477, 477, 521, + 495, 482, 585, 697, 507, 1012, 480, 964, 1073, 957}, + 471: []int64{198, 197, 239, 287, 218, 239, 197, 197, 240, 398, 200, 239, 213, 197, 240, 322, 198, 248, 301, 213, 250, 197, 198, 249, 398, 198, 240, 197, 197, 238, + 198, 198, 239, 301, 204, 239, 198, 198, 240, 397, 197, 239, 197, 197, 239, 421, 198, 238, 300, 205, 239, 197, 198, 239, 398, 198, 240, 197, 197, 239, + 198, 198, 239, 293, 211, 239, 197, 197, 240, 397, 197, 239, 197, 197, 250, 491, 456, 651, 758, 800, 921, 1171, 379, 254, 398, 197, 250, 197, 197, 239, + 197, 198, 239, 293, 211, 249, 197, 207, 251, 397}, + 511: []int64{1900, 2000, 1900, 1900, 1900, 1700, 1700, 1700, 1700, 1700, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 1900, 1900, 1900, 1900, 1900, + 1800, 1800, 1800, 1700, 1700, 1700, 1700, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 2000, 4600, 4600, 4600, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, + 2000, 1500, 1500, 1500, 1500, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1700, 2500, 3700, 3900, 3900, 4100, 4700, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, + 4800, 4800, 4800, 4800, 4000, 3700, 2200, 2000, 2200, 2200}, + 467: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 37: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 508: []int64{1200, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, + 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1200, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1300, 1300, 1400, 1500, 1500, 1600, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1600, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500}, + 90: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 404: []int64{34, 25, 29, 30, 28, 26, 24, 24, 25, 31, 27, 27, 27, 26, 26, 30, 30, 29, 37, 34, 35, 27, 27, 38, 32, 22, 26, 29, 25, 27, + 31, 22, 23, 29, 24, 27, 24, 25, 29, 30, 24, 24, 27, 23, 24, 26, 26, 26, 26, 24, 27, 26, 24, 24, 26, 27, 23, 22, 23, 25, + 32, 25, 25, 31, 27, 28, 24, 22, 26, 26, 24, 25, 28, 24, 28, 64, 46, 45, 64, 67, 58, 48, 30, 26, 30, 28, 28, 29, 26, 29, + 34, 26, 28, 31, 25, 25, 25, 31, 25, 30}, + 460: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 398: []int64{270, 288, 299, 243, 285, 298, 304, 229, 216, 228, 420, 415, 442, 276, 290, 278, 298, 307, 297, 331, 364, 338, 279, 242, 269, 289, 277, 252, 212, 203, + 212, 241, 245, 259, 320, 339, 321, 226, 215, 225, 271, 262, 253, 205, 209, 586, 942, 999, 618, 340, 311, 310, 232, 196, 212, 260, 266, 249, 221, 215, + 235, 219, 256, 236, 309, 300, 306, 232, 214, 227, 292, 283, 270, 205, 234, 525, 750, 1023, 949, 1051, 1130, 1168, 975, 599, 363, 266, 293, 269, 229, 196, + 247, 283, 294, 238, 295, 333, 341, 270, 251, 259}, + 403: []int64{54000, 57600, 59800, 48600, 57000, 59600, 60800, 45800, 43200, 45600, 84000, 83000, 88400, 55200, 58000, 55600, 59600, 61400, 59400, 66200, 72800, 67600, 55800, 48400, 53800, 57800, 55400, 50400, 42400, 40600, + 42400, 48200, 49000, 51800, 64000, 67800, 64200, 45200, 43000, 45000, 54200, 52400, 50600, 41000, 41800, 117200, 188400, 199800, 123600, 68000, 62200, 62000, 46400, 39200, 42400, 52000, 53200, 49800, 44200, 43000, + 47000, 43800, 51200, 47200, 61800, 60000, 61200, 46400, 42800, 45400, 58400, 56600, 54000, 41000, 46800, 105000, 150000, 204600, 189800, 210200, 226000, 233600, 195000, 119800, 72600, 53200, 58600, 53800, 45800, 39200, + 49400, 56600, 58800, 47600, 59000, 66600, 68200, 54000, 50200, 51800}, + 397: []int64{50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}, + 41: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 94: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 400: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 501: []int64{2300, 2300, 2300, 2300, 4000, 4000, 4000, 1400, 1400, 2100, 5500, 5500, 5500, 2200, 2200, 2000, 2300, 2300, 2300, 4200, 4200, 4200, 1700, 2100, 2100, 2100, 1900, 1500, 1300, 1400, + 1400, 2100, 2100, 2100, 4700, 4700, 4700, 1500, 1600, 1900, 2500, 2500, 2500, 1400, 1600, 11000, 11200, 11200, 11200, 3900, 3900, 3900, 1500, 1400, 1800, 2000, 2000, 2000, 1600, 1600, + 1600, 1500, 2600, 2600, 3700, 3700, 3700, 1700, 1500, 1900, 2500, 2500, 2500, 1600, 2400, 7700, 7700, 7700, 5100, 8000, 8000, 8000, 7200, 5500, 5200, 2200, 2400, 2400, 2400, 1600, + 2300, 2300, 2300, 2100, 3700, 3700, 3700, 3400, 2400, 2400}, + 498: []int64{2856065, 2856065, 2856095, 2856125, 2856125, 2856155, 2856185, 2856185, 2856215, 2856245, 2856245, 2856275, 2856305, 2856305, 2856335, 2856365, 2856365, 2856395, 2856425, 2856425, 2856455, 2856485, 2856485, 2856515, 2856545, 2856545, 2856575, 2856605, 2856605, 2856635, + 2856665, 2856665, 2856695, 2856725, 2856725, 2856755, 2856785, 2856785, 2856815, 2856845, 2856845, 2856875, 2856905, 2856905, 2856935, 2856965, 2856965, 2856995, 2857025, 2857025, 2857055, 2857085, 2857085, 2857115, 2857145, 2857145, 2857175, 2857205, 2857205, 2857235, + 2857265, 2857265, 2857295, 2857325, 2857325, 2857355, 2857385, 2857385, 2857415, 2857445, 2857445, 2857475, 2857505, 2857505, 2857535, 2857565, 2857565, 2857595, 2857625, 2857625, 2857655, 2857685, 2857685, 2857715, 2857745, 2857745, 2857775, 2857805, 2857805, 2857835, + 2857865, 2857865, 2857895, 2857925, 2857925, 2857955, 2857985, 2857985, 2858015, 2858045}, + 506: []int64{1300, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1300, 1300, 1300, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1300, 1300, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1400, 1400, 1500, 1500, 1600, 1700, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1700, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1700, 1700}, + 510: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 514: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 159: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 86: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 6: []int64{357, 278, 204, 390, 213, 241, 209, 189, 202, 280, 709, 186, 349, 219, 223, 297, 314, 247, 473, 218, 343, 197, 248, 242, 291, 278, 206, 203, 178, 187, + 227, 266, 198, 427, 298, 253, 206, 188, 204, 248, 306, 179, 196, 192, 200, 1654, 1064, 181, 346, 263, 286, 183, 190, 180, 261, 300, 201, 185, 234, 185, + 246, 278, 202, 380, 217, 262, 200, 198, 204, 259, 354, 184, 204, 192, 259, 1097, 894, 887, 1076, 933, 1165, 1037, 399, 204, 273, 263, 277, 192, 179, 189, + 335, 276, 217, 380, 251, 328, 198, 240, 270, 250}, + 14: []int64{3010, 2320, 1660, 3264, 1748, 1986, 1713, 1545, 1647, 2295, 6083, 1508, 2913, 1790, 1847, 2477, 2621, 2028, 3960, 1778, 2868, 1603, 2057, 1970, 2417, 2302, 1688, 1648, 1462, 1516, + 1875, 2209, 1618, 3571, 2493, 2113, 1669, 1543, 1677, 2046, 2545, 1470, 1607, 1572, 1636, 14228, 9120, 1478, 2895, 2180, 2374, 1503, 1532, 1476, 2168, 2514, 1657, 1509, 1950, 1515, + 2036, 2321, 1643, 3190, 1773, 2165, 1639, 1617, 1654, 2143, 3004, 1479, 1672, 1570, 2106, 9318, 7534, 7434, 9078, 7821, 9839, 8745, 3350, 1693, 2242, 2204, 2282, 1564, 1447, 1541, + 2802, 2299, 1776, 3180, 2082, 2728, 1623, 1965, 2218, 2059}, + 131: []int64{369, 141, 143, 106, 119, 157, 88, 127, 137, 106, 211, 225, 202, 226, 234, 920, 268, 181, 204, 241, 219, 168, 221, 234, 184, 185, 236, 195, 168, 222, + 185, 189, 134, 130, 160, 122, 84, 113, 153, 95, 110, 141, 91, 108, 130, 3373, 1951, 151, 102, 158, 162, 100, 143, 122, 109, 211, 229, 173, 187, 237, + 200, 205, 241, 184, 204, 217, 182, 195, 219, 213, 211, 214, 189, 182, 245, 2671, 615, 1057, 602, 645, 747, 611, 336, 244, 118, 113, 128, 93, 94, 130, + 359, 131, 151, 94, 137, 149, 106, 109, 127, 124}, + 401: []int64{9, 9, 7, 10, 7, 9, 7, 7, 7, 7, 13, 8, 14, 10, 9, 11, 10, 9, 14, 11, 13, 8, 11, 11, 12, 11, 10, 8, 7, 8, + 8, 8, 7, 12, 8, 9, 8, 7, 7, 8, 9, 7, 7, 8, 7, 28, 21, 8, 10, 9, 9, 7, 8, 6, 8, 12, 10, 8, 10, 10, + 10, 10, 9, 11, 9, 10, 7, 8, 8, 10, 12, 7, 8, 7, 10, 34, 35, 32, 37, 35, 44, 39, 17, 7, 9, 8, 8, 7, 8, 6, + 11, 10, 7, 11, 9, 9, 8, 8, 9, 9}, + 24: []int64{3899, 3299, 3299, 3299, 3599, 3599, 3599, 3500, 3500, 3500, 3299, 3299, 3299, 3199, 3199, 3199, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3199, 3199, 3199, 3000, 3000, + 3000, 3399, 3399, 3399, 2899, 2899, 2899, 2899, 2899, 2899, 3199, 3199, 3199, 3500, 3500, 3500, 3099, 3099, 3099, 4000, 4000, 4000, 3099, 3099, 3099, 3199, 3199, 3199, 3000, 3000, + 3000, 2899, 2899, 2899, 2899, 2899, 2899, 3199, 3199, 3199, 3000, 3000, 3000, 3199, 3199, 3199, 3699, 3699, 3699, 3099, 3099, 3099, 3199, 3199, 3199, 3399, 3399, 3399, 3099, 3099, + 3099, 3399, 3399, 3399, 3500, 3500, 3500, 3500, 3299, 3299}, + 429: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 98: []int64{10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760}, + 106: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 386: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 29: []int64{10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, + 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760, 10485760}, + 507: []int64{2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2100, 2100, 2100, 2100, 2100, 2100, 2200, 2100, 2100, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, + 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2000, 2000, 2000, 2000, 2000, + 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1800, 1800, 1900, 1900, 1900, 1900, 1900, 2400, 2600, 3800, 3900, 3900, 4000, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, + 4100, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + 33: []int64{4089444, 3460300, 3460300, 3460300, 3774872, 3774872, 3774872, 3670016, 3670016, 3670016, 3460300, 3460300, 3460300, 3355440, 3355440, 3355440, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3145728, 3355440, 3355440, 3355440, 3145728, 3145728, + 3145728, 3565156, 3565156, 3565156, 3040868, 3040868, 3040868, 3040868, 3040868, 3040868, 3355440, 3355440, 3355440, 3670016, 3670016, 3670016, 3250584, 3250584, 3250584, 4194304, 4194304, 4194304, 3250584, 3250584, 3250584, 3355440, 3355440, 3355440, 3145728, 3145728, + 3145728, 3040868, 3040868, 3040868, 3040868, 3040868, 3040868, 3355440, 3355440, 3355440, 3145728, 3145728, 3145728, 3355440, 3355440, 3355440, 3879728, 3879728, 3879728, 3250584, 3250584, 3250584, 3355440, 3355440, 3355440, 3565156, 3565156, 3565156, 3250584, 3250584, + 3250584, 3565156, 3565156, 3565156, 3670016, 3670016, 3670016, 3670016, 3460300, 3460300}, + 102: []int64{57856, 57760, 57760, 57760, 57664, 57664, 57664, 57888, 57888, 57888, 57904, 57904, 57808, 57920, 57920, 57920, 57952, 57952, 57952, 57856, 57856, 57856, 58000, 58000, 58000, 58016, 58016, 58016, 58032, 58032, + 57936, 57952, 57952, 57952, 57872, 57872, 57872, 57984, 57984, 57984, 57888, 57888, 57888, 57904, 57904, 57904, 57808, 57808, 57808, 57824, 57936, 57936, 58048, 58048, 58048, 57872, 57872, 57872, 57888, 57888, + 57888, 57904, 57904, 57904, 57936, 57936, 57936, 57840, 57840, 57840, 57760, 57760, 57760, 57872, 57872, 57776, 57696, 57696, 57696, 57808, 57808, 57808, 57712, 57824, 57824, 57744, 57744, 57744, 57760, 57760, + 57760, 57872, 57872, 57872, 57776, 58000, 58000, 58000, 57808, 57808}, + 418: []int64{84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, + 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252, 84252}, + 428: []int64{57856, 57760, 57760, 57760, 57664, 57664, 57664, 57888, 57888, 57888, 57904, 57904, 57808, 57920, 57920, 57920, 57952, 57952, 57952, 57856, 57856, 57856, 58000, 58000, 58000, 58016, 58016, 58016, 58032, 58032, + 57936, 57952, 57952, 57952, 57872, 57872, 57872, 57984, 57984, 57984, 57888, 57888, 57888, 57904, 57904, 57904, 57808, 57808, 57808, 57824, 57936, 57936, 58048, 58048, 58048, 57872, 57872, 57872, 57888, 57888, + 57888, 57904, 57904, 57904, 57936, 57936, 57936, 57840, 57840, 57840, 57760, 57760, 57760, 57872, 57872, 57776, 57696, 57696, 57696, 57808, 57808, 57808, 57712, 57824, 57824, 57744, 57744, 57744, 57760, 57760, + 57760, 57872, 57872, 57872, 57776, 58000, 58000, 58000, 57808, 57808}, + 420: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 423: []int64{10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, + 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208, 10502208}, + 105: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 107: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 515: []int64{160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160}, + 13: []int64{36563, 37352, 38027, 36325, 37964, 37547, 37994, 38163, 38047, 37327, 33506, 38166, 36687, 37878, 37787, 37009, 36970, 37616, 35525, 37828, 36681, 38041, 37565, 37560, 37119, 37335, 37939, 38025, 38231, 38159, + 37762, 32473, 38087, 35903, 37253, 37333, 38034, 38145, 37983, 37582, 37150, 38257, 38040, 38141, 38094, 24973, 30358, 38203, 36612, 37602, 37267, 38196, 38139, 38252, 37496, 37127, 38015, 38190, 37655, 38163, + 37575, 37335, 38040, 36407, 37874, 37506, 38043, 38091, 38034, 37519, 36656, 38197, 38011, 38107, 37491, 29567, 31711, 31815, 29910, 31346, 29216, 30433, 36241, 37986, 37356, 37431, 37356, 38137, 38201, 38167, + 36801, 37359, 37886, 36408, 37599, 36921, 38071, 37686, 37479, 37595}, + 502: []int64{1100, 1100, 1200, 900, 1100, 1200, 1200, 900, 800, 900, 1700, 1600, 1700, 1000, 1100, 1100, 1200, 1200, 1200, 1300, 1400, 1300, 1100, 900, 1000, 1100, 1100, 1000, 800, 800, + 800, 900, 1000, 1000, 1300, 1400, 1300, 900, 800, 900, 1000, 1000, 1000, 800, 800, 2400, 3900, 4100, 2600, 1400, 1200, 1200, 900, 800, 800, 1000, 1100, 1000, 900, 800, + 900, 900, 1000, 900, 1200, 1200, 1200, 900, 800, 900, 1100, 1100, 1100, 800, 900, 2000, 2900, 4100, 3800, 4200, 4500, 4700, 3900, 2400, 1400, 1000, 1100, 1100, 900, 800, + 1000, 1100, 1200, 900, 1200, 1300, 1400, 1100, 1000, 1000}, + 74: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 85: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 465: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 464: []int64{51, 34, 48, 60, 36, 43, 41, 36, 38, 45, 35, 40, 44, 36, 35, 50, 35, 33, 40, 37, 41, 44, 35, 41, 42, 36, 31, 43, 44, 45, + 42, 45, 46, 37, 40, 41, 46, 43, 32, 49, 42, 36, 34, 43, 29, 47, 38, 42, 41, 37, 40, 37, 43, 33, 39, 38, 49, 31, 43, 46, + 40, 39, 34, 51, 39, 51, 45, 49, 41, 36, 34, 34, 45, 42, 45, 271, 410, 524, 558, 291, 176, 92, 43, 62, 36, 46, 40, 39, 34, 40, + 39, 38, 49, 34, 41, 51, 44, 29, 47, 37}, + 396: []int64{117, 89, 89, 113, 87, 124, 84, 85, 88, 107, 113, 88, 146, 47, 101, 132, 106, 97, 139, 104, 118, 95, 95, 119, 119, 92, 91, 89, 85, 91, + 100, 84, 85, 141, 76, 152, 84, 88, 97, 103, 87, 77, 99, 82, 78, 199, 133, 90, 135, 71, 94, 85, 92, 79, 95, 92, 83, 80, 99, 81, + 101, 91, 83, 108, 95, 91, 89, 83, 87, 102, 80, 90, 89, 92, 111, 292, 202, 205, 276, 225, 253, 223, 111, 89, 111, 100, 102, 86, 95, 83, + 110, 93, 93, 114, 89, 106, 80, 99, 87, 98}, + 426: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 427: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 125: []int64{411, 198, 152, 119, 134, 183, 96, 143, 144, 119, 279, 259, 494, 316, 261, 995, 366, 240, 253, 327, 346, 285, 400, 430, 345, 356, 410, 230, 194, 243, + 211, 231, 144, 176, 185, 186, 93, 135, 160, 113, 129, 151, 107, 127, 135, 3497, 2048, 176, 121, 178, 191, 129, 165, 133, 122, 351, 385, 322, 367, 410, + 336, 279, 315, 251, 253, 255, 194, 223, 238, 249, 270, 233, 210, 200, 273, 2808, 755, 1175, 739, 910, 993, 861, 451, 287, 144, 130, 135, 130, 183, 146, + 404, 178, 200, 108, 185, 184, 159, 126, 135, 150}, + 11: []int64{36582, 37370, 38034, 36337, 37967, 37562, 38002, 38168, 38054, 37329, 33533, 38186, 36723, 37909, 37798, 37050, 37006, 37642, 35547, 37852, 36713, 38071, 37616, 37615, 37164, 37383, 37993, 38045, 38247, 38169, + 37776, 37500, 38095, 35924, 37261, 37351, 38038, 38160, 37990, 37591, 37158, 38263, 38047, 38148, 38100, 25033, 30406, 38214, 36618, 37614, 37277, 38207, 38152, 38261, 37506, 37169, 38060, 38221, 37703, 38210, + 37614, 37369, 38078, 36434, 37898, 37522, 38051, 38104, 38049, 37544, 36685, 38214, 38024, 38116, 37515, 29627, 31741, 31857, 29938, 31389, 29257, 30473, 36265, 38002, 37366, 37444, 37365, 38149, 38225, 38177, + 36823, 37378, 37901, 36420, 37620, 36931, 38085, 37698, 37484, 37604}, + 516: []int64{6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000}, + 462: []int64{218, 203, 246, 299, 225, 245, 202, 203, 246, 416, 205, 243, 220, 203, 246, 337, 203, 256, 315, 219, 264, 203, 203, 259, 416, 203, 246, 203, 202, 245, + 203, 203, 245, 308, 215, 245, 203, 203, 246, 415, 203, 245, 203, 203, 245, 427, 203, 244, 308, 216, 245, 202, 203, 245, 416, 203, 246, 202, 203, 245, + 203, 203, 245, 306, 217, 245, 202, 203, 246, 416, 202, 245, 202, 203, 259, 510, 462, 659, 772, 808, 928, 1177, 384, 260, 416, 203, 260, 203, 202, 245, + 218, 203, 245, 306, 217, 259, 203, 216, 260, 416}, + 417: []int64{2726296, 2411724, 2411724, 2411724, 2831152, 2831152, 2831152, 2726296, 2726296, 2726296, 2411724, 2411724, 2411724, 2621440, 2621440, 2621440, 2306864, 2306864, 2306864, 2306864, 2306864, 2306864, 2411724, 2411724, 2411724, 2516580, 2516580, 2516580, 2202008, 2202008, + 2202008, 2516580, 2516580, 2516580, 2097152, 2097152, 2097152, 2097152, 2306864, 2411724, 2726296, 2726296, 2726296, 2411724, 2411724, 2411724, 2306864, 2306864, 2306864, 3145728, 3145728, 3145728, 2306864, 2306864, 2306864, 2411724, 2411724, 2411724, 2306864, 2306864, + 2306864, 2097152, 2202008, 2306864, 2306864, 2306864, 2621440, 2621440, 2621440, 2621440, 2411724, 2411724, 2411724, 2621440, 2621440, 2621440, 2936012, 2936012, 2936012, 2621440, 2621440, 2726296, 2726296, 2726296, 2726296, 2516580, 2516580, 2516580, 2621440, 2621440, + 2621440, 2936012, 2936012, 2936012, 2516580, 2516580, 2516580, 2516580, 2306864, 2306864}, + 157: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 406: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 513: []int64{1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1800, 1800, 1900, 1900, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, + 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 1900, 1900, 1900, 1900, 1900, + 1800, 1700, 1800, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 2200, 2500, 3600, 3700, 3800, 3900, 3900, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, + 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900}, + 512: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 461: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 10: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 12: []int64{137, 101, 116, 123, 114, 107, 96, 96, 103, 124, 111, 109, 108, 106, 106, 124, 122, 117, 149, 137, 141, 109, 110, 154, 128, 88, 107, 119, 102, 108, + 125, 91, 95, 116, 97, 108, 100, 103, 119, 122, 97, 99, 108, 94, 97, 106, 105, 106, 107, 98, 111, 105, 97, 98, 106, 111, 94, 90, 95, 100, + 131, 100, 103, 125, 108, 112, 97, 91, 107, 106, 98, 102, 116, 96, 112, 257, 186, 182, 259, 271, 232, 196, 123, 107, 122, 112, 114, 118, 104, 116, + 139, 107, 112, 126, 103, 103, 101, 125, 101, 122}, +} + +var HostMetricData = map[int32][]int64{ + 540: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 193: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 10, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 10, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 538: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 442: []int64{558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 558345748480, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, + 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, + 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, + 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, + 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, 559419490304, + }, + 184: []int64{6, 7, 24, 10, 12, 10, 11, 11, 15, 9, 6, 11, 10, 11, 11, 15, 14, 24, 8, 15, + 11, 14, 8, 9, 13, 11, 10, 10, 10, 8, 14, 11, 13, 15, 16, 13, 10, 12, 16, 16, + 13, 14, 11, 11, 13, 14, 11, 11, 11, 10, 8, 13, 16, 16, 10, 15, 9, 10, 10, 9, + 12, 10, 15, 10, 11, 19, 11, 11, 18, 11, 10, 10, 9, 13, 8, 11, 8, 12, 10, 10, + 11, 18, 12, 14, 14, 8, 11, 13, 11, 24, 12, 14, 18, 10, 13, 15, 13, 12, 20, 11, + }, + 417: []int64{4209028, 4597196, 4911776, 4890868, 4716732, 4949160, 5618444, 5299588, 5939276, 5373040, 5444172, 5360296, 6744416, 6827536, 6208836, 6481460, 6483476, 6441596, 6315764, 6396904, + 6292044, 6313012, 6319280, 6245880, 5176316, 5171796, 5486372, 5402552, 5406000, 5059972, 4956844, 5174332, 5447028, 5153364, 5147720, 4403340, 4361368, 4369400, 4862164, 4946880, + 4994708, 5517376, 5999716, 5998864, 5380208, 4834948, 4838024, 4282212, 4177360, 4330364, 4582024, 5022488, 5030444, 4881924, 5007848, 5085540, 5012204, 5012144, 5036856, 4942480, + 4187564, 4228672, 4155256, 4134280, 4132984, 4299164, 4445960, 4453264, 4159664, 4390344, 4383672, 4415064, 4918376, 4918656, 5222744, 5222808, 5225088, 4616912, 4218456, 4215328, + 4351644, 4812948, 4976436, 4494096, 4726508, 4721272, 5235008, 4857516, 4855644, 5054940, 4740304, 4796812, 4543444, 4312760, 4351020, 4560668, 5084960, 5092936, 5260772, 5072024, + }, + 465: []int64{135, 62, 9, 25, 9, 16, 8, 10, 3, 7, 12, 8, 13, 5, 13, 6, 13, 2, 12, 10, + 7, 9, 7, 19, 6, 10, 7, 12, 8, 4, 13, 14, 14, 1, 13, 12, 7, 1, 8, 14, + 13, 9, 3, 12, 8, 2, 5, 9, 17, 5, 13, 7, 15, 10, 5, 13, 10, 18, 6, 15, + 6, 17, 3, 6, 8, 8, 12, 9, 11, 3, 18, 7, 4, 1, 12, 10, 11, 7, 12, 16, + 5, 3, 1, 24, 11, 9, 11, 18, 12, 1, 8, 10, 15, 4, 11, 11, 12, 10, 2, 6, + }, + 445: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 158: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 516: []int64{6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, + }, + 9: []int64{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + }, + 433: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 464: []int64{208, 119, 77, 99, 67, 76, 74, 62, 67, 73, 64, 72, 87, 61, 69, 96, 75, 56, 82, 62, + 77, 80, 57, 72, 88, 70, 61, 70, 76, 70, 67, 72, 76, 65, 71, 62, 81, 63, 58, 76, + 94, 99, 101, 104, 104, 107, 97, 57, 87, 63, 69, 75, 83, 56, 69, 81, 88, 84, 76, 71, + 70, 115, 47, 74, 76, 64, 98, 77, 72, 65, 80, 63, 72, 61, 64, 62, 91, 65, 58, 78, + 73, 63, 63, 84, 73, 79, 67, 68, 78, 73, 62, 68, 83, 56, 79, 71, 77, 94, 68, 56, + }, + 461: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 460: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 469: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 468: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 463: []int64{4529, 3139, 976, 1336, 1328, 854, 781, 678, 587, 874, 1296, 1092, 914, 657, 662, 862, 671, 1366, 724, 1384, + 595, 753, 766, 696, 697, 925, 1215, 579, 700, 644, 730, 595, 857, 1243, 1059, 1037, 937, 644, 449, 627, + 1002, 871, 626, 661, 594, 576, 543, 608, 1409, 1306, 579, 720, 479, 592, 641, 1576, 654, 660, 555, 648, + 606, 457, 580, 633, 1730, 985, 797, 451, 559, 768, 864, 1020, 638, 608, 641, 467, 622, 466, 687, 1507, + 542, 1115, 609, 472, 634, 1398, 556, 589, 730, 544, 625, 679, 525, 480, 1496, 1446, 1136, 683, 507, 704, + }, + 159: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 147: []int64{98787, 64540, 12850, 14793, 13898, 11584, 9842, 9220, 8157, 13929, 14763, 16435, 10855, 10541, 13461, 9241, 8298, 13911, 9665, 13714, + 8106, 9184, 9718, 10730, 11620, 10779, 18429, 7382, 10814, 13398, 8824, 8072, 9910, 12595, 10950, 11917, 12508, 8644, 6052, 10230, + 11355, 13255, 8252, 10033, 11957, 6777, 7435, 8673, 14327, 13369, 8016, 9588, 6494, 8082, 9718, 14035, 11684, 8576, 9269, 13208, + 7808, 6503, 7587, 8385, 16944, 11698, 10462, 6446, 7489, 10736, 11891, 15393, 8347, 9696, 12891, 6261, 8374, 6976, 8981, 15365, + 7323, 12960, 8301, 6383, 7699, 17905, 10476, 7616, 11062, 12148, 7518, 8798, 7209, 6363, 15726, 15193, 13103, 9463, 6583, 8581, + }, + 2: []int64{5216, 6422, 2301, 2399, 3513, 3670, 2479, 2777, 1948, 2395, 4382, 3535, 2610, 2991, 2086, 2249, 2980, 4164, 2341, 4394, + 2166, 2374, 2577, 3321, 2379, 3581, 2061, 2313, 3196, 3493, 2299, 2811, 2994, 2399, 3526, 3718, 2327, 3588, 2037, 2313, + 3351, 3459, 2269, 2940, 2039, 2267, 2935, 3661, 3132, 3684, 2261, 2318, 2543, 3373, 2315, 4170, 2265, 2348, 2654, 3427, + 2311, 2576, 2225, 3184, 4171, 3686, 2190, 2765, 2177, 2133, 3559, 3530, 2178, 3213, 2475, 2133, 2728, 3443, 2390, 4531, + 2388, 2188, 3001, 3636, 2125, 3588, 2281, 2203, 2861, 3476, 2124, 2860, 2463, 2142, 4806, 4150, 2169, 2695, 2160, 2194, + }, + 146: []int64{123085, 81730, 23478, 30517, 31220, 22570, 18686, 17187, 15034, 23327, 30538, 29852, 21611, 17841, 20520, 19804, 16652, 32333, 17640, 31898, + 15354, 17755, 19085, 17827, 19017, 22028, 30619, 14066, 18751, 21221, 17486, 15365, 20671, 27904, 24811, 25645, 22882, 16383, 11545, 17083, + 23937, 24473, 15364, 17625, 18616, 13334, 14162, 16791, 31671, 30553, 15054, 17695, 12414, 15992, 16789, 29615, 19038, 16113, 15550, 21144, + 14848, 12167, 14642, 15589, 39685, 24791, 19349, 12091, 14397, 18326, 22628, 28263, 15711, 16693, 20002, 11595, 15951, 13324, 16702, 34960, + 13979, 26177, 15704, 12997, 14929, 35171, 16772, 14289, 19393, 18969, 14908, 17101, 13600, 11905, 35064, 34309, 26614, 17578, 12759, 16810, + }, + 348: []int64{36000, 39300, 34400, 24500, 17700, 17700, 20100, 18600, 17100, 14600, 18300, 19200, 22300, 18700, 18300, 15100, 14800, 17300, 19600, 22900, + 20700, 18500, 14800, 15100, 17100, 19200, 18500, 16400, 15400, 16400, 18700, 18100, 18800, 16900, 18300, 17900, 19900, 20100, 18600, 16200, + 15800, 16700, 18900, 17900, 17300, 15000, 15000, 15600, 20300, 21400, 21600, 17100, 15000, 14800, 16900, 20700, 20400, 18300, 14900, 15500, + 17400, 17400, 16800, 16600, 19400, 20800, 20900, 18200, 16900, 14600, 16300, 16700, 19100, 17900, 18600, 16200, 15600, 14800, 17600, 21500, + 21700, 18900, 15200, 16100, 18200, 19900, 18600, 16700, 15100, 15400, 17600, 17300, 17100, 15400, 19400, 21300, 23000, 19100, 16300, 14500, + }, + 386: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 106: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 24: []int64{9387, 9390, 9388, 9389, 9389, 9387, 9388, 9389, 9388, 9389, 9390, 9388, 9389, 9390, 9390, 9392, 9391, 9390, 9388, 9388, + 9387, 9387, 9387, 9387, 9388, 9387, 9388, 9389, 9389, 9387, 9389, 9388, 9389, 9391, 9390, 9388, 9391, 9391, 9390, 9391, + 9392, 9388, 9388, 9387, 9388, 9388, 9388, 9389, 9388, 9388, 9389, 9388, 9389, 9388, 9389, 9388, 9389, 9391, 9389, 9388, + 9390, 9390, 9390, 9391, 9392, 9388, 9387, 9388, 9388, 9388, 9389, 9389, 9388, 9388, 9388, 9388, 9389, 9388, 9389, 9388, + 9388, 9390, 9390, 9390, 9390, 9389, 9391, 9390, 9391, 9388, 9389, 9388, 9388, 9388, 9388, 9390, 9388, 9388, 9388, 9389, + }, + 437: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 45: []int64{28758744, 28759192, 28759660, 28759688, 28759572, 28759656, 28759684, 28761964, 28759664, 28759716, 28761648, 28759596, 28759636, 28759652, 28761712, 28759628, 28761824, 28759660, 28759796, 28757672, + 28757696, 28757860, 28757692, 28757724, 28757712, 28757712, 28757672, 28757636, 28757652, 28757676, 28759828, 28757608, 28759684, 28757684, 28757700, 28757636, 28757712, 28759704, 28757676, 28757744, + 28757724, 28757648, 28757612, 28759848, 28759680, 28757680, 28759756, 28757808, 28757728, 28757740, 28757692, 28757724, 28759696, 28757752, 28757724, 28757660, 28757780, 28757660, 28759676, 28759784, + 28757752, 28759700, 28757688, 28757732, 28759700, 28757704, 28757668, 28757740, 28757676, 28759832, 28759628, 28759764, 28757720, 28757768, 28759680, 28757736, 28759712, 28757656, 28757668, 28759776, + 28757676, 28757652, 28759768, 28757724, 28757724, 28759676, 28759792, 28757680, 28757648, 28759740, 28757764, 28759876, 28757660, 28757652, 28759624, 28757780, 28759724, 28757648, 28759732, 28757768, + }, + 515: []int64{160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + }, + 512: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 504: []int64{38200, 40700, 40700, 40700, 40700, 40700, 41100, 41100, 41100, 41100, 41100, 41100, 41100, 41100, 41100, 40700, 26800, 26800, 27100, 31600, + 31600, 30600, 30600, 30600, 31600, 31600, 31600, 30600, 30600, 30600, 31600, 31600, 31600, 30600, 27000, 27400, 27500, 34800, 34800, 27500, + 27500, 27500, 36500, 36500, 36500, 27500, 27700, 27700, 36500, 36500, 36500, 28100, 27700, 27700, 28100, 28100, 28100, 27700, 27700, 27700, + 28100, 28100, 28100, 27700, 27700, 27700, 35000, 35000, 35000, 27700, 27600, 27600, 35000, 35000, 35000, 27600, 27600, 27600, 35400, 35400, + 35400, 29100, 29100, 29100, 34300, 34300, 34300, 29100, 29100, 29100, 34300, 34300, 34300, 29100, 26300, 27900, 34300, 34300, 34300, 27900, + }, + 509: []int64{56300, 56300, 56300, 45300, 26500, 26500, 40200, 40200, 40200, 23400, 45700, 45700, 45700, 39900, 39900, 23200, 20800, 25700, 36300, 36300, + 36300, 31100, 19300, 21900, 34300, 36700, 36700, 36700, 23100, 23100, 37900, 37900, 37900, 27000, 27000, 26900, 36700, 36700, 36700, 36100, + 36900, 36900, 36900, 36100, 36100, 26200, 27300, 27300, 44400, 44400, 44400, 27500, 20500, 21400, 35500, 44500, 44500, 44500, 22100, 22800, + 34600, 34600, 34600, 25500, 35300, 35300, 35300, 35000, 35000, 21300, 40300, 40300, 40300, 36600, 36600, 25400, 21400, 22000, 36200, 39900, + 39900, 39900, 22900, 22700, 33900, 37000, 37000, 37000, 21900, 23000, 36800, 36800, 36800, 19300, 41300, 41300, 41300, 35100, 35100, 19400, + }, + 13: []int64{55854, 44019, 91548, 91238, 77451, 76086, 89967, 87066, 96253, 92136, 66625, 77627, 88722, 83963, 94854, 93093, 84480, 69900, 91799, 67236, + 94009, 91442, 89091, 80204, 91615, 76760, 95271, 92658, 81344, 78020, 92539, 86149, 84145, 91137, 77621, 75411, 92107, 76879, 95544, 92520, + 79654, 78532, 92752, 84539, 95566, 92740, 84839, 77042, 81463, 75690, 92934, 92048, 89801, 79319, 92435, 69706, 92835, 92971, 86952, 78964, + 92614, 88676, 93272, 81870, 70002, 75928, 93396, 86942, 93717, 94338, 77321, 77673, 93967, 81264, 90382, 94398, 87290, 78692, 91395, 65516, + 91277, 94100, 83600, 76785, 94306, 76729, 92706, 93455, 85740, 78369, 94379, 85854, 90241, 94306, 62269, 70322, 93958, 87650, 94017, 93690, + }, + 505: []int64{23500, 24800, 24900, 24400, 24500, 24600, 25000, 25000, 24800, 24300, 23900, 23100, 22500, 21700, 20600, 18700, 17200, 17500, 17900, 18200, + 18100, 17600, 17500, 17700, 18100, 17700, 17600, 16900, 17000, 17200, 17600, 17700, 17500, 17100, 16800, 16900, 17400, 17800, 17600, 17200, + 17100, 17300, 17700, 17700, 17500, 17000, 17100, 16800, 17700, 17700, 17600, 17100, 16700, 16800, 17200, 17600, 17500, 17100, 17000, 17200, + 17600, 17500, 17400, 16900, 17100, 17200, 17600, 17700, 17600, 17100, 16900, 16900, 17300, 17400, 17600, 17100, 17100, 17200, 17300, 17500, + 17400, 16900, 16900, 17200, 17600, 17600, 17600, 17100, 17100, 16900, 17400, 17400, 17400, 17000, 17000, 17300, 17800, 17800, 17400, 17100, + }, + 157: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 388: []int64{3105, 3888, 1350, 1391, 1943, 2053, 1406, 1570, 1178, 1412, 2542, 1997, 1490, 1658, 1236, 1322, 1652, 2219, 1353, 2397, + 1273, 1376, 1460, 1857, 1389, 1993, 1231, 1352, 1761, 1961, 1336, 1574, 1686, 1385, 1931, 2030, 1380, 1954, 1204, 1366, + 1914, 1933, 1344, 1689, 1211, 1340, 1675, 2101, 1748, 2028, 1313, 1347, 1464, 1886, 1343, 2403, 1305, 1391, 1532, 1920, + 1358, 1480, 1282, 1788, 2261, 2023, 1288, 1576, 1283, 1278, 2002, 1949, 1281, 1796, 1411, 1240, 1552, 1909, 1384, 2483, + 1373, 1301, 1690, 1967, 1258, 2017, 1337, 1282, 1629, 1965, 1253, 1619, 1390, 1271, 2614, 2221, 1286, 1563, 1253, 1296, + }, + 155: []int64{2950229, 2950250, 2950269, 2950289, 2950309, 2950329, 2950349, 2950369, 2950389, 2950409, 2950429, 2950449, 2950469, 2950489, 2950509, 2950529, 2950549, 2950569, 2950589, 2950609, + 2950629, 2950649, 2950669, 2950689, 2950709, 2950729, 2950749, 2950769, 2950789, 2950809, 2950829, 2950849, 2950869, 2950889, 2950909, 2950929, 2950949, 2950969, 2950989, 2951009, + 2951029, 2951049, 2951069, 2951089, 2951109, 2951129, 2951149, 2951169, 2951189, 2951209, 2951229, 2951249, 2951269, 2951289, 2951309, 2951329, 2951349, 2951369, 2951389, 2951409, + 2951429, 2951449, 2951469, 2951489, 2951509, 2951529, 2951549, 2951569, 2951589, 2951609, 2951629, 2951649, 2951669, 2951689, 2951709, 2951729, 2951749, 2951769, 2951789, 2951809, + 2951829, 2951849, 2951869, 2951889, 2951909, 2951929, 2951949, 2951969, 2951989, 2952009, 2952029, 2952049, 2952069, 2952089, 2952109, 2952129, 2952149, 2952169, 2952189, 2952209, + }, + 404: []int64{46, 54, 34, 33, 37, 37, 35, 35, 33, 34, 43, 38, 34, 35, 34, 33, 35, 39, 33, 41, + 33, 34, 34, 37, 33, 37, 33, 33, 36, 37, 34, 35, 35, 33, 37, 37, 33, 37, 33, 33, + 39, 37, 34, 35, 33, 34, 36, 39, 37, 36, 34, 33, 34, 37, 33, 41, 33, 34, 34, 37, + 34, 34, 34, 35, 39, 38, 33, 36, 33, 33, 39, 37, 32, 34, 34, 32, 35, 37, 33, 41, + 34, 33, 35, 38, 33, 39, 33, 32, 35, 38, 34, 35, 34, 33, 42, 38, 33, 35, 32, 33, + }, + 65: []int64{30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, + 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, + 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, + 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, + 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, 30429, + }, + 130: []int64{316, 288, 31, 17, 70, 78, 8, 5, 13, 172, 8, 9, 234, 84, 286, 107, 42, 15, 10, 48, + 9, 10, 16, 4, 410, 8, 11, 141, 85, 283, 12, 9, 12, 21, 45, 572, 19, 14, 2, 147, + 46, 9, 139, 84, 280, 9, 26, 8, 14, 42, 15, 13, 7, 10, 93, 76, 16, 143, 82, 287, + 6, 6, 311, 20, 82, 34, 7, 6, 21, 45, 137, 16, 146, 83, 286, 4, 9, 5, 8, 69, + 20, 3, 18, 8, 8, 173, 9, 139, 84, 274, 8, 11, 8, 3, 76, 61, 7, 4, 7, 11, + }, + 395: []int64{7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, + 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, + 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, + 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, + 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, 7125, + }, + 392: []int64{5078, 6147, 2371, 2453, 3400, 3565, 2486, 2777, 2066, 2456, 4110, 3436, 2636, 2944, 2164, 2343, 2932, 3939, 2400, 4162, + 2265, 2439, 2599, 3240, 2426, 3443, 2166, 2371, 3127, 3394, 2360, 2783, 2950, 2453, 3410, 3576, 2426, 3452, 2126, 2400, + 3267, 3362, 2360, 2936, 2128, 2354, 2927, 3557, 3062, 3562, 2314, 2387, 2586, 3303, 2373, 4038, 2320, 2400, 2680, 3332, + 2385, 2613, 2275, 3132, 3966, 3540, 2273, 2756, 2272, 2243, 3406, 3411, 2261, 3155, 2512, 2207, 2731, 3332, 2445, 4277, + 2437, 2283, 2981, 3481, 2221, 3463, 2373, 2266, 2858, 3371, 2216, 2854, 2473, 2251, 4489, 3926, 2268, 2721, 2224, 2289, + }, + 168: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 10, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 10, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 11: []int64{3767685, 3766843, 3809485, 3802123, 3797075, 3794283, 3804460, 3803343, 3813172, 3813480, 3772726, 3795530, 3803912, 3801956, 3811636, 3811586, 3804529, 3783666, 3808189, 3783649, + 3810947, 3809723, 3804999, 3797668, 3808199, 3790673, 3812824, 3820071, 3791344, 3794066, 3807934, 3802632, 3800437, 3809786, 3796352, 3794083, 3808300, 3791286, 3812957, 3812179, + 3791058, 3797110, 3807338, 3801842, 3812268, 3809965, 3800048, 3796279, 3792819, 3795748, 3808166, 3810005, 3805475, 3797880, 3807963, 3786534, 3811175, 3821127, 3793409, 3798201, + 3808581, 3802765, 3811096, 3799097, 3788026, 3799350, 3803446, 3802916, 3810034, 3812160, 3790129, 3797411, 3810431, 3802124, 3804558, 3812784, 3803386, 3796951, 3809341, 3779330, + 3808717, 3819583, 3792378, 3799161, 3805583, 3790405, 3809761, 3812506, 3802618, 3794905, 3810449, 3803410, 3806050, 3812196, 3778959, 3789793, 3809308, 3803093, 3812233, 3810652, + }, + 443: []int64{35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, 35184372088832, + }, + 6: []int64{5946, 7321, 2624, 2735, 4005, 4184, 2826, 3166, 2221, 2730, 4996, 4030, 2975, 3409, 2378, 2563, 3397, 4747, 2668, 5009, + 2469, 2706, 2937, 3786, 2712, 4082, 2349, 2636, 3644, 3982, 2621, 3204, 3413, 2735, 4019, 4238, 2652, 4090, 2322, 2636, + 3820, 3943, 2586, 3351, 2325, 2584, 3346, 4173, 3570, 4200, 2577, 2642, 2899, 3845, 2639, 4753, 2582, 2676, 3025, 3906, + 2634, 2936, 2536, 3630, 4755, 4202, 2497, 3152, 2481, 2431, 4057, 4024, 2482, 3663, 2821, 2432, 3109, 3924, 2725, 5164, + 2722, 2494, 3421, 4145, 2423, 4090, 2600, 2511, 3261, 3962, 2421, 3260, 2808, 2441, 5479, 4731, 2472, 3072, 2462, 2501, + }, + 33: []int64{10290632, 11098228, 10794144, 10521580, 10347364, 10695132, 11637048, 11150420, 11454568, 10951244, 11043428, 11578212, 13717308, 13716504, 13286552, 12971972, 12974028, 12690972, 12376396, 12373608, + 11828348, 12247780, 12254008, 12316920, 11121524, 11200932, 12060768, 11851116, 11854604, 10879428, 11342532, 11360752, 11727820, 10700152, 10694468, 10159800, 10054908, 10241236, 10178260, 10304924, + 10468096, 11231940, 12406340, 12405528, 11430352, 10276920, 10279996, 9986332, 10070220, 10107804, 10862772, 10757980, 10765936, 10009244, 10407800, 10401684, 10118624, 10915480, 10919140, 11076432, + 10321520, 10320684, 9964144, 9125280, 9124024, 9374092, 9856432, 9863736, 9674992, 9779840, 9773128, 9909380, 10349780, 10350060, 10245204, 10580816, 10583136, 10163740, 9324880, 9321712, + 9709688, 10296824, 10565128, 10061812, 10923364, 10918128, 11400412, 11463328, 11461496, 11702728, 10570204, 10574244, 10278936, 9943392, 10002624, 9834784, 10233244, 10241220, 10702656, 10975280, + }, + 502: []int64{33600, 36700, 32300, 23200, 17300, 17300, 19600, 18200, 16700, 14200, 17800, 18700, 21800, 18300, 17900, 14700, 14400, 16900, 19200, 22500, + 20200, 18100, 14400, 14700, 16700, 18800, 18000, 16000, 15000, 16000, 18200, 17600, 18500, 16500, 17900, 17500, 19500, 19700, 18200, 15900, + 15500, 16300, 18500, 17500, 16900, 14600, 14700, 15200, 19800, 21000, 21200, 16700, 14700, 14400, 16500, 20200, 19900, 17800, 14500, 15000, + 17000, 17000, 16400, 16300, 19000, 20300, 20400, 17800, 16500, 14200, 16000, 16400, 18700, 17500, 18200, 15800, 15300, 14400, 17200, 21100, + 21300, 18500, 14800, 15700, 17800, 19500, 18200, 16300, 14700, 15000, 17200, 16900, 16800, 15100, 19000, 20900, 22600, 18700, 16000, 14200, + }, + 398: []int64{4356, 5034, 4468, 3401, 2288, 2406, 2883, 2712, 2439, 1928, 2642, 2820, 3379, 2703, 2553, 1991, 1938, 2455, 2883, 3400, + 2975, 2578, 1995, 2048, 2392, 2812, 2666, 2288, 2063, 2214, 2659, 2557, 2750, 2376, 2528, 2437, 2805, 2980, 2707, 2225, + 2182, 2358, 2755, 2530, 2380, 1957, 2023, 2150, 3032, 3112, 3147, 2296, 2036, 1989, 2390, 2899, 2844, 2439, 1948, 2022, + 2420, 2452, 2363, 2208, 2725, 2987, 3167, 2630, 2376, 1947, 2269, 2352, 2773, 2506, 2630, 2191, 2121, 1983, 2441, 3127, + 3164, 2729, 2059, 2244, 2625, 2947, 2693, 2299, 1996, 2047, 2488, 2443, 2434, 2079, 2719, 3087, 3410, 2790, 2272, 1937, + }, + 466: []int64{147, 79, 116, 164, 105, 79, 86, 90, 122, 152, 122, 96, 99, 84, 80, 116, 115, 88, 100, 79, + 76, 128, 122, 79, 84, 78, 81, 104, 104, 94, 116, 138, 82, 106, 93, 110, 112, 80, 82, 116, + 124, 111, 82, 82, 74, 100, 84, 145, 114, 74, 74, 172, 106, 150, 109, 76, 122, 132, 122, 78, + 135, 102, 74, 158, 108, 74, 121, 144, 74, 132, 124, 82, 211, 154, 127, 142, 84, 76, 115, 96, + 76, 128, 84, 72, 116, 157, 96, 126, 94, 107, 136, 132, 106, 158, 164, 96, 112, 137, 90, 142, + }, + 410: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 470: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 57: []int64{78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, 78208, + 78208, 78208, 78208, 78208, 78208, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, 77828, + 77824, 77824, 77824, 77824, 77824, 77824, 77848, 77844, 77832, 77832, 77832, 77828, 77824, 77824, 77824, 77824, 77824, 77824, 77824, 77824, + 77824, 77824, 77824, 77824, 77824, 77824, 77824, 77824, 77824, 77824, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, + 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, 77816, + }, + 29: []int64{58388608, 58386244, 58386248, 58386248, 58386416, 58388724, 58386336, 58386332, 58386320, 58386400, 58386332, 58386344, 58386332, 58386344, 58386380, 58386372, 58386212, 58386208, 58386208, 58386208, + 58386208, 58386196, 58386208, 58386208, 58386276, 58386196, 58386208, 58386208, 58386216, 58386216, 58388608, 58386216, 58386216, 58386216, 58386204, 58386212, 58386208, 58386208, 58386208, 58387404, + 58388600, 58386208, 58386208, 58386208, 58386208, 58386208, 58386208, 58386196, 58386208, 58386208, 58386208, 58386208, 58388684, 58386208, 58386344, 58386208, 58386196, 58386208, 58386216, 58386216, + 58386204, 58386216, 58386220, 58386220, 58388612, 58386220, 58386220, 58386220, 58386220, 58386208, 58386248, 58386248, 58386248, 58386236, 58386248, 58386248, 58386248, 58386248, 58386248, 58386248, + 58386248, 58386248, 58386236, 58386248, 58388640, 58386248, 58386240, 58386248, 58386248, 58386248, 58386248, 58388640, 58386248, 58386248, 58386248, 58386236, 58386248, 58386248, 58386248, 58386236, + }, + 90: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 406: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 424: []int64{1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, + 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, + 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, + 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, + 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, 1295864, + }, + 61: []int64{14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, + }, + 506: []int64{20000, 20600, 20600, 20400, 20400, 20400, 20600, 20700, 20600, 20400, 20500, 20500, 20700, 20700, 20700, 20300, 20400, 20500, 20700, 20800, + 20700, 20500, 20500, 20600, 20700, 20700, 20700, 20500, 20500, 20600, 20600, 20600, 20700, 20500, 20500, 20600, 20700, 20800, 20700, 20500, + 20200, 20000, 19600, 19300, 18900, 18200, 17700, 17700, 18000, 18000, 17900, 17800, 17700, 17800, 17900, 17900, 17900, 17700, 17600, 17700, + 17800, 17800, 17600, 17600, 17600, 17600, 17800, 17800, 17800, 17600, 17600, 17700, 17800, 17800, 17800, 17600, 17600, 17500, 17700, 17800, + 17800, 17600, 17500, 17600, 17700, 17800, 17700, 17600, 17600, 17600, 17800, 17700, 17700, 17400, 17600, 17700, 17800, 17900, 17800, 17700, + }, + 508: []int64{19400, 19900, 19900, 19700, 19700, 19800, 19900, 20000, 19900, 19700, 19800, 19800, 20000, 20000, 20000, 19700, 19700, 19800, 20000, 20100, + 20000, 19800, 19800, 19900, 20000, 20000, 20000, 19800, 19800, 19900, 20000, 19900, 20000, 19800, 19800, 19900, 20000, 20100, 20000, 19900, + 19600, 19300, 19100, 18800, 18400, 17800, 17300, 17300, 17600, 17600, 17500, 17400, 17300, 17400, 17500, 17500, 17500, 17300, 17200, 17300, + 17400, 17400, 17200, 17200, 17200, 17200, 17400, 17400, 17400, 17200, 17200, 17300, 17400, 17400, 17400, 17200, 17200, 17100, 17300, 17400, + 17400, 17200, 17100, 17200, 17300, 17400, 17300, 17200, 17200, 17200, 17400, 17300, 17300, 17000, 17200, 17300, 17400, 17500, 17400, 17300, + }, + 37: []int64{1116464, 1116460, 1116476, 1116472, 1116984, 1117312, 1117308, 1117040, 1117680, 1117680, 1117768, 1117768, 1117764, 1117780, 1117780, 1117780, 1118264, 1118004, 1118004, 1118004, + 1118184, 1118184, 1118176, 1118596, 1118596, 1118360, 1117724, 1117724, 1117724, 1117976, 1117976, 1118296, 1118292, 1118292, 1118036, 1117612, 1117608, 1117288, 1117300, 1117300, + 1117388, 1117812, 1117812, 1118232, 1118552, 1118552, 1118904, 1118628, 1118624, 1118296, 1118296, 1118288, 1118540, 1118624, 1118620, 1118708, 1119284, 1119280, 1119276, 1118396, + 1118388, 1118788, 1119028, 1119028, 1119508, 1119508, 1119504, 1119500, 1119420, 1119420, 1119156, 1119476, 1119476, 1118976, 1118976, 1118968, 1119028, 1119128, 1119124, 1119124, + 1118952, 1118952, 1119212, 1119196, 1119192, 1118868, 1118920, 1118920, 1118916, 1118916, 1118908, 1119224, 1119224, 1119224, 1119220, 1119216, 1119216, 1119148, 1118884, 1118880, + }, + 85: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 396: []int64{65, 76, 50, 49, 53, 54, 51, 50, 49, 49, 62, 56, 50, 49, 49, 49, 49, 53, 49, 58, + 49, 49, 49, 53, 49, 53, 49, 49, 50, 54, 49, 50, 48, 48, 51, 53, 49, 52, 49, 49, + 56, 54, 50, 51, 49, 49, 52, 56, 52, 51, 49, 48, 50, 53, 49, 59, 47, 49, 49, 53, + 49, 49, 49, 49, 54, 54, 49, 51, 49, 49, 55, 53, 48, 50, 48, 47, 50, 53, 48, 56, + 49, 48, 50, 54, 48, 55, 49, 48, 50, 55, 49, 49, 49, 48, 58, 52, 49, 51, 48, 48, + }, + 426: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 107: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 510: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 98: []int64{62902396, 62921636, 62904432, 62913104, 62912472, 62897712, 62903512, 62911892, 62909336, 62914452, 62917196, 62904156, 62915072, 62920036, 62917360, 62930320, 62924892, 62917404, 62902896, 62906684, + 62898772, 62900724, 62898848, 62899600, 62906108, 62902472, 62903632, 62909996, 62913516, 62902092, 62911576, 62909124, 62914036, 62927356, 62917200, 62908204, 62923924, 62925684, 62917196, 62925320, + 62930344, 62909300, 62904316, 62901588, 62905664, 62906196, 62906848, 62913096, 62908148, 62906556, 62912224, 62904436, 62916248, 62903068, 62911968, 62906208, 62913732, 62924492, 62915224, 62904880, + 62919844, 62921172, 62919572, 62924784, 62931284, 62908824, 62901488, 62903452, 62903008, 62905672, 62911408, 62910308, 62907216, 62904444, 62904628, 62908004, 62915428, 62904220, 62912192, 62909452, + 62905684, 62916360, 62919128, 62919116, 62916452, 62914768, 62924312, 62922776, 62923692, 62903832, 62915528, 62903128, 62904000, 62904420, 62906860, 62918812, 62906628, 62907844, 62904164, 62910788, + }, + 102: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 105: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 49: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 68: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 41: []int64{1050664, 1050664, 1050664, 1050660, 1050656, 1050656, 1050652, 1050648, 1050648, 1050648, 1050648, 1050648, 1050644, 1050644, 1050644, 1050644, 1050640, 1050640, 1050640, 1050640, + 1050640, 1050640, 1050632, 1050632, 1050632, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050612, 1050608, 1050604, 1050604, 1050604, + 1050588, 1050588, 1050588, 1050588, 1050588, 1050588, 1050932, 1050916, 1050916, 1050900, 1050900, 1050896, 1050888, 1050888, 1050884, 1050864, 1050864, 1050860, 1050856, 1050856, + 1050848, 1050848, 1050848, 1050848, 1050848, 1050848, 1050844, 1050840, 1050840, 1050840, 1050824, 1050824, 1050824, 1050820, 1050820, 1050812, 1050812, 1050812, 1050808, 1050808, + 1050808, 1050808, 1050800, 1050800, 1050796, 1050792, 1050792, 1050792, 1050788, 1050788, 1050780, 1050780, 1050780, 1050780, 1050776, 1050772, 1050772, 1050768, 1050764, 1050760, + }, + 440: []int64{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + }, + 441: []int64{268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + }, + 422: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 429: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 143: []int64{8765, 5677, 1947, 2716, 2821, 1860, 1596, 1424, 1238, 1784, 2685, 2330, 1867, 1402, 1389, 1764, 1412, 2895, 1478, 2934, + 1256, 1540, 1604, 1518, 1410, 1930, 2512, 1185, 1490, 1418, 1493, 1256, 1791, 2541, 2270, 2222, 1912, 1355, 958, 1282, + 2087, 1882, 1279, 1410, 1252, 1177, 1151, 1347, 2879, 2776, 1223, 1472, 1020, 1314, 1310, 2902, 1374, 1350, 1194, 1425, + 1239, 975, 1225, 1295, 3642, 2116, 1627, 963, 1182, 1567, 1806, 2185, 1304, 1303, 1348, 958, 1311, 1057, 1405, 3185, + 1147, 2278, 1285, 1069, 1297, 2895, 1175, 1205, 1551, 1214, 1279, 1427, 1113, 984, 3162, 3057, 2320, 1435, 1076, 1440, + }, + 131: []int64{4655, 3164, 3005, 3258, 3194, 3077, 3071, 2430, 2576, 2467, 2464, 3189, 2703, 1753, 2425, 1598, 2234, 2281, 2723, 2766, + 2130, 2329, 2275, 1503, 2062, 2067, 2520, 1644, 1862, 1863, 2102, 2138, 1872, 2436, 2331, 2555, 3023, 2370, 1893, 2109, + 2025, 1974, 2015, 1766, 2073, 2033, 1645, 1974, 2306, 2578, 2046, 2724, 2061, 1859, 1932, 2223, 1915, 2410, 1825, 1992, + 1723, 1552, 2076, 1931, 3267, 2736, 3099, 1421, 1897, 1773, 1973, 2563, 2185, 1572, 1948, 1545, 1881, 1639, 2266, 2916, + 2266, 2899, 1927, 1828, 2131, 2660, 1845, 1844, 1902, 1712, 1835, 2563, 2026, 1545, 4746, 7004, 3166, 2172, 2198, 1984, + }, + 125: []int64{4972, 3453, 3036, 3275, 3264, 3155, 3080, 2435, 2589, 2639, 2472, 3199, 2938, 1838, 2711, 1705, 2276, 2296, 2734, 2815, + 2139, 2339, 2291, 1508, 2473, 2076, 2532, 1785, 1947, 2146, 2114, 2148, 1885, 2458, 2376, 3128, 3042, 2384, 1895, 2256, + 2072, 1983, 2155, 1851, 2354, 2042, 1671, 1982, 2320, 2620, 2062, 2738, 2069, 1870, 2026, 2299, 1931, 2553, 1907, 2279, + 1729, 1558, 2388, 1951, 3349, 2771, 3106, 1428, 1918, 1819, 2110, 2579, 2331, 1656, 2234, 1550, 1891, 1645, 2274, 2985, + 2287, 2902, 1945, 1836, 2140, 2833, 1854, 1983, 1986, 1986, 1843, 2575, 2034, 1549, 4822, 7066, 3173, 2176, 2206, 1996, + }, + 27: []int64{29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, + 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, + 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, + 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, + 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, 29551, + }, + 419: []int64{57636, 57636, 57637, 57637, 57636, 57637, 57637, 57639, 57637, 57637, 57638, 57636, 57637, 57637, 57639, 57637, 57639, 57637, 57637, 57635, + 57635, 57635, 57635, 57635, 57635, 57635, 57635, 57635, 57635, 57635, 57637, 57635, 57637, 57635, 57635, 57635, 57635, 57637, 57635, 57635, + 57635, 57635, 57635, 57637, 57637, 57635, 57637, 57635, 57635, 57635, 57635, 57635, 57637, 57635, 57635, 57635, 57635, 57635, 57637, 57637, + 57635, 57637, 57635, 57635, 57637, 57635, 57635, 57635, 57635, 57637, 57637, 57637, 57635, 57635, 57637, 57635, 57637, 57635, 57635, 57637, + 57635, 57635, 57637, 57635, 57635, 57637, 57637, 57635, 57635, 57637, 57635, 57637, 57635, 57635, 57636, 57635, 57637, 57635, 57637, 57635, + }, + 511: []int64{36400, 40300, 40300, 38500, 38500, 38500, 40200, 40200, 40200, 40200, 40200, 40200, 40200, 40200, 40200, 39900, 26100, 26100, 26500, 31100, + 31100, 29600, 29600, 29600, 31100, 31100, 31100, 29600, 29600, 29600, 31100, 31100, 31100, 29600, 26600, 26900, 27000, 34300, 34300, 27000, + 27000, 27000, 36100, 36100, 36100, 27000, 27300, 27300, 36100, 36100, 36100, 27500, 27300, 27300, 27500, 27500, 27500, 27300, 27300, 27300, + 27500, 27500, 27500, 27300, 27300, 27300, 34600, 34600, 34600, 27300, 26700, 26700, 34600, 34600, 34600, 26700, 26700, 26700, 35000, 35000, + 35000, 28500, 28500, 28500, 33900, 33900, 33900, 28500, 28500, 28500, 33900, 33900, 33900, 28500, 25600, 27300, 33900, 33900, 33900, 27300, + }, + 12: []int64{17855, 20753, 13236, 12962, 14433, 14512, 13653, 13534, 12746, 13076, 16646, 14960, 13417, 13483, 13067, 12955, 13556, 15106, 13014, 16075, + 13035, 13094, 13233, 14367, 13043, 14539, 12820, 13046, 13940, 14320, 13203, 13483, 13483, 12890, 14226, 14402, 13045, 14350, 12809, 12948, + 15041, 14439, 13309, 13757, 12993, 13068, 13879, 15041, 14435, 14027, 13045, 12915, 13351, 14350, 13023, 16024, 12689, 13111, 13270, 14385, + 13087, 13285, 13071, 13725, 15293, 14793, 13024, 13870, 12994, 12916, 15175, 14214, 12551, 13424, 13055, 12480, 13549, 14215, 12944, 15988, + 13097, 12677, 13603, 14745, 12869, 15045, 12947, 12664, 13529, 14769, 13079, 13453, 13052, 12744, 16185, 14851, 13030, 13729, 12598, 12845, + }, + 539: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 427: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 399: []int64{71, 59, 0, 4, 15, 14, 2, 9, 0, 3, 79, 10, 91, 11, 2, 2, 2, 101, 0, 35, + 0, 0, 0, 36, 2, 36, 0, 0, 15, 0, 0, 9, 0, 0, 6, 18, 1, 12, 0, 0, + 103, 15, 5, 0, 0, 6, 0, 28, 6, 37, 21, 0, 7, 26, 4, 5, 0, 22, 0, 3, + 0, 2, 1, 38, 15, 23, 0, 0, 0, 0, 9, 2, 0, 20, 0, 0, 3, 3, 3, 77, + 6, 0, 4, 99, 0, 26, 0, 1, 0, 22, 0, 10, 5, 2, 70, 25, 0, 0, 2, 0, + }, + 467: []int64{2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 3, 2, + 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 4, 0, 0, 1, 0, 0, 5, 0, 0, + }, + 149: []int64{4529, 3139, 976, 1336, 1328, 854, 781, 678, 587, 874, 1296, 1092, 914, 657, 662, 862, 671, 1366, 724, 1384, + 595, 753, 766, 696, 697, 925, 1215, 579, 700, 644, 730, 595, 857, 1243, 1059, 1037, 937, 644, 449, 627, + 1002, 871, 626, 661, 594, 576, 543, 608, 1409, 1306, 579, 720, 479, 592, 641, 1576, 654, 660, 555, 648, + 606, 457, 580, 633, 1730, 985, 797, 451, 559, 768, 864, 1020, 638, 608, 641, 467, 622, 466, 687, 1507, + 542, 1115, 609, 472, 634, 1398, 556, 589, 730, 544, 625, 679, 525, 480, 1496, 1446, 1136, 683, 507, 704, + }, + 501: []int64{61000, 61000, 61000, 49900, 27100, 27100, 41100, 41100, 41100, 23800, 47100, 47100, 47100, 40600, 40600, 23500, 21400, 26100, 36800, 36800, + 36800, 31600, 19600, 22400, 34800, 37300, 37300, 37300, 23700, 23700, 38500, 38500, 38500, 27400, 27400, 27500, 37200, 37200, 37200, 36500, + 37300, 37300, 37300, 36600, 36600, 27100, 27700, 27700, 45800, 45800, 45800, 28100, 20900, 22100, 36000, 45800, 45800, 45800, 22800, 23500, + 35000, 35000, 35000, 26000, 36100, 36100, 36100, 35400, 35400, 21600, 40900, 40900, 40900, 36900, 36900, 26300, 21800, 22600, 36500, 40500, + 40500, 40500, 23200, 23500, 34300, 37900, 37900, 37900, 22600, 23800, 37200, 37200, 37200, 19500, 41700, 41700, 41700, 35400, 35400, 19700, + }, + 133: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 10, 0, 0, 11, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 10, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 444: []int64{7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + }, + 414: []int64{2356756, 2354240, 2353756, 2353760, 2353824, 2353756, 2353756, 2353756, 2353620, 2353760, 2353756, 2353756, 2353620, 2353756, 2353712, 2353712, 2353580, 2353580, 2353580, 2355628, + 2355628, 2355500, 2355672, 2355672, 2355688, 2355672, 2355672, 2355672, 2355672, 2355716, 2355716, 2355716, 2355716, 2355716, 2355580, 2355716, 2355720, 2355672, 2355672, 2355672, + 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355536, 2355672, 2355672, 2355672, 2355672, 2355740, 2355672, 2355688, 2355672, 2355672, 2355676, 2355672, 2355672, + 2355536, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355536, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, + 2355672, 2355672, 2355536, 2355672, 2355672, 2355672, 2355536, 2355676, 2355812, 2355672, 2355672, 2355672, 2355672, 2355672, 2355672, 2355536, 2355672, 2355672, 2355672, 2355540, + }, + 514: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 513: []int64{34500, 36400, 36400, 35700, 35700, 35700, 36400, 36400, 36400, 35700, 35700, 35700, 36400, 36400, 36400, 35700, 35700, 35700, 36300, 36300, + 36300, 35700, 35700, 35700, 35700, 35700, 35700, 34600, 34600, 34600, 35700, 35700, 35700, 34600, 34600, 34600, 35700, 36100, 36100, 35700, + 34600, 34600, 36100, 36100, 36100, 31100, 27000, 27000, 27300, 27500, 27500, 27300, 27300, 27300, 27500, 27500, 27500, 27300, 27300, 27300, + 27500, 27500, 27500, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 27300, 28500, + 28500, 27500, 27300, 27300, 27500, 27500, 27500, 27300, 27300, 27300, 27500, 27500, 27500, 27300, 27300, 27300, 28500, 28500, 28500, 27300, + }, + 503: []int64{24600, 26100, 26200, 25700, 25700, 25800, 26300, 26300, 26100, 25500, 25100, 24200, 23500, 22500, 21300, 19300, 17600, 17900, 18300, 18700, + 18500, 18000, 17900, 18100, 18500, 18100, 17900, 17300, 17400, 17600, 18000, 18100, 17900, 17500, 17200, 17300, 17800, 18200, 18000, 17600, + 17500, 17700, 18100, 18000, 17900, 17400, 17400, 17200, 18100, 18100, 18000, 17500, 17000, 17200, 17600, 18000, 17900, 17500, 17400, 17600, + 18000, 17900, 17800, 17300, 17500, 17600, 18000, 18100, 18100, 17600, 17200, 17300, 17700, 17800, 18000, 17500, 17500, 17600, 17700, 17900, + 17700, 17300, 17300, 17600, 18000, 18000, 18000, 17500, 17500, 17300, 17800, 17800, 17800, 17400, 17400, 17700, 18200, 18200, 17800, 17400, + }, + 14: []int64{62600, 77075, 27623, 28796, 42164, 44052, 29757, 33336, 23381, 28748, 52594, 42428, 31328, 35896, 25039, 26988, 35767, 49973, 28095, 52738, + 25992, 28489, 30925, 39862, 28555, 42973, 24731, 27757, 38363, 41920, 27595, 33737, 35930, 28800, 42316, 44616, 27926, 43063, 24453, 27756, + 40219, 41513, 27233, 35284, 24476, 27207, 35227, 43938, 37587, 44219, 27139, 27820, 30524, 40477, 27790, 50045, 27185, 28176, 31853, 41129, + 27734, 30915, 26703, 38213, 50064, 44243, 26290, 33188, 26125, 25601, 42719, 42369, 26139, 38564, 29703, 25603, 32738, 41318, 28690, 54373, + 28665, 26258, 36017, 43638, 25508, 43062, 27378, 26439, 34338, 41717, 25492, 34329, 29567, 25705, 57680, 49805, 26032, 32345, 25920, 26333, + }, + 507: []int64{36500, 38200, 38200, 37800, 37800, 37800, 38200, 38200, 38200, 37800, 37800, 37800, 38200, 38200, 38200, 37800, 37800, 37800, 37800, 37800, + 37800, 37000, 37000, 37000, 37000, 37000, 37000, 36800, 36800, 36800, 37000, 37000, 37000, 36800, 36800, 36800, 37000, 37000, 37000, 36800, + 36500, 36500, 36600, 36600, 36500, 31600, 27500, 27500, 27700, 28100, 28100, 27700, 27700, 27700, 28100, 28100, 28100, 27700, 27700, 27700, + 28100, 28100, 28100, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 27700, 29100, + 29100, 28100, 27700, 27700, 28100, 28100, 28100, 27700, 27700, 27700, 28100, 28100, 28100, 27700, 27700, 27900, 29100, 29100, 29100, 27900, + }, + 86: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 462: []int64{4235, 2537, 970, 1379, 1492, 1006, 814, 746, 651, 909, 1389, 1238, 953, 744, 726, 901, 740, 1529, 754, 1550, + 660, 786, 838, 822, 712, 1004, 1297, 605, 789, 773, 763, 661, 933, 1297, 1211, 1185, 975, 711, 509, 654, + 1085, 1011, 653, 749, 657, 601, 607, 738, 1470, 1469, 643, 752, 541, 721, 669, 1326, 720, 689, 639, 777, + 633, 517, 645, 661, 1911, 1130, 830, 511, 622, 798, 941, 1165, 666, 694, 706, 490, 688, 590, 717, 1677, + 605, 1162, 675, 596, 662, 1496, 618, 615, 821, 670, 654, 748, 587, 503, 1666, 1611, 1184, 751, 568, 736, + }, + 148: []int64{4235, 2537, 970, 1379, 1492, 1006, 814, 746, 651, 909, 1389, 1238, 953, 744, 726, 901, 740, 1529, 754, 1550, + 660, 786, 838, 822, 712, 1004, 1297, 605, 789, 773, 763, 661, 933, 1297, 1211, 1185, 975, 711, 509, 654, + 1085, 1011, 653, 749, 657, 601, 607, 738, 1470, 1469, 643, 752, 541, 721, 669, 1326, 720, 689, 639, 777, + 633, 517, 645, 661, 1911, 1130, 830, 511, 622, 798, 941, 1165, 666, 694, 706, 490, 688, 590, 717, 1677, + 605, 1162, 675, 596, 662, 1496, 618, 615, 821, 670, 654, 748, 587, 503, 1666, 1611, 1184, 751, 568, 736, + }, +} + +var ResourcePoolMetricData = map[int32][]int64{ + 6: []int64{2648, 2660, 2642, 2704, 2653, 2610, 2679, 2637, 2688, 2575, 2703, 2546, 2629, 2689, 2653, 2564, 2717, 2545, 2613, 2672, + 2767, 2549, 2648, 2535, 2618, 2693, 2635, 2584, 2684, 2585, 2770, 2655, 2721, 2665, 2804, 2563, 2920, 2718, 2661, 2741, + 2731, 2617, 2692, 2716, 2627, 2612, 2725, 2536, 2705, 2757, 2741, 2574, 3086, 2513, 2748, 2689, 2678, 3847, 2742, 2552, + 2672, 2731, 2667, 2717, 2727, 2570, 2687, 2650, 2702, 3887, 2694, 2583, 2679, 2687, 2690, 2664, 2668, 2592, 2809, 2669, + 2610, 3783, 2672, 2576, 2705, 2693, 2768, 2665, 2764, 2666, 2684, 2743, 2721}, + 98: []int64{69961436, 69961085, 69960708, 69961322, 69961734, 69961582, 69960647, 69960520, 69961108, 69961043, 69959288, 69961340, 69963664, 69963803, 69966339, 69966730, 69966854, 69967577, 69969142, 69970332, + 69970629, 69970167, 69971088, 69970684, 69971038, 69971578, 69968726, 69968868, 69968092, 69968632, 69968387, 69968226, 69968412, 69967611, 69968527, 69969251, 69968896, 69968292, 69966611, 69966893, + 69966583, 69969648, 69969991, 69970006, 69970131, 69970476, 69970138, 69970011, 69969946, 69970596, 69970963, 69970303, 69970393, 69970626, 69970975, 69970635, 69970602, 69970758, 69970815, 69970774, + 69971567, 69974147, 69975787, 69973389, 69974243, 69974761, 69976130, 69977938, 69977197, 69976327, 69975736, 69975777, 69975205, 69974629, 69974275, 69973691, 69973552, 69972974, 69972629, 69972392, + 69973105, 69974080, 69976093, 69976312, 69979980, 69980007, 69984359, 69987261, 69988144, 69988443, 69987244, 69986857, 69986303}, + 29: []int64{71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71097821, 71098368, 71102190, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464}, + 33: []int64{14147864, 14298869, 13853549, 14071653, 14408592, 13569734, 13775254, 13631952, 14009437, 14864391, 15225092, 14491085, 14256903, 13928347, 13923454, 13900408, 14486205, 13712336, 13669000, 13853559, + 13605408, 14571477, 15720747, 15202728, 14281366, 14092624, 14070270, 14407903, 14308628, 13908775, 14154848, 13566956, 14234531, 14219868, 16074441, 14676380, 14672195, 14980482, 14745536, 14405798, + 14986710, 15169160, 14108018, 14105911, 13912964, 14536520, 15798325, 15342582, 14548403, 14673552, 15304788, 14523272, 15387281, 15152398, 14791723, 14362474, 13642436, 14774898, 16125462, 15111862, + 14085672, 14342207, 13367707, 15036358, 15538271, 14937092, 14194016, 13878714, 13884307, 14810548, 15532667, 15050322, 14081436, 14789578, 14602931, 14380633, 14739248, 14182827, 15072001, 14819650, + 14119919, 14589666, 16036683, 14730158, 14321214, 14659554, 14368049, 14447758, 14924502, 13787139, 14776992, 15789234, 14169540}, + 37: []int64{1224491, 1224767, 1224727, 1224610, 1224560, 1224513, 1224444, 1224411, 1224390, 1224364, 1224323, 1223250, 1222386, 1221184, 1220120, 1218849, 1217944, 1217003, 1215534, 1215959, + 1215276, 1214698, 1214640, 1214615, 1214655, 1214319, 1215025, 1214862, 1214388, 1214122, 1214082, 1214049, 1214000, 1213937, 1213708, 1213309, 1213506, 1213300, 1212838, 1212427, + 1211531, 1206346, 1206131, 1206061, 1205836, 1205722, 1205495, 1205681, 1205711, 1204664, 1204509, 1205405, 1205132, 1204909, 1204796, 1204754, 1204743, 1204720, 1204484, 1204448, + 1204636, 1204476, 1204354, 1204331, 1204079, 1203968, 1203899, 1203865, 1203811, 1203734, 1203865, 1203628, 1203251, 1203212, 1203098, 1203057, 1203938, 1203697, 1203608, 1203573, + 1203545, 1203465, 1202291, 1201669, 1201782, 1201631, 1201743, 1201529, 1201474, 1201407, 1199122, 1198521, 1198570}, + 70: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 90: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 7: []int64{1406, 1419, 1426, 1412, 1413, 1408, 1472, 1426, 1462, 1424, 1447, 1403, 1433, 1429, 1420, 1395, 1447, 1396, 1406, 1413, + 1432, 1420, 1425, 1411, 1432, 1437, 1444, 1407, 1448, 1450, 1477, 1431, 1451, 1437, 1403, 1459, 1478, 1452, 1447, 1446, + 1410, 1441, 1445, 1415, 1433, 1435, 1458, 1419, 1441, 1476, 1310, 1482, 1451, 1458, 1455, 1428, 1446, 1443, 1436, 1449, + 1422, 1394, 1424, 1402, 1417, 1410, 1419, 1432, 1446, 1421, 1440, 1430, 1406, 1463, 1448, 1446, 1432, 1435, 1465, 1484, + 1443, 1451, 1414, 1446, 1412, 1429, 1442, 1424, 1497, 1458, 1490, 1463, 1533, 1482, 1473, 1468, 1467, 294, 294, 293, + }, + 8: []int64{6539, 7702, 6548, 8268, 6700, 7397, 6790, 7898, 6476, 6905, 6238, 7278, 6627, 7807, 5958, 6792, 6036, 6789, 6141, 7983, + 7889, 6401, 5709, 6512, 5807, 7728, 5975, 6809, 6144, 7257, 8149, 7885, 6501, 8131, 7308, 6462, 8264, 8044, 6631, 7954, + 7046, 7166, 6704, 7344, 6438, 6346, 6730, 6478, 6916, 7791, 6944, 6179, 7985, 6202, 6726, 8141, 6854, 9215, 6561, 6467, + 6547, 7569, 6386, 7388, 7036, 6134, 6651, 7371, 6545, 11069, 6235, 6345, 6048, 8274, 6422, 7397, 6544, 6905, 7577, 7600, + 5693, 8974, 6178, 6603, 6656, 7968, 7048, 7406, 6370, 7129, 5815, 7886, 6045, 8873, 6834, 7219, 6213, 1852, 583, 753, + }, + 16: []int64{6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, + 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, + 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, + 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, + 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 100, 100, 100, + }, + 17: []int64{14, 14, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 14, 14, 14, + 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 14, 15, 14, 15, 14, 16, 15, 14, 15, + 15, 14, 14, 15, 14, 14, 15, 14, 15, 15, 15, 14, 17, 13, 15, 14, 14, 21, 15, 14, + 14, 15, 14, 15, 15, 14, 14, 14, 14, 21, 14, 14, 14, 14, 14, 14, 14, 14, 15, 14, + 14, 21, 14, 14, 15, 14, 15, 14, 15, 14, 14, 15, 15, 20, 15, 14, 14, 253, 184, 198, + }, + 18: []int64{2805, 3008, 2834, 2990, 2887, 2897, 2838, 2978, 2875, 2848, 2889, 2868, 2799, 3006, 2816, 2871, 2885, 2862, 2764, 2979, + 2813, 2966, 2885, 2841, 2816, 3021, 2825, 2884, 2896, 2868, 3005, 2990, 2858, 3027, 2985, 2878, 3136, 3049, 2840, 3057, + 2932, 2952, 2886, 3029, 2822, 2907, 2908, 2846, 2885, 3019, 2957, 2938, 3268, 2858, 2922, 3005, 2894, 4130, 2912, 2893, + 2877, 3010, 2896, 3021, 2943, 2885, 2873, 2961, 2870, 4165, 2865, 2906, 2835, 3017, 2871, 2934, 2842, 2883, 2955, 2996, + 2852, 4035, 2909, 2881, 2864, 3050, 2947, 2936, 2978, 2983, 2850, 3069, 2881, 4073, 3006, 2929, 2824, 549, 402, 429, + }, + 19: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + }, + 20: []int64{196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 4, 4, 4, + }, + 22: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 30: []int64{71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71098368, 71100416, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 14680064, 14680064, 14680064, + }, + 31: []int64{71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, 71094272, + 71094272, 71094272, 71094272, 71094272, 71098368, 71098368, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 71102464, 14680064, 14680064, 14680064, + }, + 34: []int64{11984984, 12310048, 12089852, 11869644, 12131784, 11754300, 11806732, 11460704, 12268108, 12656084, 13316684, 12509284, 12362480, 12435872, 12236644, 11733332, 12320532, 11712352, 12194704, 11743820, + 11785764, 12603648, 12750452, 13044056, 12456848, 12194700, 12268112, 12519768, 12142276, 12456848, 12760936, 11995480, 11680904, 12477824, 13872424, 13117456, 12372964, 12855352, 12687536, 12551220, + 13253768, 12771416, 12026932, 11901100, 11796248, 12488304, 12530248, 13285224, 12729480, 12792396, 12918224, 12404420, 12844828, 12718996, 12792388, 12561704, 12016444, 12289072, 14312828, 13411048, + 12110816, 12089848, 11722844, 13002108, 13222312, 12656076, 12477820, 11953532, 12047904, 12760936, 13201340, 13106960, 12404420, 12561712, 12939200, 12582680, 12561704, 12142280, 12970648, 13138420, + 12477820, 12771420, 12519764, 12823848, 12456848, 13211828, 11984992, 12603648, 12698016, 12257620, 12729476, 12802884, 12519764, 12823852, 13379596, 12844820, 12624624, 4236240, 4341100, 4487900, + }, + 35: []int64{17406204, 17070628, 16022008, 16630184, 16797952, 14962948, 16493868, 15319468, 16672116, 17773168, 17500540, 16829408, 16493868, 15759872, 16042976, 17028680, 16892368, 15665488, 15749384, 16284196, + 15906708, 16850420, 18486248, 17668348, 17049608, 16441444, 16294680, 17332768, 17479532, 15382380, 15581652, 15455820, 17479532, 16147880, 18286976, 16609288, 16567348, 17343296, 16567264, 16619700, + 17374668, 17678756, 16703620, 17206936, 16735036, 16818920, 19377496, 18979120, 17668268, 16777024, 17227912, 17133576, 18444296, 17699768, 17133580, 16819008, 15508208, 18182080, 18958024, 17636860, + 16389092, 17227948, 15340432, 17951424, 19398464, 17867580, 16525400, 15969576, 16567272, 17322240, 18265960, 17217380, 16514832, 17123012, 16651156, 17217388, 17752164, 16797996, 17301312, 16965768, + 16640752, 17353780, 19786396, 16472900, 16756008, 16923780, 17343212, 17490056, 17825596, 15896180, 17500496, 18905632, 16913372, 17374748, 18737944, 17007748, 17196492, 5955908, 5221904, 5515508, + }, + 38: []int64{1224116, 1224140, 1224660, 1224576, 1224544, 1224472, 1224420, 1224404, 1224376, 1224348, 1224308, 1222636, 1221028, 1221104, 1219004, 1217960, 1217928, 1215552, 1215528, 1215884, + 1214788, 1214688, 1214632, 1214608, 1214404, 1214264, 1214148, 1214616, 1214152, 1214096, 1214064, 1214036, 1213972, 1213888, 1213556, 1213292, 1213264, 1213196, 1212664, 1211552, + 1211516, 1206068, 1206108, 1206048, 1205820, 1205496, 1205492, 1205468, 1204548, 1204572, 1204492, 1204240, 1204980, 1204828, 1204776, 1204740, 1204732, 1204696, 1204460, 1204440, + 1204424, 1204380, 1204336, 1204072, 1204016, 1203940, 1203892, 1203844, 1203796, 1203720, 1203688, 1203076, 1203056, 1203128, 1203084, 1203028, 1203740, 1203624, 1203580, 1203552, + 1203516, 1203448, 1201708, 1201616, 1201612, 1201516, 1201692, 1201520, 1201452, 1201384, 1198548, 1198516, 1198472, 1198576, 1198560, 1196536, 1196512, 0, 0, 0, + }, + 39: []int64{1224732, 1225764, 1224908, 1224660, 1224576, 1224544, 1224464, 1224420, 1224404, 1224376, 1224352, 1224320, 1223000, 1221336, 1221104, 1219004, 1217960, 1217728, 1215548, 1216128, + 1215840, 1214712, 1214656, 1214632, 1215200, 1214432, 1215632, 1215088, 1214612, 1214152, 1214092, 1214060, 1214032, 1213968, 1213888, 1213320, 1213612, 1213536, 1213176, 1212660, + 1211548, 1208264, 1206156, 1206080, 1205844, 1205812, 1205496, 1206136, 1205884, 1204784, 1204532, 1206052, 1205248, 1204968, 1204824, 1204780, 1204752, 1204740, 1204700, 1204460, + 1204796, 1204708, 1204376, 1204604, 1204268, 1203996, 1203908, 1203888, 1203824, 1203740, 1204148, 1203772, 1203408, 1203360, 1203124, 1203084, 1204252, 1203740, 1203620, 1203584, + 1203572, 1203516, 1203440, 1201708, 1201980, 1201896, 1201856, 1201540, 1201504, 1201448, 1201372, 1198532, 1198856, 1198604, 1198576, 1196552, 1196904, 0, 0, 0, + }, + 41: []int64{1055608, 1055673, 1055611, 1055552, 1055515, 1055476, 1055412, 1055381, 1055362, 1055339, 1055315, 1054702, 1054162, 1053129, 1053072, 1053034, 1053001, 1052964, 1052902, 1053140, + 1053065, 1052986, 1052956, 1052937, 1053154, 1053106, 1053207, 1053163, 1053114, 1053076, 1053048, 1053021, 1052985, 1052934, 1052884, 1052877, 1053076, 1053086, 1053020, 1052979, + 1052925, 1052908, 1052834, 1052773, 1052745, 1052715, 1052707, 1052783, 1052930, 1052939, 1052823, 1052902, 1052858, 1052810, 1052757, 1052723, 1052703, 1052680, 1052659, 1052649, + 1052844, 1052912, 1052870, 1052881, 1052877, 1052824, 1052791, 1052763, 1052717, 1052664, 1052715, 1052572, 1052357, 1052434, 1052378, 1052343, 1052500, 1052423, 1052385, 1052362, + 1052328, 1052257, 1051141, 1050565, 1050688, 1050780, 1050854, 1050744, 1050700, 1050671, 1050642, 1050621, 1050643, 1050660, 1050640, 1050610, 1050777, 0, 0, 0, + }, + 42: []int64{1055340, 1055544, 1055588, 1055528, 1055500, 1055440, 1055388, 1055376, 1055348, 1055328, 1055304, 1054396, 1052844, 1053096, 1053052, 1053016, 1052988, 1052920, 1052896, 1053104, + 1053060, 1052976, 1052948, 1052932, 1052864, 1053084, 1053024, 1053136, 1053100, 1053060, 1053032, 1053012, 1052968, 1052892, 1052880, 1052864, 1052844, 1053060, 1053004, 1052944, + 1052912, 1052788, 1052812, 1052760, 1052732, 1052708, 1052704, 1052684, 1052716, 1052880, 1052808, 1052780, 1052844, 1052784, 1052740, 1052712, 1052692, 1052664, 1052652, 1052644, + 1052640, 1052896, 1052852, 1052808, 1052852, 1052808, 1052784, 1052748, 1052704, 1052656, 1052632, 1052176, 1052164, 1052408, 1052364, 1052320, 1052444, 1052396, 1052368, 1052344, + 1052312, 1052244, 1050592, 1050528, 1050524, 1050756, 1050812, 1050736, 1050684, 1050656, 1050632, 1050616, 1050572, 1050648, 1050632, 1050604, 1050588, 0, 0, 0, + }, + 43: []int64{1055696, 1056120, 1055628, 1055588, 1055528, 1055500, 1055432, 1055388, 1055376, 1055348, 1055328, 1055308, 1054744, 1053152, 1053096, 1053052, 1053016, 1052988, 1052916, 1053220, + 1053072, 1053000, 1052968, 1052948, 1053416, 1053128, 1053340, 1053208, 1053136, 1053100, 1053056, 1053028, 1053008, 1052964, 1052892, 1052884, 1053172, 1053112, 1053040, 1053000, + 1052940, 1053068, 1052856, 1052792, 1052752, 1052724, 1052708, 1053040, 1053028, 1052968, 1052844, 1052988, 1052876, 1052832, 1052780, 1052732, 1052712, 1052692, 1052664, 1052652, + 1052976, 1052924, 1052892, 1053072, 1052904, 1052840, 1052800, 1052780, 1052728, 1052668, 1052884, 1052676, 1052504, 1052468, 1052404, 1052364, 1052556, 1052444, 1052392, 1052368, + 1052348, 1052308, 1052236, 1050592, 1050860, 1050808, 1050944, 1050752, 1050724, 1050680, 1050648, 1050624, 1050824, 1050672, 1050648, 1050612, 1050948, 0, 0, 0, + }, + 71: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 72: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 91: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 92: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 99: []int64{69960688, 69959600, 69960228, 69960116, 69960688, 69960736, 69959156, 69959576, 69960484, 69959796, 69957320, 69958684, 69961812, 69962888, 69964840, 69965848, 69965972, 69966228, 69968528, 69969252, + 69969080, 69968724, 69970196, 69969716, 69969888, 69970532, 69967824, 69967952, 69967564, 69967904, 69967848, 69967588, 69967500, 69966760, 69967660, 69968544, 69968168, 69966496, 69965724, 69965868, + 69965816, 69966268, 69968824, 69969272, 69968828, 69969344, 69969496, 69968924, 69969160, 69970168, 69970320, 69969004, 69969592, 69969720, 69970316, 69969928, 69969808, 69969612, 69969896, 69970544, + 69970444, 69971520, 69974856, 69972324, 69973136, 69974292, 69975128, 69976984, 69976008, 69975604, 69974656, 69975084, 69974348, 69973416, 69972924, 69972828, 69972744, 69972144, 69971712, 69971752, + 69972212, 69973544, 69973784, 69975728, 69975584, 69979180, 69981700, 69986452, 69987628, 69988032, 69985860, 69985764, 69985400, 69984384, 69983756, 69983760, 69983452, 14680064, 14680064, 14680064, + }, + 100: []int64{69963068, 69962232, 69962076, 69962484, 69963332, 69962460, 69962284, 69961492, 69962064, 69961940, 69960848, 69963564, 69965540, 69964756, 69967632, 69967936, 69967904, 69969332, 69969792, 69970912, + 69972048, 69971304, 69971508, 69971548, 69972064, 69972608, 69971052, 69969968, 69968996, 69969416, 69969212, 69968836, 69969444, 69968496, 69969572, 69969964, 69969912, 69970156, 69967196, 69967908, + 69967208, 69971704, 69970876, 69970952, 69971680, 69971172, 69970660, 69970884, 69971432, 69971980, 69971460, 69972160, 69971432, 69971556, 69971820, 69971812, 69971924, 69971856, 69972396, 69972084, + 69972636, 69975972, 69976760, 69974320, 69975224, 69976312, 69977512, 69978932, 69978144, 69976904, 69976420, 69976648, 69976040, 69975928, 69975108, 69974296, 69974592, 69973736, 69973496, 69973216, + 69973868, 69974892, 69977532, 69976804, 69981496, 69980680, 69985564, 69988184, 69988860, 69988992, 69989032, 69987924, 69987492, 69986820, 69984960, 69985268, 69985340, 14680064, 14680064, 14680064, + }, + 102: []int64{3492918, 3493174, 3492757, 3492740, 3493216, 3493191, 3493195, 3493207, 3493435, 3493248, 3492551, 3493147, 3493026, 3492751, 3492580, 3492757, 3492723, 3492774, 3492555, 3493055, + 3492784, 3492681, 3493216, 3492830, 3492892, 3492948, 3493046, 3493060, 3493087, 3492704, 3492637, 3492534, 3492642, 3492200, 3491916, 3492401, 3492365, 3492496, 3492244, 3492346, + 3492494, 3492328, 3492643, 3492845, 3492800, 3492768, 3492817, 3492966, 3492993, 3492775, 3492814, 3492854, 3492624, 3492659, 3492556, 3492909, 3492991, 3492511, 3492570, 3492676, + 3493124, 3493161, 3492891, 3492730, 3492821, 3492603, 3492387, 3492922, 3492765, 3492628, 3492580, 3492887, 3493048, 3492725, 3492645, 3492413, 3492408, 3492389, 3492519, 3492265, + 3492381, 3492345, 3492567, 3492055, 3492620, 3492210, 3492316, 3492033, 3491852, 3492023, 3492222, 3492334, 3492414, 3492141, 3492333, 3492270, 3492054, 99800, 99966, 100021, + }, + 103: []int64{3491848, 3492168, 3491848, 3491912, 3492200, 3492136, 3492088, 3491976, 3492280, 3492072, 3491768, 3491880, 3491992, 3491736, 3491608, 3491704, 3491720, 3491688, 3491400, 3492008, + 3491704, 3491496, 3491944, 3491672, 3491816, 3491640, 3491864, 3492152, 3491896, 3491336, 3491176, 3491016, 3491640, 3491112, 3490792, 3491272, 3491448, 3491592, 3491192, 3491352, + 3491320, 3491480, 3491416, 3491848, 3491864, 3491528, 3491832, 3491544, 3491624, 3491720, 3491656, 3491656, 3491464, 3491624, 3491608, 3492024, 3491960, 3491688, 3491112, 3491496, + 3491928, 3492040, 3491688, 3491400, 3491480, 3491528, 3491352, 3492152, 3491736, 3491348, 3491540, 3491764, 3491956, 3491508, 3491412, 3491316, 3491348, 3491460, 3491508, 3491348, + 3491172, 3491092, 3491288, 3490760, 3491264, 3491200, 3490984, 3490696, 3490568, 3490648, 3490824, 3491256, 3491240, 3491064, 3491192, 3491240, 3490744, 99416, 99752, 99704, + }, + 104: []int64{3494248, 3494072, 3493528, 3493720, 3494312, 3494168, 3494232, 3494216, 3494440, 3494360, 3493752, 3494504, 3494296, 3493784, 3493864, 3494424, 3493848, 3494056, 3493704, 3494152, + 3494024, 3493976, 3494216, 3493864, 3493912, 3494104, 3494264, 3494168, 3494248, 3493736, 3493960, 3494008, 3493464, 3493352, 3493128, 3493672, 3493528, 3493336, 3493336, 3493304, + 3493496, 3493288, 3493720, 3494040, 3493896, 3494104, 3494120, 3494264, 3494280, 3493880, 3493896, 3493928, 3493832, 3493720, 3493592, 3493816, 3493912, 3493496, 3493912, 3493672, + 3494024, 3494168, 3494264, 3493768, 3493832, 3493544, 3493480, 3494008, 3493768, 3493700, 3493556, 3493988, 3494212, 3494020, 3493828, 3493748, 3493476, 3493364, 3493556, 3493188, + 3493604, 3493576, 3493864, 3492936, 3493728, 3493120, 3493336, 3493016, 3492952, 3493080, 3493336, 3493352, 3493448, 3493144, 3493640, 3493320, 3493560, 100088, 100312, 100392, + }, + 105: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 106: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 107: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 108: []int64{254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, + 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, + 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, + 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, + 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 254812160, 14680064, 14680064, 14680064, + }, + 109: []int64{72669509, 72669222, 72668798, 72669432, 72669934, 72669814, 72668820, 72668626, 72669167, 72669100, 72667309, 72669518, 72671803, 72671876, 72674528, 72674987, 72675130, 72675893, 72677596, 72678840, + 72679130, 72678625, 72679555, 72679104, 72679477, 72680094, 72677130, 72677211, 72676337, 72676877, 72676613, 72676430, 72676661, 72675813, 72676695, 72677409, 72677011, 72676365, 72674592, 72674894, + 72674587, 72677618, 72677960, 72677989, 72678323, 72678753, 72677997, 72677835, 72677884, 72678533, 72678783, 72678153, 72678332, 72678647, 72679004, 72678684, 72678613, 72678731, 72678783, 72678797, + 72679536, 72682196, 72683921, 72681372, 72682292, 72682820, 72684300, 72686184, 72685409, 72684595, 72683952, 72683983, 72683356, 72682772, 72682415, 72681736, 72681594, 72680926, 72680580, 72680310, + 72681090, 72682132, 72684368, 72684699, 72688731, 72688798, 72693599, 72696711, 72697646, 72697938, 72696678, 72696250, 72695584, 72694773, 72693560, 72693871, 72693294, 14715452, 14715452, 14715452, + }, + 111: []int64{30656722, 31076179, 30770388, 30592011, 30996556, 30532182, 30390123, 30352947, 30675033, 31077121, 31877885, 31308104, 30952698, 30718327, 30548242, 30083717, 31245735, 30332823, 30207174, 30364905, + 30279320, 31032211, 32115237, 32021915, 30972413, 30812060, 30826516, 30672099, 30929837, 30838081, 30966531, 30490329, 30788887, 30599961, 32589503, 31589096, 31232156, 31685175, 31359139, 30879847, + 31365331, 31837189, 30903611, 30615977, 30361114, 31113485, 32588192, 31584467, 31259797, 31681825, 31810135, 31252656, 32144658, 31630300, 31588314, 31299303, 30411427, 31516131, 32632526, 31501616, + 30845373, 30970138, 30053117, 30947587, 31970379, 31453594, 31041957, 30678159, 30610308, 31591595, 32223776, 31467215, 30827138, 31322148, 31453916, 31040880, 31097992, 30641493, 31552559, 31244155, + 31054060, 31418432, 32604574, 31275788, 31245161, 31354098, 31005407, 30914706, 31448268, 30663530, 31529169, 32255806, 30915270, 31310240, 33316725, 31639878, 31426836, 4947895, 4803891, 4987044, + }, + 112: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 138: []int64{2230, 2625, 2415, 2525, 2444, 2452, 2567, 2789, 2390, 2748, 2639, 2602, 2475, 2902, 2513, 2845, 2500, 2471, 2566, 2865, + 2526, 2841, 2714, 2647, 2494, 2871, 2693, 2910, 2601, 2731, 2697, 2840, 2662, 3119, 3002, 2612, 2718, 3016, 2735, 2919, + 2864, 2973, 2713, 2782, 2290, 2544, 2365, 2346, 2323, 2851, 3113, 2561, 4712, 2480, 2570, 2801, 2484, 3698, 2650, 2606, + 2280, 2781, 2703, 2796, 2532, 2595, 2507, 2814, 2586, 3219, 2737, 2762, 2744, 2960, 2701, 2893, 2488, 2716, 3324, 2887, + 2641, 3578, 2718, 2797, 2781, 2970, 2637, 2917, 2638, 2763, 2521, 3081, 2977, 3492, 2563, 2511, 2277, 573, 296, 401, + }, + 139: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 152: []int64{1504328, 1575229, 1508808, 1539050, 1521242, 1501829, 1575085, 1588140, 1552456, 1612624, 1639628, 1537009, 1757880, 1629266, 1527363, 1627738, 1527973, 1533938, 1570509, 1570986, + 1567765, 1572046, 1611014, 1541704, 1585722, 1563972, 1559854, 1705802, 1580902, 1568416, 1592145, 1537276, 1605016, 1667988, 1727917, 1565331, 2161135, 1638339, 1562243, 1661089, + 1584488, 1584636, 1629115, 1601832, 1541515, 1597786, 1614639, 1601248, 1554451, 1760051, 2052848, 1585702, 3227857, 1567160, 1637085, 1542094, 1563545, 3143052, 1671157, 1556602, + 1595426, 1539979, 1573539, 1627501, 1602214, 1524304, 1528918, 1558122, 1587828, 2854876, 1617354, 1588144, 1562083, 1557448, 1583029, 1592644, 1552987, 1506212, 2721076, 1575108, + 1580946, 3205255, 1625244, 1557114, 1644929, 1716253, 1653792, 1612237, 1629766, 1748134, 1720512, 1606758, 1851552, 2960837, 1868642, 1616094, 1552098, 588169, 567729, 571114, + }, + 153: []int64{1210, 1210, 1212, 1214, 1206, 1224, 1224, 1202, 1190, 1332, 1260, 1186, 1256, 1292, 1290, 1238, 1256, 1204, 1280, 1200, + 1232, 1208, 1238, 1212, 1212, 1232, 1206, 1242, 1188, 1256, 1218, 1214, 1194, 1290, 1218, 1186, 1254, 1216, 1194, 1242, + 1202, 1212, 1316, 1230, 1180, 1262, 1730, 1204, 1238, 1222, 1204, 1376, 1418, 1238, 1208, 1218, 1208, 5360, 1204, 1222, + 1192, 1192, 1220, 1327, 1178, 1224, 1218, 1240, 1188, 5604, 1210, 1224, 1203, 1244, 1244, 1210, 1244, 1206, 1234, 1180, + 1226, 5422, 1268, 1188, 1216, 1222, 1196, 1200, 1240, 1198, 1208, 1206, 1254, 5459, 1234, 1180, 1388, 0, 0, 0, + }, + 157: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 159: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, +} + +var ClusterMetricData = map[int32][]int64{ + 6: []int64{2660, 2642, 2704, 2653, 2610, 2679, 2637, 2688, 2575, 2703, 2546, 2629, 2689, 2653, 2564, 2717, 2545, 2613, 2672, 2767, + 2549, 2648, 2535, 2618, 2693, 2635, 2584, 2684, 2585, 2770, 2655, 2721, 2665, 2804, 2563, 2920, 2718, 2661, 2741, 2731, + 2617, 2692, 2716, 2627, 2612, 2725, 2536, 2705, 2757, 2741, 2574, 3086, 2513, 2748, 2689, 2678, 3847, 2742, 2552, 2672, + 2731, 2667, 2717, 2727, 2570, 2687, 2650, 2702, 3887, 2694, 2583, 2679, 2687, 2690, 2664, 2668, 2592, 2809, 2669, 2610, + 3783, 2672, 2576, 2705, 2693, 2768, 2665, 2764, 2666, 2684, 2743, 2721, 3745, 2817, 2626, 2643}, + 98: []int64{80966231, 80972025, 80967147, 80971805, 80971461, 80960856, 80971698, 80968629, 80966792, 80968280, 80965688, 80968160, 80972184, 80967234, 80974374, 80973069, 80969175, 80972462, 80974107, 80971158, + 80973760, 80971466, 80972732, 80976757, 80968959, 80978902, 80973979, 80970096, 80972837, 80971344, 80970522, 80978912, 80973926, 80974815, 80982004, 80972623, 80975529, 80975408, 80974234, 80981847, + 80980402, 80980768, 80982646, 80978686, 80982500, 80984391, 80977749, 80983381, 80981437, 80983425, 80983920, 80977214, 80980461, 80983718, 80975363, 80982565, 80988168, 80977604, 80981236, 80977706, + 80983249, 80985807, 80977272, 80983595, 80987325, 80979731, 80987109, 80984116, 80986864, 80984657, 80983357, 80984733, 80983009, 80974655, 80981406, 80980158, 80977819, 80984935, 80980954, 80983489, + 80994774, 80985680, 80987050, 80996748, 80987352, 80996335, 80992486, 80991240, 80998195, 80990395, 80995222, 80997350, 80996714, 80992828, 80995344, 80991168}, + 29: []int64{73268364, 73268360, 73268358, 73268390, 73268427, 73268473, 73268419, 73268500, 73268407, 73268923, 73268921, 73269517, 73269343, 73269023, 73269710, 73268886, 73269368, 73269205, 73268503, 73268660, + 73268870, 73268673, 73268345, 73268344, 73268321, 73268895, 73268583, 73268411, 73268513, 73268571, 73268623, 73268251, 73268411, 73268306, 73268250, 73268253, 73268309, 73268317, 73269368, 73271047, + 73269682, 73268469, 73268720, 73268828, 73269641, 73269243, 73268832, 73269108, 73269050, 73268848, 73268895, 73268571, 73268889, 73268510, 73268253, 73268887, 73268927, 73268972, 73268729, 73268308, + 73268357, 73268252, 73268253, 73268572, 73268261, 73268299, 73268252, 73269763, 73269479, 73268300, 73268898, 73269226, 73268552, 73268331, 73268615, 73268571, 73268839, 73268481, 73268792, 73269221, + 73268894, 73269185, 73269022, 73272474, 73273345, 73276979, 73277015, 73277311, 73277095, 73277128, 73276683, 73276603, 73276938, 73276502, 73276687, 73276890}, + 33: []int64{14802617, 14334048, 14652589, 14878941, 14109341, 14296412, 14128174, 14512681, 15409736, 15727532, 15005265, 14784211, 14444092, 14427274, 14440723, 14999719, 14227289, 14192172, 14367760, 14124191, + 15086676, 16296614, 15694711, 14773850, 14615508, 14579159, 14913646, 14818759, 14431242, 14649121, 14070432, 14769608, 14726241, 16565988, 15190989, 15156258, 15454480, 15236560, 14920029, 15467985, + 15690148, 14625978, 14627532, 14433452, 15056912, 16335706, 15852718, 15089894, 15188408, 15779104, 15033057, 15910760, 15677495, 15311713, 14893944, 14156923, 15382805, 16640532, 15618825, 14590669, + 14815275, 13882064, 15580462, 16066677, 15450425, 14709417, 14396746, 14410821, 15454994, 16150884, 15504171, 14596072, 15298748, 15116741, 14893971, 15254242, 14718071, 15552055, 15301147, 14657525, + 15188266, 16529916, 15247158, 14850729, 15175486, 14894463, 14965769, 15417648, 14307234, 15317129, 16306939, 14662144, 15226145, 17060333, 15423605, 15096561}, + 49: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 90: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + 7: []int64{1419, 1426, 1412, 1413, 1408, 1472, 1426, 1462, 1424, 1447, 1403, 1433, 1429, 1420, 1395, 1447, 1396, 1406, 1413, 1432, + 1420, 1425, 1411, 1432, 1437, 1444, 1407, 1448, 1450, 1477, 1431, 1451, 1437, 1403, 1459, 1478, 1452, 1447, 1446, 1410, + 1441, 1445, 1415, 1433, 1435, 1458, 1419, 1441, 1476, 1310, 1482, 1451, 1458, 1455, 1428, 1446, 1443, 1436, 1449, 1422, + 1394, 1424, 1402, 1417, 1410, 1419, 1432, 1446, 1421, 1440, 1430, 1406, 1463, 1448, 1446, 1432, 1435, 1465, 1484, 1443, + 1451, 1414, 1446, 1412, 1429, 1442, 1424, 1497, 1458, 1490, 1463, 1533, 1482, 1473, 1468, 1467, 294, 294, 293, 0, + }, + 8: []int64{7702, 6548, 8268, 6700, 7397, 6790, 7898, 6476, 6905, 6238, 7278, 6627, 7807, 5958, 6792, 6036, 6789, 6141, 7983, 7889, + 6401, 5709, 6512, 5807, 7728, 5975, 6809, 6144, 7257, 8149, 7885, 6501, 8131, 7308, 6462, 8264, 8044, 6631, 7954, 7046, + 7166, 6704, 7344, 6438, 6346, 6730, 6478, 6916, 7791, 6944, 6179, 7985, 6202, 6726, 8141, 6854, 9215, 6561, 6467, 6547, + 7569, 6386, 7388, 7036, 6134, 6651, 7371, 6545, 11069, 6235, 6345, 6048, 8274, 6422, 7397, 6544, 6905, 7577, 7600, 5693, + 8974, 6178, 6603, 6656, 7968, 7048, 7406, 6370, 7129, 5815, 7886, 6045, 8873, 6834, 7219, 6213, 1852, 583, 753, 0, + }, + 9: []int64{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, + }, + 15: []int64{16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, + 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, + 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, + 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, + 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 16008, 4608, 4608, 4608, 0, + }, + 17: []int64{1855, 1834, 1862, 1838, 1821, 1849, 1840, 1848, 1815, 1852, 1785, 1825, 1867, 1838, 1792, 1869, 1785, 1816, 1863, 1889, + 1805, 1827, 1782, 1819, 1871, 1824, 1805, 1853, 1808, 1897, 1850, 1870, 1869, 1895, 1795, 1964, 1888, 1840, 1883, 1873, + 1820, 1852, 1876, 1827, 1830, 1875, 1783, 1860, 1907, 1884, 1807, 2046, 1773, 1888, 1865, 1850, 2686, 1882, 1787, 1846, + 1887, 1844, 1868, 1871, 1811, 1853, 1844, 1857, 2700, 1856, 1804, 1854, 1871, 1853, 1839, 1846, 1812, 1915, 1855, 1819, + 2646, 1849, 1798, 1855, 1872, 1891, 1853, 1894, 1852, 1855, 1890, 1876, 2635, 1918, 1830, 1827, 560, 424, 451, 0, + }, + 18: []int64{2745, 2574, 2728, 2623, 2638, 2583, 2711, 2612, 2594, 2616, 2601, 2536, 2746, 2556, 2605, 2627, 2593, 2500, 2714, 2551, + 2718, 2599, 2578, 2556, 2754, 2559, 2623, 2636, 2605, 2741, 2728, 2596, 2758, 2718, 2626, 2855, 2783, 2582, 2791, 2663, + 2683, 2619, 2764, 2556, 2648, 2642, 2580, 2626, 2764, 2686, 2677, 2974, 2597, 2663, 2737, 2633, 3805, 2649, 2633, 2613, + 2760, 2622, 2757, 2680, 2623, 2607, 2699, 2602, 3839, 2600, 2643, 2570, 2757, 2608, 2675, 2572, 2619, 2680, 2749, 2580, + 3712, 2635, 2619, 2597, 2783, 2681, 2684, 2702, 2718, 2585, 2802, 2617, 3739, 2738, 2666, 2565, 532, 386, 412, 0, + }, + 19: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, + }, + 20: []int64{8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2, 0, + }, + 21: []int64{196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 4, 4, 4, 0, + }, + 22: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 27: []int64{29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, + 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, + 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, + 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, + 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 29682, 131, 131, 131, 0, + }, + 30: []int64{73268344, 73268280, 73268276, 73268344, 73268348, 73268280, 73268164, 73268236, 73268168, 73268232, 73268152, 73268232, 73268164, 73268236, 73268164, 73268244, 73268232, 73268232, 73268260, 73268256, + 73268328, 73268324, 73268256, 73268324, 73268232, 73268232, 73268232, 73268232, 73268232, 73268152, 73268164, 73268232, 73268232, 73268232, 73268164, 73268232, 73268164, 73268232, 73268236, 73271020, + 73268232, 73268236, 73268168, 73268232, 73268232, 73268236, 73268164, 73268232, 73268232, 73268232, 73268232, 73268232, 73268232, 73268232, 73268232, 73268232, 73268432, 73268396, 73268244, 73268232, + 73268232, 73268164, 73268232, 73268232, 73268236, 73268232, 73268232, 73268232, 73268232, 73268164, 73268232, 73269180, 73268232, 73268232, 73268232, 73268428, 73268248, 73268244, 73268232, 73268244, + 73268244, 73268180, 73268244, 73268248, 73272328, 73274396, 73276432, 73276432, 73276444, 73276424, 73276424, 73276424, 73276424, 73276344, 73276424, 73276424, 14890228, 14890228, 14890240, 0, + }, + 31: []int64{73268368, 73268372, 73268372, 73268568, 73269088, 73269596, 73270732, 73271360, 73270648, 73270648, 73271360, 73271128, 73270648, 73270652, 73271360, 73272952, 73270648, 73271460, 73270744, 73270744, + 73271452, 73270824, 73268432, 73268356, 73268928, 73270736, 73270736, 73270648, 73270976, 73270732, 73270648, 73268256, 73270648, 73268972, 73268300, 73268260, 73268648, 73268960, 73271048, 73271116, + 73272952, 73270492, 73270652, 73271360, 73272480, 73271084, 73271364, 73270652, 73270648, 73271360, 73271080, 73270648, 73270648, 73270168, 73268260, 73270840, 73271560, 73271136, 73270904, 73268840, + 73269812, 73268340, 73268256, 73270652, 73268344, 73268968, 73268260, 73273700, 73273612, 73268984, 73271852, 73269560, 73271360, 73269444, 73270892, 73270344, 73271104, 73271008, 73270988, 73271360, + 73271312, 73270796, 73273624, 73275220, 73274936, 73279560, 73278936, 73279296, 73278852, 73279436, 73278840, 73278840, 73279544, 73276620, 73278848, 73280600, 14890312, 14890240, 14891172, 0, + }, + 34: []int64{13573636, 13002248, 13232404, 13175356, 13275844, 13230176, 13127300, 13568144, 13612048, 14592480, 13627248, 13985164, 13411512, 13174864, 12907024, 13597756, 13035444, 13325464, 12784236, 13117220, + 14368280, 14369512, 14242768, 13654828, 13504268, 13671344, 13702612, 13565052, 13809900, 14009700, 13128836, 13452396, 13911836, 15183136, 14288752, 13997060, 14624404, 13999096, 13946744, 14215416, + 14398652, 13538060, 12956208, 13435088, 14117772, 13809576, 14619364, 14017428, 14045920, 14123604, 13776464, 14910084, 14461688, 14374812, 13518124, 13266716, 13290340, 15790532, 14513540, 13337576, + 13707496, 12310184, 14176152, 14751044, 14524840, 13523504, 13161340, 13209344, 14672408, 14764948, 14025352, 13578740, 13831184, 13996332, 14060404, 13740364, 13589484, 14216632, 13945008, 13504136, + 14340892, 14902536, 14285608, 13537676, 14050268, 12958476, 14072020, 13737044, 13660844, 14156448, 15279864, 13640448, 14496604, 15288784, 14111028, 13936984, 4518340, 4622284, 4559412, 0, + }, + 35: []int64{16451724, 15740832, 16075320, 16662552, 14687076, 15559032, 15035376, 15928468, 17382060, 17301940, 16063212, 15857696, 15416452, 15831532, 16184788, 16503796, 15361564, 15465240, 15591476, 15277916, + 16013604, 18002948, 16912700, 16135880, 16086316, 15500396, 17031640, 16554584, 15236076, 15360668, 15132064, 17019276, 16012024, 17925268, 16065972, 16684352, 16621572, 16073528, 16623412, 17827680, + 16495588, 15456200, 16758360, 15778444, 16543684, 18657400, 18034944, 16920652, 16651804, 17215456, 17034072, 17876912, 17218256, 16420608, 16388500, 14953544, 17862656, 17755284, 17335396, 15667204, + 16453040, 15328760, 17585044, 17356552, 16685544, 15928732, 15615012, 15483988, 16272684, 17680048, 17019220, 15510164, 16777088, 16537912, 15886852, 16338096, 15759460, 16660716, 17019064, 15951896, + 16177416, 18331856, 16097232, 15953764, 16517084, 16434732, 16266236, 16630780, 15445868, 16788272, 17628480, 16335328, 16473208, 18507932, 17039820, 17177604, 5901968, 5127288, 5483576, 0, + }, + 37: []int64{1133164, 1133556, 1132948, 1132536, 1132687, 1133608, 1133749, 1133162, 1133226, 1135034, 1132928, 1130504, 1130466, 1127930, 1127539, 1127419, 1126692, 1125126, 1123936, 1123639, + 1124080, 1123182, 1123585, 1123228, 1122690, 1125536, 1125400, 1126177, 1125636, 1125881, 1126043, 1125876, 1126648, 1125743, 1125018, 1125371, 1125976, 1127658, 1127351, 1127686, + 1124517, 1124154, 1124262, 1124115, 1123758, 1124131, 1124254, 1124213, 1123537, 1123298, 1123893, 1123808, 1123529, 1123294, 1123588, 1123590, 1123511, 1123305, 1123449, 1122702, + 1120122, 1118483, 1120873, 1120026, 1119508, 1118141, 1116332, 1117074, 1117943, 1118530, 1118493, 1119064, 1119641, 1119993, 1120578, 1120717, 1121297, 1121658, 1121876, 1121164, + 1120189, 1118066, 1117956, 1117838, 1118358, 1117828, 1115200, 1114318, 1114018, 1115218, 1115605, 1116157, 1116889, 1118043, 1117833, 1118344, 0, 0, 0, 0, + }, + 38: []int64{1132264, 1132876, 1132384, 1131660, 1131872, 1132060, 1133136, 1132780, 1132640, 1133488, 1131120, 1129464, 1129632, 1126672, 1127056, 1126920, 1125480, 1124752, 1123396, 1122604, + 1122968, 1122800, 1123056, 1122520, 1122064, 1123224, 1125052, 1125684, 1125204, 1125464, 1125496, 1125228, 1125624, 1125508, 1124612, 1124848, 1124632, 1127172, 1126804, 1127332, + 1124032, 1123832, 1123756, 1123700, 1123444, 1123928, 1123924, 1123364, 1122904, 1123072, 1123112, 1123276, 1123036, 1123052, 1123296, 1122964, 1123380, 1122864, 1122680, 1122496, + 1118300, 1117848, 1120032, 1119496, 1117980, 1117040, 1115356, 1116388, 1117464, 1118092, 1118000, 1118240, 1119296, 1119428, 1120028, 1119716, 1120656, 1120840, 1121528, 1120408, + 1119624, 1117096, 1117664, 1117132, 1117776, 1116904, 1114352, 1113940, 1113740, 1113848, 1115252, 1115068, 1116460, 1117764, 1117288, 1117388, 0, 0, 0, 0, + }, + 39: []int64{1134064, 1133888, 1133276, 1133192, 1133524, 1134976, 1134692, 1133616, 1133920, 1136052, 1135580, 1131236, 1130960, 1129384, 1127876, 1128104, 1127552, 1125508, 1124832, 1124620, + 1125204, 1123664, 1124280, 1123960, 1123272, 1126440, 1125924, 1126524, 1126032, 1126188, 1126616, 1126588, 1127508, 1126272, 1125348, 1126056, 1127596, 1128352, 1128132, 1128284, + 1125216, 1124744, 1124736, 1124616, 1124636, 1124380, 1124460, 1124596, 1124072, 1123452, 1124528, 1124260, 1123956, 1123600, 1123916, 1124012, 1123756, 1123820, 1123672, 1123008, + 1122752, 1119104, 1121480, 1120868, 1119976, 1119144, 1117272, 1117404, 1118668, 1119372, 1118868, 1119612, 1119992, 1120568, 1121432, 1121404, 1121876, 1121984, 1122428, 1121896, + 1120704, 1119616, 1118340, 1119168, 1118960, 1118660, 1115880, 1114716, 1114284, 1116084, 1116240, 1116992, 1117680, 1118596, 1118360, 1118904, 0, 0, 0, 0, + }, + 41: []int64{1055673, 1055611, 1055552, 1055515, 1055476, 1055412, 1055381, 1055362, 1055339, 1055315, 1054702, 1054162, 1053129, 1053072, 1053034, 1053001, 1052964, 1052902, 1053140, 1053065, + 1052986, 1052956, 1052937, 1053154, 1053106, 1053207, 1053163, 1053114, 1053076, 1053048, 1053021, 1052985, 1052934, 1052884, 1052877, 1053076, 1053086, 1053020, 1052979, 1052925, + 1052908, 1052834, 1052773, 1052745, 1052715, 1052707, 1052783, 1052930, 1052939, 1052823, 1052902, 1052858, 1052810, 1052757, 1052723, 1052703, 1052680, 1052659, 1052649, 1052844, + 1052912, 1052870, 1052881, 1052877, 1052824, 1052791, 1052763, 1052717, 1052664, 1052715, 1052572, 1052357, 1052434, 1052378, 1052343, 1052500, 1052423, 1052385, 1052362, 1052328, + 1052257, 1051141, 1050565, 1050688, 1050780, 1050854, 1050744, 1050700, 1050671, 1050642, 1050621, 1050643, 1050660, 1050640, 1050610, 1050777, 0, 0, 0, 0, + }, + 42: []int64{1055544, 1055588, 1055528, 1055500, 1055440, 1055388, 1055376, 1055348, 1055328, 1055304, 1054396, 1052844, 1053096, 1053052, 1053016, 1052988, 1052920, 1052896, 1053104, 1053060, + 1052976, 1052948, 1052932, 1052864, 1053084, 1053024, 1053136, 1053100, 1053060, 1053032, 1053012, 1052968, 1052892, 1052880, 1052864, 1052844, 1053060, 1053004, 1052944, 1052912, + 1052788, 1052812, 1052760, 1052732, 1052708, 1052704, 1052684, 1052716, 1052880, 1052808, 1052780, 1052844, 1052784, 1052740, 1052712, 1052692, 1052664, 1052652, 1052644, 1052640, + 1052896, 1052852, 1052808, 1052852, 1052808, 1052784, 1052748, 1052704, 1052656, 1052632, 1052176, 1052164, 1052408, 1052364, 1052320, 1052444, 1052396, 1052368, 1052344, 1052312, + 1052244, 1050592, 1050528, 1050524, 1050756, 1050812, 1050736, 1050684, 1050656, 1050632, 1050616, 1050572, 1050648, 1050632, 1050604, 1050588, 0, 0, 0, 0, + }, + 43: []int64{1056120, 1055628, 1055588, 1055528, 1055500, 1055432, 1055388, 1055376, 1055348, 1055328, 1055308, 1054744, 1053152, 1053096, 1053052, 1053016, 1052988, 1052916, 1053220, 1053072, + 1053000, 1052968, 1052948, 1053416, 1053128, 1053340, 1053208, 1053136, 1053100, 1053056, 1053028, 1053008, 1052964, 1052892, 1052884, 1053172, 1053112, 1053040, 1053000, 1052940, + 1053068, 1052856, 1052792, 1052752, 1052724, 1052708, 1053040, 1053028, 1052968, 1052844, 1052988, 1052876, 1052832, 1052780, 1052732, 1052712, 1052692, 1052664, 1052652, 1052976, + 1052924, 1052892, 1053072, 1052904, 1052840, 1052800, 1052780, 1052728, 1052668, 1052884, 1052676, 1052504, 1052468, 1052404, 1052364, 1052556, 1052444, 1052392, 1052368, 1052348, + 1052308, 1052236, 1050592, 1050860, 1050808, 1050944, 1050752, 1050724, 1050680, 1050648, 1050624, 1050824, 1050672, 1050648, 1050612, 1050948, 0, 0, 0, 0, + }, + 91: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 92: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 99: []int64{80955148, 80960404, 80957508, 80955548, 80957400, 80950612, 80956196, 80958740, 80954664, 80951436, 80955712, 80955416, 80957924, 80959820, 80956868, 80955900, 80960360, 80957508, 80957732, 80957688, + 80959004, 80958536, 80957416, 80963656, 80959360, 80961324, 80960448, 80959620, 80957772, 80962312, 80959300, 80965516, 80958040, 80961036, 80967952, 80962692, 80961740, 80960276, 80962328, 80963768, + 80969220, 80964288, 80966832, 80969276, 80967472, 80966404, 80967664, 80968120, 80969608, 80970192, 80967012, 80963952, 80963904, 80968148, 80969840, 80968256, 80971992, 80965796, 80967800, 80969552, + 80967412, 80971864, 80966940, 80966896, 80972116, 80967868, 80969156, 80971276, 80972072, 80968776, 80973300, 80966892, 80966320, 80968164, 80967288, 80966168, 80966892, 80971512, 80967080, 80970084, + 80979524, 80974924, 80972848, 80981664, 80977260, 80979240, 80982364, 80978940, 80979776, 80982316, 80979048, 80983128, 80978060, 80978928, 80982384, 80981824, 18079872, 18080924, 18080340, 0, + }, + 100: []int64{80996308, 81003320, 80991996, 81001012, 81007940, 80983840, 81010980, 80990568, 81003736, 81002540, 80987020, 80990684, 81000464, 80989804, 81013404, 81007044, 80992728, 81003756, 80996512, 81009852, + 81003316, 80996392, 80995840, 81005208, 80991676, 81015008, 81001284, 80992808, 80998680, 81006744, 81000124, 81007504, 81013256, 81010716, 81011904, 80995596, 81007392, 80999712, 80999676, 81005240, + 81000508, 81020312, 81008460, 81006528, 81001688, 81017056, 80995256, 81012348, 81003216, 81018092, 81018360, 81002940, 81017784, 81031588, 80990180, 81009528, 81020616, 81019428, 81003884, 81001308, + 81025468, 81010316, 80994628, 81013328, 81019276, 80998984, 81018968, 81005740, 81025968, 81007368, 81007112, 81017240, 81017928, 80988336, 81018752, 81007952, 81019756, 81022204, 81003308, 81016856, + 81021608, 81015380, 81012848, 81022628, 81009976, 81023636, 81018212, 81020392, 81021388, 81007928, 81025372, 81028804, 81037136, 81019656, 81018072, 81023468, 18107732, 18088460, 18093904, 0, + }, + 102: []int64{3493174, 3492757, 3492740, 3493216, 3493191, 3493195, 3493207, 3493435, 3493248, 3492551, 3493147, 3493026, 3492751, 3492580, 3492757, 3492723, 3492774, 3492555, 3493055, 3492784, + 3492681, 3493216, 3492830, 3492892, 3492948, 3493046, 3493060, 3493087, 3492704, 3492637, 3492534, 3492642, 3492200, 3491916, 3492401, 3492365, 3492496, 3492244, 3492346, 3492494, + 3492328, 3492643, 3492845, 3492800, 3492768, 3492817, 3492966, 3492993, 3492775, 3492814, 3492854, 3492624, 3492659, 3492556, 3492909, 3492991, 3492511, 3492570, 3492676, 3493124, + 3493161, 3492891, 3492730, 3492821, 3492603, 3492387, 3492922, 3492765, 3492628, 3492580, 3492887, 3493048, 3492725, 3492645, 3492413, 3492408, 3492389, 3492519, 3492265, 3492381, + 3492345, 3492567, 3492055, 3492620, 3492210, 3492316, 3492033, 3491852, 3492023, 3492222, 3492334, 3492414, 3492141, 3492333, 3492270, 3492054, 99800, 99966, 100021, 0, + }, + 103: []int64{3492168, 3491848, 3491912, 3492200, 3492136, 3492088, 3491976, 3492280, 3492072, 3491768, 3491880, 3491992, 3491736, 3491608, 3491704, 3491720, 3491688, 3491400, 3492008, 3491704, + 3491496, 3491944, 3491672, 3491816, 3491640, 3491864, 3492152, 3491896, 3491336, 3491176, 3491016, 3491640, 3491112, 3490792, 3491272, 3491448, 3491592, 3491192, 3491352, 3491320, + 3491480, 3491416, 3491848, 3491864, 3491528, 3491832, 3491544, 3491624, 3491720, 3491656, 3491656, 3491464, 3491624, 3491608, 3492024, 3491960, 3491688, 3491112, 3491496, 3491928, + 3492040, 3491688, 3491400, 3491480, 3491528, 3491352, 3492152, 3491736, 3491348, 3491540, 3491764, 3491956, 3491508, 3491412, 3491316, 3491348, 3491460, 3491508, 3491348, 3491172, + 3491092, 3491288, 3490760, 3491264, 3491200, 3490984, 3490696, 3490568, 3490648, 3490824, 3491256, 3491240, 3491064, 3491192, 3491240, 3490744, 99416, 99752, 99704, 0, + }, + 104: []int64{3494072, 3493528, 3493720, 3494312, 3494168, 3494232, 3494216, 3494440, 3494360, 3493752, 3494504, 3494296, 3493784, 3493864, 3494424, 3493848, 3494056, 3493704, 3494152, 3494024, + 3493976, 3494216, 3493864, 3493912, 3494104, 3494264, 3494168, 3494248, 3493736, 3493960, 3494008, 3493464, 3493352, 3493128, 3493672, 3493528, 3493336, 3493336, 3493304, 3493496, + 3493288, 3493720, 3494040, 3493896, 3494104, 3494120, 3494264, 3494280, 3493880, 3493896, 3493928, 3493832, 3493720, 3493592, 3493816, 3493912, 3493496, 3493912, 3493672, 3494024, + 3494168, 3494264, 3493768, 3493832, 3493544, 3493480, 3494008, 3493768, 3493700, 3493556, 3493988, 3494212, 3494020, 3493828, 3493748, 3493476, 3493364, 3493556, 3493188, 3493604, + 3493576, 3493864, 3492936, 3493728, 3493120, 3493336, 3493016, 3492952, 3493080, 3493336, 3493352, 3493448, 3493144, 3493640, 3493320, 3493560, 100088, 100312, 100392, 0, + }, + 105: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 106: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 107: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 108: []int64{100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, + 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, + 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, + 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, + 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 100443136, 33440768, 33440768, 33440768, 0, + }, + 109: []int64{72669222, 72668798, 72669432, 72669934, 72669814, 72668820, 72668626, 72669167, 72669100, 72667309, 72669518, 72671803, 72671876, 72674528, 72674987, 72675130, 72675893, 72677596, 72678840, 72679130, + 72678625, 72679555, 72679104, 72679477, 72680094, 72677130, 72677211, 72676337, 72676877, 72676613, 72676430, 72676661, 72675813, 72676695, 72677409, 72677011, 72676365, 72674592, 72674894, 72674587, + 72677618, 72677960, 72677989, 72678323, 72678753, 72677997, 72677835, 72677884, 72678533, 72678783, 72678153, 72678332, 72678647, 72679004, 72678684, 72678613, 72678731, 72678783, 72678797, 72679536, + 72682196, 72683921, 72681372, 72682292, 72682820, 72684300, 72686184, 72685409, 72684595, 72683952, 72683983, 72683356, 72682772, 72682415, 72681736, 72681594, 72680926, 72680580, 72680310, 72681090, + 72682132, 72684368, 72684699, 72688731, 72688798, 72693599, 72696711, 72697646, 72697938, 72696678, 72696250, 72695584, 72694773, 72693560, 72693871, 72693294, 14715452, 14715452, 14715452, 0, + }, + 110: []int64{96343490, 96342832, 96342800, 96342813, 96342773, 96342675, 96342782, 96342826, 96342815, 96342861, 96342789, 96341979, 96340788, 96342668, 96342873, 96342834, 96343836, 96344837, 96344957, 96344919, + 96344922, 96344913, 96344860, 96344784, 96342984, 96342845, 96342836, 96342835, 96342796, 96342736, 96342898, 96341904, 96340786, 96340814, 96340822, 96340680, 96340807, 96340771, 96340876, 96340861, + 96340790, 96342570, 96342010, 96340804, 96340866, 96340821, 96340878, 96340695, 96340747, 96340721, 96340671, 96340718, 96340694, 96340533, 96340689, 96340734, 96340601, 96342637, 96342677, 96342548, + 96341423, 96340784, 96340744, 96340733, 96340718, 96340553, 96340810, 96340796, 96338504, 96340784, 96340735, 96341365, 96342774, 96342974, 96342750, 96342740, 96342711, 96339961, 96338666, 96338781, + 96336571, 96338619, 96338627, 96338497, 96339187, 96340659, 96341191, 96340702, 96340668, 96340546, 96340669, 96340734, 96339668, 96341872, 96340711, 96340541, 31694132, 31694104, 31694086, 0, + }, + 111: []int64{35632290, 35304782, 35227097, 35519814, 35125423, 34976530, 34924498, 35243128, 35664707, 36446316, 35876655, 35535231, 35289302, 35106530, 34678142, 35814198, 34900775, 34783747, 34930870, 34849678, + 35598604, 36742932, 36565451, 35517423, 35388206, 35389394, 35231873, 35493640, 35414609, 35526398, 35058473, 35362573, 35161627, 37159410, 36158944, 35771391, 36214553, 35906735, 35450783, 35904378, + 36413394, 35474727, 35190698, 34936447, 35688174, 37181402, 36150647, 35858610, 36253248, 36363912, 35830285, 36718428, 36200915, 36164304, 35874877, 34981992, 36086876, 37201282, 36061698, 35405163, + 35497549, 34623703, 35548273, 36554619, 36022158, 35613522, 35251515, 35192877, 36187359, 36897172, 35976279, 35386235, 35895938, 36021694, 35603572, 35667641, 35231012, 36123482, 35816696, 35626919, + 35994572, 37177668, 35848603, 35831990, 35926579, 35576224, 35488252, 35996734, 35238379, 36125143, 36828845, 35485371, 35885228, 37879992, 36198896, 35990422, 6872535, 6728553, 6911962, 0, + }, + 112: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 138: []int64{2696, 2502, 2601, 2536, 2519, 2635, 2854, 2456, 2870, 2725, 2702, 2544, 3016, 2605, 2896, 2610, 2536, 2614, 2979, 2597, + 2915, 2805, 2712, 2560, 2940, 2773, 3052, 2688, 2800, 2765, 2964, 2692, 3180, 3094, 2709, 2784, 3084, 2804, 2980, 2969, + 3072, 2794, 2890, 2363, 2617, 2474, 2405, 2394, 2921, 3178, 2663, 4804, 2547, 2631, 2915, 2554, 4245, 2754, 2678, 2350, + 2891, 2771, 2865, 2622, 2703, 2574, 2899, 2658, 3804, 2875, 2813, 2824, 3045, 2767, 2961, 2576, 2811, 3421, 2954, 2718, + 4225, 2811, 2863, 2896, 3039, 2705, 2992, 2736, 2877, 2591, 3146, 3090, 4025, 2644, 2625, 2336, 580, 302, 408, 0, + }, + 139: []int64{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, + }, + 150: []int64{768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 256000, 256000, 256000, 0, + }, + 151: []int64{768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, + 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 768000, 256000, 256000, 256000, 0, + }, + 152: []int64{2213, 2079, 2147, 2099, 2074, 2207, 2243, 2166, 2281, 2328, 2138, 2557, 2312, 2132, 2297, 2117, 2136, 2198, 2207, 2191, + 2212, 2273, 2153, 2224, 2200, 2173, 2464, 2212, 2204, 2239, 2143, 2259, 2392, 2422, 2161, 3320, 2306, 2153, 2355, 2193, + 2206, 2286, 2235, 2130, 2214, 2262, 2225, 2141, 2546, 3101, 2206, 5338, 2174, 2298, 2126, 2158, 4908, 2354, 2179, 2253, + 2143, 2207, 2318, 2225, 2115, 2121, 2181, 2232, 4384, 2284, 2241, 2183, 2185, 2218, 2250, 2158, 2083, 4414, 2212, 2222, + 5061, 2300, 2184, 2339, 2374, 2237, 2267, 2241, 2396, 2467, 2248, 2686, 4545, 2561, 2263, 2135, 580, 561, 564, 0, + }, + 153: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 157: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 158: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 159: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 256: []int64{245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + }, + 257: []int64{9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + }, + 258: []int64{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + }, + 259: []int64{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + }, + 260: []int64{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + }, + 261: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 262: []int64{8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + }, + 263: []int64{227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + }, + 264: []int64{9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + }, + 265: []int64{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + }, + 266: []int64{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + }, + 267: []int64{95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + }, + 268: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 269: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 270: []int64{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + }, + 271: []int64{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + }, + 272: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 273: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 274: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 275: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 2: []int64{1662, 1651, 1690, 1658, 1631, 1674, 1648, 1680, 1609, 1689, 1591, 1643, 1680, 1658, 1602, 1698, 1590, 1633, 1670, 1729, + 1593, 1655, 1584, 1636, 1683, 1646, 1615, 1677, 1615, 1731, 1659, 1700, 1665, 1752, 1601, 1825, 1698, 1663, 1713, 1706, + 1635, 1682, 1697, 1641, 1632, 1703, 1585, 1690, 1723, 1713, 1608, 1928, 1570, 1717, 1680, 1673, 2404, 1713, 1595, 1670, + 1706, 1666, 1698, 1704, 1606, 1679, 1656, 1688, 2429, 1683, 1614, 1674, 1679, 1681, 1665, 1667, 1620, 1755, 1668, 1631, + 2364, 1670, 1610, 1690, 1683, 1730, 1665, 1727, 1666, 1677, 1714, 1700, 2340, 1760, 1641, 1651, 0, + }, + 3: []int64{886, 891, 882, 883, 880, 920, 891, 913, 890, 904, 876, 895, 893, 887, 871, 904, 872, 878, 883, 895, + 887, 890, 881, 895, 898, 902, 879, 905, 906, 923, 894, 906, 898, 876, 911, 923, 907, 904, 903, 881, + 900, 903, 884, 895, 896, 911, 886, 900, 922, 818, 926, 906, 911, 909, 892, 903, 901, 897, 905, 888, + 871, 890, 876, 885, 881, 886, 895, 903, 888, 900, 893, 878, 914, 905, 903, 895, 896, 915, 927, 901, + 906, 883, 903, 882, 893, 901, 890, 935, 911, 931, 914, 958, 926, 920, 917, 916, 183, 183, 183, 0, + }, + 4: []int64{4813, 4092, 5167, 4187, 4623, 4243, 4936, 4047, 4315, 3898, 4548, 4141, 4879, 3723, 4245, 3772, 4243, 3838, 4989, 4930, + 4000, 3568, 4070, 3629, 4830, 3734, 4255, 3840, 4535, 5093, 4928, 4063, 5081, 4567, 4038, 5165, 5027, 4144, 4971, 4403, + 4478, 4190, 4590, 4023, 3966, 4206, 4048, 4322, 4869, 4340, 3861, 4990, 3876, 4203, 5088, 4283, 5759, 4100, 4041, 4091, + 4730, 3991, 4617, 4397, 3833, 4156, 4606, 4090, 6918, 3896, 3965, 3780, 5171, 4013, 4623, 4090, 4315, 4735, 4750, 3558, + 5608, 3861, 4126, 4160, 4980, 4405, 4628, 3981, 4455, 3634, 4928, 3778, 5545, 4271, 4511, 3883, 1157, 364, 470, 0, + }, + 24: []int64{8408, 8409, 8408, 8409, 8409, 8408, 8409, 8408, 8408, 8408, 8408, 8408, 8409, 8408, 8409, 8409, 8408, 8409, 8409, 8408, + 8409, 8409, 8409, 8409, 8408, 8409, 8409, 8408, 8409, 8408, 8408, 8409, 8409, 8409, 8410, 8409, 8409, 8409, 8409, 8410, + 8409, 8409, 8410, 8409, 8410, 8410, 8409, 8410, 8410, 8410, 8410, 8409, 8409, 8410, 8409, 8410, 8410, 8409, 8409, 8409, + 8410, 8410, 8409, 8410, 8410, 8409, 8410, 8410, 8410, 8410, 8410, 8410, 8410, 8409, 8409, 8409, 8409, 8410, 8409, 8410, + 8411, 8410, 8410, 8411, 8410, 8411, 8411, 8410, 8411, 8410, 8411, 8411, 8411, 8411, 8411, 8410, 1810, 1810, 1810, 0, + }, + 25: []int64{8407, 8407, 8407, 8407, 8407, 8406, 8407, 8407, 8407, 8406, 8407, 8407, 8407, 8407, 8407, 8407, 8407, 8407, 8407, 8407, + 8407, 8407, 8407, 8408, 8407, 8407, 8407, 8407, 8407, 8407, 8407, 8408, 8407, 8407, 8408, 8408, 8407, 8407, 8407, 8408, + 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, + 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8409, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, 8408, + 8409, 8409, 8408, 8409, 8409, 8409, 8409, 8409, 8409, 8409, 8409, 8410, 8409, 8409, 8409, 8409, 1809, 1810, 1809, 0, + }, + 50: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 26: []int64{8411, 8412, 8411, 8412, 8412, 8410, 8413, 8411, 8412, 8412, 8410, 8411, 8412, 8410, 8413, 8412, 8411, 8412, 8411, 8412, + 8412, 8411, 8411, 8412, 8411, 8413, 8412, 8411, 8411, 8412, 8411, 8412, 8413, 8412, 8413, 8411, 8412, 8411, 8411, 8412, + 8411, 8413, 8412, 8412, 8412, 8413, 8411, 8413, 8412, 8413, 8413, 8412, 8413, 8415, 8410, 8412, 8413, 8413, 8412, 8412, + 8414, 8413, 8411, 8413, 8413, 8411, 8413, 8412, 8414, 8412, 8412, 8413, 8413, 8410, 8413, 8412, 8413, 8414, 8412, 8413, + 8414, 8413, 8413, 8414, 8412, 8414, 8413, 8413, 8414, 8412, 8414, 8414, 8415, 8413, 8413, 8414, 1812, 1810, 1811, 0, + }, + 51: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, +} + +var DatastoreMetricData = map[int32][]int64{ + 180: []int64{1, 5, 3, 1, 3, 39, 19, 13, 5, 0, 1, 0, 1, 1, 1, 1, 1, 1, 15, 9, + 17, 1, 2, 0, 1, 25, 0, 13, 23, 4, 26, 7, 2, 2, 480, 1, 0, 55, 2, 4, + 1, 0, 5, 6, 6, 18, 3, 155, 120, 13, 330, 7, 10, 2, 0, 247, 1, 1, 89, 1, + 22, 13, 18, 2, 11, 0, 1, 184, 4, 0, 1, 1, 0, 1, 0, 5, 595, 1, 37, 320, + 7, 9, 73, 27, 2, 7, 5, 4, 149, 0, 2, 190, 13, 14, 0, 0, 0, 0}, + 181: []int64{433, 464, 439, 426, 490, 460, 455, 510, 544, 466, 657, 526, 457, 538, 448, 456, 488, 482, 470, 479, + 506, 470, 500, 469, 479, 591, 495, 474, 483, 448, 486, 567, 553, 461, 522, 506, 455, 497, 470, 470, + 516, 485, 434, 480, 501, 477, 448, 468, 783, 473, 1630, 454, 516, 430, 457, 912, 546, 483, 424, 444, + 471, 535, 466, 445, 442, 471, 505, 738, 525, 512, 480, 463, 499, 514, 469, 424, 937, 485, 460, 920, + 528, 475, 480, 466, 445, 503, 474, 497, 452, 489, 687, 781, 555, 498, 447, 0, 0, 0}, + 187: []int64{434, 469, 442, 427, 493, 499, 474, 523, 549, 466, 658, 526, 458, 539, 449, 457, 489, 483, 485, 488, + 523, 471, 502, 469, 480, 616, 495, 487, 506, 452, 512, 574, 555, 463, 1002, 507, 455, 552, 472, 474, + 517, 485, 439, 486, 507, 495, 451, 623, 903, 486, 1960, 461, 526, 432, 457, 1159, 547, 484, 513, 445, + 493, 548, 484, 447, 453, 471, 506, 922, 529, 512, 481, 464, 499, 515, 469, 429, 1532, 486, 497, 1240, + 535, 484, 553, 493, 447, 510, 479, 501, 601, 489, 689, 971, 568, 512, 447, 0, 0, 0}, + 281: []int64{174225912, 174227200, 174230104, 174230532, 174237664, 174237600, 174239588, 174235728, 174234644, 174234904, 174235132, 174236888, 174237012, 174240640, 174240148, 174246032}, + 282: []int64{3536110027, 3536111315, 3536114219, 3536114647, 3536121779, 3536121715, 3536123703, 3536119843, 3536118759, 3536066971, 3536067199, 3536067623, 3536067747, 3536066811, 3536066319, 3536066979}, + 283: []int64{426434020, 426425152, 426411808, 426402768, 426387204, 426370512, 426355764, 426340480, 426076860, 426176184, 426064540, 426487536, 426370184, 426424376, 426320528, 426406408}, + 286: []int64{3536110027, 3536111315, 3536114219, 3536114647, 3536121779, 3536121715, 3536123703, 3536119843, 3536118759, 3536066971, 3536067199, 3536067623, 3536067747, 3536066811, 3536066319, 3536066979}, + 287: []int64{174225912, 174227200, 174230104, 174230532, 174237664, 174237600, 174239588, 174235728, 174234644, 174234904, 174235132, 174236888, 174237012, 174240640, 174240148, 174246032}, + 288: []int64{133298, 133303, 133311, 133316, 133328, 133337, 133346, 133352, 133491, 133437, 133496, 133273, 133335, 133308, 133363, 133320}, +} + +var DatacenterMetricData = map[int32][]int64{ + 256: []int64{1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, + }, + 257: []int64{833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, + 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, + 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, + 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, + 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, + }, + 258: []int64{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + }, + 259: []int64{6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + }, + 260: []int64{151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + }, + 261: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 262: []int64{353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + }, + 263: []int64{598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + }, + 264: []int64{1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + }, + 265: []int64{19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + }, + 266: []int64{16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + }, + 267: []int64{3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, + 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, + 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, + 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, + 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, + }, + 268: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 269: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 270: []int64{646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + }, + 271: []int64{34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + }, + 272: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + 273: []int64{3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, + 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, + 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, + 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, + 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, + }, + 274: []int64{124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + }, + 275: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go b/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go new file mode 100644 index 00000000..a1cce0d8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go @@ -0,0 +1,64 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import ( + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +var RootFolder = mo.Folder{ + ManagedEntity: mo.ManagedEntity{ + ExtensibleManagedObject: mo.ExtensibleManagedObject{ + Self: types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, + Value: nil, + AvailableField: nil, + }, + Parent: (*types.ManagedObjectReference)(nil), + CustomValue: nil, + OverallStatus: "green", + ConfigStatus: "green", + ConfigIssue: nil, + EffectiveRole: []int32{-1}, + Permission: []types.Permission{ + { + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, + Principal: "VSPHERE.LOCAL\\Administrator", + Group: false, + RoleId: -1, + Propagate: true, + }, + { + DynamicData: types.DynamicData{}, + Entity: &types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, + Principal: "VSPHERE.LOCAL\\Administrators", + Group: true, + RoleId: -1, + Propagate: true, + }, + }, + Name: "Datacenters", + DisabledMethod: nil, + RecentTask: nil, + DeclaredAlarmState: nil, + AlarmActionsEnabled: (*bool)(nil), + Tag: nil, + }, + ChildType: []string{"Folder", "Datacenter"}, + ChildEntity: nil, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go b/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go new file mode 100644 index 00000000..90b93cc1 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go @@ -0,0 +1,86 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import "github.com/vmware/govmomi/vim25/types" + +// ServiceContent is the default template for the ServiceInstance content property. +// Capture method: +// govc object.collect -s -dump - content +var ServiceContent = types.ServiceContent{ + RootFolder: types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, + PropertyCollector: types.ManagedObjectReference{Type: "PropertyCollector", Value: "propertyCollector"}, + ViewManager: &types.ManagedObjectReference{Type: "ViewManager", Value: "ViewManager"}, + About: types.AboutInfo{ + Name: "VMware vCenter Server", + FullName: "VMware vCenter Server 6.5.0 build-5973321", + Vendor: "VMware, Inc.", + Version: "6.5.0", + Build: "5973321", + LocaleVersion: "INTL", + LocaleBuild: "000", + OsType: "linux-x64", + ProductLineId: "vpx", + ApiType: "VirtualCenter", + ApiVersion: "6.5", + InstanceUuid: "dbed6e0c-bd88-4ef6-b594-21283e1c677f", + LicenseProductName: "VMware VirtualCenter Server", + LicenseProductVersion: "6.0", + }, + Setting: &types.ManagedObjectReference{Type: "OptionManager", Value: "VpxSettings"}, + UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "UserDirectory"}, + SessionManager: &types.ManagedObjectReference{Type: "SessionManager", Value: "SessionManager"}, + AuthorizationManager: &types.ManagedObjectReference{Type: "AuthorizationManager", Value: "AuthorizationManager"}, + ServiceManager: &types.ManagedObjectReference{Type: "ServiceManager", Value: "ServiceMgr"}, + PerfManager: &types.ManagedObjectReference{Type: "PerformanceManager", Value: "PerfMgr"}, + ScheduledTaskManager: &types.ManagedObjectReference{Type: "ScheduledTaskManager", Value: "ScheduledTaskManager"}, + AlarmManager: &types.ManagedObjectReference{Type: "AlarmManager", Value: "AlarmManager"}, + EventManager: &types.ManagedObjectReference{Type: "EventManager", Value: "EventManager"}, + TaskManager: &types.ManagedObjectReference{Type: "TaskManager", Value: "TaskManager"}, + ExtensionManager: &types.ManagedObjectReference{Type: "ExtensionManager", Value: "ExtensionManager"}, + CustomizationSpecManager: &types.ManagedObjectReference{Type: "CustomizationSpecManager", Value: "CustomizationSpecManager"}, + CustomFieldsManager: &types.ManagedObjectReference{Type: "CustomFieldsManager", Value: "CustomFieldsManager"}, + AccountManager: (*types.ManagedObjectReference)(nil), + DiagnosticManager: &types.ManagedObjectReference{Type: "DiagnosticManager", Value: "DiagMgr"}, + LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "LicenseManager"}, + SearchIndex: &types.ManagedObjectReference{Type: "SearchIndex", Value: "SearchIndex"}, + FileManager: &types.ManagedObjectReference{Type: "FileManager", Value: "FileManager"}, + DatastoreNamespaceManager: &types.ManagedObjectReference{Type: "DatastoreNamespaceManager", Value: "DatastoreNamespaceManager"}, + VirtualDiskManager: &types.ManagedObjectReference{Type: "VirtualDiskManager", Value: "virtualDiskManager"}, + VirtualizationManager: (*types.ManagedObjectReference)(nil), + SnmpSystem: &types.ManagedObjectReference{Type: "HostSnmpSystem", Value: "SnmpSystem"}, + VmProvisioningChecker: &types.ManagedObjectReference{Type: "VirtualMachineProvisioningChecker", Value: "ProvChecker"}, + VmCompatibilityChecker: &types.ManagedObjectReference{Type: "VirtualMachineCompatibilityChecker", Value: "CompatChecker"}, + OvfManager: &types.ManagedObjectReference{Type: "OvfManager", Value: "OvfManager"}, + IpPoolManager: &types.ManagedObjectReference{Type: "IpPoolManager", Value: "IpPoolManager"}, + DvSwitchManager: &types.ManagedObjectReference{Type: "DistributedVirtualSwitchManager", Value: "DVSManager"}, + HostProfileManager: &types.ManagedObjectReference{Type: "HostProfileManager", Value: "HostProfileManager"}, + ClusterProfileManager: &types.ManagedObjectReference{Type: "ClusterProfileManager", Value: "ClusterProfileManager"}, + ComplianceManager: &types.ManagedObjectReference{Type: "ProfileComplianceManager", Value: "MoComplianceManager"}, + LocalizationManager: &types.ManagedObjectReference{Type: "LocalizationManager", Value: "LocalizationManager"}, + StorageResourceManager: &types.ManagedObjectReference{Type: "StorageResourceManager", Value: "StorageResourceManager"}, + GuestOperationsManager: &types.ManagedObjectReference{Type: "GuestOperationsManager", Value: "guestOperationsManager"}, + OverheadMemoryManager: &types.ManagedObjectReference{Type: "OverheadMemoryManager", Value: "OverheadMemoryManager"}, + CertificateManager: &types.ManagedObjectReference{Type: "CertificateManager", Value: "certificateManager"}, + IoFilterManager: &types.ManagedObjectReference{Type: "IoFilterManager", Value: "IoFilterManager"}, + VStorageObjectManager: &types.ManagedObjectReference{Type: "VcenterVStorageObjectManager", Value: "VStorageObjectManager"}, + HostSpecManager: &types.ManagedObjectReference{Type: "HostSpecificationManager", Value: "HostSpecificationManager"}, + CryptoManager: &types.ManagedObjectReference{Type: "CryptoManagerKmip", Value: "CryptoManager"}, + HealthUpdateManager: &types.ManagedObjectReference{Type: "HealthUpdateManager", Value: "HealthUpdateManager"}, + FailoverClusterConfigurator: &types.ManagedObjectReference{Type: "FailoverClusterConfigurator", Value: "FailoverClusterConfigurator"}, + FailoverClusterManager: &types.ManagedObjectReference{Type: "FailoverClusterManager", Value: "FailoverClusterManager"}, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go b/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go new file mode 100644 index 00000000..7bbf0c02 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go @@ -0,0 +1,76 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import "github.com/vmware/govmomi/vim25/types" + +// Setting is captured from VC's ServiceContent.OptionManager.setting +var Setting = []types.BaseOptionValue{ + // This list is currently pruned to include sso options only with sso.enabled set to false + &types.OptionValue{ + Key: "config.vpxd.sso.sts.uri", + Value: "https://127.0.0.1/sts/STSService/vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.privateKey", + Value: "/etc/vmware-vpx/ssl/vcsoluser.key", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.name", + Value: "vpxd-b643d01c-928f-469b-96a5-d571d762a78e@vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.certificate", + Value: "/etc/vmware-vpx/ssl/vcsoluser.crt", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.groupcheck.uri", + Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.enabled", + Value: "false", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.default.isGroup", + Value: "false", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.default.admin", + Value: "Administrator@vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.admin.uri", + Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", + }, + &types.OptionValue{ + Key: "VirtualCenter.InstanceName", + Value: "127.0.0.1", + }, + &types.OptionValue{ + Key: "event.batchsize", + Value: int32(2000), + }, + &types.OptionValue{ + Key: "event.maxAge", + Value: int32(30), + }, + &types.OptionValue{ + Key: "event.maxAgeEnabled", + Value: bool(true), + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/task_manager.go b/vendor/github.com/vmware/govmomi/simulator/vpx/task_manager.go new file mode 100644 index 00000000..dee36ff7 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/task_manager.go @@ -0,0 +1,11133 @@ +/* +Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import "github.com/vmware/govmomi/vim25/types" + +// Description is the default template for the TaskManager description property. +// Capture method: +// govc object.collect -s -dump TaskManager:TaskManager description +var Description = types.TaskDescription{ + MethodInfo: []types.BaseElementDescription{ + &types.ElementDescription{ + Description: types.Description{ + Label: "createEntry", + Summary: "createEntry", + }, + Key: "host.OperationCleanupManager.createEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntry", + Summary: "updateEntry", + }, + Key: "host.OperationCleanupManager.updateEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryEntry", + Summary: "queryEntry", + }, + Key: "host.OperationCleanupManager.queryEntry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disabled guest operations", + Summary: "Returns a list of guest operations not supported by a virtual machine", + }, + Key: "vm.guest.GuestOperationsManager.queryDisabledMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSpecification", + Summary: "updateHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.updateHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecification", + Summary: "updateHostSubSpecification", + }, + Key: "profile.host.HostSpecificationManager.updateHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostSpecification", + Summary: "retrieveHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.retrieveHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSubSpecification", + Summary: "deleteHostSubSpecification", + }, + Key: "profile.host.HostSpecificationManager.deleteHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSpecification", + Summary: "deleteHostSpecification", + }, + Key: "profile.host.HostSpecificationManager.deleteHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getUpdatedHosts", + Summary: "getUpdatedHosts", + }, + Key: "profile.host.HostSpecificationManager.getUpdatedHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set graphics manager custom value", + Summary: "Sets the value of a custom field of the graphics manager", + }, + Key: "host.GraphicsManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh graphics information", + Summary: "Refresh graphics device information", + }, + Key: "host.GraphicsManager.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check if shared graphics is active", + Summary: "Check if shared graphics is active on the host", + }, + Key: "host.GraphicsManager.isSharedGraphicsActive", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateGraphicsConfig", + Summary: "updateGraphicsConfig", + }, + Key: "host.GraphicsManager.updateGraphicsConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration option descriptor", + Summary: "Get the list of configuration option keys available in this browser", + }, + Key: "EnvironmentBrowser.queryConfigOptionDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure option query", + Summary: "Search for a specific configuration option", + }, + Key: "EnvironmentBrowser.queryConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConfigOptionEx", + Summary: "queryConfigOptionEx", + }, + Key: "EnvironmentBrowser.queryConfigOptionEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration target", + Summary: "Search for a specific configuration target", + }, + Key: "EnvironmentBrowser.queryConfigTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query target capabilities", + Summary: "Query for compute-resource capabilities associated with this browser", + }, + Key: "EnvironmentBrowser.queryTargetCapabilities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine provisioning operation policy", + Summary: "Query environment browser for information about the virtual machine provisioning operation policy", + }, + Key: "EnvironmentBrowser.queryProvisioningPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConfigTargetSpec", + Summary: "queryConfigTargetSpec", + }, + Key: "EnvironmentBrowser.queryConfigTargetSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set scheduled task custom value", + Summary: "Sets the value of a custom field of a scheduled task", + }, + Key: "scheduler.ScheduledTask.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove scheduled task", + Summary: "Remove the scheduled task", + }, + Key: "scheduler.ScheduledTask.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure scheduled task", + Summary: "Reconfigure the scheduled task properties", + }, + Key: "scheduler.ScheduledTask.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Run scheduled task", + Summary: "Run the scheduled task immediately", + }, + Key: "scheduler.ScheduledTask.run", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query CMMDS", + Summary: "Queries CMMDS contents in the vSAN cluster", + }, + Key: "host.VsanInternalSystem.queryCmmds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query physical vSAN disks", + Summary: "Queries the physical vSAN disks", + }, + Key: "host.VsanInternalSystem.queryPhysicalVsanDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects", + Summary: "Queries the vSAN objects in the cluster", + }, + Key: "host.VsanInternalSystem.queryVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects on physical disks", + Summary: "Queries the vSAN objects that have at least one component on the current set of physical disks", + }, + Key: "host.VsanInternalSystem.queryObjectsOnPhysicalVsanDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Drop ownership of DOM objects", + Summary: "Drop ownership of the DOM objects that are owned by this host", + }, + Key: "host.VsanInternalSystem.abdicateDomOwnership", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN statistics", + Summary: "Gathers low level statistic counters from the vSAN cluster", + }, + Key: "host.VsanInternalSystem.queryVsanStatistics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigures vSAN objects", + Summary: "Reconfigures the vSAN objects in the cluster", + }, + Key: "host.VsanInternalSystem.reconfigureDomObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSAN objects that are currently synchronizing data", + Summary: "Queries vSAN objects that are updating stale components or synchronizing new replicas", + }, + Key: "host.VsanInternalSystem.querySyncingVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Run diagnostics on vSAN disks", + Summary: "Runs diagnostic tests on vSAN physical disks and verifies if objects are successfully created on the disks", + }, + Key: "host.VsanInternalSystem.runVsanPhysicalDiskDiagnostics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attributes of vSAN objects", + Summary: "Shows the extended attributes of the vSAN objects", + }, + Key: "host.VsanInternalSystem.getVsanObjExtAttrs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configurable vSAN objects", + Summary: "Identifies the vSAN objects that can be reconfigured using the assigned storage policy in the current cluster", + }, + Key: "host.VsanInternalSystem.reconfigurationSatisfiable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN objects available for provisioning", + Summary: "Identifies the vSAN objects that are available for provisioning using the assigned storage policy in the current cluster", + }, + Key: "host.VsanInternalSystem.canProvisionObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteVsanObjects", + Summary: "deleteVsanObjects", + }, + Key: "host.VsanInternalSystem.deleteVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vSAN object format", + Summary: "Upgrade vSAN object format, to fit in vSAN latest features", + }, + Key: "host.VsanInternalSystem.upgradeVsanObjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryVsanObjectUuidsByFilter", + Summary: "queryVsanObjectUuidsByFilter", + }, + Key: "host.VsanInternalSystem.queryVsanObjectUuidsByFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN entities available for decommissioning", + Summary: "Identifies the vSAN entities that are available for decommissioning in the current cluster", + }, + Key: "host.VsanInternalSystem.canDecommission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Authenticate credentials in guest", + Summary: "Authenticate credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.validateCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire credentials in guest", + Summary: "Acquire credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.acquireCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Release credentials in guest", + Summary: "Release credentials in the guest operating system", + }, + Key: "vm.guest.AuthManager.releaseCredentials", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create user", + Summary: "Creates a local user account", + }, + Key: "host.LocalAccountManager.createUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update user", + Summary: "Updates a local user account", + }, + Key: "host.LocalAccountManager.updateUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create group", + Summary: "Creates a local group account", + }, + Key: "host.LocalAccountManager.createGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete user", + Summary: "Removes a local user account", + }, + Key: "host.LocalAccountManager.removeUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove group", + Summary: "Removes a local group account", + }, + Key: "host.LocalAccountManager.removeGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Assign user to group", + Summary: "Assign user to group", + }, + Key: "host.LocalAccountManager.assignUserToGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unassign user from group", + Summary: "Unassigns a user from a group", + }, + Key: "host.LocalAccountManager.unassignUserFromGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add an image library", + Summary: "Register an image library server with vCenter", + }, + Key: "ImageLibraryManager.addLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update image library", + Summary: "Update image library information", + }, + Key: "ImageLibraryManager.updateLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an image library", + Summary: "Unregister an image library server from vCenter", + }, + Key: "ImageLibraryManager.removeLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import from image library", + Summary: "Import files from the image library", + }, + Key: "ImageLibraryManager.importLibraryMedia", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export to image library", + Summary: "Export files to the image library", + }, + Key: "ImageLibraryManager.exportMediaToLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Publish to image library", + Summary: "Publish files from datastore to image library", + }, + Key: "ImageLibraryManager.publishMediaToLibrary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.ContentLibrary.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.ContentLibrary.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.ContentLibrary.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.ContentLibrary.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.ContentLibrary.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.ContentLibrary.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.ContentLibrary.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set EVC manager custom value", + Summary: "Sets the value of a custom field for an Enhanced vMotion Compatibility manager", + }, + Key: "cluster.TransitionalEVCManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure cluster EVC", + Summary: "Enable/reconfigure Enhanced vMotion Compatibility for a cluster", + }, + Key: "cluster.TransitionalEVCManager.configureEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable cluster EVC", + Summary: "Disable Enhanced vMotion Compatibility for a cluster", + }, + Key: "cluster.TransitionalEVCManager.disableEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate EVC mode for cluster", + Summary: "Test the validity of configuring Enhanced vMotion Compatibility mode on the managed cluster", + }, + Key: "cluster.TransitionalEVCManager.checkConfigureEVC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host for EVC cluster", + Summary: "Tests the validity of adding a host into the Enhanced vMotion Compatibility cluster", + }, + Key: "cluster.TransitionalEVCManager.checkAddHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "lookupVmOverheadMemory", + Summary: "lookupVmOverheadMemory", + }, + Key: "OverheadMemoryManager.lookupVmOverheadMemory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set event history latest page size", + Summary: "Set the last page viewed size of event history", + }, + Key: "event.EventHistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind event history", + Summary: "Moves view to the oldest item of event history", + }, + Key: "event.EventHistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset event history", + Summary: "Moves view to the newest item of event history", + }, + Key: "event.EventHistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove event history", + Summary: "Removes the event history collector", + }, + Key: "event.EventHistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read next event history", + Summary: "Reads view from current position of event history, and then the position is moved to the next newer page", + }, + Key: "event.EventHistoryCollector.readNext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read previous event history", + Summary: "Reads view from current position of event history and moves the position to the next older page", + }, + Key: "event.EventHistoryCollector.readPrev", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set managed entity custom value", + Summary: "Sets the value of a custom field of a managed entity", + }, + Key: "ManagedEntity.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload managed entity", + Summary: "Reload the entity state", + }, + Key: "ManagedEntity.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename managed entity", + Summary: "Rename this entity", + }, + Key: "ManagedEntity.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove entity", + Summary: "Deletes the entity and removes it from parent folder", + }, + Key: "ManagedEntity.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the entity", + }, + Key: "ManagedEntity.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the entity", + }, + Key: "ManagedEntity.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ManagedEntity.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set a custom value for EVC manager", + Summary: "Sets a value in the custom field for Enhanced vMotion Compatibility manager", + }, + Key: "cluster.EVCManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable/reconfigure EVC", + Summary: "Enable/reconfigure Enhanced vMotion Compatibility in a cluster", + }, + Key: "cluster.EVCManager.configureEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable cluster EVC", + Summary: "Disable Enhanced vMotion Compatibility in a cluster", + }, + Key: "cluster.EVCManager.disableEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate EVC configuration", + Summary: "Validates the configuration of Enhanced vMotion Compatibility mode in the managed cluster", + }, + Key: "cluster.EVCManager.checkConfigureEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate hosts in EVC", + Summary: "Validates new hosts in the Enhanced vMotion Compatibility cluster", + }, + Key: "cluster.EVCManager.checkAddHostEvc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host profile description", + Summary: "Retrieve host profile description", + }, + Key: "profile.host.HostProfile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete host profile", + Summary: "Delete host profile", + }, + Key: "profile.host.HostProfile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach host profile", + Summary: "Attach host profile to host or cluster", + }, + Key: "profile.host.HostProfile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach host profile", + Summary: "Detach host profile from host or cluster", + }, + Key: "profile.host.HostProfile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of a host or cluster against a host profile", + }, + Key: "profile.host.HostProfile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host profile", + Summary: "Export host profile to a file", + }, + Key: "profile.host.HostProfile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update reference host", + Summary: "Update reference host", + }, + Key: "profile.host.HostProfile.updateReferenceHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host profile", + Summary: "Update host profile", + }, + Key: "profile.host.HostProfile.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validate", + Summary: "validate", + }, + Key: "profile.host.HostProfile.validate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute profile", + Summary: "Execute profile", + }, + Key: "profile.host.HostProfile.execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a host profile", + Summary: "Create a host profile", + }, + Key: "profile.host.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.host.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.host.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply host configuration", + Summary: "Apply host configuration", + }, + Key: "profile.host.ProfileManager.applyHostConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMetadata", + Summary: "queryMetadata", + }, + Key: "profile.host.ProfileManager.queryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate configuration task list for host profile", + Summary: "Generates a list of configuration tasks to be performed when applying a host profile", + }, + Key: "profile.host.ProfileManager.generateConfigTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate task list", + Summary: "Generate task list", + }, + Key: "profile.host.ProfileManager.generateTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile metadata", + Summary: "Query profile metadata", + }, + Key: "profile.host.ProfileManager.queryProfileMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query metadata for profile categories", + Summary: "Retrieves the metadata for a set of profile categories", + }, + Key: "profile.host.ProfileManager.queryProfileCategoryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query metadata for profile components", + Summary: "Retrieves the metadata for a set of profile components", + }, + Key: "profile.host.ProfileManager.queryProfileComponentMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile structure", + Summary: "Gets information about the structure of a profile", + }, + Key: "profile.host.ProfileManager.queryProfileStructure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create default profile", + Summary: "Create default profile", + }, + Key: "profile.host.ProfileManager.createDefaultProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host customizations", + Summary: "Update host customizations for host", + }, + Key: "profile.host.ProfileManager.updateAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host customizations", + Summary: "Validate host customizations for host", + }, + Key: "profile.host.ProfileManager.validateAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host customizations", + Summary: "Returns the host customization data associated with a particular host", + }, + Key: "profile.host.ProfileManager.retrieveAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveAnswerFileForProfile", + Summary: "retrieveAnswerFileForProfile", + }, + Key: "profile.host.ProfileManager.retrieveAnswerFileForProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host customizations", + Summary: "Export host customizations for host", + }, + Key: "profile.host.ProfileManager.exportAnswerFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check host customizations status", + Summary: "Check the status of the host customizations against associated profile", + }, + Key: "profile.host.ProfileManager.checkAnswerFileStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host customization status", + Summary: "Returns the status of the host customization data associated with the specified hosts", + }, + Key: "profile.host.ProfileManager.queryAnswerFileStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host customizations", + Summary: "Update host customizations", + }, + Key: "profile.host.ProfileManager.updateHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validateHostCustomizations", + Summary: "validateHostCustomizations", + }, + Key: "profile.host.ProfileManager.validateHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostCustomizations", + Summary: "retrieveHostCustomizations", + }, + Key: "profile.host.ProfileManager.retrieveHostCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostCustomizationsForProfile", + Summary: "retrieveHostCustomizationsForProfile", + }, + Key: "profile.host.ProfileManager.retrieveHostCustomizationsForProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export host customizations", + Summary: "Export host customizations", + }, + Key: "profile.host.ProfileManager.exportCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import host customizations", + Summary: "Import host customizations", + }, + Key: "profile.host.ProfileManager.importCustomizations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pre-check Remediation", + Summary: "Checks customization data and host state is valid for remediation", + }, + Key: "profile.host.ProfileManager.generateHostConfigTaskSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Batch apply host configuration", + Summary: "Batch apply host configuration", + }, + Key: "profile.host.ProfileManager.applyEntitiesConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare validation of settings to be copied", + Summary: "Generate differences between source and target host profile to validate settings to be copied", + }, + Key: "profile.host.ProfileManager.validateComposition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy settings to host profiles", + Summary: "Copy settings to host profiles", + }, + Key: "profile.host.ProfileManager.compositeProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create inventory view", + Summary: "Create a view for browsing the inventory and tracking changes to open folders", + }, + Key: "view.ViewManager.createInventoryView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create container view", + Summary: "Create a view for monitoring the contents of a single container", + }, + Key: "view.ViewManager.createContainerView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create list view", + Summary: "Create a view for getting updates", + }, + Key: "view.ViewManager.createListView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create list view", + Summary: "Create a list view from an existing view", + }, + Key: "view.ViewManager.createListViewFromView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add key", + Summary: "Add the specified key to the current host", + }, + Key: "encryption.CryptoManager.addKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add keys", + Summary: "Add the specified keys to the current host", + }, + Key: "encryption.CryptoManager.addKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove key", + Summary: "Remove the specified key from the current host", + }, + Key: "encryption.CryptoManager.removeKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove keys", + Summary: "Remove the specified keys from the current host", + }, + Key: "encryption.CryptoManager.removeKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all keys", + Summary: "List all the keys registered on the current host", + }, + Key: "encryption.CryptoManager.listKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.AntiAffinityGroup.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.AntiAffinityGroup.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.AntiAffinityGroup.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.AntiAffinityGroup.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.AntiAffinityGroup.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.AntiAffinityGroup.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.AntiAffinityGroup.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query supported switch specification", + Summary: "Query supported switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.querySupportedSwitchSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible hosts for a vSphere Distributed Switch specification", + Summary: "Returns a list of hosts that are compatible with a given vSphere Distributed Switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostForNewDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible hosts for existing vSphere Distributed Switch", + Summary: "Returns a list of hosts that are compatible with an existing vSphere Distributed Switch", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostForExistingDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compatible host specification", + Summary: "Query compatible host specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryCompatibleHostSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query feature capabilities for vSphere Distributed Switch specification", + Summary: "Queries feature capabilities available for a given vSphere Distributed Switch specification", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryFeatureCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query switch by UUID", + Summary: "Query switch by UUID", + }, + Key: "dvs.DistributedVirtualSwitchManager.querySwitchByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration target", + Summary: "Query configuration target", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryDvsConfigTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compatibility of hosts against a vSphere Distributed Switch version", + Summary: "Check compatibility of hosts against a vSphere Distributed Switch version", + }, + Key: "dvs.DistributedVirtualSwitchManager.checkCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update opaque data for set of entities", + Summary: "Update opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.updateOpaqueData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update opaque data for set of entities", + Summary: "Update opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.updateOpaqueDataEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch opaque data for set of entities", + Summary: "Fetch opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.fetchOpaqueData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch opaque data for set of entities", + Summary: "Fetch opaque data for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.fetchOpaqueDataEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute opaque command for set of entities", + Summary: "Execute opaque command for set of entities", + }, + Key: "dvs.DistributedVirtualSwitchManager.executeOpaqueCommand", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify vNetwork Distributed Switch host", + Summary: "Rectify vNetwork Distributed Switch host", + }, + Key: "dvs.DistributedVirtualSwitchManager.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export configuration of the entity", + Summary: "Export configuration of the entity", + }, + Key: "dvs.DistributedVirtualSwitchManager.exportEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import configuration of the entity", + Summary: "Import configuration of the entity", + }, + Key: "dvs.DistributedVirtualSwitchManager.importEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "dvs.DistributedVirtualSwitchManager.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query uplink team information", + Summary: "Query uplink team information", + }, + Key: "dvs.DistributedVirtualSwitchManager.QueryDvpgUplinkTeam", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHostNetworkResource", + Summary: "queryHostNetworkResource", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryHostNetworkResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryVwirePort", + Summary: "queryVwirePort", + }, + Key: "dvs.DistributedVirtualSwitchManager.queryVwirePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance of host against profile", + Summary: "Checks compliance of a host against a profile", + }, + Key: "profile.host.profileEngine.ComplianceManager.checkHostCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query expression metadata", + Summary: "Queries the metadata for the given expression names", + }, + Key: "profile.host.profileEngine.ComplianceManager.queryExpressionMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get the default compliance from host configuration subprofiles", + Summary: "Get the default compliance from host configuration subprofiles", + }, + Key: "profile.host.profileEngine.ComplianceManager.getDefaultCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move file", + Summary: "Move the file, folder, or disk from source datacenter to destination datacenter", + }, + Key: "FileManager.move", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move file", + Summary: "Move the source file or folder to destination datacenter", + }, + Key: "FileManager.moveFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy file", + Summary: "Copy the file, folder, or disk from source datacenter to destination datacenter", + }, + Key: "FileManager.copy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy file", + Summary: "Copy the source file or folder to destination datacenter", + }, + Key: "FileManager.copyFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete file", + Summary: "Delete the file, folder, or disk from source datacenter", + }, + Key: "FileManager.delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete file", + Summary: "Delete the source file or folder from the datastore", + }, + Key: "FileManager.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make Directory", + Summary: "Create a directory using the specified name", + }, + Key: "FileManager.makeDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change owner", + Summary: "Change the owner of the specified file to the specified user", + }, + Key: "FileManager.changeOwner", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.TagPolicyOption.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.TagPolicyOption.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.TagPolicyOption.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.TagPolicyOption.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.TagPolicyOption.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.TagPolicyOption.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.TagPolicyOption.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve cluster profile description", + Summary: "Retrieve cluster profile description", + }, + Key: "profile.cluster.ClusterProfile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete cluster profile", + Summary: "Delete cluster profile", + }, + Key: "profile.cluster.ClusterProfile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach cluster profile", + Summary: "Attach cluster profile to cluster", + }, + Key: "profile.cluster.ClusterProfile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach cluster profile", + Summary: "Detach cluster profile from cluster", + }, + Key: "profile.cluster.ClusterProfile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of a cluster against a cluster profile", + }, + Key: "profile.cluster.ClusterProfile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export cluster profile", + Summary: "Export cluster profile to a file", + }, + Key: "profile.cluster.ClusterProfile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update cluster profile", + Summary: "Update configuration of cluster profile", + }, + Key: "profile.cluster.ClusterProfile.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check", + Summary: "Check for dependencies, conflicts, and obsolete updates", + }, + Key: "host.PatchManager.Check", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan", + Summary: "Scan the host for patch status", + }, + Key: "host.PatchManager.Scan", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan", + Summary: "Scan the host for patch status", + }, + Key: "host.PatchManager.ScanV2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stage", + Summary: "Stage the updates to the host", + }, + Key: "host.PatchManager.Stage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install", + Summary: "Install the patch", + }, + Key: "host.PatchManager.Install", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install", + Summary: "Install the patch", + }, + Key: "host.PatchManager.InstallV2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall", + Summary: "Uninstall the patch", + }, + Key: "host.PatchManager.Uninstall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query", + Summary: "Query the host for installed bulletins", + }, + Key: "host.PatchManager.Query", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query process information", + Summary: "Retrieves information regarding processes", + }, + Key: "host.SystemDebugManager.queryProcessInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure AutoStart Manager", + Summary: "Changes the power on or power off sequence", + }, + Key: "host.AutoStartManager.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Auto power On", + Summary: "Powers On virtual machines according to the current AutoStart configuration", + }, + Key: "host.AutoStartManager.autoPowerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Auto power Off", + Summary: "Powers Off virtual machines according to the current AutoStart configuration", + }, + Key: "host.AutoStartManager.autoPowerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove managed object", + Summary: "Remove the managed objects", + }, + Key: "view.ManagedObjectView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove list view", + Summary: "Remove the list view object", + }, + Key: "view.ListView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Modify list view", + Summary: "Modify the list view", + }, + Key: "view.ListView.modify", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset list view", + Summary: "Reset the list view", + }, + Key: "view.ListView.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset view", + Summary: "Resets a set of objects in a given view", + }, + Key: "view.ListView.resetFromView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Creates a registry key", + Summary: "Creates a registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.createRegistryKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Lists all registry subkeys for a specified registry key", + Summary: "Lists all registry subkeys for a specified registry key in the Windows guest operating system.", + }, + Key: "vm.guest.WindowsRegistryManager.listRegistryKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deletes a registry key", + Summary: "Deletes a registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.deleteRegistryKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sets and creates a registry value", + Summary: "Sets and creates a registry value in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.setRegistryValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Lists all registry values for a specified registry key", + Summary: "Lists all registry values for a specified registry key in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.listRegistryValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deletes a registry value", + Summary: "Deletes a registry value in the Windows guest operating system", + }, + Key: "vm.guest.WindowsRegistryManager.deleteRegistryValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register Fault Tolerant Secondary VM", + Summary: "Registers a Secondary VM with a Fault Tolerant Primary VM", + }, + Key: "host.FaultToleranceManager.registerSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister Fault Tolerant Secondary VM", + Summary: "Unregister a Secondary VM from the associated Primary VM", + }, + Key: "host.FaultToleranceManager.unregisterSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make Primary VM", + Summary: "Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM", + }, + Key: "host.FaultToleranceManager.makePrimary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Make peer VM primary", + Summary: "Makes the peer VM primary and terminates the local virtual machine", + }, + Key: "host.FaultToleranceManager.goLivePeerVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop Fault Tolerant virtual machine", + Summary: "Stop a specified virtual machine in a Fault Tolerant pair", + }, + Key: "host.FaultToleranceManager.terminateFaultTolerantVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable Secondary VM", + Summary: "Disable Fault Tolerance on a specified Secondary VM", + }, + Key: "host.FaultToleranceManager.disableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable Secondary VM", + Summary: "Enable Fault Tolerance on a specified Secondary VM", + }, + Key: "host.FaultToleranceManager.enableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start Fault Tolerant Secondary VM", + Summary: "Start Fault Tolerant Secondary VM on remote host", + }, + Key: "host.FaultToleranceManager.startSecondaryOnRemoteHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister Fault Tolerance", + Summary: "Unregister the Fault Tolerance service", + }, + Key: "host.FaultToleranceManager.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set local VM component health", + Summary: "Sets the component health information of the specified local virtual machine", + }, + Key: "host.FaultToleranceManager.setLocalVMComponentHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get peer VM component health", + Summary: "Gets component health information of the FT peer of the specified local virtual machine", + }, + Key: "host.FaultToleranceManager.getPeerVMComponentHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vCenter HA cluster mode", + Summary: "Set vCenter HA cluster mode", + }, + Key: "vcha.FailoverClusterManager.setClusterMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getClusterMode", + Summary: "getClusterMode", + }, + Key: "vcha.FailoverClusterManager.getClusterMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getClusterHealth", + Summary: "getClusterHealth", + }, + Key: "vcha.FailoverClusterManager.getClusterHealth", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate failover", + Summary: "Initiate a failover from active vCenter Server node to the passive node", + }, + Key: "vcha.FailoverClusterManager.initiateFailover", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "executeStep", + Summary: "executeStep", + }, + Key: "modularity.WorkflowStepHandler.executeStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "undoStep", + Summary: "undoStep", + }, + Key: "modularity.WorkflowStepHandler.undoStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "finalizeStep", + Summary: "finalizeStep", + }, + Key: "modularity.WorkflowStepHandler.finalizeStep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.TagPolicy.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.TagPolicy.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.TagPolicy.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.TagPolicy.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.TagPolicy.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.TagPolicy.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.TagPolicy.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "CreateVRP", + Summary: "CreateVRP", + }, + Key: "VRPResourceManager.CreateVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "UpdateVRP", + Summary: "UpdateVRP", + }, + Key: "VRPResourceManager.UpdateVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DeleteVRP", + Summary: "DeleteVRP", + }, + Key: "VRPResourceManager.DeleteVRP", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DeployVM", + Summary: "DeployVM", + }, + Key: "VRPResourceManager.DeployVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "UndeployVM", + Summary: "UndeployVM", + }, + Key: "VRPResourceManager.UndeployVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "SetManagedByVDC", + Summary: "SetManagedByVDC", + }, + Key: "VRPResourceManager.SetManagedByVDC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetAllVRPIds", + Summary: "GetAllVRPIds", + }, + Key: "VRPResourceManager.GetAllVRPIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetRPSettings", + Summary: "GetRPSettings", + }, + Key: "VRPResourceManager.GetRPSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPSettings", + Summary: "GetVRPSettings", + }, + Key: "VRPResourceManager.GetVRPSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPUsage", + Summary: "GetVRPUsage", + }, + Key: "VRPResourceManager.GetVRPUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetVRPofVM", + Summary: "GetVRPofVM", + }, + Key: "VRPResourceManager.GetVRPofVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "GetChildRPforHub", + Summary: "GetChildRPforHub", + }, + Key: "VRPResourceManager.GetChildRPforHub", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create directory", + Summary: "Creates a top-level directory on the specified datastore", + }, + Key: "DatastoreNamespaceManager.CreateDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete directory", + Summary: "Deletes the specified top-level directory from the datastore", + }, + Key: "DatastoreNamespaceManager.DeleteDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "ConvertNamespacePathToUuidPath", + Summary: "ConvertNamespacePathToUuidPath", + }, + Key: "DatastoreNamespaceManager.ConvertNamespacePathToUuidPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.VirtualDatacenter.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.VirtualDatacenter.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.VirtualDatacenter.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.VirtualDatacenter.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.VirtualDatacenter.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.VirtualDatacenter.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.VirtualDatacenter.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile description", + Summary: "Retrieve profile description", + }, + Key: "profile.Profile.retrieveDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove profile", + Summary: "Remove profile", + }, + Key: "profile.Profile.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Associate entities", + Summary: "Associate entities with the profile", + }, + Key: "profile.Profile.associateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Dissociate entities", + Summary: "Dissociate entities from the profile", + }, + Key: "profile.Profile.dissociateEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance against the profile", + }, + Key: "profile.Profile.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export profile", + Summary: "Export profile to a file", + }, + Key: "profile.Profile.exportProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getNetworkIpSettings", + Summary: "getNetworkIpSettings", + }, + Key: "vdcs.IpManager.getNetworkIpSettings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "allocate", + Summary: "allocate", + }, + Key: "vdcs.IpManager.allocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "release", + Summary: "release", + }, + Key: "vdcs.IpManager.release", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "releaseAll", + Summary: "releaseAll", + }, + Key: "vdcs.IpManager.releaseAll", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryAll", + Summary: "queryAll", + }, + Key: "vdcs.IpManager.queryAll", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datastore cluster custom value", + Summary: "Sets the value of a custom field of a datastore cluster", + }, + Key: "StoragePod.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datastore cluster", + Summary: "Reloads the datastore cluster", + }, + Key: "StoragePod.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a datastore cluster", + Summary: "Rename a datastore cluster", + }, + Key: "StoragePod.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a datastore cluster", + Summary: "Remove a datastore cluster", + }, + Key: "StoragePod.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tags to datastore cluster", + Summary: "Adds a set of tags to a datastore cluster", + }, + Key: "StoragePod.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tags from datastore cluster", + Summary: "Removes a set of tags from a datastore cluster", + }, + Key: "StoragePod.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "StoragePod.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create folder", + Summary: "Creates a new folder", + }, + Key: "StoragePod.createFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move datastores into a datastore cluster", + Summary: "Move datastores into a datastore cluster", + }, + Key: "StoragePod.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a new virtual machine", + }, + Key: "StoragePod.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this datastore cluster", + }, + Key: "StoragePod.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Creates a new cluster compute-resource in this datastore cluster", + }, + Key: "StoragePod.createCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Creates a new cluster compute-resource in this datastore cluster", + }, + Key: "StoragePod.createClusterEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host", + Summary: "Creates a new single-host compute-resource", + }, + Key: "StoragePod.addStandaloneHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host and enable lockdown mode", + Summary: "Creates a new single-host compute-resource and enables lockdown mode on the host", + }, + Key: "StoragePod.addStandaloneHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datacenter", + Summary: "Create a new datacenter with the given name", + }, + Key: "StoragePod.createDatacenter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister and delete", + Summary: "Recursively deletes all child virtual machine folders and unregisters all virtual machines", + }, + Key: "StoragePod.unregisterAndDestroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vSphere Distributed Switch", + Summary: "Creates a vSphere Distributed Switch", + }, + Key: "StoragePod.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datastore cluster", + Summary: "Creates a new datastore cluster", + }, + Key: "StoragePod.createStoragePod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare to upgrade", + Summary: "Deletes the content of the temporary directory on the host", + }, + Key: "AgentManager.prepareToUpgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade", + Summary: "Validates and executes the installer/uninstaller executable uploaded to the temporary directory", + }, + Key: "AgentManager.upgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure host power management policy", + Summary: "Configure host power management policy", + }, + Key: "host.PowerSystem.configurePolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set network custom Value", + Summary: "Sets the value of a custom field of a network", + }, + Key: "Network.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload network", + Summary: "Reload information about the network", + }, + Key: "Network.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename network", + Summary: "Rename network", + }, + Key: "Network.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete network", + Summary: "Deletes a network if it is not used by any host or virtual machine", + }, + Key: "Network.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the network", + }, + Key: "Network.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the network", + }, + Key: "Network.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Network.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network", + Summary: "Remove network", + }, + Key: "Network.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve argument description for event type", + Summary: "Retrieves the argument meta-data for a given event type", + }, + Key: "event.EventManager.retrieveArgumentDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create event collector", + Summary: "Creates an event collector to retrieve all server events based on a filter", + }, + Key: "event.EventManager.createCollector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Log user event", + Summary: "Logs a user-defined event", + }, + Key: "event.EventManager.logUserEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get events", + Summary: "Provides the events selected by the specified filter", + }, + Key: "event.EventManager.QueryEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query events by IDs", + Summary: "Returns the events specified by a list of IDs", + }, + Key: "event.EventManager.queryEventsById", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Post event", + Summary: "Posts the specified event", + }, + Key: "event.EventManager.postEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query latest events in event filter", + Summary: "Query the latest events in the specified filter", + }, + Key: "event.EventManager.queryLastEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual disk", + Summary: "Create the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.createVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual disk", + Summary: "Delete the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.deleteVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk information", + Summary: "Queries information about a virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move virtual disk", + Summary: "Move the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.moveVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy virtual disk", + Summary: "Copy the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.copyVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend virtual disk", + Summary: "Expand the capacity of a virtual disk to the new capacity", + }, + Key: "VirtualDiskManager.extendVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk fragmentation", + Summary: "Return the percentage of fragmentation of the sparse virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskFragmentation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Defragment virtual disk", + Summary: "Defragment a sparse virtual disk", + }, + Key: "VirtualDiskManager.defragmentVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Shrink virtual disk", + Summary: "Shrink a sparse virtual disk", + }, + Key: "VirtualDiskManager.shrinkVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate virtual disk", + Summary: "Inflate a sparse virtual disk up to the full size", + }, + Key: "VirtualDiskManager.inflateVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Zero out virtual disk", + Summary: "Explicitly zero out the virtual disk.", + }, + Key: "VirtualDiskManager.eagerZeroVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fill virtual disk", + Summary: "Overwrite all blocks of the virtual disk with zeros", + }, + Key: "VirtualDiskManager.zeroFillVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Optimally eager zero the virtual disk", + Summary: "Optimally eager zero a VMFS thick virtual disk.", + }, + Key: "VirtualDiskManager.optimizeEagerZeroVirtualDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual disk UUID", + Summary: "Set the UUID for the disk, either a datastore path or a URL referring to the virtual disk", + }, + Key: "VirtualDiskManager.setVirtualDiskUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk UUID", + Summary: "Get the virtual disk SCSI inquiry page data", + }, + Key: "VirtualDiskManager.queryVirtualDiskUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk geometry", + Summary: "Get the disk geometry information for the virtual disk", + }, + Key: "VirtualDiskManager.queryVirtualDiskGeometry", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reparent disks", + Summary: "Reparent disks", + }, + Key: "VirtualDiskManager.reparentDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a child disk", + Summary: "Create a new disk and attach it to the end of disk chain specified", + }, + Key: "VirtualDiskManager.createChildDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "revertToChildDisk", + Summary: "revertToChildDisk", + }, + Key: "VirtualDiskManager.revertToChildDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate disks", + Summary: "Consolidate a list of disks to the parent most disk", + }, + Key: "VirtualDiskManager.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "importUnmanagedSnapshot", + Summary: "importUnmanagedSnapshot", + }, + Key: "VirtualDiskManager.importUnmanagedSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "releaseManagedSnapshot", + Summary: "releaseManagedSnapshot", + }, + Key: "VirtualDiskManager.releaseManagedSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "enableUPIT", + Summary: "enableUPIT", + }, + Key: "VirtualDiskManager.enableUPIT", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "disableUPIT", + Summary: "disableUPIT", + }, + Key: "VirtualDiskManager.disableUPIT", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryObjectInfo", + Summary: "queryObjectInfo", + }, + Key: "VirtualDiskManager.queryObjectInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryObjectTypes", + Summary: "queryObjectTypes", + }, + Key: "VirtualDiskManager.queryObjectTypes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a virtual disk object", + Summary: "Create a virtual disk object", + }, + Key: "vslm.host.VStorageObjectManager.createDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register a legacy disk to be a virtual disk object", + Summary: "Register a legacy disk to be a virtual disk object", + }, + Key: "vslm.host.VStorageObjectManager.registerDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend a virtual disk to the new capacity", + Summary: "Extend a virtual disk to the new capacity", + }, + Key: "vslm.host.VStorageObjectManager.extendDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate a thin virtual disk", + Summary: "Inflate a thin virtual disk", + }, + Key: "vslm.host.VStorageObjectManager.inflateDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a virtual storage object", + Summary: "Rename a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.renameVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update storage policy on a virtual storage object", + Summary: "Update storage policy on a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.updateVStorageObjectPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a virtual storage object", + Summary: "Delete a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.deleteVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a virtual storage object", + Summary: "Retrieve a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.retrieveVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveVStorageObjectState", + Summary: "retrieveVStorageObjectState", + }, + Key: "vslm.host.VStorageObjectManager.retrieveVStorageObjectState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List virtual storage objects on a datastore", + Summary: "List virtual storage objects on a datastore", + }, + Key: "vslm.host.VStorageObjectManager.listVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone a virtual storage object", + Summary: "Clone a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.cloneVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate a virtual storage object", + Summary: "Relocate a virtual storage object", + }, + Key: "vslm.host.VStorageObjectManager.relocateVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconcile datastore inventory", + Summary: "Reconcile datastore inventory", + }, + Key: "vslm.host.VStorageObjectManager.reconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Schedule reconcile datastore inventory", + Summary: "Schedule reconcile datastore inventory", + }, + Key: "vslm.host.VStorageObjectManager.scheduleReconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion send operation", + Summary: "Prepare a vMotion send operation", + }, + Key: "host.VMotionManager.prepareSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare VMotion send operation asynchronously", + Summary: "Prepares a VMotion send operation asynchronously", + }, + Key: "host.VMotionManager.prepareSourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion receive operation", + Summary: "Prepare a vMotion receive operation", + }, + Key: "host.VMotionManager.prepareDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare vMotion receive operation asynchronously", + Summary: "Prepares a vMotion receive operation asynchronously", + }, + Key: "host.VMotionManager.prepareDestinationEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate vMotion receive operation", + Summary: "Initiate a vMotion receive operation", + }, + Key: "host.VMotionManager.initiateDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate vMotion send operation", + Summary: "Initiate a vMotion send operation", + }, + Key: "host.VMotionManager.initiateSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate VMotion send operation", + Summary: "Initiates a VMotion send operation", + }, + Key: "host.VMotionManager.initiateSourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete vMotion source notification", + Summary: "Tell the source that vMotion migration is complete (success or failure)", + }, + Key: "host.VMotionManager.completeSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete vMotion receive notification", + Summary: "Tell the destination that vMotion migration is complete (success or failure)", + }, + Key: "host.VMotionManager.completeDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Commit vMotion destination upgrade", + Summary: "Reparent the disks at destination and commit the redo logs at the end of a vMotion migration", + }, + Key: "host.VMotionManager.upgradeDestination", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMotionManager memory mirror migrate flag", + Summary: "Enables or disables VMotionManager memory mirror migrate", + }, + Key: "host.VMotionManager.updateMemMirrorFlag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMigrationIds", + Summary: "queryMigrationIds", + }, + Key: "host.VMotionManager.queryMigrationIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecificationByFile", + Summary: "updateHostSubSpecificationByFile", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateHostSubSpecificationByData", + Summary: "updateHostSubSpecificationByData", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveHostSpecification", + Summary: "retrieveHostSpecification", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.retrieveHostSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "deleteHostSubSpecification", + Summary: "deleteHostSubSpecification", + }, + Key: "profile.host.profileEngine.HostSpecificationAgent.deleteHostSubSpecification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addKey", + Summary: "addKey", + }, + Key: "encryption.CryptoManagerKmip.addKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addKeys", + Summary: "addKeys", + }, + Key: "encryption.CryptoManagerKmip.addKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKey", + Summary: "removeKey", + }, + Key: "encryption.CryptoManagerKmip.removeKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKeys", + Summary: "removeKeys", + }, + Key: "encryption.CryptoManagerKmip.removeKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listKeys", + Summary: "listKeys", + }, + Key: "encryption.CryptoManagerKmip.listKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerKmipServer", + Summary: "registerKmipServer", + }, + Key: "encryption.CryptoManagerKmip.registerKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "markDefault", + Summary: "markDefault", + }, + Key: "encryption.CryptoManagerKmip.markDefault", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateKmipServer", + Summary: "updateKmipServer", + }, + Key: "encryption.CryptoManagerKmip.updateKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeKmipServer", + Summary: "removeKmipServer", + }, + Key: "encryption.CryptoManagerKmip.removeKmipServer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listKmipServers", + Summary: "listKmipServers", + }, + Key: "encryption.CryptoManagerKmip.listKmipServers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveKmipServersStatus", + Summary: "retrieveKmipServersStatus", + }, + Key: "encryption.CryptoManagerKmip.retrieveKmipServersStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateKey", + Summary: "generateKey", + }, + Key: "encryption.CryptoManagerKmip.generateKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveKmipServerCert", + Summary: "retrieveKmipServerCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveKmipServerCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uploadKmipServerCert", + Summary: "uploadKmipServerCert", + }, + Key: "encryption.CryptoManagerKmip.uploadKmipServerCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateSelfSignedClientCert", + Summary: "generateSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.generateSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateClientCsr", + Summary: "generateClientCsr", + }, + Key: "encryption.CryptoManagerKmip.generateClientCsr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveSelfSignedClientCert", + Summary: "retrieveSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveClientCsr", + Summary: "retrieveClientCsr", + }, + Key: "encryption.CryptoManagerKmip.retrieveClientCsr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveClientCert", + Summary: "retrieveClientCert", + }, + Key: "encryption.CryptoManagerKmip.retrieveClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateSelfSignedClientCert", + Summary: "updateSelfSignedClientCert", + }, + Key: "encryption.CryptoManagerKmip.updateSelfSignedClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateKmsSignedCsrClientCert", + Summary: "updateKmsSignedCsrClientCert", + }, + Key: "encryption.CryptoManagerKmip.updateKmsSignedCsrClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uploadClientCert", + Summary: "uploadClientCert", + }, + Key: "encryption.CryptoManagerKmip.uploadClientCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister extension", + Summary: "Unregisters an extension", + }, + Key: "ExtensionManager.unregisterExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find extension", + Summary: "Find an extension", + }, + Key: "ExtensionManager.findExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register extension", + Summary: "Registers an extension", + }, + Key: "ExtensionManager.registerExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update extension", + Summary: "Updates extension information", + }, + Key: "ExtensionManager.updateExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get server public key", + Summary: "Get vCenter Server's public key", + }, + Key: "ExtensionManager.getPublicKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extension public key", + Summary: "Set public key of the extension", + }, + Key: "ExtensionManager.setPublicKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extension certificate", + Summary: "Update the stored authentication certificate for a specified extension", + }, + Key: "ExtensionManager.setCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update extension data", + Summary: "Updates extension-specific data associated with an extension", + }, + Key: "ExtensionManager.updateExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data", + Summary: "Retrieves extension-specific data associated with an extension", + }, + Key: "ExtensionManager.queryExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data keys", + Summary: "Retrieves extension-specific data keys associated with an extension", + }, + Key: "ExtensionManager.queryExtensionDataKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear extension data", + Summary: "Clears extension-specific data associated with an extension", + }, + Key: "ExtensionManager.clearExtensionData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query extension data usage", + Summary: "Retrieves statistics about the amount of data being stored by extensions registered with vCenter Server", + }, + Key: "ExtensionManager.queryExtensionDataUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query entities managed by extension", + Summary: "Finds entities managed by an extension", + }, + Key: "ExtensionManager.queryManagedBy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query statistics about IP allocation usage", + Summary: "Query statistics about IP allocation usage, system-wide or for specified extensions", + }, + Key: "ExtensionManager.queryExtensionIpAllocationUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable replication of virtual machine", + Summary: "Enable replication of virtual machine", + }, + Key: "HbrManager.enableReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable replication of virtual machine", + Summary: "Disable replication of virtual machine", + }, + Key: "HbrManager.disableReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure replication for virtual machine", + Summary: "Reconfigure replication for virtual machine", + }, + Key: "HbrManager.reconfigureReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve replication configuration of virtual machine", + Summary: "Retrieve replication configuration of virtual machine", + }, + Key: "HbrManager.retrieveReplicationConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pause replication of virtual machine", + Summary: "Pause replication of virtual machine", + }, + Key: "HbrManager.pauseReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resume replication of virtual machine", + Summary: "Resume replication of virtual machine", + }, + Key: "HbrManager.resumeReplication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start a replication resynchronization for virtual machine", + Summary: "Start a replication resynchronization for virtual machine", + }, + Key: "HbrManager.fullSync", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start new replication instance for virtual machine", + Summary: "Start extraction and transfer of a new replication instance for virtual machine", + }, + Key: "HbrManager.createInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replicate powered-off virtual machine", + Summary: "Transfer a replication instance for powered-off virtual machine", + }, + Key: "HbrManager.startOfflineInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop replication of powered-off virtual machine", + Summary: "Stop replication of powered-off virtual machine", + }, + Key: "HbrManager.stopOfflineInstance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine replication state", + Summary: "Qureies the current state of a replicated virtual machine", + }, + Key: "HbrManager.queryReplicationState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryReplicationCapabilities", + Summary: "queryReplicationCapabilities", + }, + Key: "HbrManager.queryReplicationCapabilities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set storage custom value", + Summary: "Sets the value of a custom field of a host storage system", + }, + Key: "host.StorageSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve disk partition information", + Summary: "Gets the partition information for the disks named by the device names", + }, + Key: "host.StorageSystem.retrieveDiskPartitionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Compute disk partition information", + Summary: "Computes the disk partition information given the desired disk layout", + }, + Key: "host.StorageSystem.computeDiskPartitionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Compute disk partition information for resize", + Summary: "Compute disk partition information for resizing a partition", + }, + Key: "host.StorageSystem.computeDiskPartitionInfoForResize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update disk partitions", + Summary: "Change the partitions on the disk by supplying a partition specification and the device name", + }, + Key: "host.StorageSystem.updateDiskPartitions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Format VMFS", + Summary: "Formats a new VMFS on a disk partition", + }, + Key: "host.StorageSystem.formatVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mount VMFS volume", + Summary: "Mounts an unmounted VMFS volume", + }, + Key: "host.StorageSystem.mountVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount VMFS volume", + Summary: "Unmount a mounted VMFS volume", + }, + Key: "host.StorageSystem.unmountVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount VMFS volumes", + Summary: "Unmounts one or more mounted VMFS volumes", + }, + Key: "host.StorageSystem.unmountVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "mountVmfsVolumeEx", + Summary: "mountVmfsVolumeEx", + }, + Key: "host.StorageSystem.mountVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmapVmfsVolumeEx", + Summary: "unmapVmfsVolumeEx", + }, + Key: "host.StorageSystem.unmapVmfsVolumeEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for unmounted VMFS volume", + Summary: "Removes the state information for a previously unmounted VMFS volume", + }, + Key: "host.StorageSystem.deleteVmfsVolumeState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan VMFS", + Summary: "Rescan for new VMFS volumes", + }, + Key: "host.StorageSystem.rescanVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend VMFS", + Summary: "Extend a VMFS by attaching a disk partition", + }, + Key: "host.StorageSystem.attachVmfsExtent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Expand VMFS extent", + Summary: "Expand the capacity of the VMFS extent", + }, + Key: "host.StorageSystem.expandVmfsExtent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade VMFS", + Summary: "Upgrade the VMFS to the current VMFS version", + }, + Key: "host.StorageSystem.upgradeVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate virtual machine disks", + Summary: "Relocate the disks for all virtual machines into directories if stored in the ROOT", + }, + Key: "host.StorageSystem.upgradeVmLayout", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unbound VMFS volumes", + Summary: "Query for the list of unbound VMFS volumes", + }, + Key: "host.StorageSystem.queryUnresolvedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve VMFS volumes", + Summary: "Resolve the detected copies of VMFS volumes", + }, + Key: "host.StorageSystem.resolveMultipleUnresolvedVmfsVolumes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve VMFS volumes", + Summary: "Resolves the detected copies of VMFS volumes", + }, + Key: "host.StorageSystem.resolveMultipleUnresolvedVmfsVolumesEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount force mounted VMFS", + Summary: "Unmounts a force mounted VMFS volume", + }, + Key: "host.StorageSystem.unmountForceMountedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan HBA", + Summary: "Rescan a specific storage adapter for new storage devices", + }, + Key: "host.StorageSystem.rescanHba", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan all HBAs", + Summary: "Rescan all storage adapters for new storage devices", + }, + Key: "host.StorageSystem.rescanAllHba", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change Software Internet SCSI Status", + Summary: "Enables or disables Software Internet SCSI", + }, + Key: "host.StorageSystem.updateSoftwareInternetScsiEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI discovery properties", + Summary: "Updates the discovery properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiDiscoveryProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI authentication properties", + Summary: "Updates the authentication properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiAuthenticationProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI digest properties", + Summary: "Update the digest properties of an Internet SCSI host bus adapter or target", + }, + Key: "host.StorageSystem.updateInternetScsiDigestProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI advanced options", + Summary: "Update the advanced options of an Internet SCSI host bus adapter or target", + }, + Key: "host.StorageSystem.updateInternetScsiAdvancedOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI IP properties", + Summary: "Updates the IP properties for an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiIPProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI name", + Summary: "Updates the name of an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Internet SCSI alias", + Summary: "Updates the alias of an Internet SCSI host bus adapter", + }, + Key: "host.StorageSystem.updateInternetScsiAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Internet SCSI send targets", + Summary: "Adds send target entries to the host bus adapter discovery list", + }, + Key: "host.StorageSystem.addInternetScsiSendTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Internet SCSI send targets", + Summary: "Removes send target entries from the host bus adapter discovery list", + }, + Key: "host.StorageSystem.removeInternetScsiSendTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Internet SCSI static targets ", + Summary: "Adds static target entries to the host bus adapter discovery list", + }, + Key: "host.StorageSystem.addInternetScsiStaticTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Internet SCSI static targets", + Summary: "Removes static target entries from the host bus adapter discovery list", + }, + Key: "host.StorageSystem.removeInternetScsiStaticTargets", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable multiple path", + Summary: "Enable a path for a logical unit", + }, + Key: "host.StorageSystem.enableMultipathPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable multiple path", + Summary: "Disable a path for a logical unit", + }, + Key: "host.StorageSystem.disableMultipathPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set logical unit policy", + Summary: "Set the multipath policy for a logical unit ", + }, + Key: "host.StorageSystem.setMultipathLunPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query path selection policy options", + Summary: "Queries the set of path selection policy options", + }, + Key: "host.StorageSystem.queryPathSelectionPolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query storage array type policy options", + Summary: "Queries the set of storage array type policy options", + }, + Key: "host.StorageSystem.queryStorageArrayTypePolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update SCSI LUN display name", + Summary: "Updates the display name of a SCSI LUN", + }, + Key: "host.StorageSystem.updateScsiLunDisplayName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach SCSI LUN", + Summary: "Blocks I/O operations to the attached SCSI LUN", + }, + Key: "host.StorageSystem.detachScsiLun", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach SCSI LUNs", + Summary: "Blocks I/O operations to one or more attached SCSI LUNs", + }, + Key: "host.StorageSystem.detachScsiLunEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for detached SCSI LUN", + Summary: "Removes the state information for a previously detached SCSI LUN", + }, + Key: "host.StorageSystem.deleteScsiLunState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach SCSI LUN", + Summary: "Allow I/O issue to the specified detached SCSI LUN", + }, + Key: "host.StorageSystem.attachScsiLun", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach SCSI LUNs", + Summary: "Enables I/O operations to one or more detached SCSI LUNs", + }, + Key: "host.StorageSystem.attachScsiLunEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh host storage system", + Summary: "Refresh the storage information and settings to pick up any changes that have occurred", + }, + Key: "host.StorageSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Discover FCOE storage", + Summary: "Discovers new storage using FCOE", + }, + Key: "host.StorageSystem.discoverFcoeHbas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update FCOE HBA state", + Summary: "Mark or unmark the specified FCOE HBA for removal from the host system", + }, + Key: "host.StorageSystem.markForRemoval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Format VFFS", + Summary: "Formats a new VFFS on a SSD disk", + }, + Key: "host.StorageSystem.formatVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend VFFS", + Summary: "Extends a VFFS by attaching a SSD disk", + }, + Key: "host.StorageSystem.extendVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete VFFS", + Summary: "Deletes a VFFS from the host", + }, + Key: "host.StorageSystem.destroyVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mounts VFFS volume", + Summary: "Mounts an unmounted VFFS volume", + }, + Key: "host.StorageSystem.mountVffsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmounts VFFS volume", + Summary: "Unmounts a mounted VFFS volume", + }, + Key: "host.StorageSystem.unmountVffsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete state information for unmounted VFFS volume", + Summary: "Removes the state information for a previously unmounted VFFS volume", + }, + Key: "host.StorageSystem.deleteVffsVolumeState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rescan VFFS", + Summary: "Rescans for new VFFS volumes", + }, + Key: "host.StorageSystem.rescanVffs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available SSD disks", + Summary: "Queries available SSD disks", + }, + Key: "host.StorageSystem.queryAvailableSsds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set NFS user", + Summary: "Sets an NFS user", + }, + Key: "host.StorageSystem.setNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change NFS user password", + Summary: "Changes the password of an NFS user", + }, + Key: "host.StorageSystem.changeNFSUserPassword", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query NFS user", + Summary: "Queries an NFS user", + }, + Key: "host.StorageSystem.queryNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear NFS user", + Summary: "Deletes an NFS user", + }, + Key: "host.StorageSystem.clearNFSUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn on disk locator LEDs", + Summary: "Turns on one or more disk locator LEDs", + }, + Key: "host.StorageSystem.turnDiskLocatorLedOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn off locator LEDs", + Summary: "Turns off one or more disk locator LEDs", + }, + Key: "host.StorageSystem.turnDiskLocatorLedOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a flash disk", + Summary: "Marks the disk as a flash disk", + }, + Key: "host.StorageSystem.markAsSsd", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a HDD disk", + Summary: "Marks the disk as a HDD disk", + }, + Key: "host.StorageSystem.markAsNonSsd", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a local disk", + Summary: "Marks the disk as a local disk", + }, + Key: "host.StorageSystem.markAsLocal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark the disk as a remote disk", + Summary: "Marks the disk as a remote disk", + }, + Key: "host.StorageSystem.markAsNonLocal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "QueryIoFilterProviderId", + Summary: "QueryIoFilterProviderId", + }, + Key: "host.StorageSystem.QueryIoFilterProviderId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "FetchIoFilterSharedSecret", + Summary: "FetchIoFilterSharedSecret", + }, + Key: "host.StorageSystem.FetchIoFilterSharedSecret", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMFS unmap priority", + Summary: "Updates the priority of VMFS space reclamation operation", + }, + Key: "host.StorageSystem.updateVmfsUnmapPriority", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query VMFS config option", + Summary: "Query VMFS config option", + }, + Key: "host.StorageSystem.queryVmfsConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate vMotion migration of VMs to hosts", + Summary: "Checks whether the specified VMs can be migrated with vMotion to all the specified hosts", + }, + Key: "vm.check.ProvisioningChecker.queryVMotionCompatibilityEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate migration of VM to destination", + Summary: "Checks whether the VM can be migrated to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkMigrate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate relocation of VM to destination", + Summary: "Checks whether the VM can be relocated to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkRelocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evaluate cloning VM to destination", + Summary: "Checks whether the VM can be cloned to the specified destination host, resource pool, and datastores", + }, + Key: "vm.check.ProvisioningChecker.checkClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "checkInstantClone", + Summary: "checkInstantClone", + }, + Key: "vm.check.ProvisioningChecker.checkInstantClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster profile", + Summary: "Create cluster profile", + }, + Key: "profile.cluster.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.cluster.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.cluster.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare a vCenter HA setup", + Summary: "Prepare vCenter HA setup on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.prepare", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy a vCenter HA cluster", + Summary: "Deploy and configure vCenter HA on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.deploy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure a vCenter HA cluster", + Summary: "Configure vCenter HA on the local vCenter Server", + }, + Key: "vcha.FailoverClusterConfigurator.configure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create passive node", + Summary: "Create a passive node in a vCenter HA Cluster", + }, + Key: "vcha.FailoverClusterConfigurator.createPassiveNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create witness node", + Summary: "Create a witness node in a vCenter HA Cluster", + }, + Key: "vcha.FailoverClusterConfigurator.createWitnessNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getConfig", + Summary: "getConfig", + }, + Key: "vcha.FailoverClusterConfigurator.getConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Destroy the vCenter HA cluster", + Summary: "Destroy the vCenter HA cluster setup and remove all configuration files", + }, + Key: "vcha.FailoverClusterConfigurator.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get current time", + Summary: "Returns the current time on the server", + }, + Key: "ServiceInstance.currentTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve content", + Summary: "Get the properties of the service instance", + }, + Key: "ServiceInstance.retrieveContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve internal properties", + Summary: "Retrieves the internal properties of the service instance", + }, + Key: "ServiceInstance.retrieveInternalContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate migration", + Summary: "Checks for errors and warnings of virtual machines migrated from one host to another", + }, + Key: "ServiceInstance.validateMigration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vMotion compatibility", + Summary: "Validates the vMotion compatibility of a set of hosts", + }, + Key: "ServiceInstance.queryVMotionCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve product components", + Summary: "Component information for bundled products", + }, + Key: "ServiceInstance.retrieveProductComponents", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vSphere Distributed Switch", + Summary: "Create vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove vSphere Distributed Switch", + Summary: "Remove vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.removeDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.reconfigureDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPort", + Summary: "Update dvPort", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.updatePorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete ports", + Summary: "Delete ports", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.deletePorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve port state", + Summary: "Retrieve port state", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.fetchPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone port", + Summary: "Clone port", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.clonePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vSphere Distributed Switch configuration specification", + Summary: "Retrieve vSphere Distributed Switch configuration specification", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDvsConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Groups", + Summary: "Update Distributed Port Group", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.updateDVPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve port group keys for vSphere Distributed Switch", + Summary: "Retrieve the list of port group keys on a given vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve distributed virtual port group specification", + Summary: "Retrievs the configuration specification for distributed virtual port groups", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroupConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Load port", + Summary: "Load port", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.loadDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve the list of port keys on the given vSphere Distributed Switch", + Summary: "Retrieve the list of port keys on the given vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.retrieveDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPorts", + Summary: "Update dvPort", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Groups", + Summary: "Update Distributed Port Group", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch", + Summary: "Update vSphere Distributed Switch", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDvs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch list", + Summary: "Update vSphere Distributed Switch list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDvsList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Distributed Port Group list", + Summary: "Update Distributed Port Group list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortgroupList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update dvPort list", + Summary: "Update dvPort list", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.applyDVPortList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute opaque command", + Summary: "Execute opaque command", + }, + Key: "dvs.HostDistributedVirtualSwitchManager.executeOpaqueCommand", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create default host profile of specified type", + Summary: "Creates a default host profile of the specified type", + }, + Key: "profile.host.profileEngine.HostProfileManager.createDefaultProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile policy option metadata", + Summary: "Gets the profile policy option metadata for the specified policy names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile metadata", + Summary: "Gets the profile metadata for the specified profile names and profile types", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile category metadata", + Summary: "Gets the profile category metadata for the specified category names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileCategoryMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile component metadata", + Summary: "Gets the profile component metadata for the specified component names", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileComponentMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute host profile manager engine", + Summary: "Executes the host profile manager engine", + }, + Key: "profile.host.profileEngine.HostProfileManager.execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Bookkeep host profile", + Summary: "Bookkeep host profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.bookKeep", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile description", + Summary: "Retrieves description of a profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.retrieveProfileDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update configuration tasks from host configuration", + Summary: "Update configuration tasks from host configuration", + }, + Key: "profile.host.profileEngine.HostProfileManager.updateTaskConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateTaskList", + Summary: "generateTaskList", + }, + Key: "profile.host.profileEngine.HostProfileManager.generateTaskList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateHostConfigTaskSpec", + Summary: "generateHostConfigTaskSpec", + }, + Key: "profile.host.profileEngine.HostProfileManager.generateHostConfigTaskSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve profile from host configuration", + Summary: "Retrieves a profile from the host's configuration", + }, + Key: "profile.host.profileEngine.HostProfileManager.retrieveProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare host profile for export", + Summary: "Prepares a host profile for export", + }, + Key: "profile.host.profileEngine.HostProfileManager.prepareExport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query user input policy options", + Summary: "Gets a list of policy options that are set to require user inputs", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryUserInputPolicyOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query profile structure", + Summary: "Gets information about the structure of a profile", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryProfileStructure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply host configuration", + Summary: "Applies the specified host configuration to the host", + }, + Key: "profile.host.profileEngine.HostProfileManager.applyHostConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host profile manager state", + Summary: "Gets the current state of the host profile manager and plug-ins on a host", + }, + Key: "profile.host.profileEngine.HostProfileManager.queryState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check virtual machine's compatibility on host", + Summary: "Checks whether a virtual machine is compatible on a host", + }, + Key: "vm.check.CompatibilityChecker.checkCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compatibility of a VM specification on a host", + Summary: "Checks compatibility of a VM specification on a host", + }, + Key: "vm.check.CompatibilityChecker.checkVMCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query service list", + Summary: "Location information that needs to match a service", + }, + Key: "ServiceManager.queryServiceList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove inventory view", + Summary: "Remove the inventory view object", + }, + Key: "view.InventoryView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open inventory view folder", + Summary: "Adds the child objects of a given managed entity to the view", + }, + Key: "view.InventoryView.openFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Close inventory view", + Summary: "Notify the server that folders have been closed", + }, + Key: "view.InventoryView.closeFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure host update proxy", + Summary: "Reconfigure host update proxy", + }, + Key: "host.HostUpdateProxyManager.reconfigureHostUpdateProxy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve configuration of the host update proxy", + Summary: "Retrieve configuration of the host update proxy", + }, + Key: "host.HostUpdateProxyManager.retrieveHostUpdateProxyConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update VMCI access rights", + Summary: "Updates VMCI (Virtual Machine Communication Interface) access rights for one or more virtual machines", + }, + Key: "host.VmciAccessManager.updateAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve VMCI service rights granted to virtual machine", + Summary: "Retrieve VMCI (Virtual Machine Communication Interface) service rights granted to a VM", + }, + Key: "host.VmciAccessManager.retrieveGrantedServices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machines with access to VMCI service", + Summary: "Gets the VMs with granted access to a service", + }, + Key: "host.VmciAccessManager.queryAccessToService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "promoteDisks", + Summary: "promoteDisks", + }, + Key: "host.LowLevelProvisioningManager.promoteDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine on disk", + }, + Key: "host.LowLevelProvisioningManager.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine", + Summary: "Deletes a virtual machine on disk", + }, + Key: "host.LowLevelProvisioningManager.deleteVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine without deleting its virtual disks", + Summary: "Deletes a virtual machine from its storage, all virtual machine files are deleted except its associated virtual disks", + }, + Key: "host.LowLevelProvisioningManager.deleteVmExceptDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual machine recovery information", + Summary: "Retrieves virtual machine recovery information", + }, + Key: "host.LowLevelProvisioningManager.retrieveVmRecoveryInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve last virtual machine migration status", + Summary: "Retrieves the last virtual machine migration status if available", + }, + Key: "host.LowLevelProvisioningManager.retrieveLastVmMigrationStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine", + Summary: "Reconfigures the virtual machine", + }, + Key: "host.LowLevelProvisioningManager.reconfigVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload disks", + Summary: "Reloads virtual disk information", + }, + Key: "host.LowLevelProvisioningManager.reloadDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate disks", + Summary: "Consolidates virtual disks", + }, + Key: "host.LowLevelProvisioningManager.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update snapshot layout information", + Summary: "Updates the snapshot layout information of a virtual machine and reloads its snapshots", + }, + Key: "host.LowLevelProvisioningManager.relayoutSnapshots", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reserve files for provisioning", + Summary: "Reserves files or directories on a datastore to be used for a provisioning", + }, + Key: "host.LowLevelProvisioningManager.reserveFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete files", + Summary: "Deletes a list of files from a datastore", + }, + Key: "host.LowLevelProvisioningManager.deleteFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extract NVRAM content", + Summary: "Extracts the NVRAM content from a checkpoint file", + }, + Key: "host.LowLevelProvisioningManager.extractNvramContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "setCustomValue", + Summary: "setCustomValue", + }, + Key: "external.ContentLibraryItem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "reload", + Summary: "reload", + }, + Key: "external.ContentLibraryItem.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rename", + Summary: "rename", + }, + Key: "external.ContentLibraryItem.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "destroy", + Summary: "destroy", + }, + Key: "external.ContentLibraryItem.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addTag", + Summary: "addTag", + }, + Key: "external.ContentLibraryItem.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeTag", + Summary: "removeTag", + }, + Key: "external.ContentLibraryItem.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "external.ContentLibraryItem.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete container view", + Summary: "Remove a list view object from current contents of this view", + }, + Key: "view.ContainerView.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datastore custom value", + Summary: "Sets the value of a custom field of a datastore", + }, + Key: "Datastore.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datastore", + Summary: "Reload information about the datastore", + }, + Key: "Datastore.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datastore", + Summary: "Renames a datastore", + }, + Key: "Datastore.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastore", + Summary: "Removes a datastore if it is not used by any host or virtual machine", + }, + Key: "Datastore.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Tag", + Summary: "Add a set of tags to the datastore", + }, + Key: "Datastore.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the datastore", + }, + Key: "Datastore.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Datastore.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh datastore", + Summary: "Refreshes free space on this datastore", + }, + Key: "Datastore.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh storage information", + Summary: "Refresh the storage information of the datastore", + }, + Key: "Datastore.refreshStorageInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual machine files", + Summary: "Update virtual machine files on the datastore", + }, + Key: "Datastore.updateVirtualMachineFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datastore", + Summary: "Rename the datastore", + }, + Key: "Datastore.renameDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete datastore", + Summary: "Delete datastore", + }, + Key: "Datastore.destroyDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replace embedded file paths", + Summary: "Replace embedded file paths on the datastore", + }, + Key: "Datastore.replaceEmbeddedFilePaths", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter SDRS maintenance mode", + Summary: "Virtual machine evacuation recommendations from the selected datastore are generated for SDRS maintenance mode", + }, + Key: "Datastore.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit SDRS maintenance mode", + Summary: "Exit SDRS maintenance mode", + }, + Key: "Datastore.exitMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get native clone capability", + Summary: "Check if the datastore supports native clone", + }, + Key: "Datastore.isNativeCloneCapable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cleanup locks", + Summary: "Cleanup lock files on NFSV3 datastore", + }, + Key: "Datastore.cleanupLocks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateVVolVirtualMachineFiles", + Summary: "updateVVolVirtualMachineFiles", + }, + Key: "Datastore.updateVVolVirtualMachineFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create scheduled task", + Summary: "Create a scheduled task", + }, + Key: "scheduler.ScheduledTaskManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve scheduled task", + Summary: "Available scheduled tasks defined on the entity", + }, + Key: "scheduler.ScheduledTaskManager.retrieveEntityScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create scheduled task", + Summary: "Create a scheduled task", + }, + Key: "scheduler.ScheduledTaskManager.createObjectScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve scheduled task", + Summary: "Available scheduled tasks defined on the object", + }, + Key: "scheduler.ScheduledTaskManager.retrieveObjectScheduledTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add role", + Summary: "Add a new role", + }, + Key: "AuthorizationManager.addRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove role", + Summary: "Remove a role", + }, + Key: "AuthorizationManager.removeRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update role", + Summary: "Update a role's name and/or privileges", + }, + Key: "AuthorizationManager.updateRole", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reassign permissions", + Summary: "Reassign all permissions of a role to another role", + }, + Key: "AuthorizationManager.mergePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get role permissions", + Summary: "Gets all the permissions that use a particular role", + }, + Key: "AuthorizationManager.retrieveRolePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get entity permissions", + Summary: "Get permissions defined on an entity", + }, + Key: "AuthorizationManager.retrieveEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get permissions", + Summary: "Get the permissions defined for all users", + }, + Key: "AuthorizationManager.retrieveAllPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrievePermissions", + Summary: "retrievePermissions", + }, + Key: "AuthorizationManager.retrievePermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set entity permission rules", + Summary: "Define or update permission rules on an entity", + }, + Key: "AuthorizationManager.setEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset entity permission rules", + Summary: "Reset permission rules on an entity to the provided set", + }, + Key: "AuthorizationManager.resetEntityPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove entity permission", + Summary: "Remove a permission rule from the entity", + }, + Key: "AuthorizationManager.removeEntityPermission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disabled methods", + Summary: "Get the list of source objects that have been disabled on the target entity", + }, + Key: "AuthorizationManager.queryDisabledMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable authorization methods", + Summary: "Gets the set of method names to be disabled", + }, + Key: "AuthorizationManager.disableMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable authorization methods", + Summary: "Gets the set of method names to be enabled", + }, + Key: "AuthorizationManager.enableMethods", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check privileges on a managed entity", + Summary: "Checks whether a session holds a set of privileges on a managed entity", + }, + Key: "AuthorizationManager.hasPrivilegeOnEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check privileges on a set of managed entities", + Summary: "Checks whether a session holds a set of privileges on a set of managed entities", + }, + Key: "AuthorizationManager.hasPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasUserPrivilegeOnEntities", + Summary: "hasUserPrivilegeOnEntities", + }, + Key: "AuthorizationManager.hasUserPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchUserPrivilegeOnEntities", + Summary: "fetchUserPrivilegeOnEntities", + }, + Key: "AuthorizationManager.fetchUserPrivilegeOnEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check method invocation privileges", + Summary: "Checks whether a session holds a set of privileges required to invoke a specified method", + }, + Key: "AuthorizationManager.checkMethodInvocation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query required permissions", + Summary: "Get the permission requirements for the specified request", + }, + Key: "AuthorizationManager.queryPermissions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "", + Summary: "", + }, + Key: "ServiceDirectory.queryServiceEndpointList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register service endpoint", + Summary: "Registers a service endpoint", + }, + Key: "ServiceDirectory.registerService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister service endpoint", + Summary: "Unregisters a service endpoint", + }, + Key: "ServiceDirectory.unregisterService", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query options view", + Summary: "Returns nodes in the option hierarchy", + }, + Key: "option.OptionManager.queryView", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update option values", + Summary: "Updates one or more properties", + }, + Key: "option.OptionManager.updateValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "validate", + Summary: "validate", + }, + Key: "vdcs.NicManager.validate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "bind", + Summary: "bind", + }, + Key: "vdcs.NicManager.bind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unbind", + Summary: "unbind", + }, + Key: "vdcs.NicManager.unbind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Specification exists", + Summary: "Check the existence of a specification", + }, + Key: "CustomizationSpecManager.exists", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get specification", + Summary: "Gets a specification", + }, + Key: "CustomizationSpecManager.get", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create new specification", + Summary: "Create a new specification", + }, + Key: "CustomizationSpecManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Overwrite specification", + Summary: "Overwrite an existing specification", + }, + Key: "CustomizationSpecManager.overwrite", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete specification", + Summary: "Delete a specification", + }, + Key: "CustomizationSpecManager.delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Duplicate specification", + Summary: "Duplicate a specification", + }, + Key: "CustomizationSpecManager.duplicate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename specification", + Summary: "Rename a specification", + }, + Key: "CustomizationSpecManager.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert specification item", + Summary: "Convert a specification item to XML text", + }, + Key: "CustomizationSpecManager.specItemToXml", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert XML item", + Summary: "Convert an XML string to a specification item", + }, + Key: "CustomizationSpecManager.xmlToSpecItem", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate required resources", + Summary: "Validate that required resources are available on the server to customize a particular guest operating system", + }, + Key: "CustomizationSpecManager.checkResources", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set cluster resource custom value", + Summary: "Sets the value of a custom field for a cluster of objects as a unified compute-resource", + }, + Key: "ClusterComputeResource.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload cluster", + Summary: "Reloads the cluster", + }, + Key: "ClusterComputeResource.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename cluster", + Summary: "Rename the compute-resource", + }, + Key: "ClusterComputeResource.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove cluster", + Summary: "Deletes the cluster compute-resource and removes it from its parent folder (if any)", + }, + Key: "ClusterComputeResource.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the cluster", + }, + Key: "ClusterComputeResource.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Removes a set of tags from the cluster", + }, + Key: "ClusterComputeResource.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ClusterComputeResource.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure cluster", + Summary: "Reconfigures a cluster", + }, + Key: "ClusterComputeResource.reconfigureEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure cluster", + Summary: "Reconfigures a cluster", + }, + Key: "ClusterComputeResource.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply recommendation", + Summary: "Applies a recommendation", + }, + Key: "ClusterComputeResource.applyRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel recommendation", + Summary: "Cancels a recommendation", + }, + Key: "ClusterComputeResource.cancelRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recommended power On hosts", + Summary: "Get recommendations for a location to power on a specific virtual machine", + }, + Key: "ClusterComputeResource.recommendHostsForVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add host", + Summary: "Adds a new host to the cluster", + }, + Key: "ClusterComputeResource.addHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add host and enable lockdown", + Summary: "Adds a new host to the cluster and enables lockdown mode on the host", + }, + Key: "ClusterComputeResource.addHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move host into cluster", + Summary: "Moves a set of existing hosts into the cluster", + }, + Key: "ClusterComputeResource.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move host into cluster", + Summary: "Moves a host into the cluster", + }, + Key: "ClusterComputeResource.moveHostInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh recommendations", + Summary: "Refreshes the list of recommendations", + }, + Key: "ClusterComputeResource.refreshRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve EVC", + Summary: "Retrieve Enhanced vMotion Compatibility information for this cluster", + }, + Key: "ClusterComputeResource.evcManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve transitional EVC manager", + Summary: "Retrieve the transitional EVC manager for this cluster", + }, + Key: "ClusterComputeResource.transitionalEVCManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve DAS advanced runtime information", + Summary: "Retrieve DAS advanced runtime information for this cluster", + }, + Key: "ClusterComputeResource.retrieveDasAdvancedRuntimeInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vShpere HA data for cluster", + Summary: "Retrieves HA data for a cluster", + }, + Key: "ClusterComputeResource.retrieveDasData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check VM admission in vSphere HA cluster", + Summary: "Checks if HA admission control allows a set of virtual machines to be powered on in the cluster", + }, + Key: "ClusterComputeResource.checkDasAdmission", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check cluster for vSphere HA configuration", + Summary: "Check how the specified HA config will affect the cluster state if high availability is enabled", + }, + Key: "ClusterComputeResource.checkReconfigureDas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "checkReconfigureDasVmcp", + Summary: "checkReconfigureDasVmcp", + }, + Key: "ClusterComputeResource.checkReconfigureDasVmcp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DRS recommends hosts to evacuate", + Summary: "DRS recommends hosts to evacuate", + }, + Key: "ClusterComputeResource.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find Fault Tolerance compatible hosts for placing secondary VM", + Summary: "Find the set of Fault Tolerance compatible hosts for placing secondary of a given primary virtual machine", + }, + Key: "ClusterComputeResource.queryFaultToleranceCompatibleHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find Fault Tolerance compatible datastores for a VM", + Summary: "Find the set of Fault Tolerance compatible datastores for a given virtual machine", + }, + Key: "ClusterComputeResource.queryFaultToleranceCompatibleDatastores", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Verify FaultToleranceConfigSpec", + Summary: "Verify whether a given FaultToleranceConfigSpec satisfies the requirements for Fault Tolerance", + }, + Key: "ClusterComputeResource.verifyFaultToleranceConfigSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check Fault Tolerance compatibility for VM", + Summary: "Check whether a VM is compatible for turning on Fault Tolerance", + }, + Key: "ClusterComputeResource.queryCompatibilityForFaultTolerance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Call DRS for cross vMotion placement recommendations", + Summary: "Calls vSphere DRS for placement recommendations when migrating a VM across vCenter Server instances and virtual switches", + }, + Key: "ClusterComputeResource.placeVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find rules for VM", + Summary: "Locates all affinity and anti-affinity rules the specified VM participates in", + }, + Key: "ClusterComputeResource.findRulesForVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "stampAllRulesWithUuid", + Summary: "stampAllRulesWithUuid", + }, + Key: "ClusterComputeResource.stampAllRulesWithUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getResourceUsage", + Summary: "getResourceUsage", + }, + Key: "ClusterComputeResource.getResourceUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryDrmDumpHistory", + Summary: "queryDrmDumpHistory", + }, + Key: "ClusterComputeResource.queryDrmDumpHistory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "generateDrmBundle", + Summary: "generateDrmBundle", + }, + Key: "ClusterComputeResource.generateDrmBundle", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "waitForChanges", + Summary: "waitForChanges", + }, + Key: "cdc.ChangeLogCollector.waitForChanges", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "initializeSequence", + Summary: "initializeSequence", + }, + Key: "cdc.ChangeLogCollector.initializeSequence", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "exchangeSequence", + Summary: "exchangeSequence", + }, + Key: "cdc.ChangeLogCollector.exchangeSequence", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate a certificate signing request", + Summary: "Generates a certificate signing request (CSR) for the host", + }, + Key: "host.CertificateManager.generateCertificateSigningRequest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate a certificate signing request using the specified Distinguished Name", + Summary: "Generates a certificate signing request (CSR) for the host using the specified Distinguished Name", + }, + Key: "host.CertificateManager.generateCertificateSigningRequestByDn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install a server certificate", + Summary: "Installs a server certificate for the host", + }, + Key: "host.CertificateManager.installServerCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replace CA certificates and certificate revocation lists", + Summary: "Replaces the CA certificates and certificate revocation lists (CRLs) on the host", + }, + Key: "host.CertificateManager.replaceCACertificatesAndCRLs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify services affected by SSL credentials change", + Summary: "Notifies the host services affected by SSL credentials change", + }, + Key: "host.CertificateManager.notifyAffectedServices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List CA certificates", + Summary: "Lists the CA certificates on the host", + }, + Key: "host.CertificateManager.listCACertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List CA certificate revocation lists", + Summary: "Lists the CA certificate revocation lists (CRLs) on the host", + }, + Key: "host.CertificateManager.listCACertificateRevocationLists", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set CPU scheduler system custom value", + Summary: "Sets the value of a custom field of a host CPU scheduler", + }, + Key: "host.CpuSchedulerSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable hyperthreading", + Summary: "Enable hyperthreads as schedulable resources", + }, + Key: "host.CpuSchedulerSystem.enableHyperThreading", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable hyperthreading", + Summary: "Disable hyperthreads as schedulable resources", + }, + Key: "host.CpuSchedulerSystem.disableHyperThreading", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Search datastore", + Summary: "Returns the information for the files that match the given search criteria", + }, + Key: "host.DatastoreBrowser.search", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Search datastore subfolders", + Summary: "Returns the information for the files that match the given search criteria", + }, + Key: "host.DatastoreBrowser.searchSubFolders", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete datastore file", + Summary: "Deletes the specified files from the datastore", + }, + Key: "host.DatastoreBrowser.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update configuration", + Summary: "Update the date and time on the host", + }, + Key: "host.DateTimeSystem.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available time zones", + Summary: "Retrieves the list of available time zones on the host", + }, + Key: "host.DateTimeSystem.queryAvailableTimeZones", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query date and time", + Summary: "Get the current date and time on the host", + }, + Key: "host.DateTimeSystem.queryDateTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update date or time", + Summary: "Update the date/time on the host", + }, + Key: "host.DateTimeSystem.updateDateTime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh", + Summary: "Refresh the date and time settings", + }, + Key: "host.DateTimeSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire disk lease", + Summary: "Acquire a lease for the files associated with the virtual disk referenced by the given datastore path", + }, + Key: "host.DiskManager.acquireLease", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire lease extension", + Summary: "Acquires a lease for the files associated with the virtual disk of a virtual machine", + }, + Key: "host.DiskManager.acquireLeaseExt", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Renew all leases", + Summary: "Resets the watchdog timer and confirms that all the locks for all the disks managed by this watchdog are still valid", + }, + Key: "host.DiskManager.renewAllLeases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set task custom value", + Summary: "Sets the value of a custom field of a task", + }, + Key: "Task.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel", + Summary: "Cancels a running/queued task", + }, + Key: "Task.cancel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update progress", + Summary: "Update task progress", + }, + Key: "Task.UpdateProgress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set task state", + Summary: "Sets task state", + }, + Key: "Task.setState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update task description", + Summary: "Updates task description with the current phase of the task", + }, + Key: "Task.UpdateDescription", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Renew disk lease", + Summary: "Renew a lease to prevent it from timing out", + }, + Key: "host.DiskManager.Lease.renew", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Release disk lease", + Summary: "End the lease if it is still active", + }, + Key: "host.DiskManager.Lease.release", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocate blocks", + Summary: "Prepare for writing to blocks", + }, + Key: "host.DiskManager.Lease.allocateBlocks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear lazy zero", + Summary: "Honor the contents of a block range", + }, + Key: "host.DiskManager.Lease.clearLazyZero", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Map disk region", + Summary: "Mapping a specified region of a virtual disk", + }, + Key: "host.DiskManager.Lease.MapDiskRegion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update ESX agent configuration", + Summary: "Updates the ESX agent configuration of a host", + }, + Key: "host.EsxAgentHostManager.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset to factory default", + Summary: "Reset the configuration to factory default", + }, + Key: "host.FirmwareSystem.resetToFactoryDefaults", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Backup configuration", + Summary: "Backup the configuration of the host", + }, + Key: "host.FirmwareSystem.backupConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration upload URL", + Summary: "Host configuration must be uploaded for a restore operation", + }, + Key: "host.FirmwareSystem.queryConfigUploadURL", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restore configuration", + Summary: "Restore configuration of the host", + }, + Key: "host.FirmwareSystem.restoreConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Flush firmware configuration", + Summary: "Writes the configuration of the firmware system to persistent storage", + }, + Key: "host.FirmwareSystem.syncConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryQuantumMinutes", + Summary: "queryQuantumMinutes", + }, + Key: "host.FirmwareSystem.queryQuantumMinutes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "querySyncsPerQuantum", + Summary: "querySyncsPerQuantum", + }, + Key: "host.FirmwareSystem.querySyncsPerQuantum", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh hardware information", + Summary: "Refresh hardware information", + }, + Key: "host.HealthStatusSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset system health sensors", + Summary: "Resets the state of the sensors of the IPMI subsystem", + }, + Key: "host.HealthStatusSystem.resetSystemHealthInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear hardware IPMI System Event Log", + Summary: "Clear hardware IPMI System Event Log", + }, + Key: "host.HealthStatusSystem.clearSystemEventLog", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh hardware IPMI System Event Log", + Summary: "Refresh hardware IPMI System Event Log", + }, + Key: "host.HealthStatusSystem.FetchSystemEventLog", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve access entries", + Summary: "Retrieves the access mode for each user or group with access permissions on the host", + }, + Key: "host.HostAccessManager.retrieveAccessEntries", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change access mode", + Summary: "Changes the access mode for a user or group on the host", + }, + Key: "host.HostAccessManager.changeAccessMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve special DCUI access users", + Summary: "Retrieves the list of users with special access to DCUI", + }, + Key: "host.HostAccessManager.queryDcuiAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update special DCUI access users", + Summary: "Updates the list of users with special access to DCUI", + }, + Key: "host.HostAccessManager.updateDcuiAccess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve system users", + Summary: "Retrieve the list of special system users on the host", + }, + Key: "host.HostAccessManager.querySystemUsers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system users", + Summary: "Updates the list of special system users on the host", + }, + Key: "host.HostAccessManager.updateSystemUsers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query lockdown exceptions", + Summary: "Queries the current list of user exceptions for lockdown mode", + }, + Key: "host.HostAccessManager.queryLockdownExceptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update lockdown exceptions", + Summary: "Updates the current list of user exceptions for lockdown mode", + }, + Key: "host.HostAccessManager.updateLockdownExceptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change lockdown mode", + Summary: "Changes lockdown mode on the host", + }, + Key: "host.HostAccessManager.changeLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get acceptance level for host image configuration", + Summary: "Get acceptance level settings for host image configuration", + }, + Key: "host.ImageConfigManager.queryHostAcceptanceLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host image profile", + Summary: "Queries the current host image profile information", + }, + Key: "host.ImageConfigManager.queryHostImageProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update acceptance level", + Summary: "Updates the acceptance level of a host", + }, + Key: "host.ImageConfigManager.updateAcceptanceLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchSoftwarePackages", + Summary: "fetchSoftwarePackages", + }, + Key: "host.ImageConfigManager.fetchSoftwarePackages", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "installDate", + Summary: "installDate", + }, + Key: "host.ImageConfigManager.installDate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host kernel modules", + Summary: "Retrieves information about the kernel modules on the host", + }, + Key: "host.KernelModuleSystem.queryModules", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update kernel module option", + Summary: "Specifies the options to be passed to the kernel module when loaded", + }, + Key: "host.KernelModuleSystem.updateModuleOptionString", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query kernel module options", + Summary: "Retrieves the options configured to be passed to a kernel module when loaded", + }, + Key: "host.KernelModuleSystem.queryConfiguredModuleOptionString", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set memory manager custom value", + Summary: "Sets the value of a custom field of a host memory manager system", + }, + Key: "host.MemoryManagerSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set console memory reservation", + Summary: "Set the configured service console memory reservation", + }, + Key: "host.MemoryManagerSystem.reconfigureServiceConsoleReservation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine reservation", + Summary: "Updates the virtual machine reservation information", + }, + Key: "host.MemoryManagerSystem.reconfigureVirtualMachineReservation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query proxy information", + Summary: "Query the common message bus proxy service information", + }, + Key: "host.MessageBusProxy.retrieveInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure proxy", + Summary: "Configure the common message bus proxy service", + }, + Key: "host.MessageBusProxy.configure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove proxy configuration", + Summary: "Remove the common message proxy service configuration and disable the service", + }, + Key: "host.MessageBusProxy.unconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start proxy", + Summary: "Start the common message bus proxy service", + }, + Key: "host.MessageBusProxy.start", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop proxy", + Summary: "Stop the common message bus proxy service", + }, + Key: "host.MessageBusProxy.stop", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload proxy", + Summary: "Reload the common message bus proxy service and enable any configuration changes", + }, + Key: "host.MessageBusProxy.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set service custom value", + Summary: "Sets the value of a custom field of a host service system.", + }, + Key: "host.ServiceSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update service activation policy", + Summary: "Updates the activation policy of the service", + }, + Key: "host.ServiceSystem.updatePolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start service", + Summary: "Starts the service", + }, + Key: "host.ServiceSystem.start", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop service", + Summary: "Stops the service", + }, + Key: "host.ServiceSystem.stop", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restart service", + Summary: "Restarts the service", + }, + Key: "host.ServiceSystem.restart", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall service", + Summary: "Uninstalls the service", + }, + Key: "host.ServiceSystem.uninstall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh service information", + Summary: "Refresh the service information and settings to detect any changes made directly on the host", + }, + Key: "host.ServiceSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure SNMP agent", + Summary: "Reconfigure the SNMP agent", + }, + Key: "host.SnmpSystem.reconfigureSnmpAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send test notification", + Summary: "Send test notification", + }, + Key: "host.SnmpSystem.sendTestNotification", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash resource", + Summary: "Configures virtual flash resource on a list of SSD devices", + }, + Key: "host.VFlashManager.configureVFlashResourceEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash resource", + Summary: "Configures virtual flash resource on a host", + }, + Key: "host.VFlashManager.configureVFlashResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual flash resource", + Summary: "Removes virtual flash resource from a host", + }, + Key: "host.VFlashManager.removeVFlashResource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual flash host swap cache", + Summary: "Configures virtual flash host swap cache", + }, + Key: "host.VFlashManager.configureHostVFlashCache", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual flash module configuration options from a host", + Summary: "Retrieves virtual flash module configuration options from a host", + }, + Key: "host.VFlashManager.getVFlashModuleDefaultConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query disks for use in vSAN cluster", + Summary: "Queries disk eligibility for use in the vSAN cluster", + }, + Key: "host.VsanSystem.queryDisksForVsan", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add disks to vSAN", + Summary: "Adds the selected disks to the vSAN cluster", + }, + Key: "host.VsanSystem.addDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initialize disks in the vSAN cluster", + Summary: "Initializes the selected disks to be used in the vSAN cluster", + }, + Key: "host.VsanSystem.initializeDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove disk from vSAN", + Summary: "Removes the disks that are used in the vSAN cluster", + }, + Key: "host.VsanSystem.removeDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove disk group from vSAN", + Summary: "Removes the selected disk group from the vSAN cluster", + }, + Key: "host.VsanSystem.removeDiskMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmountDiskMapping", + Summary: "unmountDiskMapping", + }, + Key: "host.VsanSystem.unmountDiskMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSAN configuration", + Summary: "Updates the vSAN configuration for this host", + }, + Key: "host.VsanSystem.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve vSAN runtime information", + Summary: "Retrieves the current vSAN runtime information for this host", + }, + Key: "host.VsanSystem.queryHostStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Evacuate this host from vSAN cluster", + Summary: "Evacuates the specified host from the vSAN cluster", + }, + Key: "host.VsanSystem.evacuateNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recommission this host back to vSAN cluster", + Summary: "Recommissions the host back to vSAN cluster", + }, + Key: "host.VsanSystem.recommissionNode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a ticket to register the vSAN VASA Provider", + Summary: "Retrieves a ticket to register the VASA Provider for vSAN in the Storage Monitoring Service", + }, + Key: "host.VsanSystem.fetchVsanSharedSecret", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Join Windows Domain", + Summary: "Enables ActiveDirectory authentication on the host", + }, + Key: "host.ActiveDirectoryAuthentication.joinDomain", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Join Windows Domain through vSphere Authentication Proxy service", + Summary: "Enables Active Directory authentication on the host using a vSphere Authentication Proxy server", + }, + Key: "host.ActiveDirectoryAuthentication.joinDomainWithCAM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import the certificate of vSphere Authentication Proxy server", + Summary: "Import the certificate of vSphere Authentication Proxy server to ESXi's authentication store", + }, + Key: "host.ActiveDirectoryAuthentication.importCertificateForCAM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Leave Windows Domain", + Summary: "Disables ActiveDirectory authentication on the host", + }, + Key: "host.ActiveDirectoryAuthentication.leaveCurrentDomain", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable Smart Card Authentication", + Summary: "Enables smart card authentication of ESXi Direct Console UI users", + }, + Key: "host.ActiveDirectoryAuthentication.enableSmartCardAuthentication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install a Smart Card Trust Anchor", + Summary: "Installs a smart card trust anchor on the host", + }, + Key: "host.ActiveDirectoryAuthentication.installSmartCardTrustAnchor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "replaceSmartCardTrustAnchors", + Summary: "replaceSmartCardTrustAnchors", + }, + Key: "host.ActiveDirectoryAuthentication.replaceSmartCardTrustAnchors", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a Smart Card Trust Anchor", + Summary: "Removes an installed smart card trust anchor from the host", + }, + Key: "host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Smart Card Trust Anchor", + Summary: "Removes the installed smart card trust anchor from the host", + }, + Key: "host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchorByFingerprint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List Smart Card Trust Anchors", + Summary: "Lists the smart card trust anchors installed on the host", + }, + Key: "host.ActiveDirectoryAuthentication.listSmartCardTrustAnchors", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable Smart Card Authentication", + Summary: "Disables smart card authentication of ESXi Direct Console UI users", + }, + Key: "host.ActiveDirectoryAuthentication.disableSmartCardAuthentication", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update local swap datastore", + Summary: "Changes the datastore for virtual machine swap files", + }, + Key: "host.DatastoreSystem.updateLocalSwapDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve disks for VMFS datastore", + Summary: "Retrieves the list of disks that can be used to contain VMFS datastore extents", + }, + Key: "host.DatastoreSystem.queryAvailableDisksForVmfs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore create options", + Summary: "Queries options for creating a new VMFS datastore for a disk", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreCreateOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create VMFS datastore", + Summary: "Creates a new VMFS datastore", + }, + Key: "host.DatastoreSystem.createVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore extend options", + Summary: "Queries options for extending an existing VMFS datastore for a disk", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreExtendOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query VMFS datastore expand options", + Summary: "Query the options available for expanding the extents of a VMFS datastore", + }, + Key: "host.DatastoreSystem.queryVmfsDatastoreExpandOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend datastore", + Summary: "Extends an existing VMFS datastore", + }, + Key: "host.DatastoreSystem.extendVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Expand VMFS datastore", + Summary: "Expand the capacity of a VMFS datastore extent", + }, + Key: "host.DatastoreSystem.expandVmfsDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "processVmfsDatastoreUpdate", + Summary: "processVmfsDatastoreUpdate", + }, + Key: "host.DatastoreSystem.processVmfsDatastoreUpdate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create NAS datastore", + Summary: "Creates a new Network Attached Storage (NAS) datastore", + }, + Key: "host.DatastoreSystem.createNasDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create local datastore", + Summary: "Creates a new local datastore", + }, + Key: "host.DatastoreSystem.createLocalDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Virtual Volume datastore", + Summary: "Updates the Virtual Volume datastore configuration according to the provided settings", + }, + Key: "host.DatastoreSystem.UpdateVvolDatastoreInternal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a datastore backed by a Virtual Volume storage container", + }, + Key: "host.DatastoreSystem.createVvolDatastoreInternal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a Virtuial Volume datastore", + }, + Key: "host.DatastoreSystem.createVvolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastore", + Summary: "Removes a datastore from a host", + }, + Key: "host.DatastoreSystem.removeDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datastores", + Summary: "Removes one or more datastores from a host", + }, + Key: "host.DatastoreSystem.removeDatastoreEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure datastore principal", + Summary: "Configures datastore principal user for the host", + }, + Key: "host.DatastoreSystem.configureDatastorePrincipal", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unbound VMFS volumes", + Summary: "Gets the list of unbound VMFS volumes", + }, + Key: "host.DatastoreSystem.queryUnresolvedVmfsVolumes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resignature unresolved VMFS volume", + Summary: "Resignature unresolved VMFS volume with new VMFS identifier", + }, + Key: "host.DatastoreSystem.resignatureUnresolvedVmfsVolume", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "NotifyDatastore", + Summary: "NotifyDatastore", + }, + Key: "host.DatastoreSystem.NotifyDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check accessibility", + Summary: "Check if the file objects for the specified virtual machine IDs are accessible", + }, + Key: "host.DatastoreSystem.checkVmFileAccessibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set firewall custom value", + Summary: "Sets the value of a custom field of a host firewall system", + }, + Key: "host.FirewallSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update default firewall policy", + Summary: "Updates the default firewall policy", + }, + Key: "host.FirewallSystem.updateDefaultPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open firewall ports", + Summary: "Open the firewall ports belonging to the specified ruleset", + }, + Key: "host.FirewallSystem.enableRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Block firewall ports", + Summary: "Block the firewall ports belonging to the specified ruleset", + }, + Key: "host.FirewallSystem.disableRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update allowed IP list of the firewall ruleset", + Summary: "Update the allowed IP list of the specified ruleset", + }, + Key: "host.FirewallSystem.updateRuleset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh firewall information", + Summary: "Refresh the firewall information and settings to detect any changes made directly on the host", + }, + Key: "host.FirewallSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set network custom value", + Summary: "Sets the value of a custom field of a host network system", + }, + Key: "host.NetworkSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network configuration", + Summary: "Network configuration information", + }, + Key: "host.NetworkSystem.updateNetworkConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update DNS configuration", + Summary: "Update the DNS configuration for the host", + }, + Key: "host.NetworkSystem.updateDnsConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP route configuration", + Summary: "Update IP route configuration", + }, + Key: "host.NetworkSystem.updateIpRouteConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update console IP route configuration", + Summary: "Update console IP route configuration", + }, + Key: "host.NetworkSystem.updateConsoleIpRouteConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP route table configuration", + Summary: "Applies the IP route table configuration for the host", + }, + Key: "host.NetworkSystem.updateIpRouteTableConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual switch", + Summary: "Add a new virtual switch to the system", + }, + Key: "host.NetworkSystem.addVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual switch", + Summary: "Remove an existing virtual switch from the system", + }, + Key: "host.NetworkSystem.removeVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual switch", + Summary: "Updates the properties of the virtual switch", + }, + Key: "host.NetworkSystem.updateVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add port group", + Summary: "Add a port group to the virtual switch", + }, + Key: "host.NetworkSystem.addPortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove port group", + Summary: "Remove a port group from the virtual switch", + }, + Key: "host.NetworkSystem.removePortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure port group", + Summary: "Reconfigure a port group on the virtual switch", + }, + Key: "host.NetworkSystem.updatePortGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update physical NIC link speed", + Summary: "Configure link speed and duplexity", + }, + Key: "host.NetworkSystem.updatePhysicalNicLinkSpeed", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network hint", + Summary: "Request network hint information for a physical NIC", + }, + Key: "host.NetworkSystem.queryNetworkHint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual NIC", + Summary: "Add a virtual host or service console NIC", + }, + Key: "host.NetworkSystem.addVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual NIC", + Summary: "Remove a virtual host or service console NIC", + }, + Key: "host.NetworkSystem.removeVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update virtual NIC", + Summary: "Configure virtual host or VMkernel NIC", + }, + Key: "host.NetworkSystem.updateVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add service console virtual NIC", + Summary: "Add a virtual service console NIC", + }, + Key: "host.NetworkSystem.addServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove service console virtual NIC", + Summary: "Remove a virtual service console NIC", + }, + Key: "host.NetworkSystem.removeServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update service console virtual NIC", + Summary: "Update IP configuration for a service console virtual NIC", + }, + Key: "host.NetworkSystem.updateServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Restart virtual network adapter interface", + Summary: "Restart the service console virtual network adapter interface", + }, + Key: "host.NetworkSystem.restartServiceConsoleVirtualNic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh network information", + Summary: "Refresh the network information and settings to detect any changes that have occurred", + }, + Key: "host.NetworkSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Invoke API call on host with transactionId", + Summary: "Invoke API call on host with transactionId", + }, + Key: "host.NetworkSystem.invokeHostTransactionCall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Commit transaction to confirm that host is connected to vCenter Server", + Summary: "Commit transaction to confirm that host is connected to vCenter Server", + }, + Key: "host.NetworkSystem.commitTransaction", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performHostOpaqueNetworkDataOperation", + Summary: "performHostOpaqueNetworkDataOperation", + }, + Key: "host.NetworkSystem.performHostOpaqueNetworkDataOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve available diagnostic partitions", + Summary: "Retrieves a list of available diagnostic partitions", + }, + Key: "host.DiagnosticSystem.queryAvailablePartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change active diagnostic partition", + Summary: "Changes the active diagnostic partition to a different partition", + }, + Key: "host.DiagnosticSystem.selectActivePartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve diagnostic partitionable disks", + Summary: "Retrieves a list of disks that can be used to contain a diagnostic partition", + }, + Key: "host.DiagnosticSystem.queryPartitionCreateOptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve diagnostic partition creation description", + Summary: "Retrieves the diagnostic partition creation description for a disk", + }, + Key: "host.DiagnosticSystem.queryPartitionCreateDesc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create diagnostic partition", + Summary: "Creates a diagnostic partition according to the provided creation specification", + }, + Key: "host.DiagnosticSystem.createDiagnosticPartition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vApp custom value", + Summary: "Sets the value of a custom field on a vApp", + }, + Key: "VirtualApp.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload vApp", + Summary: "Reload the vApp", + }, + Key: "VirtualApp.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vApp", + Summary: "Rename the vApp", + }, + Key: "VirtualApp.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vApp", + Summary: "Delete the vApp, including all child vApps and virtual machines", + }, + Key: "VirtualApp.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the vApp", + }, + Key: "VirtualApp.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the vApp", + }, + Key: "VirtualApp.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "VirtualApp.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vApp resource configuration", + Summary: "Updates the resource configuration for the vApp", + }, + Key: "VirtualApp.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move into vApp", + Summary: "Moves a set of entities into this vApp", + }, + Key: "VirtualApp.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update child resource configuration", + Summary: "Change resource configuration of a set of children of the vApp", + }, + Key: "VirtualApp.updateChildResourceConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create resource pool", + Summary: "Creates a new resource pool", + }, + Key: "VirtualApp.createResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vApp children", + Summary: "Deletes all child resource pools recursively", + }, + Key: "VirtualApp.destroyChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vApp", + Summary: "Creates a child vApp of this vApp", + }, + Key: "VirtualApp.createVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine in this vApp", + }, + Key: "VirtualApp.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this vApp", + }, + Key: "VirtualApp.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "VirtualApp.importVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Virtual App resource configuration options", + Summary: "Returns configuration options for a set of resources for a Virtual App", + }, + Key: "VirtualApp.queryResourceConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh Virtual App runtime information", + Summary: "Refreshes the resource usage runtime information for a Virtual App", + }, + Key: "VirtualApp.refreshRuntime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vApp Configuration", + Summary: "Updates the vApp configuration", + }, + Key: "VirtualApp.updateVAppConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update linked children", + Summary: "Updates the list of linked children", + }, + Key: "VirtualApp.updateLinkedChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone vApp", + Summary: "Clone the vApp, including all child entities", + }, + Key: "VirtualApp.clone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the vApp as an OVF template", + }, + Key: "VirtualApp.exportVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start vApp", + Summary: "Starts the vApp", + }, + Key: "VirtualApp.powerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop vApp", + Summary: "Stops the vApp", + }, + Key: "VirtualApp.powerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend vApp", + Summary: "Suspends the vApp", + }, + Key: "VirtualApp.suspend", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister vApp", + Summary: "Unregister all child virtual machines and remove the vApp", + }, + Key: "VirtualApp.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual NIC custom value", + Summary: "Set the value of a custom filed of a host's virtual NIC manager", + }, + Key: "host.VirtualNicManager.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network configuration", + Summary: "Gets the network configuration for the specified NIC type", + }, + Key: "host.VirtualNicManager.queryNetConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Select virtual NIC", + Summary: "Select the virtual NIC to be used for the specified NIC type", + }, + Key: "host.VirtualNicManager.selectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deselect virtual NIC", + Summary: "Deselect the virtual NIC used for the specified NIC type", + }, + Key: "host.VirtualNicManager.deselectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download overhead computation script", + Summary: "Download overhead computation scheme script", + }, + Key: "OverheadService.downloadScript", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download host configuration", + Summary: "Download host configuration consumed by overhead computation script", + }, + Key: "OverheadService.downloadHostConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download VM configuration", + Summary: "Download VM configuration consumed by overhead computation script", + }, + Key: "OverheadService.downloadVMXConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add an alias to the alias store in the guest", + Summary: "Add an alias to the alias store in the guest operating system", + }, + Key: "vm.guest.AliasManager.addAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an alias from the alias store in the guest", + Summary: "Remove an alias from the alias store in the guest operating system", + }, + Key: "vm.guest.AliasManager.removeAlias", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove all aliases associated with a SSO Server certificate from the guest", + Summary: "Remove all aliases associated with a SSO Server certificate from the guest operating system", + }, + Key: "vm.guest.AliasManager.removeAliasByCert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all aliases for a user in the guest", + Summary: "List all aliases for a user in the guest operating system", + }, + Key: "vm.guest.AliasManager.listAliases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List all mapped aliases in the guest", + Summary: "List all mapped aliases in the guest operating system", + }, + Key: "vm.guest.AliasManager.listMappedAliases", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a directory in the guest", + Summary: "Create a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.makeDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a file in the guest", + Summary: "Delete a file in the guest operating system", + }, + Key: "vm.guest.FileManager.deleteFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a directory in the guest", + Summary: "Delete a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.deleteDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move or rename a directory in the guest", + Summary: "Move or rename a directory in the guest operating system", + }, + Key: "vm.guest.FileManager.moveDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move or rename a file in the guest", + Summary: "Move or rename a file in the guest operating system", + }, + Key: "vm.guest.FileManager.moveFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a temporary file in the guest", + Summary: "Create a temporary file in the guest operating system", + }, + Key: "vm.guest.FileManager.createTemporaryFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a temporary directory in the guest", + Summary: "Create a temporary directory in the guest operating system", + }, + Key: "vm.guest.FileManager.createTemporaryDirectory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List files or directories in the guest", + Summary: "List files or directories in the guest operating system", + }, + Key: "vm.guest.FileManager.listFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Change the attributes of a file in the guest", + Summary: "Change the attributes of a file in the guest operating system", + }, + Key: "vm.guest.FileManager.changeFileAttributes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiates an operation to transfer a file from the guest", + Summary: "Initiates an operation to transfer a file from the guest operating system", + }, + Key: "vm.guest.FileManager.initiateFileTransferFromGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiates an operation to transfer a file to the guest", + Summary: "Initiates an operation to transfer a file to the guest operating system", + }, + Key: "vm.guest.FileManager.initiateFileTransferToGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start a program in the guest", + Summary: "Start a program in the guest operating system", + }, + Key: "vm.guest.ProcessManager.startProgram", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List processes in the guest", + Summary: "List processes in the guest operating system", + }, + Key: "vm.guest.ProcessManager.listProcesses", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Terminate a process in the guest", + Summary: "Terminate a process in the guest operating system", + }, + Key: "vm.guest.ProcessManager.terminateProcess", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read an environment variable in the guest", + Summary: "Read an environment variable in the guest operating system", + }, + Key: "vm.guest.ProcessManager.readEnvironmentVariable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove view", + Summary: "Remove view", + }, + Key: "view.View.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve associated License Data objects", + Summary: "Retrieves all the associated License Data objects", + }, + Key: "LicenseDataManager.queryEntityLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve license data associated with managed entity", + Summary: "Retrieves the license data associated with a specified managed entity", + }, + Key: "LicenseDataManager.queryAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update entity license container", + Summary: "Updates the license container associated with a specified managed entity", + }, + Key: "LicenseDataManager.updateAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply associated license data to managed entity", + Summary: "Applies associated license data to a managed entity", + }, + Key: "LicenseDataManager.applyAssociatedLicenseData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update assigned license", + Summary: "Updates the license assigned to an entity", + }, + Key: "LicenseAssignmentManager.updateAssignedLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove assigned license", + Summary: "Removes an assignment of a license to an entity", + }, + Key: "LicenseAssignmentManager.removeAssignedLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query assigned licenses", + Summary: "Queries for all the licenses assigned to an entity or all entities", + }, + Key: "LicenseAssignmentManager.queryAssignedLicenses", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check feature availability", + Summary: "Checks if the corresponding features are licensed for a list of entities", + }, + Key: "LicenseAssignmentManager.isFeatureAvailable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update in-use status of a licensed feature", + Summary: "Updates in-use status of a licensed feature", + }, + Key: "LicenseAssignmentManager.updateFeatureInUse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register licenseable entity", + Summary: "Registers a licenseable entity", + }, + Key: "LicenseAssignmentManager.registerEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister licenseable entity", + Summary: "Unregisters an existing licenseable entity and releases any serial numbers assigned to it.", + }, + Key: "LicenseAssignmentManager.unregisterEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update license entity usage count", + Summary: "Updates the usage count of a license entity", + }, + Key: "LicenseAssignmentManager.updateUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upload license file", + Summary: "Uploads a license file to vCenter Server", + }, + Key: "LicenseAssignmentManager.uploadLicenseFile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryAssignedLicensesEx", + Summary: "queryAssignedLicensesEx", + }, + Key: "LicenseAssignmentManager.queryAssignedLicensesEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntity", + Summary: "updateEntity", + }, + Key: "LicenseAssignmentManager.updateEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateEntitiesProperties", + Summary: "updateEntitiesProperties", + }, + Key: "LicenseAssignmentManager.updateEntitiesProperties", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set backup agent custom value", + Summary: "Set backup agent custom value", + }, + Key: "vm.BackupAgent.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start virtual machine backup", + Summary: "Start a backup operation inside the virtual machine guest", + }, + Key: "vm.BackupAgent.startBackup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop virtual machine backup", + Summary: "Stop a backup operation in a virtual machine", + }, + Key: "vm.BackupAgent.abortBackup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify virtual machine snapshot completion", + Summary: "Notify the virtual machine when a snapshot operation is complete", + }, + Key: "vm.BackupAgent.notifySnapshotCompletion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Wait for guest event", + Summary: "Wait for an event delivered by the virtual machine guest", + }, + Key: "vm.BackupAgent.waitForEvent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create namespace", + Summary: "Create a virtual machine namespace", + }, + Key: "vm.NamespaceManager.createNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete namespace", + Summary: "Delete the virtual machine namespace", + }, + Key: "vm.NamespaceManager.deleteNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete all namespaces", + Summary: "Delete all namespaces associated with the virtual machine", + }, + Key: "vm.NamespaceManager.deleteAllNamespaces", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update namespace", + Summary: "Reconfigure the virtual machine namespace", + }, + Key: "vm.NamespaceManager.updateNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query namespace", + Summary: "Retrieve detailed information about the virtual machine namespace", + }, + Key: "vm.NamespaceManager.queryNamespace", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List namespaces", + Summary: "Retrieve the list of all namespaces for a virtual machine", + }, + Key: "vm.NamespaceManager.listNamespaces", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send event to the virtual machine", + Summary: "Queue event for delivery to the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.sendEventToGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch events from the virtual machine", + Summary: "Retrieve events sent by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.fetchEventsFromGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update data", + Summary: "Update key/value pairs accessible by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.updateData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve data", + Summary: "Retrieve key/value pairs set by the agent in the virtual machine", + }, + Key: "vm.NamespaceManager.retrieveData", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Pause", + Summary: "Pauses a virtual machine", + }, + Key: "vm.PauseManager.pause", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unpause", + Summary: "Unpauses a virtual machine", + }, + Key: "vm.PauseManager.unpause", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power on and pause", + Summary: "Powers on a virtual machine and pauses it immediately", + }, + Key: "vm.PauseManager.powerOnPaused", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure host cache performance enhancement", + Summary: "Configures host cache by allocating space on a low latency device (usually a solid state drive) for enhanced system performance", + }, + Key: "host.CacheConfigurationManager.configureCache", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query whether virtual NIC is used by iSCSI multi-pathing", + Summary: "Query whether virtual NIC is used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryVnicStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query whether physical NIC is used by iSCSI multi-pathing", + Summary: "Query whether physical NIC is used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryPnicStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query all the virtual NICs used by iSCSI multi-pathing", + Summary: "Query all the virtual NICs used by iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryBoundVnics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query candidate virtual NICs that can be used for iSCSI multi-pathing", + Summary: "Query candidate virtual NICs that can be used for iSCSI multi-pathing", + }, + Key: "host.IscsiManager.queryCandidateNics", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add virtual NIC to iSCSI Adapter", + Summary: "Add virtual NIC to iSCSI Adapter", + }, + Key: "host.IscsiManager.bindVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove virtual NIC from iSCSI Adapter", + Summary: "Remove virtual NIC from iSCSI Adapter", + }, + Key: "host.IscsiManager.unbindVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query migration dependencies for migrating the physical and virtual NICs", + Summary: "Query migration dependencies for migrating the physical and virtual NICs", + }, + Key: "host.IscsiManager.queryMigrationDependencies", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set PCI passthrough system custom value", + Summary: "Set PCI Passthrough system custom value", + }, + Key: "host.PciPassthruSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh PCI passthrough device information", + Summary: "Refresh the available PCI passthrough device information", + }, + Key: "host.PciPassthruSystem.refresh", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update PCI passthrough configuration", + Summary: "Update PCI passthrough device configuration", + }, + Key: "host.PciPassthruSystem.updatePassthruConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query network protocol profiles", + Summary: "Queries the list of network protocol profiles for a datacenter", + }, + Key: "IpPoolManager.queryIpPools", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create network protocol profile", + Summary: "Creates a new network protocol profile", + }, + Key: "IpPoolManager.createIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network protocol profile", + Summary: "Updates a network protocol profile on a datacenter", + }, + Key: "IpPoolManager.updateIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Destroy network protocol profile", + Summary: "Destroys a network protocol profile on the given datacenter", + }, + Key: "IpPoolManager.destroyIpPool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocates an IPv4 address", + Summary: "Allocates an IPv4 address from an IP pool", + }, + Key: "IpPoolManager.allocateIpv4Address", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Allocates an IPv6 address", + Summary: "Allocates an IPv6 address from an IP pool", + }, + Key: "IpPoolManager.allocateIpv6Address", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Releases an IP allocation", + Summary: "Releases an IP allocation back to an IP pool", + }, + Key: "IpPoolManager.releaseIpAllocation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query IP allocations", + Summary: "Query IP allocations by IP pool and extension key", + }, + Key: "IpPoolManager.queryIPAllocations", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh the CA certificates on the host", + Summary: "Refreshes the CA certificates on the host", + }, + Key: "CertificateManager.refreshCACertificatesAndCRLs", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh the subject certificate on the host", + Summary: "Refreshes the subject certificate on the host", + }, + Key: "CertificateManager.refreshCertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revoke the subject certificate of a host", + Summary: "Revokes the subject certificate of a host", + }, + Key: "CertificateManager.revokeCertificates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query entity provider summary", + Summary: "Get information about the performance statistics that can be queried for a particular entity", + }, + Key: "PerformanceManager.queryProviderSummary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query available metrics", + Summary: "Gets available performance statistic metrics for the specified managed entity between begin and end times", + }, + Key: "PerformanceManager.queryAvailableMetric", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query counter", + Summary: "Get counter information for the list of counter IDs passed in", + }, + Key: "PerformanceManager.queryCounter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query counter by level", + Summary: "All performance data over 1 year old are deleted from the vCenter database", + }, + Key: "PerformanceManager.queryCounterByLevel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query performance statistics", + Summary: "Gets the performance statistics for the entity", + }, + Key: "PerformanceManager.queryStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get composite statistics", + Summary: "Get performance statistics for the entity and the breakdown across its child entities", + }, + Key: "PerformanceManager.queryCompositeStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Summarizes performance statistics", + Summary: "Summarizes performance statistics at the specified interval", + }, + Key: "PerformanceManager.summarizeStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create historical interval", + Summary: "Add a new historical interval configuration", + }, + Key: "PerformanceManager.createHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove historical interval", + Summary: "Remove a historical interval configuration", + }, + Key: "PerformanceManager.removeHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update historical interval", + Summary: "Update a historical interval configuration if it exists", + }, + Key: "PerformanceManager.updateHistoricalInterval", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update counter level mapping", + Summary: "Update counter to level mapping", + }, + Key: "PerformanceManager.updateCounterLevelMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset counter level mapping", + Summary: "Reset counter to level mapping to the default values", + }, + Key: "PerformanceManager.resetCounterLevelMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query internal performance counters", + Summary: "Queries all internal counters, supported by this performance manager", + }, + Key: "PerformanceManager.queryPerfCounterInt", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable performance counters", + Summary: "Enable a counter or a set of counters in the counters collection of this performance manager", + }, + Key: "PerformanceManager.enableStat", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable performance counters", + Summary: "Exclude a counter or a set of counters from the counters collection of this performance manager", + }, + Key: "PerformanceManager.disableStat", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerProvider", + Summary: "registerProvider", + }, + Key: "ExternalStatsManager.registerProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unregisterProvider", + Summary: "unregisterProvider", + }, + Key: "ExternalStatsManager.unregisterProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "isRegistered", + Summary: "isRegistered", + }, + Key: "ExternalStatsManager.isRegistered", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getRegisteredProviders", + Summary: "getRegisteredProviders", + }, + Key: "ExternalStatsManager.getRegisteredProviders", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getEnabledClusters", + Summary: "getEnabledClusters", + }, + Key: "ExternalStatsManager.getEnabledClusters", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "updateStats", + Summary: "updateStats", + }, + Key: "ExternalStatsManager.updateStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create task collector", + Summary: "Creates a task collector to retrieve all tasks that have executed on the server based on a filter", + }, + Key: "TaskManager.createCollector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create task", + Summary: "Create a task", + }, + Key: "TaskManager.createTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "createTaskWithEntityName", + Summary: "createTaskWithEntityName", + }, + Key: "TaskManager.createTaskWithEntityName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set host custom value", + Summary: "Sets the value of a custom field of an host", + }, + Key: "HostSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload host system", + Summary: "Reloads the host system", + }, + Key: "HostSystem.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename host", + Summary: "Rename this host", + }, + Key: "HostSystem.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove host", + Summary: "Removes the host", + }, + Key: "HostSystem.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the host", + }, + Key: "HostSystem.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the host", + }, + Key: "HostSystem.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "HostSystem.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query TPM attestation information", + Summary: "Provides details of the secure boot and TPM status", + }, + Key: "HostSystem.queryTpmAttestationReport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query connection information", + Summary: "Connection information about a host", + }, + Key: "HostSystem.queryConnectionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve internal host capabilities", + Summary: "Retrieves vCenter Server-specific internal host capabilities", + }, + Key: "HostSystem.retrieveInternalCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "", + Summary: "", + }, + Key: "HostSystem.retrieveInternalConfigManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system resources", + Summary: "Update the configuration of the system resource hierarchy", + }, + Key: "HostSystem.updateSystemResources", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update system swap configuration", + Summary: "Update the configuration of the system swap", + }, + Key: "HostSystem.updateSystemSwapConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconnect host", + Summary: "Reconnects to a host", + }, + Key: "HostSystem.reconnect", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disconnect host", + Summary: "Disconnects from a host", + }, + Key: "HostSystem.disconnect", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter maintenance mode", + Summary: "Puts the host in maintenance mode", + }, + Key: "HostSystem.enterMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit maintenance mode", + Summary: "Disables maintenance mode", + }, + Key: "HostSystem.exitMaintenanceMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate host reboot", + Summary: "Initiates a host reboot", + }, + Key: "HostSystem.reboot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate host shutdown", + Summary: "Initiates a host shutdown", + }, + Key: "HostSystem.shutdown", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter standby mode", + Summary: "Puts this host into standby mode", + }, + Key: "HostSystem.enterStandbyMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit standby mode", + Summary: "Brings this host out of standby mode", + }, + Key: "HostSystem.exitStandbyMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query host overhead", + Summary: "Determines the amount of memory overhead necessary to power on a virtual machine with the specified characteristics", + }, + Key: "HostSystem.queryOverhead", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query memory overhead", + Summary: "Query memory overhead", + }, + Key: "HostSystem.queryOverheadEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere HA host", + Summary: "Reconfigures the host for vSphere HA", + }, + Key: "HostSystem.reconfigureDAS", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Patch Manager", + Summary: "Retrieves a reference to Patch Manager", + }, + Key: "HostSystem.retrievePatchManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update host system flags", + Summary: "Update the flags of the host system", + }, + Key: "HostSystem.updateFlags", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send Wake-on-LAN packet", + Summary: "Send Wake-on-LAN packets to the physical NICs specified", + }, + Key: "HostSystem.sendWakeOnLanPacket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable lockdown mode", + Summary: "Enable lockdown mode on this host", + }, + Key: "HostSystem.disableAdmin", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable lockdown mode", + Summary: "Disable lockdown mode on this host", + }, + Key: "HostSystem.enableAdmin", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable lockdown mode", + Summary: "Enable lockdown mode on this host", + }, + Key: "HostSystem.enterLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable lockdown mode", + Summary: "Disable lockdown mode on this host", + }, + Key: "HostSystem.exitLockdownMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update management server IP", + Summary: "Update information about the vCenter Server managing this host", + }, + Key: "HostSystem.updateManagementServerIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire CIM service", + Summary: "Establish a remote connection to a CIM interface", + }, + Key: "HostSystem.acquireCimServicesTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IPMI or ILO information used by DPM", + Summary: "Update IPMI or ILO information for this host used by DPM", + }, + Key: "HostSystem.updateIpmi", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update SSL thumbprint registry", + Summary: "Updates the SSL thumbprint registry on the host", + }, + Key: "HostSystem.updateSslThumbprintInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve host hardware uptime", + Summary: "Retrieves the hardware uptime for the host in seconds", + }, + Key: "HostSystem.retrieveHardwareUptime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Dynamic Type Manager", + Summary: "Retrieves a reference to Dynamic Type Manager", + }, + Key: "HostSystem.retrieveDynamicTypeManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve Managed Method Executer", + Summary: "Retrieves a reference to Managed Method Executer", + }, + Key: "HostSystem.retrieveManagedMethodExecuter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine memory overhead", + Summary: "Query memory overhead for a virtual machine power on", + }, + Key: "HostSystem.queryOverheadEx2", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test EVC mode", + Summary: "Test an EVC mode on a host", + }, + Key: "HostSystem.testEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply EVC mode", + Summary: "Applies an EVC mode to a host", + }, + Key: "HostSystem.applyEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check whether the certificate is trusted by vCenter Server", + Summary: "Checks whether the certificate matches the host certificate that vCenter Server trusts", + }, + Key: "HostSystem.checkCertificateTrusted", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Prepare host", + Summary: "Prepare host for encryption", + }, + Key: "HostSystem.prepareCrypto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable encryption", + Summary: "Enable encryption on the current host", + }, + Key: "HostSystem.enableCrypto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure the host key", + Summary: "Configure the encryption key on the current host", + }, + Key: "HostSystem.configureCryptoKey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch set custom value", + Summary: "vSphere Distributed Switch set custom value", + }, + Key: "DistributedVirtualSwitch.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch reload", + Summary: "vSphere Distributed Switch reload", + }, + Key: "DistributedVirtualSwitch.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vSphere Distributed Switch", + Summary: "Rename vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete vSphere Distributed Switch", + Summary: "Delete vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch add tag", + Summary: "vSphere Distributed Switch add tag", + }, + Key: "DistributedVirtualSwitch.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch remove tag", + Summary: "vSphere Distributed Switch remove tag", + }, + Key: "DistributedVirtualSwitch.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "DistributedVirtualSwitch.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPort keys", + Summary: "Retrieve dvPort keys", + }, + Key: "DistributedVirtualSwitch.fetchPortKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPorts", + Summary: "Retrieve dvPorts", + }, + Key: "DistributedVirtualSwitch.fetchPorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query vSphere Distributed Switch used virtual LAN ID", + Summary: "Query vSphere Distributed Switch used virtual LAN ID", + }, + Key: "DistributedVirtualSwitch.queryUsedVlanId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch product specification operation", + Summary: "vSphere Distributed Switch product specification operation", + }, + Key: "DistributedVirtualSwitch.performProductSpecOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Merge vSphere Distributed Switches", + Summary: "Merge vSphere Distributed Switches", + }, + Key: "DistributedVirtualSwitch.merge", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "DistributedVirtualSwitch.addPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move dvPorts", + Summary: "Move dvPorts", + }, + Key: "DistributedVirtualSwitch.movePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch capability", + Summary: "Update vSphere Distributed Switch capability", + }, + Key: "DistributedVirtualSwitch.updateCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure dvPort", + Summary: "Reconfigure dvPort", + }, + Key: "DistributedVirtualSwitch.reconfigurePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh dvPort state", + Summary: "Refresh dvPort state", + }, + Key: "DistributedVirtualSwitch.refreshPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify host in vSphere Distributed Switch", + Summary: "Rectify host in vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network resource pools on vSphere Distributed Switch", + Summary: "Update network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.updateNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add network resource pools on vSphere Distributed Switch", + Summary: "Add network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.addNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network resource pools on vSphere Distributed Switch", + Summary: "Remove network resource pools on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.removeNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure a network resource pool on a distributed switch", + Summary: "Reconfigures the network resource pool on a distributed switch", + }, + Key: "DistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network I/O control on vSphere Distributed Switch", + Summary: "Update network I/O control on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.enableNetworkResourceManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get vSphere Distributed Switch configuration spec to rollback", + Summary: "Get vSphere Distributed Switch configuration spec to rollback", + }, + Key: "DistributedVirtualSwitch.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "DistributedVirtualSwitch.addPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update health check configuration on vSphere Distributed Switch", + Summary: "Update health check configuration on vSphere Distributed Switch", + }, + Key: "DistributedVirtualSwitch.updateHealthCheckConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "DistributedVirtualSwitch.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Annotate OVF section tree", + Summary: "Annotates the given OVF section tree with configuration choices for this OVF consumer", + }, + Key: "OvfConsumer.annotateOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate instantiation OVF section tree", + Summary: "Validates that this OVF consumer can accept an instantiation OVF section tree", + }, + Key: "OvfConsumer.validateInstantiationOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Request registration of OVF section tree nodes", + Summary: "Notifies the OVF consumer that the specified OVF section tree nodes should be registered", + }, + Key: "OvfConsumer.registerEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Request managed entities unregistration from OVF consumer", + Summary: "Notifies the OVF consumer that the specified managed entities should be unregistered", + }, + Key: "OvfConsumer.unregisterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify OVF consumer for cloned entities", + Summary: "Notifies the OVF consumer that the specified entities have been cloned", + }, + Key: "OvfConsumer.cloneEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Populate entity OVF section tree", + Summary: "Create OVF sections for the given managed entities and populate the entity OVF section tree", + }, + Key: "OvfConsumer.populateEntityOst", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve public OVF environment sections for virtual machine ", + Summary: "Retrieves the public OVF environment sections that this OVF consumer has for a given virtual machine", + }, + Key: "OvfConsumer.retrievePublicOvfEnvironmentSections", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Notify OVF consumer for virtual machine power on", + Summary: "Notifies the OVF consumer that a virtual machine is about to be powered on", + }, + Key: "OvfConsumer.notifyPowerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set snapshot custom value", + Summary: "Sets the value of a custom field of a virtual machine snapshot", + }, + Key: "vm.Snapshot.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revert snapshot", + Summary: "Change the execution state of the virtual machine to the state of this snapshot", + }, + Key: "vm.Snapshot.revert", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove snapshot", + Summary: "Remove snapshot and delete its associated storage", + }, + Key: "vm.Snapshot.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename snapshot", + Summary: "Rename the snapshot", + }, + Key: "vm.Snapshot.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Linked Clone", + Summary: "Create a linked clone from this snapshot", + }, + Key: "vm.Snapshot.createLinkedClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Export the snapshot as an OVF template", + }, + Key: "vm.Snapshot.exportSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check compliance", + Summary: "Check compliance of host or cluster against a profile", + }, + Key: "profile.ComplianceManager.checkCompliance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compliance status", + Summary: "Query compliance status", + }, + Key: "profile.ComplianceManager.queryComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryEntitiesByComplianceStatus", + Summary: "queryEntitiesByComplianceStatus", + }, + Key: "profile.ComplianceManager.queryEntitiesByComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear compliance history", + Summary: "Clear historical compliance data", + }, + Key: "profile.ComplianceManager.clearComplianceStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query expression metadata", + Summary: "Query expression metadata", + }, + Key: "profile.ComplianceManager.queryExpressionMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create alarm", + Summary: "Create a new alarm", + }, + Key: "alarm.AlarmManager.create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve alarm", + Summary: "Get available alarms defined on the entity", + }, + Key: "alarm.AlarmManager.getAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get alarm actions enabled", + Summary: "Checks if alarm actions are enabled for an entity", + }, + Key: "alarm.AlarmManager.getAlarmActionsEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm actions enabled", + Summary: "Enables or disables firing alarm actions for an entity", + }, + Key: "alarm.AlarmManager.setAlarmActionsEnabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get alarm state", + Summary: "The state of instantiated alarms on the entity", + }, + Key: "alarm.AlarmManager.getAlarmState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acknowledge alarm", + Summary: "Stops alarm actions from firing until the alarm next triggers on an entity", + }, + Key: "alarm.AlarmManager.acknowledgeAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm status", + Summary: "Sets the status of an alarm for an entity", + }, + Key: "alarm.AlarmManager.setAlarmStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "clearTriggeredAlarms", + Summary: "clearTriggeredAlarms", + }, + Key: "alarm.AlarmManager.clearTriggeredAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "testSMTPSetup", + Summary: "testSMTPSetup", + }, + Key: "alarm.AlarmManager.testSMTPSetup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create private alarm on managed entity", + Summary: "Creates a Private (trigger-only) Alarm on a managed entity", + }, + Key: "alarm.AlarmManager.createPrivateAlarm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query private alarms on managed entity", + Summary: "Retrieves all of the Private (trigger-only) Alarms defined on the specified managed entity", + }, + Key: "alarm.AlarmManager.queryPrivateAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sync triggered alarms list", + Summary: "Retrieves the full list of currently-triggered Alarms, as a list of triggers", + }, + Key: "alarm.AlarmManager.syncTriggeredAlarms", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve queued-up alarm triggers", + Summary: "Retrieves any queued-up alarm triggers representing Alarm state changes since the last time this method was called", + }, + Key: "alarm.AlarmManager.retrieveTriggers", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update the VASA provider state", + Summary: "Updates the VASA provider state for the specified datastores", + }, + Key: "VasaVvolManager.updateVasaProviderState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Virtual Volume datastore", + Summary: "Creates a new Virtual Volume datastore", + }, + Key: "VasaVvolManager.createVVolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove Virtual Volume datastore", + Summary: "Remove Virtual Volume datastore from specified hosts", + }, + Key: "VasaVvolManager.removeVVolDatastore", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update the VASA client context", + Summary: "Updates the VASA client context on the host", + }, + Key: "VasaVvolManager.updateVasaClientContext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "fetchRelocatedMACAddress", + Summary: "fetchRelocatedMACAddress", + }, + Key: "NetworkManager.fetchRelocatedMACAddress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check MAC addresses in use", + Summary: "Checks the MAC addresses used by this vCenter Server instance", + }, + Key: "NetworkManager.checkIfMACAddressInUse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reclaim MAC addresses", + Summary: "Reclaims the MAC addresses that are not used by remote vCenter Server instances", + }, + Key: "NetworkManager.reclaimMAC", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create new identity binding", + Summary: "Creates a new identity binding between the host and vCenter Server", + }, + Key: "host.TpmManager.requestIdentity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Verify authenticity of credential", + Summary: "Verifies the authenticity and correctness of the supplied attestation credential", + }, + Key: "host.TpmManager.verifyCredential", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate integrity report", + Summary: "Generates an integrity report for the selected components", + }, + Key: "host.TpmManager.generateReport", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group set custom value", + Summary: "Distributed Port Group set custom value", + }, + Key: "dvs.DistributedVirtualPortgroup.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload Distributed Port Group", + Summary: "Reload Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename Distributed Port Group", + Summary: "Rename Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Distributed Port Group", + Summary: "Delete Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag to Distributed Port Group", + Summary: "Add tag to Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group remove tag", + Summary: "Distributed Port Group remove tag", + }, + Key: "dvs.DistributedVirtualPortgroup.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "dvs.DistributedVirtualPortgroup.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Distributed Port Group delete network", + Summary: "Distributed Port Group delete network", + }, + Key: "dvs.DistributedVirtualPortgroup.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure Distributed Port Group", + Summary: "Reconfigure Distributed Port Group", + }, + Key: "dvs.DistributedVirtualPortgroup.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get Distributed Port Group configuration spec to rollback", + Summary: "Get Distributed Port Group configuration spec to rollback", + }, + Key: "dvs.DistributedVirtualPortgroup.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set alarm custom value", + Summary: "Sets the value of a custom field of an alarm", + }, + Key: "alarm.Alarm.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove alarm", + Summary: "Remove the alarm", + }, + Key: "alarm.Alarm.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure alarm", + Summary: "Reconfigure the alarm", + }, + Key: "alarm.Alarm.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set compute-resource custom value", + Summary: "Sets the value of a custom field for a unified compute resource", + }, + Key: "ComputeResource.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload resource", + Summary: "Reloads the resource", + }, + Key: "ComputeResource.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename compute-resource", + Summary: "Rename the compute-resource", + }, + Key: "ComputeResource.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove host", + Summary: "Removes the host resource", + }, + Key: "ComputeResource.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to this object", + }, + Key: "ComputeResource.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Removes a set of tags from this object", + }, + Key: "ComputeResource.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ComputeResource.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure compute-resource", + Summary: "Reconfigures a compute-resource", + }, + Key: "ComputeResource.reconfigureEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set latest page size", + Summary: "Set the last page viewed size and contain at most maxCount items in the page", + }, + Key: "HistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind", + Summary: "Move the scroll position to the oldest item", + }, + Key: "HistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset", + Summary: "Move the scroll position to the item just above the last page viewed", + }, + Key: "HistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove collector", + Summary: "Remove the collector from server", + }, + Key: "HistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update specific metadata", + Summary: "Update specific metadata for the given owner and list of virtual machine IDs", + }, + Key: "vm.MetadataManager.updateMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve specific metadata", + Summary: "Retrieve specific metadata for the given owner and list of virtual machine IDs", + }, + Key: "vm.MetadataManager.retrieveMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve all metadata", + Summary: "Retrieve all metadata for the given owner and datastore", + }, + Key: "vm.MetadataManager.retrieveAllMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clear metadata", + Summary: "Clear all metadata for the given owner and datastore", + }, + Key: "vm.MetadataManager.clearMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query latest statistics for a virtual machine", + Summary: "Queries the latest values of performance statistics of a virtual machine", + }, + Key: "InternalStatsCollector.queryLatestVmStats", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch set custom value", + Summary: "vSphere Distributed Switch set custom value", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload vSphere Distributed Switch", + Summary: "Reload vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename vSphere Distributed Switch", + Summary: "Rename vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove vSphere Distributed Switch", + Summary: "Remove vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch add tag", + Summary: "vSphere Distributed Switch add tag", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch remove tag", + Summary: "vSphere Distributed Switch remove tag", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPort keys", + Summary: "Retrieve dvPort keys", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.fetchPortKeys", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve dvPorts", + Summary: "Retrieve dvPorts", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.fetchPorts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query used virtual LAN ID", + Summary: "Query used virtual LAN ID", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.queryUsedVlanId", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSphere Distributed Switch", + Summary: "Reconfigure vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSphere Distributed Switch product specification operation", + Summary: "vSphere Distributed Switch product specification operation", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.performProductSpecOperation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Merge vSphere Distributed Switch", + Summary: "Merge vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.merge", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Groups", + Summary: "Add Distributed Port Groups", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addPortgroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move dvPort", + Summary: "Move dvPort", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.movePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSphere Distributed Switch capability", + Summary: "Update vSphere Distributed Switch capability", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateCapability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure dvPort", + Summary: "Reconfigure dvPort", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigurePort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh dvPort state", + Summary: "Refresh dvPort state", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.refreshPortState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rectify vSphere Distributed Switch host", + Summary: "Rectify vSphere Distributed Switch host", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rectifyHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network resource pools on vSphere Distributed Switch", + Summary: "Update network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add network resource pools on vSphere Distributed Switch", + Summary: "Add network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove network resource pools on vSphere Distributed Switch", + Summary: "Remove network resource pools on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.removeNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure a network resource pool on a distributed switch", + Summary: "Reconfigures a network resource pool on a distributed switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update network I/O control on vSphere Distributed Switch", + Summary: "Update network I/O control on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.enableNetworkResourceManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get vSphere Distributed Switch configuration spec to rollback", + Summary: "Get vSphere Distributed Switch configuration spec to rollback", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.rollback", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Distributed Port Group", + Summary: "Add Distributed Port Group", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.addPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update health check configuration on vSphere Distributed Switch", + Summary: "Update health check configuration on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateHealthCheckConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Look up portgroup based on portgroup key", + Summary: "Look up portgroup based on portgroup key", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.lookupPortgroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Link Aggregation Control Protocol groups on vSphere Distributed Switch", + Summary: "Update Link Aggregation Control Protocol groups on vSphere Distributed Switch", + }, + Key: "dvs.VmwareDistributedVirtualSwitch.updateLacpGroupConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a virtual disk object", + Summary: "Create a virtual disk object", + }, + Key: "vslm.vcenter.VStorageObjectManager.createDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register a legacy disk to be a virtual disk object", + Summary: "Register a legacy disk to be a virtual disk object", + }, + Key: "vslm.vcenter.VStorageObjectManager.registerDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extend a virtual disk to the new capacity", + Summary: "Extend a virtual disk to the new capacity", + }, + Key: "vslm.vcenter.VStorageObjectManager.extendDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inflate a thin virtual disk", + Summary: "Inflate a thin virtual disk", + }, + Key: "vslm.vcenter.VStorageObjectManager.inflateDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename a virtual storage object", + Summary: "Rename a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.renameVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update storage policy on a virtual storage object", + Summary: "Update storage policy on a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.updateVStorageObjectPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete a virtual storage object", + Summary: "Delete a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.deleteVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve a virtual storage object", + Summary: "Retrieve a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.retrieveVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveVStorageObjectState", + Summary: "retrieveVStorageObjectState", + }, + Key: "vslm.vcenter.VStorageObjectManager.retrieveVStorageObjectState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "List virtual storage objects on a datastore", + Summary: "List virtual storage objects on a datastore", + }, + Key: "vslm.vcenter.VStorageObjectManager.listVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone a virtual storage object", + Summary: "Clone a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.cloneVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate a virtual storage object", + Summary: "Relocate a virtual storage object", + }, + Key: "vslm.vcenter.VStorageObjectManager.relocateVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "attachTagToVStorageObject", + Summary: "attachTagToVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.attachTagToVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "detachTagFromVStorageObject", + Summary: "detachTagFromVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.detachTagFromVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listVStorageObjectsAttachedToTag", + Summary: "listVStorageObjectsAttachedToTag", + }, + Key: "vslm.vcenter.VStorageObjectManager.listVStorageObjectsAttachedToTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "listTagsAttachedToVStorageObject", + Summary: "listTagsAttachedToVStorageObject", + }, + Key: "vslm.vcenter.VStorageObjectManager.listTagsAttachedToVStorageObject", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconcile datastore inventory", + Summary: "Reconcile datastore inventory", + }, + Key: "vslm.vcenter.VStorageObjectManager.reconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Schedule reconcile datastore inventory", + Summary: "Schedule reconcile datastore inventory", + }, + Key: "vslm.vcenter.VStorageObjectManager.scheduleReconcileDatastoreInventory", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check group membership", + Summary: "Check whether a user is a member of a given list of groups", + }, + Key: "UserDirectory.checkGroupMembership", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get user groups", + Summary: "Searches for users and groups", + }, + Key: "UserDirectory.retrieveUserGroups", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create profile", + Summary: "Create profile", + }, + Key: "profile.ProfileManager.createProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query policy metadata", + Summary: "Query policy metadata", + }, + Key: "profile.ProfileManager.queryPolicyMetadata", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find associated profile", + Summary: "Find associated profile", + }, + Key: "profile.ProfileManager.findAssociatedProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate host for OVF package compatibility", + Summary: "Validates if a host is compatible with the requirements in an OVF package", + }, + Key: "OvfManager.validateHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Parse OVF descriptor", + Summary: "Parses and validates an OVF descriptor", + }, + Key: "OvfManager.parseDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert OVF descriptor", + Summary: "Convert OVF descriptor to entity specification", + }, + Key: "OvfManager.createImportSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create an OVF descriptor", + Summary: "Creates an OVF descriptor from either a VM or vApp", + }, + Key: "OvfManager.createDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Parse OVF Descriptor at URL", + Summary: "Parses and validates an OVF descriptor at a given URL", + }, + Key: "OvfManager.parseDescriptorAtUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys an OVF template from a URL", + }, + Key: "OvfManager.importOvfAtUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export as OVF template", + Summary: "Uploads OVF template to a remote server", + }, + Key: "OvfManager.exportOvfToUrl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update global message", + Summary: "Updates the system global message", + }, + Key: "SessionManager.updateMessage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by token", + Summary: "Logs on to the server through token representing principal identity", + }, + Key: "SessionManager.loginByToken", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login", + Summary: "Create a login session", + }, + Key: "SessionManager.login", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by SSPI", + Summary: "Log on to the server using SSPI passthrough authentication", + }, + Key: "SessionManager.loginBySSPI", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by SSL thumbprint", + Summary: "Log on to the server using SSL thumbprint authentication", + }, + Key: "SessionManager.loginBySSLThumbprint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login by session ticket", + Summary: "Log on to the server using a session ticket", + }, + Key: "SessionManager.loginBySessionTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire session ticket", + Summary: "Acquire a ticket for authenticating to a remote service", + }, + Key: "SessionManager.acquireSessionTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Logout", + Summary: "Logout and end the current session", + }, + Key: "SessionManager.logout", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire local ticket", + Summary: "Acquire one-time ticket for authenticating server-local client", + }, + Key: "SessionManager.acquireLocalTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire generic service ticket", + Summary: "Acquire a one-time credential that may be used to make the specified request", + }, + Key: "SessionManager.acquireGenericServiceTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Terminate session", + Summary: "Logout and end the provided list of sessions", + }, + Key: "SessionManager.terminate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set locale", + Summary: "Set the session locale for determining the languages used for messages and formatting data", + }, + Key: "SessionManager.setLocale", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension", + Summary: "Creates a privileged login session for an extension", + }, + Key: "SessionManager.loginExtension", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension", + Summary: "Invalid subject name", + }, + Key: "SessionManager.loginExtensionBySubjectName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Login extension by certificate", + Summary: "Login extension by certificate", + }, + Key: "SessionManager.loginExtensionByCertificate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Impersonate user", + Summary: "Convert session to impersonate specified user", + }, + Key: "SessionManager.impersonateUser", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Session active query", + Summary: "Validates that a currently active session exists", + }, + Key: "SessionManager.sessionIsActive", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire clone ticket", + Summary: "Acquire a session-specific ticket string that can be used to clone the current session", + }, + Key: "SessionManager.acquireCloneTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone session", + Summary: "Clone the specified session and associate it with the current connection", + }, + Key: "SessionManager.cloneSession", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open remote disk for read/write", + Summary: "Opens a disk on a virtual machine for read/write access", + }, + Key: "NfcService.randomAccessOpen", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Open remote disk for read", + Summary: "Opens a disk on a virtual machine for read access", + }, + Key: "NfcService.randomAccessOpenReadonly", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "randomAccessFileOpen", + Summary: "randomAccessFileOpen", + }, + Key: "NfcService.randomAccessFileOpen", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read virtual machine files", + Summary: "Read files associated with a virtual machine", + }, + Key: "NfcService.getVmFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Write virtual machine files", + Summary: "Write files associated with a virtual machine", + }, + Key: "NfcService.putVmFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Manipulate file paths", + Summary: "Permission to manipulate file paths", + }, + Key: "NfcService.fileManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Manipulate system-related file paths", + Summary: "Permission to manipulate all system related file paths", + }, + Key: "NfcService.systemManagement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "getServerNfcLibVersion", + Summary: "getServerNfcLibVersion", + }, + Key: "NfcService.getServerNfcLibVersion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "registerProvider", + Summary: "registerProvider", + }, + Key: "HealthUpdateManager.registerProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unregisterProvider", + Summary: "unregisterProvider", + }, + Key: "HealthUpdateManager.unregisterProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryProviderList", + Summary: "queryProviderList", + }, + Key: "HealthUpdateManager.queryProviderList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasProvider", + Summary: "hasProvider", + }, + Key: "HealthUpdateManager.hasProvider", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryProviderName", + Summary: "queryProviderName", + }, + Key: "HealthUpdateManager.queryProviderName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHealthUpdateInfos", + Summary: "queryHealthUpdateInfos", + }, + Key: "HealthUpdateManager.queryHealthUpdateInfos", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addMonitoredEntities", + Summary: "addMonitoredEntities", + }, + Key: "HealthUpdateManager.addMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeMonitoredEntities", + Summary: "removeMonitoredEntities", + }, + Key: "HealthUpdateManager.removeMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryMonitoredEntities", + Summary: "queryMonitoredEntities", + }, + Key: "HealthUpdateManager.queryMonitoredEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "hasMonitoredEntity", + Summary: "hasMonitoredEntity", + }, + Key: "HealthUpdateManager.hasMonitoredEntity", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryUnmonitoredHosts", + Summary: "queryUnmonitoredHosts", + }, + Key: "HealthUpdateManager.queryUnmonitoredHosts", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "postHealthUpdates", + Summary: "postHealthUpdates", + }, + Key: "HealthUpdateManager.postHealthUpdates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryHealthUpdates", + Summary: "queryHealthUpdates", + }, + Key: "HealthUpdateManager.queryHealthUpdates", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addFilter", + Summary: "addFilter", + }, + Key: "HealthUpdateManager.addFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterList", + Summary: "queryFilterList", + }, + Key: "HealthUpdateManager.queryFilterList", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterName", + Summary: "queryFilterName", + }, + Key: "HealthUpdateManager.queryFilterName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterInfoIds", + Summary: "queryFilterInfoIds", + }, + Key: "HealthUpdateManager.queryFilterInfoIds", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFilterEntities", + Summary: "queryFilterEntities", + }, + Key: "HealthUpdateManager.queryFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "addFilterEntities", + Summary: "addFilterEntities", + }, + Key: "HealthUpdateManager.addFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeFilterEntities", + Summary: "removeFilterEntities", + }, + Key: "HealthUpdateManager.removeFilterEntities", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "removeFilter", + Summary: "removeFilter", + }, + Key: "HealthUpdateManager.removeFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set vMotion custom value", + Summary: "Sets the value of a custom field of a host vMotion system", + }, + Key: "host.VMotionSystem.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IP configuration", + Summary: "Update the IP configuration of the vMotion virtual NIC", + }, + Key: "host.VMotionSystem.updateIpConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Select vMotion virtual NIC", + Summary: "Select the virtual NIC to be used for vMotion", + }, + Key: "host.VMotionSystem.selectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deselect vMotion virtual NIC", + Summary: "Deselect the virtual NIC to be used for vMotion", + }, + Key: "host.VMotionSystem.deselectVnic", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add custom field", + Summary: "Creates a new custom property", + }, + Key: "CustomFieldsManager.addFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove custom field", + Summary: "Removes a custom property", + }, + Key: "CustomFieldsManager.removeFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename custom property", + Summary: "Renames a custom property", + }, + Key: "CustomFieldsManager.renameFieldDefinition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set custom field", + Summary: "Assigns a value to a custom property", + }, + Key: "CustomFieldsManager.setField", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get ManagedEntities", + Summary: "Get the list of ManagedEntities that the name is a Substring of the custom field name and the value is a Substring of the field value.", + }, + Key: "CustomFieldsManager.getEntitiesWithCustomFieldAndValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomFields", + Summary: "retrieveCustomFields", + }, + Key: "CustomFieldsManager.retrieveCustomFields", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure virtual disk digest", + Summary: "Controls the configuration of the digests for the virtual disks", + }, + Key: "CbrcManager.configureDigest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Recompute virtual disk digest", + Summary: "Recomputes the digest for the given virtual disks, if necessary", + }, + Key: "CbrcManager.recomputeDigest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk digest configuration", + Summary: "Returns the current configuration of the digest for the given digest-enabled virtual disks", + }, + Key: "CbrcManager.queryDigestInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual disk digest runtime information", + Summary: "Returns the status of runtime digest usage for the given digest-enabled virtual disks", + }, + Key: "CbrcManager.queryDigestRuntimeInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get diagnostic files", + Summary: "Gets the list of diagnostic files for a given system", + }, + Key: "DiagnosticManager.queryDescriptions", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Browse diagnostic manager", + Summary: "Returns part of a log file", + }, + Key: "DiagnosticManager.browse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Generate system logs bundles", + Summary: "Instructs the server to generate system logs bundles", + }, + Key: "DiagnosticManager.generateLogBundles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query file hash", + Summary: "Queries file integrity information", + }, + Key: "DiagnosticManager.queryFileHash", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure workload model calculation parameters for datastore", + Summary: "Configures calculation parameters used for computation of workload model for a datastore", + }, + Key: "DrsStatsManager.configureWorkloadCharacterization", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query current workload model calculation parameters", + Summary: "Queries a host for the current workload model calculation parameters", + }, + Key: "DrsStatsManager.queryWorkloadCharacterization", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure datastore correlation detector", + Summary: "Configures datastore correlation detector with datastore to datastore cluster mappings", + }, + Key: "DrsStatsManager.configureCorrelationDetector", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore correlation result", + Summary: "Queries correlation detector for a list of datastores correlated to a given datastore", + }, + Key: "DrsStatsManager.queryCorrelationResult", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update agent virtual machine information", + Summary: "Updates agent virtual machine information", + }, + Key: "EsxAgentConfigManager.updateAgentVmInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query agent virtual machine information", + Summary: "Returns the state for each of the specified agent virtual machines", + }, + Key: "EsxAgentConfigManager.queryAgentVmInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update compute resource agent information", + Summary: "Updates the number of required agent virtual machines for one or more compute resources", + }, + Key: "EsxAgentConfigManager.updateComputeResourceAgentInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query compute resource agent information", + Summary: "Retrieves the agent information for one or more compute resources", + }, + Key: "EsxAgentConfigManager.queryComputeResourceAgentInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set extensible custom value", + Summary: "Sets the value of a custom field of an extensible managed object", + }, + Key: "ExtensibleManagedObject.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get lease download manifest", + Summary: "Gets the download manifest for this lease", + }, + Key: "HttpNfcLease.getManifest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Complete the lease", + Summary: "The lease completed successfully", + }, + Key: "HttpNfcLease.complete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "End the lease", + Summary: "The lease has ended", + }, + Key: "HttpNfcLease.abort", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update lease progress", + Summary: "Updates lease progress", + }, + Key: "HttpNfcLease.progress", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install IO Filter", + Summary: "Installs an IO Filter on a compute resource", + }, + Key: "IoFilterManager.installIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall IO Filter", + Summary: "Uninstalls an IO Filter from a compute resource", + }, + Key: "IoFilterManager.uninstallIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade IO Filter", + Summary: "Upgrades an IO Filter on a compute resource", + }, + Key: "IoFilterManager.upgradeIoFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query IO Filter installation issues", + Summary: "Queries IO Filter installation issues on a compute resource", + }, + Key: "IoFilterManager.queryIssue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryIoFilterInfo", + Summary: "queryIoFilterInfo", + }, + Key: "IoFilterManager.queryIoFilterInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve IO Filter installation errors on host", + Summary: "Resolves IO Filter installation errors on a host", + }, + Key: "IoFilterManager.resolveInstallationErrorsOnHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resolve IO Filter installation errors on cluster", + Summary: "Resolves IO Filter installation errors on a cluster", + }, + Key: "IoFilterManager.resolveInstallationErrorsOnCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query information about virtual disks using IO Filter", + Summary: "Queries information about virtual disks that use an IO Filter installed on a compute resource", + }, + Key: "IoFilterManager.queryDisksUsingFilter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update IO Filter policy", + Summary: "Updates the policy to IO Filter mapping in vCenter Server", + }, + Key: "IoFilterManager.updateIoFilterPolicy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query supported features", + Summary: "Searches the current license source for licenses available from this system", + }, + Key: "LicenseManager.querySupportedFeatures", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query license source", + Summary: "Searches the current license source for licenses available for each feature known to this system", + }, + Key: "LicenseManager.querySourceAvailability", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query license usage", + Summary: "Returns the list of features and the number of licenses that have been reserved", + }, + Key: "LicenseManager.queryUsage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set product edition", + Summary: "Defines the product edition", + }, + Key: "LicenseManager.setEdition", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check feature", + Summary: "Checks if a feature is enabled", + }, + Key: "LicenseManager.checkFeature", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable license", + Summary: "Enable a feature that is marked as user-configurable", + }, + Key: "LicenseManager.enable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable license", + Summary: "Release licenses for a user-configurable feature", + }, + Key: "LicenseManager.disable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure license source", + Summary: "Allows reconfiguration of the License Manager license source", + }, + Key: "LicenseManager.configureSource", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Installing license", + Summary: "Installing license", + }, + Key: "LicenseManager.updateLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add license", + Summary: "Adds a new license to the license inventory", + }, + Key: "LicenseManager.addLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove license", + Summary: "Removes a license from the license inventory", + }, + Key: "LicenseManager.removeLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Decode license", + Summary: "Decodes the license to return the properties of that license key", + }, + Key: "LicenseManager.decodeLicense", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update license label", + Summary: "Update a license's label", + }, + Key: "LicenseManager.updateLabel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove license label", + Summary: "Removes a license's label", + }, + Key: "LicenseManager.removeLabel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get License Data Manager", + Summary: "Gets the License Data Manager", + }, + Key: "LicenseManager.queryLicenseDataManager", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Activate remote hard enforcement", + Summary: "Activates the remote hard enforcement", + }, + Key: "LicenseManager.activateRemoteHardEnforcement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add end point", + Summary: "Add a service whose connections are to be proxied", + }, + Key: "ProxyService.addEndpoint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove end point", + Summary: "End point to be detached", + }, + Key: "ProxyService.removeEndpoint", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Estimate database size", + Summary: "Estimates the database size required to store VirtualCenter data", + }, + Key: "ResourcePlanningManager.estimateDatabaseSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by UUID", + Summary: "Finds a virtual machine or host by UUID", + }, + Key: "SearchIndex.findByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find virtual machine by datastore path", + Summary: "Finds a virtual machine by its location on a datastore", + }, + Key: "SearchIndex.findByDatastorePath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by DNS", + Summary: "Finds a virtual machine or host by its DNS name", + }, + Key: "SearchIndex.findByDnsName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by IP", + Summary: "Finds a virtual machine or host by IP address", + }, + Key: "SearchIndex.findByIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find entity by inventory path", + Summary: "Finds a virtual machine or host based on its location in the inventory", + }, + Key: "SearchIndex.findByInventoryPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find folder child", + Summary: "Finds an immediate child of a folder", + }, + Key: "SearchIndex.findChild", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by UUID", + Summary: "Find entities based on their UUID", + }, + Key: "SearchIndex.findAllByUuid", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by DNS name", + Summary: "Find by DNS name", + }, + Key: "SearchIndex.findAllByDnsName", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Find by IP address", + Summary: "Find entities based on their IP address", + }, + Key: "SearchIndex.findAllByIp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "findAllInstantCloneParentInGroup", + Summary: "findAllInstantCloneParentInGroup", + }, + Key: "SearchIndex.findAllInstantCloneParentInGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "findAllInstantCloneChildrenOfGroup", + Summary: "findAllInstantCloneChildrenOfGroup", + }, + Key: "SearchIndex.findAllInstantCloneChildrenOfGroup", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute client service", + Summary: "Execute the client service", + }, + Key: "SimpleCommand.Execute", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage I/O Control on datastore", + Summary: "Configure Storage I/O Control on datastore", + }, + Key: "StorageResourceManager.ConfigureDatastoreIORM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage I/O Control on datastore", + Summary: "Configure Storage I/O Control on datastore", + }, + Key: "StorageResourceManager.ConfigureDatastoreIORMOnHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Storage I/O Control configuration options", + Summary: "Query Storage I/O Control configuration options", + }, + Key: "StorageResourceManager.QueryIORMConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get storage I/O resource management device model", + Summary: "Returns the device model computed for a given datastore by storage DRS", + }, + Key: "StorageResourceManager.GetStorageIORMDeviceModel", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query datastore performance summary", + Summary: "Query datastore performance metrics in summary form", + }, + Key: "StorageResourceManager.queryDatastorePerformanceSummary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply a Storage DRS recommendation", + Summary: "Apply a Storage DRS recommendation", + }, + Key: "StorageResourceManager.applyRecommendationToPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply Storage DRS recommendations", + Summary: "Apply Storage DRS recommendations", + }, + Key: "StorageResourceManager.applyRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel storage DRS recommendation", + Summary: "Cancels a storage DRS recommendation", + }, + Key: "StorageResourceManager.cancelRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh storage DRS recommendation", + Summary: "Refreshes the storage DRS recommendations on the specified datastore cluster", + }, + Key: "StorageResourceManager.refreshRecommendation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "refreshRecommendationsForPod", + Summary: "refreshRecommendationsForPod", + }, + Key: "StorageResourceManager.refreshRecommendationsForPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure Storage DRS", + Summary: "Configure Storage DRS on a datastore cluster", + }, + Key: "StorageResourceManager.configureStorageDrsForPod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Invoke storage DRS for placement recommendations", + Summary: "Invokes storage DRS for placement recommendations", + }, + Key: "StorageResourceManager.recommendDatastores", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "rankForPlacement", + Summary: "rankForPlacement", + }, + Key: "StorageResourceManager.rankForPlacement", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryStorageStatisticsByProfile", + Summary: "queryStorageStatisticsByProfile", + }, + Key: "StorageResourceManager.queryStorageStatisticsByProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set latest page size", + Summary: "Set the last page viewed size and contain at most maxCount items in the page", + }, + Key: "TaskHistoryCollector.setLatestPageSize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rewind", + Summary: "Move the scroll position to the oldest item", + }, + Key: "TaskHistoryCollector.rewind", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset", + Summary: "Move the scroll position to the item just above the last page viewed", + }, + Key: "TaskHistoryCollector.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove collector", + Summary: "Remove the collector from server", + }, + Key: "TaskHistoryCollector.remove", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read next", + Summary: "The scroll position is moved to the next new page after the read", + }, + Key: "TaskHistoryCollector.readNext", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Read previous", + Summary: "The scroll position is moved to the next older page after the read", + }, + Key: "TaskHistoryCollector.readPrev", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performUpgradePreflightCheck", + Summary: "performUpgradePreflightCheck", + }, + Key: "VsanUpgradeSystem.performUpgradePreflightCheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryUpgradeStatus", + Summary: "queryUpgradeStatus", + }, + Key: "VsanUpgradeSystem.queryUpgradeStatus", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "performUpgrade", + Summary: "performUpgrade", + }, + Key: "VsanUpgradeSystem.performUpgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set a custom property to an opaque network", + Summary: "Sets the value of a custom field of an opaque network", + }, + Key: "OpaqueNetwork.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload an opaque network", + Summary: "Reloads the information about the opaque network", + }, + Key: "OpaqueNetwork.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename an opaque network", + Summary: "Renames an opaque network", + }, + Key: "OpaqueNetwork.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete opaque network", + Summary: "Deletes an opaque network if it is not used by any host or virtual machine", + }, + Key: "OpaqueNetwork.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add a tag to an opaque network", + Summary: "Adds a set of tags to the opaque network", + }, + Key: "OpaqueNetwork.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove a tag from an opaque network", + Summary: "Removes a set of tags from the opaque network", + }, + Key: "OpaqueNetwork.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "OpaqueNetwork.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove an opaque network", + Summary: "Removes an opaque network", + }, + Key: "OpaqueNetwork.destroyNetwork", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set resource pool custom value", + Summary: "Sets the value of a custom field of a resource pool of physical resources", + }, + Key: "ResourcePool.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload resource pool", + Summary: "Reload the resource pool", + }, + Key: "ResourcePool.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename resource pool", + Summary: "Rename the resource pool", + }, + Key: "ResourcePool.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete resource pool", + Summary: "Delete the resource pool, which also deletes its contents and removes it from its parent folder (if any)", + }, + Key: "ResourcePool.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the resource pool", + }, + Key: "ResourcePool.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the resource pool", + }, + Key: "ResourcePool.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "ResourcePool.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update resource pool configuration", + Summary: "Updates the resource pool configuration", + }, + Key: "ResourcePool.updateConfig", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move into resource pool", + Summary: "Moves a set of resource pools or virtual machines into this pool", + }, + Key: "ResourcePool.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update child resource configuration", + Summary: "Change the resource configuration of a set of children of the resource pool", + }, + Key: "ResourcePool.updateChildResourceConfiguration", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create resource pool", + Summary: "Creates a new resource pool", + }, + Key: "ResourcePool.createResourcePool", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete resource pool children", + Summary: "Removes all child resource pools recursively", + }, + Key: "ResourcePool.destroyChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create vApp", + Summary: "Creates a child vApp of this resource pool", + }, + Key: "ResourcePool.createVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Creates a virtual machine in this resource pool", + }, + Key: "ResourcePool.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to this resource pool", + }, + Key: "ResourcePool.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "ResourcePool.importVApp", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query resource pool resource configuration options", + Summary: "Returns configuration options for a set of resources for a resource pool", + }, + Key: "ResourcePool.queryResourceConfigOption", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh resource runtime information", + Summary: "Refreshes the resource usage runtime information", + }, + Key: "ResourcePool.refreshRuntime", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual machine custom value", + Summary: "Sets the value of a custom field of a virtual machine", + }, + Key: "VirtualMachine.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine", + Summary: "Reloads the virtual machine", + }, + Key: "VirtualMachine.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename virtual machine", + Summary: "Rename the virtual machine", + }, + Key: "VirtualMachine.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete virtual machine", + Summary: "Delete this virtual machine. Deleting this virtual machine also deletes its contents and removes it from its parent folder (if any).", + }, + Key: "VirtualMachine.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add Tag", + Summary: "Add a set of tags to the virtual machine", + }, + Key: "VirtualMachine.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the virtual machine", + }, + Key: "VirtualMachine.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "VirtualMachine.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Refresh virtual machine storage information", + Summary: "Refresh storage information for the virtual machine", + }, + Key: "VirtualMachine.refreshStorageInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve virtual machine backup agent", + Summary: "Retrieves the backup agent for the virtual machine", + }, + Key: "VirtualMachine.retrieveBackupAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine snapshot", + Summary: "Create a new snapshot of this virtual machine", + }, + Key: "VirtualMachine.createSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine snapshot", + Summary: "Create a new snapshot of this virtual machine", + }, + Key: "VirtualMachine.createSnapshotEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Revert to current snapshot", + Summary: "Reverts the virtual machine to the current snapshot", + }, + Key: "VirtualMachine.revertToCurrentSnapshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove all snapshots", + Summary: "Remove all the snapshots associated with this virtual machine", + }, + Key: "VirtualMachine.removeAllSnapshots", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Consolidate virtual machine disk files", + Summary: "Consolidate disk files of this virtual machine", + }, + Key: "VirtualMachine.consolidateDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Estimate virtual machine disks consolidation space requirement", + Summary: "Estimate the temporary space required to consolidate disk files.", + }, + Key: "VirtualMachine.estimateStorageRequirementForConsolidate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure virtual machine", + Summary: "Reconfigure this virtual machine", + }, + Key: "VirtualMachine.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade VM compatibility", + Summary: "Upgrade virtual machine compatibility to the latest version", + }, + Key: "VirtualMachine.upgradeVirtualHardware", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Extract OVF environment", + Summary: "Returns the XML document that represents the OVF environment", + }, + Key: "VirtualMachine.extractOvfEnvironment", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power On this virtual machine", + }, + Key: "VirtualMachine.powerOn", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power Off virtual machine", + Summary: "Power Off this virtual machine", + }, + Key: "VirtualMachine.powerOff", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend virtual machine", + Summary: "Suspend virtual machine", + }, + Key: "VirtualMachine.suspend", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset virtual machine", + Summary: "Reset this virtual machine", + }, + Key: "VirtualMachine.reset", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS shutdown", + Summary: "Issues a command to the guest operating system to perform a clean shutdown of all services", + }, + Key: "VirtualMachine.shutdownGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS reboot", + Summary: "Issues a command to the guest operating system asking it to perform a reboot", + }, + Key: "VirtualMachine.rebootGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiate guest OS standby", + Summary: "Issues a command to the guest operating system to prepare for a suspend operation", + }, + Key: "VirtualMachine.standbyGuest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Answer virtual machine question", + Summary: "Respond to a question that is blocking this virtual machine", + }, + Key: "VirtualMachine.answer", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Customize virtual machine guest OS", + Summary: "Customize a virtual machine's guest operating system", + }, + Key: "VirtualMachine.customize", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check customization specification", + Summary: "Check the customization specification against the virtual machine configuration", + }, + Key: "VirtualMachine.checkCustomizationSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Migrate virtual machine", + Summary: "Migrate a virtual machine's execution to a specific resource pool or host", + }, + Key: "VirtualMachine.migrate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Relocate virtual machine", + Summary: "Relocate the virtual machine to a specific location", + }, + Key: "VirtualMachine.relocate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone virtual machine", + Summary: "Creates a clone of this virtual machine", + }, + Key: "VirtualMachine.clone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "instantClone", + Summary: "instantClone", + }, + Key: "VirtualMachine.instantClone", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveInstantCloneChildren", + Summary: "retrieveInstantCloneChildren", + }, + Key: "VirtualMachine.retrieveInstantCloneChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveInstantCloneParent", + Summary: "retrieveInstantCloneParent", + }, + Key: "VirtualMachine.retrieveInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "markAsInstantCloneParent", + Summary: "markAsInstantCloneParent", + }, + Key: "VirtualMachine.markAsInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "unmarkAsInstantCloneParent", + Summary: "unmarkAsInstantCloneParent", + }, + Key: "VirtualMachine.unmarkAsInstantCloneParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "createForkChild", + Summary: "createForkChild", + }, + Key: "VirtualMachine.createForkChild", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "enableForkParent", + Summary: "enableForkParent", + }, + Key: "VirtualMachine.enableForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "disableForkParent", + Summary: "disableForkParent", + }, + Key: "VirtualMachine.disableForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveForkChildren", + Summary: "retrieveForkChildren", + }, + Key: "VirtualMachine.retrieveForkChildren", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveForkParent", + Summary: "retrieveForkParent", + }, + Key: "VirtualMachine.retrieveForkParent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the virtual machine as an OVF template", + }, + Key: "VirtualMachine.exportVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark virtual machine as template", + Summary: "Virtual machine is marked as a template", + }, + Key: "VirtualMachine.markAsTemplate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mark as virtual machine", + Summary: "Reassociate a virtual machine with a host or resource pool", + }, + Key: "VirtualMachine.markAsVirtualMachine", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister virtual machine", + Summary: "Removes this virtual machine from the inventory without removing any of the virtual machine files on disk", + }, + Key: "VirtualMachine.unregister", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reset guest OS information", + Summary: "Clears cached guest OS information", + }, + Key: "VirtualMachine.resetGuestInformation", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools Installer Mount", + Summary: "Mounts the tools CD installer as a CD-ROM for the guest", + }, + Key: "VirtualMachine.mountToolsInstaller", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Connect VMware Tools CD", + Summary: "Connects the VMware Tools CD image to the guest", + }, + Key: "VirtualMachine.mountToolsInstallerImage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount tools installer", + Summary: "Unmounts the tools installer", + }, + Key: "VirtualMachine.unmountToolsInstaller", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools install or upgrade", + Summary: "Issues a command to the guest operating system to install VMware Tools or upgrade to the latest revision", + }, + Key: "VirtualMachine.upgradeTools", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initiated VMware Tools upgrade", + Summary: "Upgrades VMware Tools in the virtual machine from specified CD image", + }, + Key: "VirtualMachine.upgradeToolsFromImage", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire virtual machine Mouse Keyboard Screen Ticket", + Summary: "Establishing a Mouse Keyboard Screen Ticket", + }, + Key: "VirtualMachine.acquireMksTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Acquire virtual machine service ticket", + Summary: "Establishing a specific remote virtual machine connection ticket", + }, + Key: "VirtualMachine.acquireTicket", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set console window screen resolution", + Summary: "Sets the console window's resolution as specified", + }, + Key: "VirtualMachine.setScreenResolution", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Defragment all disks", + Summary: "Defragment all virtual disks attached to this virtual machine", + }, + Key: "VirtualMachine.defragmentAllDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn On Fault Tolerance", + Summary: "Secondary VM created", + }, + Key: "VirtualMachine.createSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn On Fault Tolerance", + Summary: "Creates a secondary VM", + }, + Key: "VirtualMachine.createSecondaryEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Turn Off Fault Tolerance", + Summary: "Remove all secondaries for this virtual machine and turn off Fault Tolerance", + }, + Key: "VirtualMachine.turnOffFaultTolerance", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test failover", + Summary: "Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM", + }, + Key: "VirtualMachine.makePrimary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Test restarting Secondary VM", + Summary: "Test restart Secondary VM by stopping a Secondary VM in the Fault Tolerance pair", + }, + Key: "VirtualMachine.terminateFaultTolerantVM", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend Fault Tolerance", + Summary: "Suspend Fault Tolerance on this virtual machine", + }, + Key: "VirtualMachine.disableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Resume Fault Tolerance", + Summary: "Resume Fault Tolerance on this virtual machine", + }, + Key: "VirtualMachine.enableSecondary", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set virtual machine display topology", + Summary: "Set the display topology for the virtual machine", + }, + Key: "VirtualMachine.setDisplayTopology", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start recording", + Summary: "Start a recording session on this virtual machine", + }, + Key: "VirtualMachine.startRecording", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop recording", + Summary: "Stop a currently active recording session on this virtual machine", + }, + Key: "VirtualMachine.stopRecording", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start replaying", + Summary: "Start a replay session on this virtual machine", + }, + Key: "VirtualMachine.startReplaying", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop replaying", + Summary: "Stop a replay session on this virtual machine", + }, + Key: "VirtualMachine.stopReplaying", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Promote virtual machine disks", + Summary: "Promote disks of the virtual machine that have delta disk backings", + }, + Key: "VirtualMachine.promoteDisks", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Take virtual machine screenshot", + Summary: "Take a screenshot of a virtual machine's guest OS console", + }, + Key: "VirtualMachine.createScreenshot", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Put USB HID scan codes", + Summary: "Injects a sequence of USB HID scan codes into the keyboard", + }, + Key: "VirtualMachine.putUsbScanCodes", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query virtual machine disk changes", + Summary: "Query for changes to the virtual machine's disks since a given point in the past", + }, + Key: "VirtualMachine.queryChangedDiskAreas", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query unowned virtual machine files", + Summary: "Query files of the virtual machine not owned by the datastore principal user", + }, + Key: "VirtualMachine.queryUnownedFiles", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine from new configuration", + Summary: "Reloads the virtual machine from a new configuration file", + }, + Key: "VirtualMachine.reloadFromPath", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query Virtual Machine Fault Tolerance Compatibility", + Summary: "Check if virtual machine is compatible for Fault Tolerance", + }, + Key: "VirtualMachine.queryFaultToleranceCompatibility", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryFaultToleranceCompatibilityEx", + Summary: "queryFaultToleranceCompatibilityEx", + }, + Key: "VirtualMachine.queryFaultToleranceCompatibilityEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Suspend and resume the virtual machine", + Summary: "Suspend and resume the virtual machine", + }, + Key: "VirtualMachine.invokeFSR", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Hard stop virtual machine", + Summary: "Hard stop virtual machine", + }, + Key: "VirtualMachine.terminate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get native clone capability", + Summary: "Check if native clone is supported on the virtual machine", + }, + Key: "VirtualMachine.isNativeSnapshotCapable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure quorum file path prefix", + Summary: "Configures the quorum file path prefix for the virtual machine", + }, + Key: "VirtualMachine.configureQuorumFilePathPrefix", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Retrieve quorum file path prefix", + Summary: "Retrieves the quorum file path prefix for the virtual machine", + }, + Key: "VirtualMachine.retrieveQuorumFilePathPrefix", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Inject OVF Environment into virtual machine", + Summary: "Specifies the OVF Environments to be injected into and returned for a virtual machine", + }, + Key: "VirtualMachine.injectOvfEnvironment", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Wipe a Flex-SE virtual disk", + Summary: "Wipes a Flex-SE virtual disk", + }, + Key: "VirtualMachine.wipeDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Shrink a Flex-SE virtual disk", + Summary: "Shrinks a Flex-SE virtual disk", + }, + Key: "VirtualMachine.shrinkDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Send NMI", + Summary: "Sends a non-maskable interrupt (NMI) to the virtual machine", + }, + Key: "VirtualMachine.sendNMI", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload virtual machine", + Summary: "Reloads the virtual machine", + }, + Key: "VirtualMachine.reloadEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach a virtual disk", + Summary: "Attach an existing virtual disk to the virtual machine", + }, + Key: "VirtualMachine.attachDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detach a virtual disk", + Summary: "Detach a virtual disk from the virtual machine", + }, + Key: "VirtualMachine.detachDisk", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply EVC Mode", + Summary: "Apply EVC Mode to a virtual machine", + }, + Key: "VirtualMachine.applyEvcMode", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set datacenter custom value", + Summary: "Sets the value of a custom field of a datacenter", + }, + Key: "Datacenter.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload datacenter", + Summary: "Reloads the datacenter", + }, + Key: "Datacenter.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename datacenter", + Summary: "Rename the datacenter", + }, + Key: "Datacenter.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove datacenter", + Summary: "Deletes the datacenter and removes it from its parent folder (if any)", + }, + Key: "Datacenter.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the datacenter", + }, + Key: "Datacenter.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the datacenter", + }, + Key: "Datacenter.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Datacenter.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query connection information", + Summary: "Gets information of a host that can be used in the connection wizard", + }, + Key: "Datacenter.queryConnectionInfo", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "queryConnectionInfoViaSpec", + Summary: "queryConnectionInfoViaSpec", + }, + Key: "Datacenter.queryConnectionInfoViaSpec", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Initialize powering On", + Summary: "Initialize tasks for powering on virtual machines", + }, + Key: "Datacenter.powerOnVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Query configuration option descriptor", + Summary: "Retrieve the list of configuration option keys available in this datacenter", + }, + Key: "Datacenter.queryConfigOptionDescriptor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure datacenter", + Summary: "Reconfigures the datacenter", + }, + Key: "Datacenter.reconfigure", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set folder custom value", + Summary: "Sets the value of a custom field of a folder", + }, + Key: "Folder.setCustomValue", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reload folder", + Summary: "Reloads the folder", + }, + Key: "Folder.reload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rename folder", + Summary: "Rename the folder", + }, + Key: "Folder.rename", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete folder", + Summary: "Delete this object, deleting its contents and removing it from its parent folder (if any)", + }, + Key: "Folder.destroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add tag", + Summary: "Add a set of tags to the folder", + }, + Key: "Folder.addTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove tag", + Summary: "Remove a set of tags from the folder", + }, + Key: "Folder.removeTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "retrieveCustomValues", + Summary: "retrieveCustomValues", + }, + Key: "Folder.retrieveCustomValues", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create folder", + Summary: "Creates a new folder", + }, + Key: "Folder.createFolder", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Move entities", + Summary: "Moves a set of managed entities into this folder", + }, + Key: "Folder.moveInto", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create virtual machine", + Summary: "Create a new virtual machine", + }, + Key: "Folder.createVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Register virtual machine", + Summary: "Adds an existing virtual machine to the folder", + }, + Key: "Folder.registerVm", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Create a new cluster compute-resource in this folder", + }, + Key: "Folder.createCluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create cluster", + Summary: "Create a new cluster compute-resource in this folder", + }, + Key: "Folder.createClusterEx", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host", + Summary: "Create a new single-host compute-resource", + }, + Key: "Folder.addStandaloneHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add standalone host and enable lockdown", + Summary: "Create a new single-host compute-resource and enable lockdown mode on the host", + }, + Key: "Folder.addStandaloneHostWithAdminDisabled", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create datacenter", + Summary: "Create a new datacenter with the given name", + }, + Key: "Folder.createDatacenter", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unregister and Delete", + Summary: "Recursively deletes all child virtual machine folders and unregisters all virtual machines", + }, + Key: "Folder.unregisterAndDestroy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a vSphere Distributed Switch", + Summary: "Create a vSphere Distributed Switch", + }, + Key: "Folder.createDistributedVirtualSwitch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create a datastore cluster", + Summary: "Create a datastore cluster", + }, + Key: "Folder.createStoragePod", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Get boot devices", + Summary: "Get available boot devices for the host system", + }, + Key: "host.BootDeviceSystem.queryBootDevices", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update boot device", + Summary: "Update the boot device on the host system", + }, + Key: "host.BootDeviceSystem.updateBootDevice", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configuring vSphere HA", + Summary: "Configuring vSphere HA", + }, + Key: "DasConfig.ConfigureHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unconfiguring vSphere HA", + Summary: "Unconfiguring vSphere HA", + }, + Key: "DasConfig.UnconfigureHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Migrate virtual machine", + Summary: "Migrates a virtual machine from one host to another", + }, + Key: "Drm.ExecuteVMotionLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power on this virtual machine", + }, + Key: "Drm.ExecuteVmPowerOnLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter standby mode", + Summary: "Puts this host into standby mode", + }, + Key: "Drm.EnterStandbyLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Exit standby mode", + Summary: "Brings this host out of standby mode", + }, + Key: "Drm.ExitStandbyLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Power On virtual machine", + Summary: "Power On this virtual machine", + }, + Key: "Datacenter.ExecuteVmPowerOnLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vCenter Agent", + Summary: "Upgrade the vCenter Agent", + }, + Key: "Upgrade.UpgradeAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vCenter Agents on cluster hosts", + Summary: "Upgrade the vCenter Agents on all cluster hosts", + }, + Key: "ClusterUpgrade.UpgradeAgent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF template", + Summary: "Deploys a virtual machine or vApp", + }, + Key: "ResourcePool.ImportVAppLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set cluster suspended state", + Summary: "Set suspended state of the cluster", + }, + Key: "ClusterComputeResource.setSuspendedState", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the virtual machine as an OVF template", + }, + Key: "VirtualMachine.ExportVmLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF template", + Summary: "Exports the vApp as an OVF template", + }, + Key: "VirtualApp.ExportVAppLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Start Fault Tolerance Secondary VM", + Summary: "Start Secondary VM as the Primary VM is powered on", + }, + Key: "FaultTolerance.PowerOnSecondaryLRO", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Execute Storage vMotion for Storage DRS", + Summary: "Execute Storage vMotion migrations for Storage DRS", + }, + Key: "Drm.ExecuteStorageVmotionLro", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply recommendations for SDRS maintenance mode", + Summary: "Apply recommendations to enter into SDRS maintenance mode", + }, + Key: "Drm.ExecuteMaintenanceRecommendationsLro", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enter SDRS maintenance mode monitor task", + Summary: "Task that monitors the SDRS maintenance mode activity", + }, + Key: "Drm.TrackEnterMaintenanceLro", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "ResetSensor", + Summary: "ResetSensor", + }, + Key: "com.vmware.hardwarehealth.ResetSensor", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "ResetSelLog", + Summary: "ResetSelLog", + }, + Key: "com.vmware.hardwarehealth.ResetSelLog", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "RefreshHost", + Summary: "RefreshHost", + }, + Key: "com.vmware.hardwarehealth.RefreshHost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "install", + Summary: "install", + }, + Key: "eam.agent.install", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uninstall", + Summary: "uninstall", + }, + Key: "eam.agent.uninstall", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "upgrade", + Summary: "upgrade", + }, + Key: "eam.agent.upgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Bulk Remediation", + Summary: "Remediating hosts in bulk", + }, + Key: "com.vmware.rbd.bulkRemediateMapping", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Rule", + Summary: "Creating rule in Auto Deploy server", + }, + Key: "com.vmware.rbd.CreateRuleWithTransform", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Apply Image Profile", + Summary: "Applying Image profile to a host", + }, + Key: "com.vmware.rbd.ApplyImageProfile", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Edit Rule", + Summary: "Editing Auto Deploy rule", + }, + Key: "com.vmware.rbd.UpdateSpecWithTransform", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Repair Cache", + Summary: "Repairing Deploy cache in Auto Deploy server", + }, + Key: "com.vmware.rbd.RepairDeployCache", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Bulk Compliance Check", + Summary: "Compliance checking hosts in bulk", + }, + Key: "com.vmware.rbd.bulkMappingComplianceCheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Mount an ISO Library Item as a Virtual CD-ROM", + Summary: "Mount", + }, + Key: "com.vmware.vcenter.iso.Image.Mount", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Unmount a Virtual CD-ROM mounted with ISO backing", + Summary: "Unmount", + }, + Key: "com.vmware.vcenter.iso.Image.Unmount", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import OVF package", + Summary: "Create", + }, + Key: "com.vmware.ovfs.ImportSession.Create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Export OVF package", + Summary: "Create", + }, + Key: "com.vmware.ovfs.ExportSession.Create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Deploy OVF package from Content Library to Resource Pool", + Summary: "instantiate", + }, + Key: "com.vmware.ovfs.LibraryItem.instantiate", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Clone to OVF package in Content Library from Virtual Machine or Virtual Appliance", + Summary: "capture", + }, + Key: "com.vmware.ovfs.LibraryItem.capture", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Parse OVF package in Content Library", + Summary: "parse", + }, + Key: "com.vmware.ovfs.LibraryItem.parse", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scrub Database after Restore", + Summary: "Scrub", + }, + Key: "com.vmware.content.Scrub", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Library", + Summary: "Create", + }, + Key: "com.vmware.content.Library.Create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Library", + Summary: "Update", + }, + Key: "com.vmware.content.Library.Update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Library", + Summary: "Delete", + }, + Key: "com.vmware.content.Library.Delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Library Content", + Summary: "DeleteContent", + }, + Key: "com.vmware.content.Library.DeleteContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sync Library", + Summary: "Sync", + }, + Key: "com.vmware.content.Library.Sync", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Validate Library Content against the Storage Backing After Restore", + Summary: "Scrub", + }, + Key: "com.vmware.content.Library.Scrub", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Library Item", + Summary: "Create", + }, + Key: "com.vmware.content.LibraryItem.Create", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Library Item", + Summary: "Update", + }, + Key: "com.vmware.content.LibraryItem.Update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update Library Item Backing", + Summary: "UpdateBackings", + }, + Key: "com.vmware.content.LibraryItem.UpdateBackings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Library Item", + Summary: "Delete", + }, + Key: "com.vmware.content.LibraryItem.Delete", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Delete Library Item Content", + Summary: "DeleteContent", + }, + Key: "com.vmware.content.LibraryItem.DeleteContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "DeleteFileContent", + Summary: "DeleteFileContent", + }, + Key: "com.vmware.content.LibraryItem.DeleteFileContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upload Files to a Library Item", + Summary: "UploadContent", + }, + Key: "com.vmware.content.LibraryItem.UploadContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fetch Content of a Library Item", + Summary: "FetchContent", + }, + Key: "com.vmware.content.LibraryItem.FetchContent", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Copy Library Item", + Summary: "Copy", + }, + Key: "com.vmware.content.LibraryItem.Copy", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Sync Library Item", + Summary: "Sync", + }, + Key: "com.vmware.content.LibraryItem.Sync", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Waiting For Upload", + Summary: "WaitForUpload", + }, + Key: "com.vmware.content.LibraryItem.WaitForUpload", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Setting Library Item Tag", + Summary: "SetTag", + }, + Key: "com.vmware.content.LibraryItem.SetTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Removing Library Item Tag", + Summary: "RemoveTag", + }, + Key: "com.vmware.content.LibraryItem.RemoveTag", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install vSAN iSCSI target service", + Summary: "Install vSAN iSCSI target service", + }, + Key: "com.vmware.vsan.iscsi.tasks.installVibTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create Home Object and set vSAN iSCSI target service", + Summary: "Create Home Object and set vSAN iSCSI target service", + }, + Key: "com.vmware.vsan.iscsi.tasks.settingTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable vSAN iSCSI target service in cluster", + Summary: "Enable vSAN iSCSI target service in cluster", + }, + Key: "com.vmware.vsan.iscsi.tasks.enable", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Edit vSAN iSCSI target service in cluster", + Summary: "Edit vSAN iSCSI target service in cluster", + }, + Key: "com.vmware.vsan.iscsi.tasks.edit", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add a new iSCSI target", + Summary: "Add a new iSCSI target", + }, + Key: "com.vmware.vsan.iscsi.tasks.addTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Edit the iSCSI target", + Summary: "Edit the iSCSI target", + }, + Key: "com.vmware.vsan.iscsi.tasks.editTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove the iSCSI target", + Summary: "Remove the iSCSI target", + }, + Key: "com.vmware.vsan.iscsi.tasks.removeTarget", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add a new iSCSI LUN", + Summary: "Add a new iSCSI LUN", + }, + Key: "com.vmware.vsan.iscsi.tasks.addLUN", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Edit the iSCSI LUN", + Summary: "Edit the iSCSI LUN", + }, + Key: "com.vmware.vsan.iscsi.tasks.editLUN", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove the iSCSI LUN", + Summary: "Remove the iSCSI LUN", + }, + Key: "com.vmware.vsan.iscsi.tasks.removeLUN", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "VMDK Load Test", + Summary: "VMDK Load Test", + }, + Key: "com.vmware.vsan.health.tasks.runvmdkloadtest", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install vSAN health ESX extension", + Summary: "Install vSAN health ESX extension", + }, + Key: "com.vmware.vsan.health.tasks.health.preparecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall vSAN health ESX extension", + Summary: "Uninstall vSAN health ESX extension", + }, + Key: "com.vmware.vsan.health.tasks.health.uninstallcluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Install vSAN sizing ESX extension", + Summary: "Install vSAN sizing ESX extension", + }, + Key: "com.vmware.vsan.health.tasks.sizing.preparecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Uninstall vSAN sizing ESX extension", + Summary: "Uninstall vSAN sizing ESX extension", + }, + Key: "com.vmware.vsan.health.tasks.sizing.uninstallcluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "preparecluster", + Summary: "preparecluster", + }, + Key: "com.vmware.vsan.health.tasks.perfsvc.preparecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "uninstallcluster", + Summary: "uninstallcluster", + }, + Key: "com.vmware.vsan.health.tasks.perfsvc.uninstallcluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Fix vSAN Cluster Object Immediately", + Summary: "Fix vSAN Cluster Object Immediately", + }, + Key: "com.vmware.vsan.health.tasks.repairclusterobjects", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Rebalance vSAN Cluster", + Summary: "Rebalance vSAN Cluster", + }, + Key: "com.vmware.vsan.health.tasks.rebalancecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stop Rebalance vSAN Cluster", + Summary: "Stop Rebalance vSAN Cluster", + }, + Key: "com.vmware.vsan.health.tasks.stoprebalancecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upgrade vSAN disk format", + Summary: "Upgrade vSAN disk format", + }, + Key: "com.vmware.vsan.health.tasks.upgrade", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach vSAN support bundle to SR", + Summary: "Attach vSAN support bundle to SR", + }, + Key: "com.vmware.vsan.health.tasks.attachtosr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Attach vSAN support bundle to PR", + Summary: "Attach vSAN support bundle to PR", + }, + Key: "com.vmware.vsan.health.tasks.attachtopr", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download file from URL", + Summary: "Download file from URL", + }, + Key: "com.vmware.vsan.health.tasks.downloadfromurl", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Online check of vSAN health", + Summary: "Online check of vSAN health", + }, + Key: "com.vmware.vsan.health.tasks.performonlinehealthcheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remediate vSAN cluster", + Summary: "Remediate vSAN cluster", + }, + Key: "com.vmware.vsan.clustermgmt.tasks.remediatevsancluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remediate vSAN configurations", + Summary: "Remediate vSAN configurations", + }, + Key: "com.vmware.vsan.clustermgmt.tasks.remediatevc", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Enable vSAN performance service", + Summary: "Enable vSAN performance service", + }, + Key: "com.vmware.vsan.perfsvc.tasks.createstatsdb", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Disable vSAN performance service", + Summary: "Disable vSAN performance service", + }, + Key: "com.vmware.vsan.perfsvc.tasks.deletestatsdb", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Gathering data for performance diagnosis", + Summary: "Gathering data for performance diagnosis", + }, + Key: "com.vmware.vsan.perfsvc.tasks.runqueryfordiagnosis", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN: Update Software/Driver/Firmware", + Summary: "vSAN: Update Software/Driver/Firmware", + }, + Key: "com.vmware.vsan.patch.tasks.patch", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN: Migrate VSS to VDS", + Summary: "vSAN: Migrate VSS to VDS", + }, + Key: "com.vmware.vsan.vds.tasks.migratevss", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Create disk group on vSAN", + Summary: "Create disk group on vSAN", + }, + Key: "com.vmware.vsan.diskmgmt.tasks.initializediskmappings", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Add witness host", + Summary: "Add witness host to a stretched cluster", + }, + Key: "com.vmware.vsan.stretchedcluster.tasks.addwitnesshost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Replace witness host", + Summary: "Replace witness host for a stretched cluster", + }, + Key: "com.vmware.vsan.stretchedcluster.tasks.replacewitnesshost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remove witness host", + Summary: "Remove witness host from a stretched cluster", + }, + Key: "com.vmware.vsan.stretchedcluster.tasks.removewitnesshost", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert to a stretched cluster", + Summary: "Convert the given configuration to a stretched cluster", + }, + Key: "com.vmware.vsan.stretchedcluster.tasks.convert2stretchedcluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Set preferred fault domain", + Summary: "Set preferred fault domain for a stretched cluster", + }, + Key: "com.vmware.vsan.stretchedcluster.tasks.setpreferredfaultdomain", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Convert disk format for vSAN", + Summary: "Convert disk format for vSAN", + }, + Key: "com.vmware.vsan.diskconvertion.tasks.conversion", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Reconfigure vSAN cluster", + Summary: "Reconfigure vSAN cluster", + }, + Key: "com.vmware.vsan.clustermgmt.tasks.reconfigurecluster", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Regenerate new keys for encrypted vSAN cluster", + Summary: "Regenerate new keys for encrypted vSAN cluster", + }, + Key: "com.vmware.vsan.clustermgmt.tasks.rekey", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "vSAN operation precheck", + Summary: "vSAN operation precheck", + }, + Key: "com.vmware.vsan.clustermgmt.tasks.precheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Update vSAN configuration", + Summary: "Updates the vSAN configuration for this host", + }, + Key: "com.vmware.vsan.vsansystem.tasks.update", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan vSAN Objects", + Summary: "Scan vSAN Objects for issues", + }, + Key: "com.vmware.vsan.diskmgmt.tasks.objectscan", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Perform Convert disk format precheck", + Summary: "Perform Convert disk format precheck for issues that could be encountered", + }, + Key: "com.vmware.vsan.diskconvertion.tasks.precheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Perform compliance resource check task", + Summary: "Perform compliance resource check task", + }, + Key: "com.vmware.vsan.prechecker.tasks.complianceresourcecheck", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Download patch definitions", + Summary: "Download patch definitions", + }, + Key: "com.vmware.vcIntegrity.SigUpdateTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Check new notifications", + Summary: "Check new notifications", + }, + Key: "com.vmware.vcIntegrity.CheckNotificationTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Scan entity", + Summary: "Scan an entity", + }, + Key: "com.vmware.vcIntegrity.ScanTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remediate entity", + Summary: "Remediate an entity", + }, + Key: "com.vmware.vcIntegrity.RemediateTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Stage patches to entity", + Summary: "Stage patches to an entity", + }, + Key: "com.vmware.vcIntegrity.StageTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Discover virtual appliance", + Summary: "Discover virtual appliance", + }, + Key: "com.vmware.vcIntegrity.VaDiscoveryTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Detect Update Manager Guest Agent", + Summary: "Detect Update Manager Guest Agent installation on Linux VMs", + }, + Key: "com.vmware.vcIntegrity.DetectLinuxGATask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel detecting Update Manager GuestAgent", + Summary: "Cancel detecting Update Manager GuestAgent installation on Linux VMs", + }, + Key: "com.vmware.vcIntegrity.CancelDetectLinuxGATask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel download of patch definitions", + Summary: "Cancel download of patch definitions", + }, + Key: "com.vmware.vcIntegrity.CancelSigUpdateTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel scanning entity", + Summary: "Cancel scanning an entity", + }, + Key: "com.vmware.vcIntegrity.CancelScanTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel remediating entity", + Summary: "Cancel remediating an entity", + }, + Key: "com.vmware.vcIntegrity.CancelRemediateTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel discovering virtual appliance", + Summary: "Cancel discovering a virtual appliance", + }, + Key: "com.vmware.vcIntegrity.CancelVaDiscoveryTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Configure VMware Tools upgrade setting", + Summary: "Configure VMware Tools upgrade setting", + }, + Key: "com.vmware.vcIntegrity.ConfigureToolsUpgradeTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Import ESXi image", + Summary: "Import ESXi image", + }, + Key: "com.vmware.vcIntegrity.ImportRelease", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Upload offline patches", + Summary: "Upload offline patches", + }, + Key: "com.vmware.vcIntegrity.DownloadOfflinePatchTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Confirm importing offline patches", + Summary: "Confirm importing offline host patches", + }, + Key: "com.vmware.vcIntegrity.ConfirmOfflinePatchTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Cancel importing offline patches", + Summary: "Cancel importing offline host patches", + }, + Key: "com.vmware.vcIntegrity.CancelOfflinePatchTask", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Remediation pre-check", + Summary: "Remediation pre-check", + }, + Key: "com.vmware.vcIntegrity.RemediatePrecheckTask", + }, + }, + State: []types.BaseElementDescription{ + &types.ElementDescription{ + Description: types.Description{ + Label: "Queued", + Summary: "Task is queued", + }, + Key: "queued", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Running", + Summary: "Task is in progress", + }, + Key: "running", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Success", + Summary: "Task completed successfully", + }, + Key: "success", + }, + &types.ElementDescription{ + Description: types.Description{ + Label: "Error", + Summary: "Task completed with a failure", + }, + Key: "error", + }, + }, + Reason: []types.BaseTypeDescription{ + &types.TypeDescription{ + Description: types.Description{ + Label: "Scheduled task", + Summary: "Task started by a scheduled task", + }, + Key: "TaskReasonSchedule", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "User task", + Summary: "Task started by a specific user", + }, + Key: "TaskReasonUser", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "System task", + Summary: "Task started by the server", + }, + Key: "TaskReasonSystem", + }, + &types.TypeDescription{ + Description: types.Description{ + Label: "Alarm task", + Summary: "Task started by an alarm", + }, + Key: "TaskReasonAlarm", + }, + }, +} diff --git a/vendor/github.com/vmware/govmomi/simulator/vstorage_object_manager.go b/vendor/github.com/vmware/govmomi/simulator/vstorage_object_manager.go new file mode 100644 index 00000000..3c4107f0 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vstorage_object_manager.go @@ -0,0 +1,451 @@ +/* +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "log" + "net/url" + "os" + "path/filepath" + "strings" + "time" + + "github.com/google/uuid" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type VStorageObject struct { + types.VStorageObject + types.VStorageObjectSnapshotInfo +} + +type VcenterVStorageObjectManager struct { + mo.VcenterVStorageObjectManager + + objects map[types.ManagedObjectReference]map[types.ID]*VStorageObject +} + +func (m *VcenterVStorageObjectManager) init(*Registry) { + m.objects = make(map[types.ManagedObjectReference]map[types.ID]*VStorageObject) +} + +func (m *VcenterVStorageObjectManager) object(ds types.ManagedObjectReference, id types.ID) *VStorageObject { + if objects, ok := m.objects[ds]; ok { + return objects[id] + } + return nil +} + +func (m *VcenterVStorageObjectManager) ListVStorageObject(req *types.ListVStorageObject) soap.HasFault { + body := &methods.ListVStorageObjectBody{ + Res: &types.ListVStorageObjectResponse{}, + } + + if objects, ok := m.objects[req.Datastore]; ok { + for id := range objects { + body.Res.Returnval = append(body.Res.Returnval, id) + } + } + + return body +} + +func (m *VcenterVStorageObjectManager) RetrieveVStorageObject(ctx *Context, req *types.RetrieveVStorageObject) soap.HasFault { + body := new(methods.RetrieveVStorageObjectBody) + + obj := m.object(req.Datastore, req.Id) + if obj == nil { + body.Fault_ = Fault("", new(types.NotFound)) + } else { + stat := m.statDatastoreBacking(ctx, req.Datastore, &req.Id) + if err := stat[req.Id]; err != nil { + body.Fault_ = Fault(err.Error(), new(types.NotFound)) + return body + } + body.Res = &types.RetrieveVStorageObjectResponse{ + Returnval: obj.VStorageObject, + } + } + + return body +} + +// statDatastoreBacking checks if object(s) backing file exists on the given datastore ref. +func (m *VcenterVStorageObjectManager) statDatastoreBacking(ctx *Context, ref types.ManagedObjectReference, id *types.ID) map[types.ID]error { + objs := m.objects[ref] // default to checking all objects + if id != nil { + // check for a specific object + objs = map[types.ID]*VStorageObject{ + *id: objs[*id], + } + } + res := make(map[types.ID]error, len(objs)) + ds := ctx.Map.Get(ref).(*Datastore) + dc := ctx.Map.getEntityDatacenter(ds) + fm := ctx.Map.FileManager() + + for _, obj := range objs { + backing := obj.Config.Backing.(*types.BaseConfigInfoDiskFileBackingInfo) + file, _ := fm.resolve(&dc.Self, backing.FilePath) + _, res[obj.Config.Id] = os.Stat(file) + } + + return res +} + +func (m *VcenterVStorageObjectManager) ReconcileDatastoreInventoryTask(ctx *Context, req *types.ReconcileDatastoreInventory_Task) soap.HasFault { + task := CreateTask(m, "reconcileDatastoreInventory", func(*Task) (types.AnyType, types.BaseMethodFault) { + objs := m.objects[req.Datastore] + stat := m.statDatastoreBacking(ctx, req.Datastore, nil) + + for id, err := range stat { + if os.IsNotExist(err) { + log.Printf("removing disk %s from inventory: %s", id.Id, err) + delete(objs, id) + } + } + + return nil, nil + }) + + return &methods.ReconcileDatastoreInventory_TaskBody{ + Res: &types.ReconcileDatastoreInventory_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VcenterVStorageObjectManager) RegisterDisk(ctx *Context, req *types.RegisterDisk) soap.HasFault { + body := new(methods.RegisterDiskBody) + + invalid := func() soap.HasFault { + body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "path"}) + return body + } + + u, err := url.Parse(req.Path) + if err != nil { + return invalid() + } + u.Path = strings.TrimPrefix(u.Path, folderPrefix) + + ds, err := ctx.svc.findDatastore(u.Query()) + if err != nil { + return invalid() + } + + st, err := os.Stat(filepath.Join(ds.Info.GetDatastoreInfo().Url, u.Path)) + if err != nil { + return invalid() + + } + if st.IsDir() { + return invalid() + } + + path := (&object.DatastorePath{Datastore: ds.Name, Path: u.Path}).String() + + for _, obj := range m.objects[ds.Self] { + backing := obj.Config.Backing.(*types.BaseConfigInfoDiskFileBackingInfo) + if backing.FilePath == path { + return invalid() + } + } + + creq := &types.CreateDisk_Task{ + Spec: types.VslmCreateSpec{ + Name: req.Name, + BackingSpec: &types.VslmCreateSpecDiskFileBackingSpec{ + VslmCreateSpecBackingSpec: types.VslmCreateSpecBackingSpec{ + Datastore: ds.Self, + Path: u.Path, + }, + }, + }, + } + + obj, fault := m.createObject(creq, true) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + body.Res = &types.RegisterDiskResponse{ + Returnval: *obj, + } + + return body +} + +func (m *VcenterVStorageObjectManager) createObject(req *types.CreateDisk_Task, register bool) (*types.VStorageObject, types.BaseMethodFault) { + dir := "fcd" + ref := req.Spec.BackingSpec.GetVslmCreateSpecBackingSpec().Datastore + ds := Map.Get(ref).(*Datastore) + dc := Map.getEntityDatacenter(ds) + + objects, ok := m.objects[ds.Self] + if !ok { + objects = make(map[types.ID]*VStorageObject) + m.objects[ds.Self] = objects + _ = os.Mkdir(filepath.Join(ds.Info.GetDatastoreInfo().Url, dir), 0750) + } + + id := uuid.New().String() + obj := types.VStorageObject{ + Config: types.VStorageObjectConfigInfo{ + BaseConfigInfo: types.BaseConfigInfo{ + Id: types.ID{ + Id: id, + }, + Name: req.Spec.Name, + CreateTime: time.Now(), + KeepAfterDeleteVm: req.Spec.KeepAfterDeleteVm, + RelocationDisabled: types.NewBool(false), + NativeSnapshotSupported: types.NewBool(false), + ChangedBlockTrackingEnabled: types.NewBool(false), + Iofilter: nil, + }, + CapacityInMB: req.Spec.CapacityInMB, + ConsumptionType: []string{"disk"}, + ConsumerId: nil, + }, + } + + backing := req.Spec.BackingSpec.(*types.VslmCreateSpecDiskFileBackingSpec) + path := object.DatastorePath{ + Datastore: ds.Name, + Path: backing.Path, + } + if path.Path == "" { + path.Path = dir + "/" + id + ".vmdk" + } + + if !register { + err := vdmCreateVirtualDisk(types.VirtualDeviceConfigSpecFileOperationCreate, &types.CreateVirtualDisk_Task{ + Datacenter: &dc.Self, + Name: path.String(), + }) + if err != nil { + return nil, err + } + } + + obj.Config.Backing = &types.BaseConfigInfoDiskFileBackingInfo{ + BaseConfigInfoFileBackingInfo: types.BaseConfigInfoFileBackingInfo{ + BaseConfigInfoBackingInfo: types.BaseConfigInfoBackingInfo{ + Datastore: ds.Self, + }, + FilePath: path.String(), + BackingObjectId: uuid.New().String(), + Parent: nil, + DeltaSizeInMB: 0, + }, + ProvisioningType: backing.ProvisioningType, + } + + objects[obj.Config.Id] = &VStorageObject{VStorageObject: obj} + + return &obj, nil + +} + +func (m *VcenterVStorageObjectManager) CreateDiskTask(req *types.CreateDisk_Task) soap.HasFault { + task := CreateTask(m, "createDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + return m.createObject(req, false) + }) + + return &methods.CreateDisk_TaskBody{ + Res: &types.CreateDisk_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VcenterVStorageObjectManager) DeleteVStorageObjectTask(req *types.DeleteVStorageObject_Task) soap.HasFault { + task := CreateTask(m, "deleteDisk", func(*Task) (types.AnyType, types.BaseMethodFault) { + obj := m.object(req.Datastore, req.Id) + if obj == nil { + return nil, &types.InvalidArgument{} + } + + backing := obj.Config.Backing.(*types.BaseConfigInfoDiskFileBackingInfo) + ds := Map.Get(req.Datastore).(*Datastore) + dc := Map.getEntityDatacenter(ds) + dm := Map.VirtualDiskManager() + dm.DeleteVirtualDiskTask(internalContext, &types.DeleteVirtualDisk_Task{ + Name: backing.FilePath, + Datacenter: &dc.Self, + }) + + delete(m.objects[req.Datastore], req.Id) + + return nil, nil + }) + + return &methods.DeleteVStorageObject_TaskBody{ + Res: &types.DeleteVStorageObject_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VcenterVStorageObjectManager) RetrieveSnapshotInfo(req *types.RetrieveSnapshotInfo) soap.HasFault { + body := new(methods.RetrieveSnapshotInfoBody) + + obj := m.object(req.Datastore, req.Id) + if obj == nil { + body.Fault_ = Fault("", new(types.InvalidArgument)) + } else { + body.Res = &types.RetrieveSnapshotInfoResponse{ + Returnval: obj.VStorageObjectSnapshotInfo, + } + } + + return body +} + +func (m *VcenterVStorageObjectManager) VStorageObjectCreateSnapshotTask(req *types.VStorageObjectCreateSnapshot_Task) soap.HasFault { + task := CreateTask(m, "createSnapshot", func(*Task) (types.AnyType, types.BaseMethodFault) { + obj := m.object(req.Datastore, req.Id) + if obj == nil { + return nil, new(types.InvalidArgument) + } + + snapshot := types.VStorageObjectSnapshotInfoVStorageObjectSnapshot{ + Id: &types.ID{ + Id: uuid.New().String(), + }, + BackingObjectId: uuid.New().String(), + CreateTime: time.Now(), + Description: req.Description, + } + obj.Snapshots = append(obj.Snapshots, snapshot) + + return snapshot.Id, nil + }) + + return &methods.VStorageObjectCreateSnapshot_TaskBody{ + Res: &types.VStorageObjectCreateSnapshot_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VcenterVStorageObjectManager) DeleteSnapshotTask(req *types.DeleteSnapshot_Task) soap.HasFault { + task := CreateTask(m, "deleteSnapshot", func(*Task) (types.AnyType, types.BaseMethodFault) { + obj := m.object(req.Datastore, req.Id) + if obj != nil { + for i := range obj.Snapshots { + if *obj.Snapshots[i].Id == req.SnapshotId { + obj.Snapshots = append(obj.Snapshots[:i], obj.Snapshots[i+1:]...) + return nil, nil + } + } + } + return nil, new(types.InvalidArgument) + }) + + return &methods.DeleteSnapshot_TaskBody{ + Res: &types.DeleteSnapshot_TaskResponse{ + Returnval: task.Run(), + }, + } +} + +func (m *VcenterVStorageObjectManager) tagID(id types.ID) types.ManagedObjectReference { + return types.ManagedObjectReference{ + Type: "fcd", + Value: id.Id, + } +} + +func (m *VcenterVStorageObjectManager) AttachTagToVStorageObject(ctx *Context, req *types.AttachTagToVStorageObject) soap.HasFault { + body := new(methods.AttachTagToVStorageObjectBody) + ref := m.tagID(req.Id) + + err := ctx.Map.tagManager.AttachTag(ref, types.VslmTagEntry{ + ParentCategoryName: req.Category, + TagName: req.Tag, + }) + + if err == nil { + body.Res = new(types.AttachTagToVStorageObjectResponse) + } else { + body.Fault_ = Fault("", err) + } + + return body +} + +func (m *VcenterVStorageObjectManager) DetachTagFromVStorageObject(ctx *Context, req *types.DetachTagFromVStorageObject) soap.HasFault { + body := new(methods.DetachTagFromVStorageObjectBody) + ref := m.tagID(req.Id) + + err := ctx.Map.tagManager.DetachTag(ref, types.VslmTagEntry{ + ParentCategoryName: req.Category, + TagName: req.Tag, + }) + + if err == nil { + body.Res = new(types.DetachTagFromVStorageObjectResponse) + } else { + body.Fault_ = Fault("", err) + } + + return body +} + +func (m *VcenterVStorageObjectManager) ListVStorageObjectsAttachedToTag(ctx *Context, req *types.ListVStorageObjectsAttachedToTag) soap.HasFault { + body := new(methods.ListVStorageObjectsAttachedToTagBody) + + refs, err := ctx.Map.tagManager.AttachedObjects(types.VslmTagEntry{ + ParentCategoryName: req.Category, + TagName: req.Tag, + }) + + if err == nil { + body.Res = new(types.ListVStorageObjectsAttachedToTagResponse) + for _, ref := range refs { + body.Res.Returnval = append(body.Res.Returnval, types.ID{Id: ref.Value}) + } + } else { + body.Fault_ = Fault("", err) + } + + return body +} + +func (m *VcenterVStorageObjectManager) ListTagsAttachedToVStorageObject(ctx *Context, req *types.ListTagsAttachedToVStorageObject) soap.HasFault { + body := new(methods.ListTagsAttachedToVStorageObjectBody) + ref := m.tagID(req.Id) + + tags, err := ctx.Map.tagManager.AttachedTags(ref) + + if err == nil { + body.Res = &types.ListTagsAttachedToVStorageObjectResponse{ + Returnval: tags, + } + } else { + body.Fault_ = Fault("", err) + } + + return body +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 5e3905a3..418cb768 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -199,12 +199,17 @@ github.com/vmware/govmomi/lookup/methods github.com/vmware/govmomi/lookup/types github.com/vmware/govmomi/nfc github.com/vmware/govmomi/object +github.com/vmware/govmomi/ovf github.com/vmware/govmomi/pbm github.com/vmware/govmomi/pbm/methods github.com/vmware/govmomi/pbm/types github.com/vmware/govmomi/property github.com/vmware/govmomi/session github.com/vmware/govmomi/session/keepalive +github.com/vmware/govmomi/simulator +github.com/vmware/govmomi/simulator/esx +github.com/vmware/govmomi/simulator/internal +github.com/vmware/govmomi/simulator/vpx github.com/vmware/govmomi/sts github.com/vmware/govmomi/sts/internal github.com/vmware/govmomi/task @@ -283,7 +288,6 @@ golang.org/x/net/websocket golang.org/x/oauth2 golang.org/x/oauth2/internal # golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 -## explicit golang.org/x/sync/singleflight # golang.org/x/sys v0.0.0-20201112073958-5cba982894dd ## explicit From 9c81875ec0c63a15358b306905bda40d78ffd351 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:38:40 +0100 Subject: [PATCH 04/26] Add unit test framework The framework uses vCenter simulator. It simulates objects previously saved from "vcsim", i.e. some default vSpehere with 1 host + 2 VMs, and now present in the repository as pkg/check/testdata/default/*.xml. --- pkg/check/framework_test.go | 219 + .../0000-ServiceInstance-ServiceInstance.xml | 67 + .../testdata/default/0001-Folder-group-d1.xml | 175 + ...02-PropertyCollector-propertyCollector.xml | 7 + .../default/0003-ViewManager-ViewManager.xml | 7 + .../0004-OptionManager-VpxSettings.xml | 68 + .../0005-UserDirectory-UserDirectory.xml | 7 + .../0006-SessionManager-SessionManager.xml | 45 + ...horizationManager-AuthorizationManager.xml | 658 + .../0008-ServiceManager-ServiceMgr.xml | 3 + .../0009-PerformanceManager-PerfMgr.xml | 12336 ++++++++++++++++ ...eduledTaskManager-ScheduledTaskManager.xml | 11 + .../0011-AlarmManager-AlarmManager.xml | 11 + .../0012-EventManager-EventManager.xml | 382 + .../default/0013-TaskManager-TaskManager.xml | 7966 ++++++++++ ...0014-ExtensionManager-ExtensionManager.xml | 7 + ...onSpecManager-CustomizationSpecManager.xml | 40 + ...ustomFieldsManager-CustomFieldsManager.xml | 7 + .../0017-DiagnosticManager-DiagMgr.xml | 3 + .../0018-LicenseManager-LicenseManager.xml | 3 + .../default/0019-SearchIndex-SearchIndex.xml | 3 + .../default/0020-FileManager-FileManager.xml | 3 + ...spaceManager-DatastoreNamespaceManager.xml | 3 + ...-VirtualDiskManager-virtualDiskManager.xml | 3 + .../0023-HostSnmpSystem-SnmpSystem.xml | 16 + ...MachineProvisioningChecker-ProvChecker.xml | 3 + ...hineCompatibilityChecker-CompatChecker.xml | 3 + .../default/0026-OvfManager-OvfManager.xml | 11 + .../0027-IpPoolManager-IpPoolManager.xml | 3 + ...ributedVirtualSwitchManager-DVSManager.xml | 3 + ...-HostProfileManager-HostProfileManager.xml | 7 + ...erProfileManager-ClusterProfileManager.xml | 7 + ...eComplianceManager-MoComplianceManager.xml | 3 + ...ocalizationManager-LocalizationManager.xml | 7 + ...ResourceManager-StorageResourceManager.xml | 3 + ...erationsManager-guestOperationsManager.xml | 11 + ...eadMemoryManager-OverheadMemoryManager.xml | 3 + ...-CertificateManager-certificateManager.xml | 3 + .../0037-IoFilterManager-IoFilterManager.xml | 3 + ...ageObjectManager-VStorageObjectManager.xml | 3 + ...cationManager-HostSpecificationManager.xml | 3 + .../0040-CryptoManagerKmip-CryptoManager.xml | 11 + ...ealthUpdateManager-HealthUpdateManager.xml | 3 + ...nfigurator-FailoverClusterConfigurator.xml | 7 + ...rClusterManager-FailoverClusterManager.xml | 7 + .../default/0044-Datacenter-datacenter-2.xml | 100 + .../testdata/default/0045-Folder-folder-3.xml | 161 + .../default/0046-VirtualMachine-vm-57.xml | 487 + .../0047-EnvironmentBrowser-envbrowser-20.xml | 3 + .../default/0048-VirtualMachine-vm-60.xml | 487 + .../default/0049-VirtualMachine-vm-63.xml | 487 + .../0050-EnvironmentBrowser-envbrowser-25.xml | 3 + .../default/0051-VirtualMachine-vm-66.xml | 487 + .../testdata/default/0052-Folder-folder-4.xml | 155 + ...053-ComputeResource-computeresource-23.xml | 113 + .../default/0054-HostSystem-host-21.xml | 5298 +++++++ ...DatastoreSystem-hostdatastoresystem-15.xml | 17 + ...HostNetworkSystem-hostnetworksystem-16.xml | 137 + .../default/0057-ResourcePool-resgroup-22.xml | 176 + ...puteResource-clustercomputeresource-27.xml | 161 + .../default/0059-HostSystem-host-34.xml | 5297 +++++++ ...DatastoreSystem-hostdatastoresystem-29.xml | 17 + ...HostNetworkSystem-hostnetworksystem-30.xml | 137 + .../default/0062-HostSystem-host-42.xml | 5295 +++++++ ...DatastoreSystem-hostdatastoresystem-37.xml | 17 + ...HostNetworkSystem-hostnetworksystem-38.xml | 137 + .../default/0065-HostSystem-host-50.xml | 5297 +++++++ ...DatastoreSystem-hostdatastoresystem-45.xml | 17 + ...HostNetworkSystem-hostnetworksystem-46.xml | 137 + .../default/0068-ResourcePool-resgroup-26.xml | 176 + .../testdata/default/0069-Folder-folder-5.xml | 161 + ...sim-DC0-LocalDS_0-824089577%40folder-5.xml | 128 + ...tastoreBrowser-hostdatastorebrowser-55.xml | 13 + .../testdata/default/0072-Folder-folder-6.xml | 161 + .../default/0073-Network-network-7.xml | 86 + .../0074-DistributedVirtualSwitch-dvs-9.xml | 120 + ...ributedVirtualPortgroup-dvportgroup-11.xml | 150 + ...ributedVirtualPortgroup-dvportgroup-13.xml | 147 + pkg/check/testdata/default/README | 13 + .../DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram | 0 .../DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx | 0 .../DC0_C0_RP0_VM0/disk1-flat.vmdk | 0 .../DC0_C0_RP0_VM0/disk1.vmdk | 0 .../DC0_C0_RP0_VM0/vmware.log | 2 + .../DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram | 0 .../DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx | 0 .../DC0_C0_RP0_VM1/disk1-flat.vmdk | 0 .../DC0_C0_RP0_VM1/disk1.vmdk | 0 .../DC0_C0_RP0_VM1/vmware.log | 2 + .../DC0_H0_VM0/DC0_H0_VM0.nvram | 0 .../DC0_H0_VM0/DC0_H0_VM0.vmx | 0 .../DC0_H0_VM0/disk1-flat.vmdk | 0 .../DC0_H0_VM0/disk1.vmdk | 0 .../DC0_H0_VM0/vmware.log | 2 + .../DC0_H0_VM1/DC0_H0_VM1.nvram | 0 .../DC0_H0_VM1/DC0_H0_VM1.vmx | 0 .../DC0_H0_VM1/disk1-flat.vmdk | 0 .../DC0_H0_VM1/disk1.vmdk | 0 .../DC0_H0_VM1/vmware.log | 2 + 99 files changed, 47940 insertions(+) create mode 100644 pkg/check/framework_test.go create mode 100644 pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml create mode 100644 pkg/check/testdata/default/0001-Folder-group-d1.xml create mode 100644 pkg/check/testdata/default/0002-PropertyCollector-propertyCollector.xml create mode 100644 pkg/check/testdata/default/0003-ViewManager-ViewManager.xml create mode 100644 pkg/check/testdata/default/0004-OptionManager-VpxSettings.xml create mode 100644 pkg/check/testdata/default/0005-UserDirectory-UserDirectory.xml create mode 100644 pkg/check/testdata/default/0006-SessionManager-SessionManager.xml create mode 100644 pkg/check/testdata/default/0007-AuthorizationManager-AuthorizationManager.xml create mode 100644 pkg/check/testdata/default/0008-ServiceManager-ServiceMgr.xml create mode 100644 pkg/check/testdata/default/0009-PerformanceManager-PerfMgr.xml create mode 100644 pkg/check/testdata/default/0010-ScheduledTaskManager-ScheduledTaskManager.xml create mode 100644 pkg/check/testdata/default/0011-AlarmManager-AlarmManager.xml create mode 100644 pkg/check/testdata/default/0012-EventManager-EventManager.xml create mode 100644 pkg/check/testdata/default/0013-TaskManager-TaskManager.xml create mode 100644 pkg/check/testdata/default/0014-ExtensionManager-ExtensionManager.xml create mode 100644 pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml create mode 100644 pkg/check/testdata/default/0016-CustomFieldsManager-CustomFieldsManager.xml create mode 100644 pkg/check/testdata/default/0017-DiagnosticManager-DiagMgr.xml create mode 100644 pkg/check/testdata/default/0018-LicenseManager-LicenseManager.xml create mode 100644 pkg/check/testdata/default/0019-SearchIndex-SearchIndex.xml create mode 100644 pkg/check/testdata/default/0020-FileManager-FileManager.xml create mode 100644 pkg/check/testdata/default/0021-DatastoreNamespaceManager-DatastoreNamespaceManager.xml create mode 100644 pkg/check/testdata/default/0022-VirtualDiskManager-virtualDiskManager.xml create mode 100644 pkg/check/testdata/default/0023-HostSnmpSystem-SnmpSystem.xml create mode 100644 pkg/check/testdata/default/0024-VirtualMachineProvisioningChecker-ProvChecker.xml create mode 100644 pkg/check/testdata/default/0025-VirtualMachineCompatibilityChecker-CompatChecker.xml create mode 100644 pkg/check/testdata/default/0026-OvfManager-OvfManager.xml create mode 100644 pkg/check/testdata/default/0027-IpPoolManager-IpPoolManager.xml create mode 100644 pkg/check/testdata/default/0028-DistributedVirtualSwitchManager-DVSManager.xml create mode 100644 pkg/check/testdata/default/0029-HostProfileManager-HostProfileManager.xml create mode 100644 pkg/check/testdata/default/0030-ClusterProfileManager-ClusterProfileManager.xml create mode 100644 pkg/check/testdata/default/0031-ProfileComplianceManager-MoComplianceManager.xml create mode 100644 pkg/check/testdata/default/0032-LocalizationManager-LocalizationManager.xml create mode 100644 pkg/check/testdata/default/0033-StorageResourceManager-StorageResourceManager.xml create mode 100644 pkg/check/testdata/default/0034-GuestOperationsManager-guestOperationsManager.xml create mode 100644 pkg/check/testdata/default/0035-OverheadMemoryManager-OverheadMemoryManager.xml create mode 100644 pkg/check/testdata/default/0036-CertificateManager-certificateManager.xml create mode 100644 pkg/check/testdata/default/0037-IoFilterManager-IoFilterManager.xml create mode 100644 pkg/check/testdata/default/0038-VcenterVStorageObjectManager-VStorageObjectManager.xml create mode 100644 pkg/check/testdata/default/0039-HostSpecificationManager-HostSpecificationManager.xml create mode 100644 pkg/check/testdata/default/0040-CryptoManagerKmip-CryptoManager.xml create mode 100644 pkg/check/testdata/default/0041-HealthUpdateManager-HealthUpdateManager.xml create mode 100644 pkg/check/testdata/default/0042-FailoverClusterConfigurator-FailoverClusterConfigurator.xml create mode 100644 pkg/check/testdata/default/0043-FailoverClusterManager-FailoverClusterManager.xml create mode 100644 pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml create mode 100644 pkg/check/testdata/default/0045-Folder-folder-3.xml create mode 100644 pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml create mode 100644 pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml create mode 100644 pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml create mode 100644 pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml create mode 100644 pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml create mode 100644 pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml create mode 100644 pkg/check/testdata/default/0052-Folder-folder-4.xml create mode 100644 pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml create mode 100644 pkg/check/testdata/default/0054-HostSystem-host-21.xml create mode 100644 pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml create mode 100644 pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml create mode 100644 pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml create mode 100644 pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml create mode 100644 pkg/check/testdata/default/0059-HostSystem-host-34.xml create mode 100644 pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml create mode 100644 pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml create mode 100644 pkg/check/testdata/default/0062-HostSystem-host-42.xml create mode 100644 pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml create mode 100644 pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml create mode 100644 pkg/check/testdata/default/0065-HostSystem-host-50.xml create mode 100644 pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml create mode 100644 pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml create mode 100644 pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml create mode 100644 pkg/check/testdata/default/0069-Folder-folder-5.xml create mode 100644 pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml create mode 100644 pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml create mode 100644 pkg/check/testdata/default/0072-Folder-folder-6.xml create mode 100644 pkg/check/testdata/default/0073-Network-network-7.xml create mode 100644 pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml create mode 100644 pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml create mode 100644 pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml create mode 100644 pkg/check/testdata/default/README create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log diff --git a/pkg/check/framework_test.go b/pkg/check/framework_test.go new file mode 100644 index 00000000..d3c07e72 --- /dev/null +++ b/pkg/check/framework_test.go @@ -0,0 +1,219 @@ +package check + +import ( + "context" + "crypto/tls" + "fmt" + + ocpv1 "github.com/openshift/api/config/v1" + "github.com/vmware/govmomi" + "github.com/vmware/govmomi/find" + "github.com/vmware/govmomi/simulator" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" + "gopkg.in/gcfg.v1" + v1 "k8s.io/api/core/v1" + storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/legacy-cloud-providers/vsphere" +) + +const ( + defaultModel = "testdata/default" + defaultDC = "DC0" + defaultVMPath = "/DC0/vm/" + defaultHost = "H0" + defaultHostId = "host-21" // Generated by vcsim + defaultHostPath = "/DC0/host/DC0_" +) + +type simulatedVM struct { + name, uuid string +} + +var ( + // Virtual machines generated by vSphere simulator. UUIDs look generated, but they're stable. + defaultVMs = []simulatedVM{ + {"DC0_H0_VM0", "265104de-1472-547c-b873-6dc7883fb6cb"}, + {"DC0_H0_VM1", "12f8928d-f144-5c57-89db-dd2d0902c9fa"}, + } +) + +func connectToSimulator(s *simulator.Server) (*vim25.Client, error) { + client, err := govmomi.NewClient(context.TODO(), s.URL, true) + if err != nil { + return nil, err + } + return client.Client, nil +} + +func simulatorConfig() *vsphere.VSphereConfig { + var cfg vsphere.VSphereConfig + // Configuration that corresponds to the simulated vSphere + data := `[Global] +secret-name = "vsphere-creds" +secret-namespace = "kube-system" +insecure-flag = "1" + +[Workspace] +server = "localhost" +datacenter = "DC0" +default-datastore = "LocalDS_0" +folder = "/DC0/vm" + +[VirtualCenter "dc0"] +datacenters = "DC0" +` + err := gcfg.ReadStringInto(&cfg, data) + if err != nil { + panic(err) + } + return &cfg +} + +func setupSimulator(kubeClient *fakeKubeClient, modelDir string) (ctx *CheckContext, cleanup func(), err error) { + model := simulator.Model{} + err = model.Load(modelDir) + if err != nil { + return nil, nil, err + } + model.Service.TLS = new(tls.Config) + + s := model.Service.NewServer() + client, err := connectToSimulator(s) + if err != nil { + return nil, nil, fmt.Errorf("failed to connect to the similator: %s", err) + } + + ctx = &CheckContext{ + Context: context.TODO(), + VMConfig: simulatorConfig(), + VMClient: client, + KubeClient: kubeClient, + } + + cleanup = func() { + s.Close() + model.Remove() + } + return ctx, cleanup, nil +} + +type fakeKubeClient struct { + infrastructure *ocpv1.Infrastructure + nodes []v1.Node + storageClasses []storagev1.StorageClass + pvs []v1.PersistentVolume +} + +var _ KubeClient = &fakeKubeClient{} + +func (f *fakeKubeClient) GetInfrastructure(ctx context.Context) (*ocpv1.Infrastructure, error) { + return f.infrastructure, nil +} + +func (f *fakeKubeClient) ListNodes(ctx context.Context) ([]v1.Node, error) { + return f.nodes, nil +} + +func (f *fakeKubeClient) ListStorageClasses(ctx context.Context) ([]storagev1.StorageClass, error) { + return f.storageClasses, nil +} + +func (f *fakeKubeClient) ListPVs(ctx context.Context) ([]v1.PersistentVolume, error) { + return f.pvs, nil +} + +func node(name string, modifiers ...func(*v1.Node)) v1.Node { + n := v1.Node{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: v1.NodeSpec{ + ProviderID: "", + }, + } + for _, modifier := range modifiers { + modifier(&n) + } + return n +} + +func withProviderID(id string) func(*v1.Node) { + return func(node *v1.Node) { + node.Spec.ProviderID = id + } +} + +func defaultNodes() []v1.Node { + nodes := []v1.Node{} + for _, vm := range defaultVMs { + node := node(vm.name, withProviderID("vsphere://"+vm.uuid)) + nodes = append(nodes, node) + } + return nodes +} + +func infrastructure(modifiers ...func(*ocpv1.Infrastructure)) *ocpv1.Infrastructure { + infra := &ocpv1.Infrastructure{ + ObjectMeta: metav1.ObjectMeta{ + Name: "cluster", + }, + Status: ocpv1.InfrastructureStatus{ + InfrastructureName: "my-cluster-id", + }, + } + + for _, modifier := range modifiers { + modifier(infra) + } + return infra +} + +func getVM(ctx *CheckContext, node *v1.Node) (*mo.VirtualMachine, error) { + finder := find.NewFinder(ctx.VMClient, true) + vm, err := finder.VirtualMachine(ctx.Context, defaultVMPath+node.Name) + if err != nil { + return nil, err + } + + var o mo.VirtualMachine + err = vm.Properties(ctx.Context, vm.Reference(), NodeProperties, &o) + if err != nil { + return nil, fmt.Errorf("failed to load VM %s: %s", node.Name, err) + } + + return &o, nil +} + +func customizeVM(ctx *CheckContext, node *v1.Node, spec *types.VirtualMachineConfigSpec) error { + finder := find.NewFinder(ctx.VMClient, true) + vm, err := finder.VirtualMachine(ctx.Context, defaultVMPath+node.Name) + if err != nil { + return err + } + + task, err := vm.Reconfigure(ctx.Context, *spec) + if err != nil { + return err + } + + err = task.Wait(ctx.Context) + return err + +} + +func customizeHostVersion(hostSystemId string, version string) error { + hsRef := simulator.Map.Get(types.ManagedObjectReference{ + Type: "HostSystem", + Value: hostSystemId, + }) + if hsRef == nil { + return fmt.Errorf("can't find HostSystem %s", hostSystemId) + } + + hs := hsRef.(*simulator.HostSystem) + hs.Config.Product.Version = version + return nil +} diff --git a/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml b/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml new file mode 100644 index 00000000..8d310991 --- /dev/null +++ b/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml @@ -0,0 +1,67 @@ + + ServiceInstance + + content + + group-d1 + propertyCollector + ViewManager + + VMware vCenter Server (govmomi simulator) + VMware vCenter Server 6.5.0 build-5973321 + VMware, Inc. + 6.5.0 + 5973321 + INTL + 000 + linux-amd64 + vpx + VirtualCenter + 6.5 + dbed6e0c-bd88-4ef6-b594-21283e1c677f + VMware VirtualCenter Server + 6.0 + + VpxSettings + UserDirectory + SessionManager + AuthorizationManager + ServiceMgr + PerfMgr + ScheduledTaskManager + AlarmManager + EventManager + TaskManager + ExtensionManager + CustomizationSpecManager + CustomFieldsManager + DiagMgr + LicenseManager + SearchIndex + FileManager + DatastoreNamespaceManager + virtualDiskManager + SnmpSystem + ProvChecker + CompatChecker + OvfManager + IpPoolManager + DVSManager + HostProfileManager + ClusterProfileManager + MoComplianceManager + LocalizationManager + StorageResourceManager + guestOperationsManager + OverheadMemoryManager + certificateManager + IoFilterManager + VStorageObjectManager + HostSpecificationManager + CryptoManager + HealthUpdateManager + FailoverClusterConfigurator + FailoverClusterManager + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0001-Folder-group-d1.xml b/pkg/check/testdata/default/0001-Folder-group-d1.xml new file mode 100644 index 00000000..ac58d15e --- /dev/null +++ b/pkg/check/testdata/default/0001-Folder-group-d1.xml @@ -0,0 +1,175 @@ + + group-d1 + + value + + + + availableField + + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + group-d1 + VSPHERE.LOCAL\Administrator + false + -1 + true + + + group-d1 + VSPHERE.LOCAL\Administrators + true + -1 + true + + + + + name + Datacenters + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Folder + Datacenter + + + + childEntity + + datacenter-2 + + + + value + + + + availableField + + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + group-d1 + VSPHERE.LOCAL\Administrator + false + -1 + true + + + group-d1 + VSPHERE.LOCAL\Administrators + true + -1 + true + + + + + name + Datacenters + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Folder + Datacenter + + + + childEntity + + datacenter-2 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0002-PropertyCollector-propertyCollector.xml b/pkg/check/testdata/default/0002-PropertyCollector-propertyCollector.xml new file mode 100644 index 00000000..4cbcab94 --- /dev/null +++ b/pkg/check/testdata/default/0002-PropertyCollector-propertyCollector.xml @@ -0,0 +1,7 @@ + + propertyCollector + + filter + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0003-ViewManager-ViewManager.xml b/pkg/check/testdata/default/0003-ViewManager-ViewManager.xml new file mode 100644 index 00000000..fd7b656c --- /dev/null +++ b/pkg/check/testdata/default/0003-ViewManager-ViewManager.xml @@ -0,0 +1,7 @@ + + ViewManager + + viewList + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0004-OptionManager-VpxSettings.xml b/pkg/check/testdata/default/0004-OptionManager-VpxSettings.xml new file mode 100644 index 00000000..f4fc9ead --- /dev/null +++ b/pkg/check/testdata/default/0004-OptionManager-VpxSettings.xml @@ -0,0 +1,68 @@ + + VpxSettings + + supportedOption + + + + setting + + + config.vpxd.sso.sts.uri + http://127.0.0.1:8989/sts/STSService/vsphere.local + + + config.vpxd.sso.solutionUser.privateKey + /etc/vmware-vpx/ssl/vcsoluser.key + + + config.vpxd.sso.solutionUser.name + vpxd-b643d01c-928f-469b-96a5-d571d762a78e@vsphere.local + + + config.vpxd.sso.solutionUser.certificate + /etc/vmware-vpx/ssl/vcsoluser.crt + + + config.vpxd.sso.groupcheck.uri + http://127.0.0.1:8989/sso-adminserver/sdk/vsphere.local + + + config.vpxd.sso.enabled + false + + + config.vpxd.sso.default.isGroup + false + + + config.vpxd.sso.default.admin + Administrator@vsphere.local + + + config.vpxd.sso.admin.uri + http://127.0.0.1:8989/sso-adminserver/sdk/vsphere.local + + + VirtualCenter.InstanceName + 127.0.0.1 + + + event.batchsize + 2000 + + + event.maxAge + 30 + + + event.maxAgeEnabled + true + + + vcsim.server.url + http://127.0.0.1:8989/sdk + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0005-UserDirectory-UserDirectory.xml b/pkg/check/testdata/default/0005-UserDirectory-UserDirectory.xml new file mode 100644 index 00000000..7ce5e32d --- /dev/null +++ b/pkg/check/testdata/default/0005-UserDirectory-UserDirectory.xml @@ -0,0 +1,7 @@ + + UserDirectory + + domainList + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml b/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml new file mode 100644 index 00000000..8b53a425 --- /dev/null +++ b/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml @@ -0,0 +1,45 @@ + + SessionManager + + sessionList + + + acdb9fd2-8a1c-48ca-9c78-bcb24f5fa421 + user + user + 2021-01-08T16:09:12.979769656Z + 2021-01-08T17:09:12.982313915+01:00 + en_US + en_US + false + 127.0.0.1 + govc/0.23.0 + 4 + + + + + currentSession + + acdb9fd2-8a1c-48ca-9c78-bcb24f5fa421 + user + user + 2021-01-08T16:09:12.979769656Z + 2021-01-08T17:09:12.982313915+01:00 + en_US + en_US + false + 127.0.0.1 + govc/0.23.0 + 4 + + + + messageLocaleList + + + + supportedLocaleList + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0007-AuthorizationManager-AuthorizationManager.xml b/pkg/check/testdata/default/0007-AuthorizationManager-AuthorizationManager.xml new file mode 100644 index 00000000..1a42a1f4 --- /dev/null +++ b/pkg/check/testdata/default/0007-AuthorizationManager-AuthorizationManager.xml @@ -0,0 +1,658 @@ + + AuthorizationManager + + privilegeList + + + + roleList + + + -6 + true + NoCryptoAdmin + + + Full access without Cryptographic operations privileges + + Alarm.Acknowledge + Alarm.Create + Alarm.Delete + Alarm.DisableActions + Alarm.Edit + Alarm.SetStatus + Authorization.ModifyPermissions + Authorization.ModifyPrivileges + Authorization.ModifyRoles + Authorization.ReassignRolePermissions + AutoDeploy.Host.AssociateMachine + AutoDeploy.Profile.Create + AutoDeploy.Profile.Edit + AutoDeploy.Rule.Create + AutoDeploy.Rule.Delete + AutoDeploy.Rule.Edit + AutoDeploy.RuleSet.Activate + AutoDeploy.RuleSet.Edit + Certificate.Manage + ContentLibrary.AddLibraryItem + ContentLibrary.CreateLocalLibrary + ContentLibrary.CreateSubscribedLibrary + ContentLibrary.DeleteLibraryItem + ContentLibrary.DeleteLocalLibrary + ContentLibrary.DeleteSubscribedLibrary + ContentLibrary.DownloadSession + ContentLibrary.EvictLibraryItem + ContentLibrary.EvictSubscribedLibrary + ContentLibrary.GetConfiguration + ContentLibrary.ImportStorage + ContentLibrary.ProbeSubscription + ContentLibrary.ReadStorage + ContentLibrary.SyncLibrary + ContentLibrary.SyncLibraryItem + ContentLibrary.TypeIntrospection + ContentLibrary.UpdateConfiguration + ContentLibrary.UpdateLibrary + ContentLibrary.UpdateLibraryItem + ContentLibrary.UpdateLocalLibrary + ContentLibrary.UpdateSession + ContentLibrary.UpdateSubscribedLibrary + DVPortgroup.Create + DVPortgroup.Delete + DVPortgroup.Modify + DVPortgroup.PolicyOp + DVPortgroup.ScopeOp + DVSwitch.Create + DVSwitch.Delete + DVSwitch.HostOp + DVSwitch.Modify + DVSwitch.Move + DVSwitch.PolicyOp + DVSwitch.PortConfig + DVSwitch.PortSetting + DVSwitch.ResourceManagement + DVSwitch.Vspan + Datacenter.Create + Datacenter.Delete + Datacenter.IpPoolConfig + Datacenter.IpPoolQueryAllocations + Datacenter.IpPoolReleaseIp + Datacenter.Move + Datacenter.Reconfigure + Datacenter.Rename + Datastore.AllocateSpace + Datastore.Browse + Datastore.Config + Datastore.Delete + Datastore.DeleteFile + Datastore.FileManagement + Datastore.Move + Datastore.Rename + Datastore.UpdateVirtualMachineFiles + Datastore.UpdateVirtualMachineMetadata + EAM.Config + EAM.Modify + EAM.View + Extension.Register + Extension.Unregister + Extension.Update + ExternalStatsProvider.Register + ExternalStatsProvider.Unregister + ExternalStatsProvider.Update + Folder.Create + Folder.Delete + Folder.Move + Folder.Rename + Global.CancelTask + Global.CapacityPlanning + Global.DisableMethods + Global.EnableMethods + Global.GlobalTag + Global.Health + Global.Licenses + Global.LogEvent + Global.ManageCustomFields + Global.Proxy + Global.ScriptAction + Global.ServiceManagers + Global.SetCustomField + Global.Settings + Global.SystemTag + Global.VCServer + HealthUpdateProvider.Register + HealthUpdateProvider.Unregister + HealthUpdateProvider.Update + Host.Cim.CimInteraction + Host.Config.AdvancedConfig + Host.Config.AuthenticationStore + Host.Config.AutoStart + Host.Config.Connection + Host.Config.DateTime + Host.Config.Firmware + Host.Config.HyperThreading + Host.Config.Image + Host.Config.Maintenance + Host.Config.Memory + Host.Config.NetService + Host.Config.Network + Host.Config.Patch + Host.Config.PciPassthru + Host.Config.Power + Host.Config.Quarantine + Host.Config.Resources + Host.Config.Settings + Host.Config.Snmp + Host.Config.Storage + Host.Config.SystemManagement + Host.Hbr.HbrManagement + Host.Inventory.CreateCluster + Host.Inventory.DeleteCluster + Host.Inventory.EditCluster + Host.Inventory.MoveCluster + Host.Inventory.MoveHost + Host.Inventory.RemoveHostFromCluster + Host.Inventory.RenameCluster + Host.Local.CreateVM + Host.Local.DeleteVM + Host.Local.InstallAgent + Host.Local.ReconfigVM + InventoryService.Tagging.AttachTag + InventoryService.Tagging.CreateCategory + InventoryService.Tagging.CreateTag + InventoryService.Tagging.DeleteCategory + InventoryService.Tagging.DeleteTag + InventoryService.Tagging.EditCategory + InventoryService.Tagging.EditTag + InventoryService.Tagging.ModifyUsedByForCategory + InventoryService.Tagging.ModifyUsedByForTag + Network.Assign + Network.Config + Network.Delete + Network.Move + Performance.ModifyIntervals + Profile.Clear + Profile.Create + Profile.Delete + Profile.Edit + Profile.Export + Profile.View + Resource.ApplyRecommendation + Resource.AssignVAppToPool + Resource.AssignVMToPool + Resource.ColdMigrate + Resource.CreatePool + Resource.DeletePool + Resource.EditPool + Resource.HotMigrate + Resource.MovePool + Resource.QueryVMotion + Resource.RenamePool + ScheduledTask.Create + ScheduledTask.Delete + ScheduledTask.Edit + ScheduledTask.Run + Sessions.GlobalMessage + Sessions.ImpersonateUser + Sessions.TerminateSession + Sessions.ValidateSession + StoragePod.Config + StorageProfile.Update + StorageProfile.View + StorageViews.ConfigureService + StorageViews.View + System.Anonymous + System.Read + System.View + Task.Create + Task.Update + TransferService.Manage + TransferService.Monitor + VApp.ApplicationConfig + VApp.AssignResourcePool + VApp.AssignVApp + VApp.AssignVM + VApp.Clone + VApp.Create + VApp.Delete + VApp.Export + VApp.ExtractOvfEnvironment + VApp.Import + VApp.InstanceConfig + VApp.ManagedByConfig + VApp.Move + VApp.PowerOff + VApp.PowerOn + VApp.Rename + VApp.ResourceConfig + VApp.Suspend + VApp.Unregister + VRMPolicy.Query + VRMPolicy.Update + VirtualMachine.Config.AddExistingDisk + VirtualMachine.Config.AddNewDisk + VirtualMachine.Config.AddRemoveDevice + VirtualMachine.Config.AdvancedConfig + VirtualMachine.Config.Annotation + VirtualMachine.Config.CPUCount + VirtualMachine.Config.ChangeTracking + VirtualMachine.Config.DiskExtend + VirtualMachine.Config.DiskLease + VirtualMachine.Config.EditDevice + VirtualMachine.Config.HostUSBDevice + VirtualMachine.Config.ManagedBy + VirtualMachine.Config.Memory + VirtualMachine.Config.MksControl + VirtualMachine.Config.QueryFTCompatibility + VirtualMachine.Config.QueryUnownedFiles + VirtualMachine.Config.RawDevice + VirtualMachine.Config.ReloadFromPath + VirtualMachine.Config.RemoveDisk + VirtualMachine.Config.Rename + VirtualMachine.Config.ResetGuestInfo + VirtualMachine.Config.Resource + VirtualMachine.Config.Settings + VirtualMachine.Config.SwapPlacement + VirtualMachine.Config.ToggleForkParent + VirtualMachine.Config.Unlock + VirtualMachine.Config.UpgradeVirtualHardware + VirtualMachine.GuestOperations.Execute + VirtualMachine.GuestOperations.Modify + VirtualMachine.GuestOperations.ModifyAliases + VirtualMachine.GuestOperations.Query + VirtualMachine.GuestOperations.QueryAliases + VirtualMachine.Hbr.ConfigureReplication + VirtualMachine.Hbr.MonitorReplication + VirtualMachine.Hbr.ReplicaManagement + VirtualMachine.Interact.AnswerQuestion + VirtualMachine.Interact.Backup + VirtualMachine.Interact.ConsoleInteract + VirtualMachine.Interact.CreateScreenshot + VirtualMachine.Interact.CreateSecondary + VirtualMachine.Interact.DefragmentAllDisks + VirtualMachine.Interact.DeviceConnection + VirtualMachine.Interact.DisableSecondary + VirtualMachine.Interact.DnD + VirtualMachine.Interact.EnableSecondary + VirtualMachine.Interact.MakePrimary + VirtualMachine.Interact.Pause + VirtualMachine.Interact.PowerOff + VirtualMachine.Interact.PowerOn + VirtualMachine.Interact.PutUsbScanCodes + VirtualMachine.Interact.Record + VirtualMachine.Interact.Replay + VirtualMachine.Interact.Reset + VirtualMachine.Interact.SESparseMaintenance + VirtualMachine.Interact.SetCDMedia + VirtualMachine.Interact.SetFloppyMedia + VirtualMachine.Interact.Suspend + VirtualMachine.Interact.TerminateFaultTolerantVM + VirtualMachine.Interact.ToolsInstall + VirtualMachine.Interact.TurnOffFaultTolerance + VirtualMachine.Inventory.Create + VirtualMachine.Inventory.CreateFromExisting + VirtualMachine.Inventory.Delete + VirtualMachine.Inventory.Move + VirtualMachine.Inventory.Register + VirtualMachine.Inventory.Unregister + VirtualMachine.Namespace.Event + VirtualMachine.Namespace.EventNotify + VirtualMachine.Namespace.Management + VirtualMachine.Namespace.ModifyContent + VirtualMachine.Namespace.Query + VirtualMachine.Namespace.ReadContent + VirtualMachine.Provisioning.Clone + VirtualMachine.Provisioning.CloneTemplate + VirtualMachine.Provisioning.CreateTemplateFromVM + VirtualMachine.Provisioning.Customize + VirtualMachine.Provisioning.DeployTemplate + VirtualMachine.Provisioning.DiskRandomAccess + VirtualMachine.Provisioning.DiskRandomRead + VirtualMachine.Provisioning.FileRandomAccess + VirtualMachine.Provisioning.GetVmFiles + VirtualMachine.Provisioning.MarkAsTemplate + VirtualMachine.Provisioning.MarkAsVM + VirtualMachine.Provisioning.ModifyCustSpecs + VirtualMachine.Provisioning.PromoteDisks + VirtualMachine.Provisioning.PutVmFiles + VirtualMachine.Provisioning.ReadCustSpecs + VirtualMachine.State.CreateSnapshot + VirtualMachine.State.RemoveSnapshot + VirtualMachine.State.RenameSnapshot + VirtualMachine.State.RevertToSnapshot + vService.CreateDependency + vService.DestroyDependency + vService.ReconfigureDependency + vService.UpdateDependency + + + -5 + true + NoAccess + + + Used for restricting granted access + + + + -4 + true + Anonymous + + + Not logged-in user (cannot be granted) + + System.Anonymous + + + -3 + true + View + + + Visibility access (cannot be granted) + + System.Anonymous + System.View + + + -2 + true + ReadOnly + + + See details of objects, but not make changes + + System.Anonymous + System.Read + System.View + + + -1 + true + Admin + + + Full access rights + + Alarm.Acknowledge + Alarm.Create + Alarm.Delete + Alarm.DisableActions + Alarm.Edit + Alarm.SetStatus + Authorization.ModifyPermissions + Authorization.ModifyRoles + Authorization.ReassignRolePermissions + Certificate.Manage + Cryptographer.Access + Cryptographer.AddDisk + Cryptographer.Clone + Cryptographer.Decrypt + Cryptographer.Encrypt + Cryptographer.EncryptNew + Cryptographer.ManageEncryptionPolicy + Cryptographer.ManageKeyServers + Cryptographer.ManageKeys + Cryptographer.Migrate + Cryptographer.Recrypt + Cryptographer.RegisterHost + Cryptographer.RegisterVM + DVPortgroup.Create + DVPortgroup.Delete + DVPortgroup.Modify + DVPortgroup.PolicyOp + DVPortgroup.ScopeOp + DVSwitch.Create + DVSwitch.Delete + DVSwitch.HostOp + DVSwitch.Modify + DVSwitch.Move + DVSwitch.PolicyOp + DVSwitch.PortConfig + DVSwitch.PortSetting + DVSwitch.ResourceManagement + DVSwitch.Vspan + Datacenter.Create + Datacenter.Delete + Datacenter.IpPoolConfig + Datacenter.IpPoolQueryAllocations + Datacenter.IpPoolReleaseIp + Datacenter.Move + Datacenter.Reconfigure + Datacenter.Rename + Datastore.AllocateSpace + Datastore.Browse + Datastore.Config + Datastore.Delete + Datastore.DeleteFile + Datastore.FileManagement + Datastore.Move + Datastore.Rename + Datastore.UpdateVirtualMachineFiles + Datastore.UpdateVirtualMachineMetadata + EAM.Config + EAM.Modify + EAM.View + Extension.Register + Extension.Unregister + Extension.Update + ExternalStatsProvider.Register + ExternalStatsProvider.Unregister + ExternalStatsProvider.Update + Folder.Create + Folder.Delete + Folder.Move + Folder.Rename + Global.CancelTask + Global.CapacityPlanning + Global.Diagnostics + Global.DisableMethods + Global.EnableMethods + Global.GlobalTag + Global.Health + Global.Licenses + Global.LogEvent + Global.ManageCustomFields + Global.Proxy + Global.ScriptAction + Global.ServiceManagers + Global.SetCustomField + Global.Settings + Global.SystemTag + Global.VCServer + HealthUpdateProvider.Register + HealthUpdateProvider.Unregister + HealthUpdateProvider.Update + Host.Cim.CimInteraction + Host.Config.AdvancedConfig + Host.Config.AuthenticationStore + Host.Config.AutoStart + Host.Config.Connection + Host.Config.DateTime + Host.Config.Firmware + Host.Config.HyperThreading + Host.Config.Image + Host.Config.Maintenance + Host.Config.Memory + Host.Config.NetService + Host.Config.Network + Host.Config.Patch + Host.Config.PciPassthru + Host.Config.Power + Host.Config.Quarantine + Host.Config.Resources + Host.Config.Settings + Host.Config.Snmp + Host.Config.Storage + Host.Config.SystemManagement + Host.Hbr.HbrManagement + Host.Inventory.AddHostToCluster + Host.Inventory.AddStandaloneHost + Host.Inventory.CreateCluster + Host.Inventory.DeleteCluster + Host.Inventory.EditCluster + Host.Inventory.MoveCluster + Host.Inventory.MoveHost + Host.Inventory.RemoveHostFromCluster + Host.Inventory.RenameCluster + Host.Local.CreateVM + Host.Local.DeleteVM + Host.Local.InstallAgent + Host.Local.ManageUserGroups + Host.Local.ReconfigVM + Network.Assign + Network.Config + Network.Delete + Network.Move + Performance.ModifyIntervals + Profile.Clear + Profile.Create + Profile.Delete + Profile.Edit + Profile.Export + Profile.View + Resource.ApplyRecommendation + Resource.AssignVAppToPool + Resource.AssignVMToPool + Resource.ColdMigrate + Resource.CreatePool + Resource.DeletePool + Resource.EditPool + Resource.HotMigrate + Resource.MovePool + Resource.QueryVMotion + Resource.RenamePool + ScheduledTask.Create + ScheduledTask.Delete + ScheduledTask.Edit + ScheduledTask.Run + Sessions.GlobalMessage + Sessions.ImpersonateUser + Sessions.TerminateSession + Sessions.ValidateSession + StoragePod.Config + System.Anonymous + System.Read + System.View + Task.Create + Task.Update + VApp.ApplicationConfig + VApp.AssignResourcePool + VApp.AssignVApp + VApp.AssignVM + VApp.Clone + VApp.Create + VApp.Delete + VApp.Export + VApp.ExtractOvfEnvironment + VApp.Import + VApp.InstanceConfig + VApp.ManagedByConfig + VApp.Move + VApp.PowerOff + VApp.PowerOn + VApp.Rename + VApp.ResourceConfig + VApp.Suspend + VApp.Unregister + VRMPolicy.Query + VRMPolicy.Update + VirtualMachine.Config.AddExistingDisk + VirtualMachine.Config.AddNewDisk + VirtualMachine.Config.AddRemoveDevice + VirtualMachine.Config.AdvancedConfig + VirtualMachine.Config.Annotation + VirtualMachine.Config.CPUCount + VirtualMachine.Config.ChangeTracking + VirtualMachine.Config.DiskExtend + VirtualMachine.Config.DiskLease + VirtualMachine.Config.EditDevice + VirtualMachine.Config.HostUSBDevice + VirtualMachine.Config.ManagedBy + VirtualMachine.Config.Memory + VirtualMachine.Config.MksControl + VirtualMachine.Config.QueryFTCompatibility + VirtualMachine.Config.QueryUnownedFiles + VirtualMachine.Config.RawDevice + VirtualMachine.Config.ReloadFromPath + VirtualMachine.Config.RemoveDisk + VirtualMachine.Config.Rename + VirtualMachine.Config.ResetGuestInfo + VirtualMachine.Config.Resource + VirtualMachine.Config.Settings + VirtualMachine.Config.SwapPlacement + VirtualMachine.Config.ToggleForkParent + VirtualMachine.Config.Unlock + VirtualMachine.Config.UpgradeVirtualHardware + VirtualMachine.GuestOperations.Execute + VirtualMachine.GuestOperations.Modify + VirtualMachine.GuestOperations.ModifyAliases + VirtualMachine.GuestOperations.Query + VirtualMachine.GuestOperations.QueryAliases + VirtualMachine.Hbr.ConfigureReplication + VirtualMachine.Hbr.MonitorReplication + VirtualMachine.Hbr.ReplicaManagement + VirtualMachine.Interact.AnswerQuestion + VirtualMachine.Interact.Backup + VirtualMachine.Interact.ConsoleInteract + VirtualMachine.Interact.CreateScreenshot + VirtualMachine.Interact.CreateSecondary + VirtualMachine.Interact.DefragmentAllDisks + VirtualMachine.Interact.DeviceConnection + VirtualMachine.Interact.DisableSecondary + VirtualMachine.Interact.DnD + VirtualMachine.Interact.EnableSecondary + VirtualMachine.Interact.GuestControl + VirtualMachine.Interact.MakePrimary + VirtualMachine.Interact.Pause + VirtualMachine.Interact.PowerOff + VirtualMachine.Interact.PowerOn + VirtualMachine.Interact.PutUsbScanCodes + VirtualMachine.Interact.Record + VirtualMachine.Interact.Replay + VirtualMachine.Interact.Reset + VirtualMachine.Interact.SESparseMaintenance + VirtualMachine.Interact.SetCDMedia + VirtualMachine.Interact.SetFloppyMedia + VirtualMachine.Interact.Suspend + VirtualMachine.Interact.TerminateFaultTolerantVM + VirtualMachine.Interact.ToolsInstall + VirtualMachine.Interact.TurnOffFaultTolerance + VirtualMachine.Inventory.Create + VirtualMachine.Inventory.CreateFromExisting + VirtualMachine.Inventory.Delete + VirtualMachine.Inventory.Move + VirtualMachine.Inventory.Register + VirtualMachine.Inventory.Unregister + VirtualMachine.Namespace.Event + VirtualMachine.Namespace.EventNotify + VirtualMachine.Namespace.Management + VirtualMachine.Namespace.ModifyContent + VirtualMachine.Namespace.Query + VirtualMachine.Namespace.ReadContent + VirtualMachine.Provisioning.Clone + VirtualMachine.Provisioning.CloneTemplate + VirtualMachine.Provisioning.CreateTemplateFromVM + VirtualMachine.Provisioning.Customize + VirtualMachine.Provisioning.DeployTemplate + VirtualMachine.Provisioning.DiskRandomAccess + VirtualMachine.Provisioning.DiskRandomRead + VirtualMachine.Provisioning.FileRandomAccess + VirtualMachine.Provisioning.GetVmFiles + VirtualMachine.Provisioning.MarkAsTemplate + VirtualMachine.Provisioning.MarkAsVM + VirtualMachine.Provisioning.ModifyCustSpecs + VirtualMachine.Provisioning.PromoteDisks + VirtualMachine.Provisioning.PutVmFiles + VirtualMachine.Provisioning.ReadCustSpecs + VirtualMachine.State.CreateSnapshot + VirtualMachine.State.RemoveSnapshot + VirtualMachine.State.RenameSnapshot + VirtualMachine.State.RevertToSnapshot + + + + + description + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0008-ServiceManager-ServiceMgr.xml b/pkg/check/testdata/default/0008-ServiceManager-ServiceMgr.xml new file mode 100644 index 00000000..e77d451c --- /dev/null +++ b/pkg/check/testdata/default/0008-ServiceManager-ServiceMgr.xml @@ -0,0 +1,3 @@ + + ServiceMgr + \ No newline at end of file diff --git a/pkg/check/testdata/default/0009-PerformanceManager-PerfMgr.xml b/pkg/check/testdata/default/0009-PerformanceManager-PerfMgr.xml new file mode 100644 index 00000000..1c6cf790 --- /dev/null +++ b/pkg/check/testdata/default/0009-PerformanceManager-PerfMgr.xml @@ -0,0 +1,12336 @@ + + PerfMgr + + description + + + + historicalInterval + + + + perfCounter + + + 1 + + + CPU usage as a percentage during the interval + usage + + + + CPU + cpu + + + + Percentage + percent + + none + rate + 4 + 4 + + + 2 + + + CPU usage as a percentage during the interval + usage + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 1 + 3 + + + 3 + + + CPU usage as a percentage during the interval + usage + + + + CPU + cpu + + + + Percentage + percent + + minimum + rate + 4 + 4 + + + 4 + + + CPU usage as a percentage during the interval + usage + + + + CPU + cpu + + + + Percentage + percent + + maximum + rate + 4 + 4 + + + 5 + + + CPU usage in megahertz during the interval + usagemhz + + + + CPU + cpu + + + + Megahertz + megaHertz + + none + rate + 4 + 4 + + + 6 + + + CPU usage in megahertz during the interval + usagemhz + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + rate + 1 + 3 + + + 7 + + + CPU usage in megahertz during the interval + usagemhz + + + + CPU + cpu + + + + Megahertz + megaHertz + + minimum + rate + 4 + 4 + + + 8 + + + CPU usage in megahertz during the interval + usagemhz + + + + CPU + cpu + + + + Megahertz + megaHertz + + maximum + rate + 4 + 4 + + + 9 + + + Total CPU capacity reserved by virtual machines + reservedCapacity + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 2 + 3 + + + 10 + + + Amount of time spent on system processes on each virtual CPU in the virtual machine + system + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 3 + 3 + + + 11 + + + Total CPU time spent in wait state + wait + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 3 + 3 + + + 12 + + + Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval + ready + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 1 + 3 + + + 13 + + + Total time that the CPU spent in an idle state + idle + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 2 + 3 + + + 14 + + + Total CPU usage + used + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 3 + 3 + + + 15 + + + Capacity in MHz of the physical CPU cores + capacity.provisioned + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 4 + 4 + + + 16 + + + CPU resources devoted by the ESXi scheduler to the virtual machines and resource pools + capacity.entitlement + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 4 + 4 + + + 17 + + + CPU usage as a percent during the interval. + capacity.usage + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + rate + 4 + 4 + + + 18 + + + The amount of CPU resources a VM would use if there were no CPU contention or CPU limit + capacity.demand + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 4 + 4 + + + 19 + + + Percent of time the VM is unable to run because it is contending for access to the physical CPU(s) + capacity.contention + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 4 + 4 + + + 20 + + + The number of virtual processors provisioned to the entity. + corecount.provisioned + + + + CPU + cpu + + + + Number + number + + average + absolute + 4 + 4 + + + 21 + + + The number of virtual processors running on the host. + corecount.usage + + + + CPU + cpu + + + + Number + number + + average + absolute + 4 + 4 + + + 22 + + + Time the VM vCPU is ready to run, but is unable to run due to co-scheduling constraints + corecount.contention + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 4 + 4 + + + 23 + + + Percentage of host physical memory that has been consumed + usage + + + + Memory + mem + + + + Percentage + percent + + none + absolute + 4 + 4 + + + 24 + + + Percentage of host physical memory that has been consumed + usage + + + + Memory + mem + + + + Percentage + percent + + average + absolute + 1 + 3 + + + 25 + + + Percentage of host physical memory that has been consumed + usage + + + + Memory + mem + + + + Percentage + percent + + minimum + absolute + 4 + 4 + + + 26 + + + Percentage of host physical memory that has been consumed + usage + + + + Memory + mem + + + + Percentage + percent + + maximum + absolute + 4 + 4 + + + 27 + + + Memory reservation consumed by powered-on virtual machines + reservedCapacity + + + + Memory + mem + + + + Megabyte + megaBytes + + average + absolute + 2 + 3 + + + 28 + + + Amount of host physical memory or physical memory that is mapped for a virtual machine or a host + granted + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 29 + + + Amount of host physical memory or physical memory that is mapped for a virtual machine or a host + granted + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 30 + + + Amount of host physical memory or physical memory that is mapped for a virtual machine or a host + granted + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 31 + + + Amount of host physical memory or physical memory that is mapped for a virtual machine or a host + granted + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 32 + + + Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi + active + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 33 + + + Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi + active + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 34 + + + Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi + active + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 35 + + + Amount of guest physical memory that is being actively read or written by guest. Activeness is estimated by ESXi + active + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 36 + + + Amount of guest physical memory that is shared within a single virtual machine or across virtual machines + shared + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 37 + + + Amount of guest physical memory that is shared within a single virtual machine or across virtual machines + shared + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 38 + + + Amount of guest physical memory that is shared within a single virtual machine or across virtual machines + shared + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 39 + + + Amount of guest physical memory that is shared within a single virtual machine or across virtual machines + shared + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 40 + + + Guest physical memory pages whose content is 0x00 + zero + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 41 + + + Guest physical memory pages whose content is 0x00 + zero + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 42 + + + Guest physical memory pages whose content is 0x00 + zero + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 43 + + + Guest physical memory pages whose content is 0x00 + zero + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 44 + + + Amount by which reservation can be raised + unreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 45 + + + Amount by which reservation can be raised + unreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 46 + + + Amount by which reservation can be raised + unreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 47 + + + Amount by which reservation can be raised + unreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 48 + + + Swap storage space consumed + swapused + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 49 + + + Swap storage space consumed + swapused + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 50 + + + Swap storage space consumed + swapused + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 51 + + + Swap storage space consumed + swapused + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 52 + + + swapunreserved + swapunreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 53 + + + swapunreserved + swapunreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 54 + + + swapunreserved + swapunreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 55 + + + swapunreserved + swapunreserved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 56 + + + Amount of host physical memory that backs shared guest physical memory (Shared) + sharedcommon + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 57 + + + Amount of host physical memory that backs shared guest physical memory (Shared) + sharedcommon + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 58 + + + Amount of host physical memory that backs shared guest physical memory (Shared) + sharedcommon + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 59 + + + Amount of host physical memory that backs shared guest physical memory (Shared) + sharedcommon + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 60 + + + Virtual address space of ESXi that is dedicated to its heap + heap + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 61 + + + Virtual address space of ESXi that is dedicated to its heap + heap + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 62 + + + Virtual address space of ESXi that is dedicated to its heap + heap + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 63 + + + Virtual address space of ESXi that is dedicated to its heap + heap + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 64 + + + Free address space in the heap of ESXi. This is less than or equal to Heap + heapfree + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 65 + + + Free address space in the heap of ESXi. This is less than or equal to Heap + heapfree + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 66 + + + Free address space in the heap of ESXi. This is less than or equal to Heap + heapfree + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 67 + + + Free address space in the heap of ESXi. This is less than or equal to Heap + heapfree + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 68 + + + Current memory availability state of ESXi. Possible values are high, clear, soft, hard, low. The state value determines the techniques used for memory reclamation from virtual machines + state + + + + Memory + mem + + + + Number + number + + latest + absolute + 2 + 3 + + + 69 + + + Amount of guest physical memory that is swapped out to the swap space + swapped + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 70 + + + Amount of guest physical memory that is swapped out to the swap space + swapped + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 71 + + + Amount of guest physical memory that is swapped out to the swap space + swapped + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 72 + + + Amount of guest physical memory that is swapped out to the swap space + swapped + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 73 + + + Amount of memory that ESXi needs to reclaim by swapping + swaptarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 74 + + + Amount of memory that ESXi needs to reclaim by swapping + swaptarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 75 + + + Amount of memory that ESXi needs to reclaim by swapping + swaptarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 76 + + + Amount of memory that ESXi needs to reclaim by swapping + swaptarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 77 + + + swapIn + swapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 78 + + + swapIn + swapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 79 + + + swapIn + swapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 80 + + + swapIn + swapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 81 + + + swapOut + swapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 82 + + + swapOut + swapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 83 + + + swapOut + swapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 84 + + + swapOut + swapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 85 + + + Rate at which guest physical memory is swapped in from the swap space + swapinRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 1 + 3 + + + 86 + + + Rate at which guest physical memory is swapped out to the swap space + swapoutRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 1 + 3 + + + 87 + + + Amount of memory that is swapped out for the Service Console + swapOut + + + + Management agent + managementAgent + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 88 + + + Amount of memory that is swapped in for the Service Console + swapIn + + + + Management agent + managementAgent + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 89 + + + Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest + vmmemctl + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 90 + + + Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest + vmmemctl + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 1 + 3 + + + 91 + + + Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest + vmmemctl + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 92 + + + Amount of guest physical memory reclaimed from the virtual machine by the balloon driver in the guest + vmmemctl + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 93 + + + Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi + vmmemctltarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 94 + + + Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi + vmmemctltarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 95 + + + Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi + vmmemctltarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 96 + + + Desired amount of guest physical memory the balloon driver needs to reclaim, as determined by ESXi + vmmemctltarget + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 97 + + + Amount of host physical memory consumed for backing up guest physical memory pages + consumed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 98 + + + Amount of host physical memory consumed for backing up guest physical memory pages + consumed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 1 + 3 + + + 99 + + + Amount of host physical memory consumed for backing up guest physical memory pages + consumed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 100 + + + Amount of host physical memory consumed for backing up guest physical memory pages + consumed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 101 + + + Host physical memory consumed by ESXi data structures for running the virtual machines + overhead + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 102 + + + Host physical memory consumed by ESXi data structures for running the virtual machines + overhead + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 1 + 1 + + + 103 + + + Host physical memory consumed by ESXi data structures for running the virtual machines + overhead + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 104 + + + Host physical memory consumed by ESXi data structures for running the virtual machines + overhead + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 105 + + + Guest physical memory pages that have undergone memory compression + compressed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 106 + + + Rate of guest physical memory page compression by ESXi + compressionRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 107 + + + Rate of guest physical memory decompression + decompressionRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 108 + + + Total amount of memory available to the host + capacity.provisioned + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 109 + + + Amount of host physical memory the VM is entitled to, as determined by the ESXi scheduler + capacity.entitlement + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 110 + + + Amount of physical memory available for use by virtual machines on this host + capacity.usable + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 111 + + + Amount of physical memory actively used + capacity.usage + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 112 + + + Percentage of time VMs are waiting to access swapped, compressed or ballooned memory + capacity.contention + + + + Memory + mem + + + + Percentage + percent + + average + rate + 4 + 4 + + + 113 + + + vm + capacity.usage.vm + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 114 + + + vmOvrhd + capacity.usage.vmOvrhd + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 115 + + + vmkOvrhd + capacity.usage.vmkOvrhd + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 116 + + + userworld + capacity.usage.userworld + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 117 + + + vm + reservedCapacity.vm + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 118 + + + vmOvhd + reservedCapacity.vmOvhd + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 119 + + + vmkOvrhd + reservedCapacity.vmkOvrhd + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 120 + + + userworld + reservedCapacity.userworld + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 121 + + + Percent of memory that has been reserved either through VMkernel use, by userworlds or due to VM memory reservations + reservedCapacityPct + + + + Memory + mem + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 122 + + + Amount of physical memory consumed by VMs on this host + consumed.vms + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 123 + + + Amount of physical memory consumed by userworlds on this host + consumed.userworlds + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 4 + + + 124 + + + Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval. + usage + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + none + rate + 4 + 4 + + + 125 + + + Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval. + usage + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 1 + 3 + + + 126 + + + Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval. + usage + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + minimum + rate + 4 + 4 + + + 127 + + + Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host during the collection interval. + usage + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + maximum + rate + 4 + 4 + + + 128 + + + Number of disk reads during the collection interval + numberRead + + + + Disk + disk + + + + Number + number + + summation + delta + 3 + 3 + + + 129 + + + Number of disk writes during the collection interval + numberWrite + + + + Disk + disk + + + + Number + number + + summation + delta + 3 + 3 + + + 130 + + + Average number of kilobytes read from the disk each second during the collection interval + read + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 131 + + + Average number of kilobytes written to disk each second during the collection interval + write + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 132 + + + Average amount of time taken during the collection interval to process a SCSI command issued by the guest OS to the virtual machine + totalLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 3 + 3 + + + 133 + + + Highest latency value across all disks used by the host + maxTotalLatency + + + + Disk + disk + + + + Millisecond + millisecond + + latest + absolute + 1 + 3 + + + 134 + + + Number of SCSI commands aborted during the collection interval + commandsAborted + + + + Disk + disk + + + + Number + number + + summation + delta + 2 + 3 + + + 135 + + + Number of SCSI-bus reset commands issued during the collection interval + busResets + + + + Disk + disk + + + + Number + number + + summation + delta + 2 + 3 + + + 136 + + + Average number of disk reads per second during the collection interval + numberReadAveraged + + + + Disk + disk + + + + Number + number + + average + rate + 1 + 3 + + + 137 + + + Average number of disk writes per second during the collection interval + numberWriteAveraged + + + + Disk + disk + + + + Number + number + + average + rate + 1 + 3 + + + 138 + + + Aggregated disk I/O rate, including the rates for all virtual machines running on the host during the collection interval + throughput.usage + + + + Disk + disk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 139 + + + Average amount of time for an I/O operation to complete successfully + throughput.contention + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 140 + + + Number of SCSI reservation conflicts for the LUN during the collection interval + scsiReservationConflicts + + + + Disk + disk + + + + Number + number + + summation + delta + 2 + 2 + + + 141 + + + Number of SCSI reservation conflicts for the LUN as a percent of total commands during the collection interval + scsiReservationCnflctsPct + + + + Disk + disk + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 142 + + + Network utilization (combined transmit-rates and receive-rates) during the interval + usage + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + none + rate + 4 + 4 + + + 143 + + + Network utilization (combined transmit-rates and receive-rates) during the interval + usage + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 1 + 3 + + + 144 + + + Network utilization (combined transmit-rates and receive-rates) during the interval + usage + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + minimum + rate + 4 + 4 + + + 145 + + + Network utilization (combined transmit-rates and receive-rates) during the interval + usage + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + maximum + rate + 4 + 4 + + + 146 + + + Number of packets received during the interval + packetsRx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 147 + + + Number of packets transmitted during the interval + packetsTx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 148 + + + Average rate at which data was received during the interval + received + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 149 + + + Average rate at which data was transmitted during the interval + transmitted + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 150 + + + The maximum network bandwidth for the host + throughput.provisioned + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + absolute + 4 + 4 + + + 151 + + + The current available network bandwidth for the host + throughput.usable + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + absolute + 4 + 4 + + + 152 + + + The current network bandwidth usage for the host + throughput.usage + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 153 + + + The aggregate network dropped packets for the host + throughput.contention + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 154 + + + Average rate of packets received and transmitted per second + throughput.packetsPerSec + + + + Network + net + + + + Number + number + + average + rate + 4 + 4 + + + 155 + + + Total time elapsed, in seconds, since last system startup + uptime + + + + System + sys + + + + Second + second + + latest + absolute + 1 + 3 + + + 156 + + + Number of heartbeats issued per virtual machine during the interval + heartbeat + + + + System + sys + + + + Number + number + + summation + delta + 1 + 3 + + + 157 + + + Current power usage + power + + + + Power + power + + + + Watt + watt + + average + rate + 2 + 3 + + + 158 + + + Maximum allowed power usage + powerCap + + + + Power + power + + + + Watt + watt + + average + absolute + 3 + 3 + + + 159 + + + Total energy used since last stats reset + energy + + + + Power + power + + + + Joule + joule + + summation + delta + 3 + 3 + + + 160 + + + Current power usage as a percentage of maximum allowed power. + capacity.usagePct + + + + Power + power + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 161 + + + Average number of commands issued per second by the storage adapter during the collection interval + commandsAveraged + + + + Storage adapter + storageAdapter + + + + Number + number + + average + rate + 2 + 2 + + + 162 + + + Average number of read commands issued per second by the storage adapter during the collection interval + numberReadAveraged + + + + Storage adapter + storageAdapter + + + + Number + number + + average + rate + 2 + 2 + + + 163 + + + Average number of write commands issued per second by the storage adapter during the collection interval + numberWriteAveraged + + + + Storage adapter + storageAdapter + + + + Number + number + + average + rate + 2 + 2 + + + 164 + + + Rate of reading data by the storage adapter + read + + + + Storage adapter + storageAdapter + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 165 + + + Rate of writing data by the storage adapter + write + + + + Storage adapter + storageAdapter + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 166 + + + The average time a read by the storage adapter takes + totalReadLatency + + + + Storage adapter + storageAdapter + + + + Millisecond + millisecond + + average + absolute + 2 + 2 + + + 167 + + + The average time a write by the storage adapter takes + totalWriteLatency + + + + Storage adapter + storageAdapter + + + + Millisecond + millisecond + + average + absolute + 2 + 2 + + + 168 + + + Highest latency value across all storage adapters used by the host + maxTotalLatency + + + + Storage adapter + storageAdapter + + + + Millisecond + millisecond + + latest + absolute + 3 + 3 + + + 169 + + + Average amount of time for an I/O operation to complete successfully + throughput.cont + + + + Storage adapter + storageAdapter + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 170 + + + The percent of I/Os that have been issued but have not yet completed + OIOsPct + + + + Storage adapter + storageAdapter + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 171 + + + Average number of read commands issued per second to the virtual disk during the collection interval + numberReadAveraged + + + + Virtual disk + virtualDisk + + + + Number + number + + average + rate + 1 + 3 + + + 172 + + + Average number of write commands issued per second to the virtual disk during the collection interval + numberWriteAveraged + + + + Virtual disk + virtualDisk + + + + Number + number + + average + rate + 1 + 3 + + + 173 + + + Rate of reading data from the virtual disk + read + + + + Virtual disk + virtualDisk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 174 + + + Rate of writing data to the virtual disk + write + + + + Virtual disk + virtualDisk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 175 + + + The average time a read from the virtual disk takes + totalReadLatency + + + + Virtual disk + virtualDisk + + + + Millisecond + millisecond + + average + absolute + 1 + 3 + + + 176 + + + The average time a write to the virtual disk takes + totalWriteLatency + + + + Virtual disk + virtualDisk + + + + Millisecond + millisecond + + average + absolute + 1 + 3 + + + 177 + + + Average amount of time for an I/O operation to complete successfully + throughput.cont + + + + Virtual disk + virtualDisk + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 178 + + + Average number of read commands issued per second to the datastore during the collection interval + numberReadAveraged + + + + Datastore + datastore + + + + Number + number + + average + rate + 1 + 3 + + + 179 + + + Average number of write commands issued per second to the datastore during the collection interval + numberWriteAveraged + + + + Datastore + datastore + + + + Number + number + + average + rate + 1 + 3 + + + 180 + + + Rate of reading data from the datastore + read + + + + Datastore + datastore + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 181 + + + Rate of writing data to the datastore + write + + + + Datastore + datastore + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 2 + + + 182 + + + The average time a read from the datastore takes + totalReadLatency + + + + Datastore + datastore + + + + Millisecond + millisecond + + average + absolute + 1 + 3 + + + 183 + + + The average time a write to the datastore takes + totalWriteLatency + + + + Datastore + datastore + + + + Millisecond + millisecond + + average + absolute + 1 + 3 + + + 184 + + + Highest latency value across all datastores used by the host + maxTotalLatency + + + + Datastore + datastore + + + + Millisecond + millisecond + + latest + absolute + 3 + 3 + + + 185 + + + Storage I/O Control aggregated IOPS + datastoreIops + + + + Datastore + datastore + + + + Number + number + + average + absolute + 1 + 3 + + + 186 + + + Storage I/O Control size-normalized I/O latency + sizeNormalizedDatastoreLatency + + + + Datastore + datastore + + + + Microsecond + microsecond + + average + absolute + 1 + 3 + + + 187 + + + usage + throughput.usage + + + + Datastore + datastore + + + + Kilobytes per second + kiloBytesPerSecond + + average + absolute + 4 + 4 + + + 188 + + + contention + throughput.contention + + + + Datastore + datastore + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 189 + + + busResets + busResets + + + + Datastore + datastore + + + + Number + number + + summation + delta + 2 + 2 + + + 190 + + + commandsAborted + commandsAborted + + + + Datastore + datastore + + + + Number + number + + summation + delta + 2 + 2 + + + 191 + + + Percentage of time Storage I/O Control actively controlled datastore latency + siocActiveTimePercentage + + + + Datastore + datastore + + + + Percentage + percent + + average + absolute + 1 + 3 + + + 192 + + + Average amount of time for an I/O operation to complete successfully + throughput.cont + + + + Storage path + storagePath + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 193 + + + Highest latency value across all storage paths used by the host + maxTotalLatency + + + + Storage path + storagePath + + + + Millisecond + millisecond + + latest + absolute + 3 + 3 + + + 194 + + + Virtual disk I/O rate + throughput.usage + + + + Virtual disk + virtualDisk + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 195 + + + Number of terminations to a virtual disk + commandsAborted + + + + Virtual disk + virtualDisk + + + + Number + number + + summation + delta + 2 + 4 + + + 196 + + + Number of resets to a virtual disk + busResets + + + + Virtual disk + virtualDisk + + + + Number + number + + summation + delta + 2 + 4 + + + 197 + + + The number of I/Os that have been issued but have not yet completed + outstandingIOs + + + + Storage adapter + storageAdapter + + + + Number + number + + average + absolute + 2 + 2 + + + 198 + + + The current number of I/Os that are waiting to be issued + queued + + + + Storage adapter + storageAdapter + + + + Number + number + + average + absolute + 2 + 2 + + + 199 + + + The maximum number of I/Os that can be outstanding at a given time + queueDepth + + + + Storage adapter + storageAdapter + + + + Number + number + + average + absolute + 2 + 2 + + + 200 + + + Average amount of time spent in the VMkernel queue, per SCSI command, during the collection interval + queueLatency + + + + Storage adapter + storageAdapter + + + + Millisecond + millisecond + + average + absolute + 2 + 2 + + + 201 + + + The storage adapter's I/O rate + throughput.usag + + + + Storage adapter + storageAdapter + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 202 + + + Number of SCSI-bus reset commands issued during the collection interval + busResets + + + + Storage path + storagePath + + + + Number + number + + summation + delta + 2 + 3 + + + 203 + + + Number of SCSI commands terminated during the collection interval + commandsAborted + + + + Storage path + storagePath + + + + Number + number + + summation + delta + 2 + 3 + + + 204 + + + Storage path I/O rate + throughput.usage + + + + Storage path + storagePath + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 205 + + + Average pNic I/O rate for VMs + throughput.usage.vm + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 206 + + + Average pNic I/O rate for NFS + throughput.usage.nfs + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 207 + + + Average pNic I/O rate for vMotion + throughput.usage.vmotion + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 208 + + + Average pNic I/O rate for FT + throughput.usage.ft + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 209 + + + Average pNic I/O rate for iSCSI + throughput.usage.iscsi + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 210 + + + Average pNic I/O rate for HBR + throughput.usage.hbr + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 211 + + + Current maximum allowed power usage. + capacity.usable + + + + Power + power + + + + Watt + watt + + average + absolute + 4 + 4 + + + 212 + + + Current power usage + capacity.usage + + + + Power + power + + + + Watt + watt + + average + absolute + 4 + 4 + + + 213 + + + Amount of CPU resources allocated to the virtual machine or resource pool, based on the total cluster capacity and the resource configuration of the resource hierarchy + cpuentitlement + + + + CPU + cpu + + + + Megahertz + megaHertz + + latest + absolute + 2 + 3 + + + 214 + + + Memory allocation as calculated by the VMkernel scheduler based on current estimated demand and reservation, limit, and shares policies set for all virtual machines and resource pools in the host or cluster + mementitlement + + + + Memory + mem + + + + Megabyte + megaBytes + + latest + absolute + 2 + 3 + + + 215 + + + Fairness of distributed CPU resource allocation + cpufairness + + + + Cluster services + clusterServices + + + + Number + number + + latest + absolute + 1 + 3 + + + 216 + + + Aggregate available memory resources of all the hosts within a cluster + memfairness + + + + Cluster services + clusterServices + + + + Number + number + + latest + absolute + 1 + 3 + + + 217 + + + The rate of transmitted packets for this VDS + throughput.pktsTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 218 + + + The rate of transmitted Multicast packets for this VDS + throughput.pktsTxMulticast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 219 + + + The rate of transmitted Broadcast packets for this VDS + throughput.pktsTxBroadcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 220 + + + The rate of received packets for this vDS + throughput.pktsRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 221 + + + The rate of received Multicast packets for this VDS + throughput.pktsRxMulticast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 222 + + + The rate of received Broadcast packets for this VDS + throughput.pktsRxBroadcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 223 + + + Count of dropped transmitted packets for this VDS + throughput.droppedTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 224 + + + Count of dropped received packets for this VDS + throughput.droppedRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 225 + + + The rate of transmitted packets for this DVPort + throughput.vds.pktsTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 226 + + + The rate of transmitted multicast packets for this DVPort + throughput.vds.pktsTxMcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 227 + + + The rate of transmitted broadcast packets for this DVPort + throughput.vds.pktsTxBcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 228 + + + The rate of received packets for this DVPort + throughput.vds.pktsRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 229 + + + The rate of received multicast packets for this DVPort + throughput.vds.pktsRxMcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 230 + + + The rate of received broadcast packets for this DVPort + throughput.vds.pktsRxBcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 231 + + + Count of dropped transmitted packets for this DVPort + throughput.vds.droppedTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 232 + + + Count of dropped received packets for this DVPort + throughput.vds.droppedRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 233 + + + The rate of transmitted packets for this LAG + throughput.vds.lagTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 234 + + + The rate of transmitted Multicast packets for this LAG + throughput.vds.lagTxMcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 235 + + + The rate of transmitted Broadcast packets for this LAG + throughput.vds.lagTxBcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 236 + + + The rate of received packets for this LAG + throughput.vds.lagRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 237 + + + The rate of received multicast packets for this LAG + throughput.vds.lagRxMcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 238 + + + The rate of received Broadcast packets for this LAG + throughput.vds.lagRxBcast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 239 + + + Count of dropped transmitted packets for this LAG + throughput.vds.lagDropTx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 240 + + + Count of dropped received packets for this LAG + throughput.vds.lagDropRx + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 241 + + + The rate of transmitted packets for this network + throughput.vds.txTotal + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 242 + + + The rate of transmitted non-unicast packets for this network + throughput.vds.txNoUnicast + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 243 + + + The rate of transmitted cross-router packets for this network + throughput.vds.txCrsRouter + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 244 + + + Count of dropped transmitted packets for this network + throughput.vds.txDrop + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 245 + + + The rate of received packets for this network + throughput.vds.rxTotal + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 246 + + + Count of dropped received packets with destination IP error for this network + throughput.vds.rxDestErr + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 247 + + + Count of dropped received packets for this network + throughput.vds.rxDrop + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 248 + + + Count of transmitted packets that cannot find matched mapping entry for this network + throughput.vds.macFlood + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 249 + + + Count of transmitted packets that failed to acquire new mapping entry during translation phase for this network + throughput.vds.macLKUPFull + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 250 + + + Count of transmitted packets that failed to acquire new mapping entry during learning phase for this network + throughput.vds.macUPDTFull + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 251 + + + Count of transmitted packets that found matched ARP entry for this network + throughput.vds.arpFound + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 252 + + + Count of transmitted packets whose matched arp entry is marked as unknown for this network + throughput.vds.arpUnknown + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 253 + + + Count of transmitted packets that failed to acquire new ARP entry during translation phase for this network + throughput.vds.arpLKUPFull + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 254 + + + Count of transmitted packets whose ARP requests have already been sent into queue for this network + throughput.vds.arpWait + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 255 + + + Count of arp queries that have been expired for this network + throughput.vds.arpTimeout + + + + Network + net + + + + Number + number + + average + absolute + 3 + 3 + + + 256 + + + Number of virtual machine power on operations + numPoweron + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 257 + + + Number of virtual machine power off operations + numPoweroff + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 258 + + + Number of virtual machine suspend operations + numSuspend + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 259 + + + Number of virtual machine reset operations + numReset + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 260 + + + Number of virtual machine guest reboot operations + numRebootGuest + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 261 + + + Number of virtual machine standby guest operations + numStandbyGuest + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 262 + + + Number of virtual machine guest shutdown operations + numShutdownGuest + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 263 + + + Number of virtual machine create operations + numCreate + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 264 + + + Number of virtual machine delete operations + numDestroy + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 265 + + + Number of virtual machine register operations + numRegister + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 266 + + + Number of virtual machine unregister operations + numUnregister + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 267 + + + Number of virtual machine reconfigure operations + numReconfigure + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 268 + + + Number of virtual machine clone operations + numClone + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 269 + + + Number of virtual machine template deploy operations + numDeploy + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 270 + + + Number of host change operations for powered-off and suspended VMs + numChangeHost + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 271 + + + Number of datastore change operations for powered-off and suspended virtual machines + numChangeDS + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 272 + + + Number of host and datastore change operations for powered-off and suspended virtual machines + numChangeHostDS + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 273 + + + Number of migrations with vMotion (host change operations for powered-on VMs) + numVMotion + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 274 + + + Number of migrations with Storage vMotion (datastore change operations for powered-on VMs) + numSVMotion + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 275 + + + Number of host and datastore change operations for powered-on and suspended virtual machines + numXVMotion + + + + Virtual machine operations + vmop + + + + Number + number + + latest + absolute + 1 + 3 + + + 276 + + + Total available CPU resources of all hosts within a cluster + effectivecpu + + + + Cluster services + clusterServices + + + + Megahertz + megaHertz + + average + rate + 1 + 3 + + + 277 + + + Total amount of machine memory of all hosts in the cluster that is available for use for virtual machine memory and overhead memory + effectivemem + + + + Cluster services + clusterServices + + + + Megabyte + megaBytes + + average + absolute + 1 + 3 + + + 278 + + + Total amount of CPU resources of all hosts in the cluster + totalmhz + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + rate + 1 + 3 + + + 279 + + + Total amount of host physical memory of all hosts in the cluster that is available for virtual machine memory (physical memory for use by the guest OS) and virtual machine overhead memory + totalmb + + + + Memory + mem + + + + Megabyte + megaBytes + + average + absolute + 1 + 3 + + + 280 + + + vSphere HA number of failures that can be tolerated + failover + + + + Cluster services + clusterServices + + + + Number + number + + latest + absolute + 1 + 3 + + + 281 + + + Amount of space actually used by the virtual machine or the datastore + used + + + + Disk + disk + + + + Kilobyte + kiloBytes + + latest + absolute + 1 + 1 + + + 282 + + + Amount of storage set aside for use by a datastore or a virtual machine + provisioned + + + + Disk + disk + + + + Kilobyte + kiloBytes + + latest + absolute + 1 + 1 + + + 283 + + + Configured size of the datastore + capacity + + + + Disk + disk + + + + Kilobyte + kiloBytes + + latest + absolute + 1 + 3 + + + 284 + + + Amount of space associated exclusively with a virtual machine + unshared + + + + Disk + disk + + + + Kilobyte + kiloBytes + + latest + absolute + 1 + 1 + + + 285 + + + Storage overhead of a virtual machine or a datastore due to delta disk backings + deltaused + + + + Disk + disk + + + + Kilobyte + kiloBytes + + latest + absolute + 2 + 3 + + + 286 + + + provisioned + capacity.provisioned + + + + Disk + disk + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 287 + + + usage + capacity.usage + + + + Disk + disk + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 288 + + + contention + capacity.contention + + + + Disk + disk + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 289 + + + The latency of an activation operation in vCenter Server + activationlatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + maximum + absolute + 4 + 4 + + + 290 + + + The latency of an activation operation in vCenter Server + activationlatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + minimum + absolute + 4 + 4 + + + 291 + + + The latency of an activation operation in vCenter Server + activationlatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + summation + absolute + 1 + 1 + + + 292 + + + Activation operations in vCenter Server + activationstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 293 + + + Activation operations in vCenter Server + activationstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 294 + + + Activation operations in vCenter Server + activationstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 295 + + + buffersz + buffersz + + + + vCenter resource usage information + vcResources + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 296 + + + cachesz + cachesz + + + + vCenter resource usage information + vcResources + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 297 + + + Number of context switches per second on the system where vCenter Server is running + ctxswitchesrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 298 + + + diskreadsectorrate + diskreadsectorrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 4 + 4 + + + 299 + + + Number of disk reads per second on the system where vCenter Server is running + diskreadsrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 300 + + + diskwritesectorrate + diskwritesectorrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 4 + 4 + + + 301 + + + Number of disk writes per second on the system where vCenter Server is running + diskwritesrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 302 + + + The latency of a host sync operation in vCenter Server + hostsynclatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + maximum + absolute + 4 + 4 + + + 303 + + + The latency of a host sync operation in vCenter Server + hostsynclatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + minimum + absolute + 4 + 4 + + + 304 + + + The latency of a host sync operation in vCenter Server + hostsynclatencystats + + + + vCenter debugging information + vcDebugInfo + + + + Millisecond + millisecond + + summation + absolute + 1 + 1 + + + 305 + + + The number of host sync operations in vCenter Server + hostsyncstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 306 + + + The number of host sync operations in vCenter Server + hostsyncstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 307 + + + The number of host sync operations in vCenter Server + hostsyncstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 308 + + + vCenter Server inventory statistics + inventorystats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 309 + + + vCenter Server inventory statistics + inventorystats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 310 + + + vCenter Server inventory statistics + inventorystats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 311 + + + vCenter Server locking statistics + lockstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 312 + + + vCenter Server locking statistics + lockstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 313 + + + vCenter Server locking statistics + lockstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 314 + + + vCenter Server LRO statistics + lrostats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 315 + + + vCenter Server LRO statistics + lrostats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 316 + + + vCenter Server LRO statistics + lrostats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 317 + + + Miscellaneous statistics + miscstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 318 + + + Miscellaneous statistics + miscstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 319 + + + Miscellaneous statistics + miscstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 320 + + + Managed object reference counts in vCenter Server + morefregstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 321 + + + Managed object reference counts in vCenter Server + morefregstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 322 + + + Managed object reference counts in vCenter Server + morefregstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 323 + + + Rate of the number of total packets received per second on the system where vCenter Server is running + packetrecvrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 324 + + + Number of total packets sent per second on the system where vCenter Server is running + packetsentrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 325 + + + Total system CPU used on the system where vCenter Server in running + systemcpuusage + + + + vCenter resource usage information + vcResources + + + + Percentage + percent + + average + rate + 1 + 1 + + + 326 + + + Number of page faults per second on the system where vCenter Server is running + pagefaultrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 327 + + + Physical memory used by vCenter + physicalmemusage + + + + vCenter resource usage information + vcResources + + + + Kilobyte + kiloBytes + + average + absolute + 1 + 1 + + + 328 + + + CPU used by vCenter Server in privileged mode + priviledgedcpuusage + + + + vCenter resource usage information + vcResources + + + + Percentage + percent + + average + rate + 1 + 1 + + + 329 + + + Object counts in vCenter Server + scoreboard + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 330 + + + Object counts in vCenter Server + scoreboard + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 331 + + + Object counts in vCenter Server + scoreboard + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 3 + 3 + + + 332 + + + The statistics of client sessions connected to vCenter Server + sessionstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 333 + + + The statistics of client sessions connected to vCenter Server + sessionstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 334 + + + The statistics of client sessions connected to vCenter Server + sessionstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 335 + + + Number of systems calls made per second on the system where vCenter Server is running + syscallsrate + + + + vCenter resource usage information + vcResources + + + + Number + number + + average + rate + 1 + 1 + + + 336 + + + The statistics of vCenter Server as a running system such as thread statistics and heap statistics + systemstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 337 + + + The statistics of vCenter Server as a running system such as thread statistics and heap statistics + systemstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 338 + + + The statistics of vCenter Server as a running system such as thread statistics and heap statistics + systemstats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 339 + + + CPU used by vCenter Server in user mode + usercpuusage + + + + vCenter resource usage information + vcResources + + + + Percentage + percent + + average + rate + 1 + 1 + + + 340 + + + vCenter service statistics such as events, alarms, and tasks + vcservicestats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + maximum + absolute + 4 + 4 + + + 341 + + + vCenter service statistics such as events, alarms, and tasks + vcservicestats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + minimum + absolute + 4 + 4 + + + 342 + + + vCenter service statistics such as events, alarms, and tasks + vcservicestats + + + + vCenter debugging information + vcDebugInfo + + + + Number + number + + summation + absolute + 1 + 1 + + + 343 + + + Virtual memory used by vCenter Server + virtualmemusage + + + + vCenter resource usage information + vcResources + + + + Kilobyte + kiloBytes + + average + absolute + 1 + 1 + + + 344 + + + Average number of outstanding read requests to the virtual disk during the collection interval + readOIO + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 2 + 2 + + + 345 + + + Average number of outstanding write requests to the virtual disk during the collection interval + writeOIO + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 2 + 2 + + + 346 + + + Storage DRS virtual disk metric for the read workload model + readLoadMetric + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 2 + 2 + + + 347 + + + Storage DRS virtual disk metric for the write workload model + writeLoadMetric + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 2 + 2 + + + 348 + + + CPU active average over 1 minute + actav1 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 349 + + + Storage DRS datastore bytes read + datastoreReadBytes + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 2 + 2 + + + 350 + + + Storage DRS datastore bytes written + datastoreWriteBytes + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 2 + 2 + + + 351 + + + Storage DRS datastore read I/O rate + datastoreReadIops + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 1 + 3 + + + 352 + + + Storage DRS datastore write I/O rate + datastoreWriteIops + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 1 + 3 + + + 353 + + + Storage DRS datastore outstanding read requests + datastoreReadOIO + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 1 + 3 + + + 354 + + + Storage DRS datastore outstanding write requests + datastoreWriteOIO + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 1 + 3 + + + 355 + + + Storage DRS datastore normalized read latency + datastoreNormalReadLatency + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 2 + 2 + + + 356 + + + Storage DRS datastore normalized write latency + datastoreNormalWriteLatency + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 2 + 2 + + + 357 + + + Storage DRS datastore metric for read workload model + datastoreReadLoadMetric + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 4 + 4 + + + 358 + + + Storage DRS datastore metric for write workload model + datastoreWriteLoadMetric + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 4 + 4 + + + 359 + + + The average datastore latency as seen by virtual machines + datastoreVMObservedLatency + + + + Datastore + datastore + + + + Microsecond + microsecond + + latest + absolute + 1 + 3 + + + 360 + + + The rate of transmitted packets for this network + throughput.vds.txTotal + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 361 + + + The rate of transmitted non-unicast packets for this network + throughput.vds.txNoUnicast + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 362 + + + The rate of transmitted cross-router packets for this network + throughput.vds.txCrsRouter + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 363 + + + Count of dropped transmitted packets for this network + throughput.vds.txDrop + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 364 + + + The rate of received packets for this network + throughput.vds.rxTotal + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 365 + + + Count of dropped received packets with destination IP error for this network + throughput.vds.rxDestErr + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 366 + + + Count of dropped received packets for this network + throughput.vds.rxDrop + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 367 + + + Count of transmitted packets that cannot find matched mapping entry for this network + throughput.vds.macFlood + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 368 + + + Count of transmitted packets that failed to acquire new mapping entry during translation phase for this network + throughput.vds.macLKUPFull + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 369 + + + Count of transmitted packets that failed to acquire new mapping entry during learning phase for this network + throughput.vds.macUPDTFull + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 370 + + + Count of transmitted packets that found matched ARP entry for this network + throughput.vds.arpFound + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 371 + + + Count of transmitted packets whose matched arp entry is marked as unknown for this network + throughput.vds.arpUnknown + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 372 + + + Count of transmitted packets that failed to acquire new ARP entry during translation phase for this network + throughput.vds.arpLKUPFull + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 373 + + + Count of transmitted packets whose ARP requests have already been sent into queue for this network + throughput.vds.arpWait + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 374 + + + Count of arp queries that have been expired for this network + throughput.vds.arpTimeout + + + + Network + net + + + + Number + number + + summation + delta + 4 + 4 + + + 386 + + + CPU time spent waiting for swap-in + swapwait + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 3 + 3 + + + 387 + + + CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading) + utilization + + + + CPU + cpu + + + + Percentage + percent + + none + rate + 4 + 4 + + + 388 + + + CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading) + utilization + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 2 + 3 + + + 389 + + + CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading) + utilization + + + + CPU + cpu + + + + Percentage + percent + + maximum + rate + 4 + 4 + + + 390 + + + CPU utilization as a percentage during the interval (CPU usage and CPU utilization might be different due to power management technologies or hyper-threading) + utilization + + + + CPU + cpu + + + + Percentage + percent + + minimum + rate + 4 + 4 + + + 391 + + + CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized) + coreUtilization + + + + CPU + cpu + + + + Percentage + percent + + none + rate + 4 + 4 + + + 392 + + + CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized) + coreUtilization + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 2 + 3 + + + 393 + + + CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized) + coreUtilization + + + + CPU + cpu + + + + Percentage + percent + + maximum + rate + 4 + 4 + + + 394 + + + CPU utilization of the corresponding core (if hyper-threading is enabled) as a percentage during the interval (A core is utilized if either or both of its logical CPUs are utilized) + coreUtilization + + + + CPU + cpu + + + + Percentage + percent + + minimum + rate + 4 + 4 + + + 395 + + + Total CPU capacity reserved by and available for virtual machines + totalCapacity + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 2 + 3 + + + 396 + + + Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU(s) + latency + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 2 + 3 + + + 397 + + + CPU resources devoted by the ESX scheduler + entitlement + + + + CPU + cpu + + + + Megahertz + megaHertz + + latest + absolute + 2 + 3 + + + 398 + + + The amount of CPU resources a virtual machine would use if there were no CPU contention or CPU limit + demand + + + + CPU + cpu + + + + Megahertz + megaHertz + + average + absolute + 2 + 3 + + + 399 + + + Time the virtual machine is ready to run, but is unable to run due to co-scheduling constraints + costop + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 2 + 3 + + + 400 + + + Time the virtual machine is ready to run, but is not run due to maxing out its CPU limit setting + maxlimited + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 2 + 3 + + + 401 + + + Time the virtual machine was interrupted to perform system services on behalf of itself or other virtual machines + overlap + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 3 + 3 + + + 402 + + + Time the virtual machine is scheduled to run + run + + + + CPU + cpu + + + + Millisecond + millisecond + + summation + delta + 2 + 3 + + + 403 + + + CPU resource entitlement to CPU demand ratio (in percents) + demandEntitlementRatio + + + + CPU + cpu + + + + Percentage + percent + + latest + absolute + 4 + 4 + + + 404 + + + Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU + readiness + + + + CPU + cpu + + + + Percentage + percent + + average + rate + 4 + 4 + + + 405 + + + Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter + swapin + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 406 + + + Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter + swapin + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 407 + + + Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter + swapin + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 408 + + + Amount of guest physical memory that is swapped in from the swap space since the virtual machine has been powered on. This value is less than or equal to the 'Swap out' counter + swapin + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 409 + + + Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on. + swapout + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 410 + + + Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on. + swapout + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 411 + + + Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on. + swapout + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 412 + + + Amount of guest physical memory that is swapped out from the virtual machine to its swap space since it has been powered on. + swapout + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 413 + + + Amount of host physical memory consumed by VMkernel + sysUsage + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 414 + + + Amount of host physical memory consumed by VMkernel + sysUsage + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 415 + + + Amount of host physical memory consumed by VMkernel + sysUsage + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 416 + + + Amount of host physical memory consumed by VMkernel + sysUsage + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 417 + + + Amount of guest physical memory that is being actively written by guest. Activeness is estimated by ESXi + activewrite + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 418 + + + Host physical memory reserved by ESXi, for its data structures, for running the virtual machine + overheadMax + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 419 + + + Total reservation, available and consumed, for powered-on virtual machines + totalCapacity + + + + Memory + mem + + + + Megabyte + megaBytes + + average + absolute + 2 + 3 + + + 420 + + + Amount of guest physical memory pages compressed by ESXi + zipped + + + + Memory + mem + + + + Kilobyte + kiloBytes + + latest + absolute + 2 + 3 + + + 421 + + + Host physical memory, reclaimed from a virtual machine, by memory compression. This value is less than the value of 'Compressed' memory + zipSaved + + + + Memory + mem + + + + Kilobyte + kiloBytes + + latest + absolute + 2 + 3 + + + 422 + + + Percentage of time the virtual machine spent waiting to swap in or decompress guest physical memory + latency + + + + Memory + mem + + + + Percentage + percent + + average + absolute + 2 + 3 + + + 423 + + + Amount of host physical memory the virtual machine deserves, as determined by ESXi + entitlement + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 424 + + + Threshold of free host physical memory below which ESXi will begin actively reclaiming memory from virtual machines by swapping, compression and ballooning + lowfreethreshold + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 2 + 3 + + + 425 + + + Storage space consumed on the host swap cache for storing swapped guest physical memory pages + llSwapUsed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 426 + + + Rate at which guest physical memory is swapped in from the host swap cache + llSwapInRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 427 + + + Rate at which guest physical memory is swapped out to the host swap cache + llSwapOutRate + + + + Memory + mem + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 428 + + + Estimate of the host physical memory, from Overhead consumed, that is actively read or written to by ESXi + overheadTouched + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 429 + + + Storage space consumed on the host swap cache for storing swapped guest physical memory pages + llSwapUsed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 430 + + + Storage space consumed on the host swap cache for storing swapped guest physical memory pages + llSwapUsed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 431 + + + Storage space consumed on the host swap cache for storing swapped guest physical memory pages + llSwapUsed + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 432 + + + Amount of guest physical memory swapped in from host cache + llSwapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 433 + + + Amount of guest physical memory swapped in from host cache + llSwapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 434 + + + Amount of guest physical memory swapped in from host cache + llSwapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 435 + + + Amount of guest physical memory swapped in from host cache + llSwapIn + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 436 + + + Amount of guest physical memory swapped out to the host swap cache + llSwapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 437 + + + Amount of guest physical memory swapped out to the host swap cache + llSwapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 438 + + + Amount of guest physical memory swapped out to the host swap cache + llSwapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 439 + + + Amount of guest physical memory swapped out to the host swap cache + llSwapOut + + + + Memory + mem + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 440 + + + Space used for holding VMFS Pointer Blocks in memory + vmfs.pbc.size + + + + Memory + mem + + + + Megabyte + megaBytes + + latest + absolute + 4 + 4 + + + 441 + + + Maximum size the VMFS Pointer Block Cache can grow to + vmfs.pbc.sizeMax + + + + Memory + mem + + + + Megabyte + megaBytes + + latest + absolute + 4 + 4 + + + 442 + + + Amount of file blocks whose addresses are cached in the VMFS PB Cache + vmfs.pbc.workingSet + + + + Memory + mem + + + + Terabyte + teraBytes + + latest + absolute + 4 + 4 + + + 443 + + + Maximum amount of file blocks whose addresses are cached in the VMFS PB Cache + vmfs.pbc.workingSetMax + + + + Memory + mem + + + + Terabyte + teraBytes + + latest + absolute + 4 + 4 + + + 444 + + + Amount of VMFS heap used by the VMFS PB Cache + vmfs.pbc.overhead + + + + Memory + mem + + + + Kilobyte + kiloBytes + + latest + absolute + 4 + 4 + + + 445 + + + Trailing average of the ratio of capacity misses to compulsory misses for the VMFS PB Cache + vmfs.pbc.capMissRatio + + + + Memory + mem + + + + Percentage + percent + + latest + absolute + 4 + 4 + + + 446 + + + Number of SCSI commands issued during the collection interval + commands + + + + Disk + disk + + + + Number + number + + summation + delta + 2 + 3 + + + 447 + + + Average amount of time, in milliseconds, to read from the physical device + deviceReadLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 448 + + + Average amount of time, in milliseconds, spent by VMkernel to process each SCSI read command + kernelReadLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 449 + + + Average amount of time taken during the collection interval to process a SCSI read command issued from the guest OS to the virtual machine + totalReadLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 450 + + + Average amount of time spent in the VMkernel queue, per SCSI read command, during the collection interval + queueReadLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 451 + + + Average amount of time, in milliseconds, to write to the physical device + deviceWriteLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 452 + + + Average amount of time, in milliseconds, spent by VMkernel to process each SCSI write command + kernelWriteLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 453 + + + Average amount of time taken during the collection interval to process a SCSI write command issued by the guest OS to the virtual machine + totalWriteLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 454 + + + Average amount of time spent in the VMkernel queue, per SCSI write command, during the collection interval + queueWriteLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 455 + + + Average amount of time, in milliseconds, to complete a SCSI command from the physical device + deviceLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 1 + 3 + + + 456 + + + Average amount of time, in milliseconds, spent by VMkernel to process each SCSI command + kernelLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 457 + + + Average amount of time spent in the VMkernel queue, per SCSI command, during the collection interval + queueLatency + + + + Disk + disk + + + + Millisecond + millisecond + + average + absolute + 2 + 3 + + + 458 + + + Maximum queue depth + maxQueueDepth + + + + Disk + disk + + + + Number + number + + average + absolute + 1 + 3 + + + 459 + + + Average number of SCSI commands issued per second during the collection interval + commandsAveraged + + + + Disk + disk + + + + Number + number + + average + rate + 2 + 3 + + + 460 + + + Number of receives dropped + droppedRx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 461 + + + Number of transmits dropped + droppedTx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 462 + + + Average amount of data received per second + bytesRx + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 463 + + + Average amount of data transmitted per second + bytesTx + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 2 + 3 + + + 464 + + + Number of broadcast packets received during the sampling interval + broadcastRx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 465 + + + Number of broadcast packets transmitted during the sampling interval + broadcastTx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 466 + + + Number of multicast packets received during the sampling interval + multicastRx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 467 + + + Number of multicast packets transmitted during the sampling interval + multicastTx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 468 + + + Number of packets with errors received during the sampling interval + errorsRx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 469 + + + Number of packets with errors transmitted during the sampling interval + errorsTx + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 470 + + + Number of frames with unknown protocol received during the sampling interval + unknownProtos + + + + Network + net + + + + Number + number + + summation + delta + 2 + 3 + + + 471 + + + pnicBytesRx + pnicBytesRx + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 472 + + + pnicBytesTx + pnicBytesTx + + + + Network + net + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 473 + + + Number of heartbeats issued per virtual machine during the interval + heartbeat + + + + System + sys + + + + Number + number + + latest + absolute + 4 + 4 + + + 474 + + + Amount of disk space usage for each mount point + diskUsage + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 475 + + + Amount of CPU used by the Service Console and other applications during the interval + resourceCpuUsage + + + + System + sys + + + + Megahertz + megaHertz + + none + rate + 4 + 4 + + + 476 + + + Amount of CPU used by the Service Console and other applications during the interval + resourceCpuUsage + + + + System + sys + + + + Megahertz + megaHertz + + average + rate + 3 + 3 + + + 477 + + + Amount of CPU used by the Service Console and other applications during the interval + resourceCpuUsage + + + + System + sys + + + + Megahertz + megaHertz + + maximum + rate + 4 + 4 + + + 478 + + + Amount of CPU used by the Service Console and other applications during the interval + resourceCpuUsage + + + + System + sys + + + + Megahertz + megaHertz + + minimum + rate + 4 + 4 + + + 479 + + + Memory touched by the system resource group + resourceMemTouched + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 480 + + + Memory mapped by the system resource group + resourceMemMapped + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 481 + + + Memory saved due to sharing by the system resource group + resourceMemShared + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 482 + + + Memory swapped out by the system resource group + resourceMemSwapped + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 483 + + + Overhead memory consumed by the system resource group + resourceMemOverhead + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 484 + + + Memory shared by the system resource group + resourceMemCow + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 485 + + + Zero filled memory used by the system resource group + resourceMemZero + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 486 + + + CPU running average over 1 minute of the system resource group + resourceCpuRun1 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 487 + + + CPU active average over 1 minute of the system resource group + resourceCpuAct1 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 488 + + + CPU maximum limited over 1 minute of the system resource group + resourceCpuMaxLimited1 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 489 + + + CPU running average over 5 minutes of the system resource group + resourceCpuRun5 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 490 + + + CPU active average over 5 minutes of the system resource group + resourceCpuAct5 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 491 + + + CPU maximum limited over 5 minutes of the system resource group + resourceCpuMaxLimited5 + + + + System + sys + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 492 + + + CPU allocation reservation (in MHz) of the system resource group + resourceCpuAllocMin + + + + System + sys + + + + Megahertz + megaHertz + + latest + absolute + 3 + 3 + + + 493 + + + CPU allocation limit (in MHz) of the system resource group + resourceCpuAllocMax + + + + System + sys + + + + Megahertz + megaHertz + + latest + absolute + 3 + 3 + + + 494 + + + CPU allocation shares of the system resource group + resourceCpuAllocShares + + + + System + sys + + + + Number + number + + latest + absolute + 3 + 3 + + + 495 + + + Memory allocation reservation (in KB) of the system resource group + resourceMemAllocMin + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 496 + + + Memory allocation limit (in KB) of the system resource group + resourceMemAllocMax + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 3 + 3 + + + 497 + + + Memory allocation shares of the system resource group + resourceMemAllocShares + + + + System + sys + + + + Number + number + + latest + absolute + 3 + 3 + + + 498 + + + Total time elapsed, in seconds, since last operating system boot-up + osUptime + + + + System + sys + + + + Second + second + + latest + absolute + 4 + 4 + + + 499 + + + Memory consumed by the system resource group + resourceMemConsumed + + + + System + sys + + + + Kilobyte + kiloBytes + + latest + absolute + 4 + 4 + + + 500 + + + Number of file descriptors used by the system resource group + resourceFdUsage + + + + System + sys + + + + Number + number + + latest + absolute + 4 + 4 + + + 501 + + + CPU active peak over 1 minute + actpk1 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 502 + + + CPU running average over 1 minute + runav1 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 503 + + + CPU active average over 5 minutes + actav5 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 504 + + + CPU active peak over 5 minutes + actpk5 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 505 + + + CPU running average over 5 minutes + runav5 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 506 + + + CPU active average over 15 minutes + actav15 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 507 + + + CPU active peak over 15 minutes + actpk15 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 508 + + + CPU running average over 15 minutes + runav15 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 509 + + + CPU running peak over 1 minute + runpk1 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 510 + + + Amount of CPU resources over the limit that were refused, average over 1 minute + maxLimited1 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 511 + + + CPU running peak over 5 minutes + runpk5 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 512 + + + Amount of CPU resources over the limit that were refused, average over 5 minutes + maxLimited5 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 513 + + + CPU running peak over 15 minutes + runpk15 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 514 + + + Amount of CPU resources over the limit that were refused, average over 15 minutes + maxLimited15 + + + + Resource group CPU + rescpu + + + + Percentage + percent + + latest + absolute + 3 + 3 + + + 515 + + + Group CPU sample count + sampleCount + + + + Resource group CPU + rescpu + + + + Number + number + + latest + absolute + 3 + 3 + + + 516 + + + Group CPU sample period + samplePeriod + + + + Resource group CPU + rescpu + + + + Millisecond + millisecond + + latest + absolute + 3 + 3 + + + 517 + + + Amount of total configured memory that is available for use + memUsed + + + + Management agent + managementAgent + + + + Kilobyte + kiloBytes + + average + absolute + 3 + 3 + + + 518 + + + Sum of the memory swapped by all powered-on virtual machines on the host + swapUsed + + + + Management agent + managementAgent + + + + Kilobyte + kiloBytes + + average + absolute + 3 + 3 + + + 519 + + + Amount of Service Console CPU usage + cpuUsage + + + + Management agent + managementAgent + + + + Megahertz + megaHertz + + average + rate + 3 + 3 + + + 520 + + + Average number of commands issued per second on the storage path during the collection interval + commandsAveraged + + + + Storage path + storagePath + + + + Number + number + + average + rate + 3 + 3 + + + 521 + + + Average number of read commands issued per second on the storage path during the collection interval + numberReadAveraged + + + + Storage path + storagePath + + + + Number + number + + average + rate + 3 + 3 + + + 522 + + + Average number of write commands issued per second on the storage path during the collection interval + numberWriteAveraged + + + + Storage path + storagePath + + + + Number + number + + average + rate + 3 + 3 + + + 523 + + + Rate of reading data on the storage path + read + + + + Storage path + storagePath + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 524 + + + Rate of writing data on the storage path + write + + + + Storage path + storagePath + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 3 + 3 + + + 525 + + + The average time a read issued on the storage path takes + totalReadLatency + + + + Storage path + storagePath + + + + Millisecond + millisecond + + average + absolute + 3 + 3 + + + 526 + + + The average time a write issued on the storage path takes + totalWriteLatency + + + + Storage path + storagePath + + + + Millisecond + millisecond + + average + absolute + 3 + 3 + + + 527 + + + Average read request size in bytes + readIOSize + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 528 + + + Average write request size in bytes + writeIOSize + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 529 + + + Number of seeks during the interval that were less than 64 LBNs apart + smallSeeks + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 530 + + + Number of seeks during the interval that were between 64 and 8192 LBNs apart + mediumSeeks + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 531 + + + Number of seeks during the interval that were greater than 8192 LBNs apart + largeSeeks + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 532 + + + Read latency in microseconds + readLatencyUS + + + + Virtual disk + virtualDisk + + + + Microsecond + microsecond + + latest + absolute + 4 + 4 + + + 533 + + + Write latency in microseconds + writeLatencyUS + + + + Virtual disk + virtualDisk + + + + Microsecond + microsecond + + latest + absolute + 4 + 4 + + + 534 + + + The average virtual Flash Read Cache I/Os per second value for the virtual disk + vFlashCacheIops + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 535 + + + The average virtual Flash Read Cache latency value for the virtual disk + vFlashCacheLatency + + + + Virtual disk + virtualDisk + + + + Microsecond + microsecond + + latest + absolute + 4 + 4 + + + 536 + + + The average virtual Flash Read Cache throughput value for the virtual disk + vFlashCacheThroughput + + + + Virtual disk + virtualDisk + + + + Number + number + + latest + absolute + 4 + 4 + + + 537 + + + Storage I/O Control datastore maximum queue depth + datastoreMaxQueueDepth + + + + Datastore + datastore + + + + Number + number + + latest + absolute + 1 + 3 + + + 538 + + + Current number of replicated virtual machines + hbrNumVms + + + + vSphere Replication + hbr + + + + Number + number + + average + absolute + 4 + 4 + + + 539 + + + Average amount of data received per second + hbrNetRx + + + + vSphere Replication + hbr + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 540 + + + Average amount of data transmitted per second + hbrNetTx + + + + vSphere Replication + hbr + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 541 + + + Number of caches controlled by the virtual flash module + numActiveVMDKs + + + + Virtual flash module related statistical values + vflashModule + + + + Number + number + + latest + absolute + 4 + 4 + + + 542 + + + Read IOPS + readIops + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 543 + + + Read throughput in kBps + readThroughput + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 544 + + + Average read latency in ms + readAvgLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 545 + + + Max read latency in ms + readMaxLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + latest + absolute + 4 + 4 + + + 546 + + + Cache hit rate percentage + readCacheHitRate + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Percentage + percent + + latest + absolute + 4 + 4 + + + 547 + + + Read congestion + readCongestion + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 548 + + + Write IOPS + writeIops + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 549 + + + Write throughput in kBps + writeThroughput + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 550 + + + Average write latency in ms + writeAvgLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 551 + + + Max write latency in ms + writeMaxLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + latest + absolute + 4 + 4 + + + 552 + + + Write congestion + writeCongestion + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 553 + + + Recovery write IOPS + recoveryWriteIops + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 554 + + + Recovery write through-put in kBps + recoveryWriteThroughput + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Kilobytes per second + kiloBytesPerSecond + + average + rate + 4 + 4 + + + 555 + + + Average recovery write latency in ms + recoveryWriteAvgLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + average + absolute + 4 + 4 + + + 556 + + + Max recovery write latency in ms + recoveryWriteMaxLatency + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Millisecond + millisecond + + latest + absolute + 4 + 4 + + + 557 + + + Recovery write congestion + recoveryWriteCongestion + + + + VSAN DOM object related statistical values + vsanDomObj + + + + Number + number + + average + rate + 4 + 4 + + + 558 + + + The utilization of a GPU in percentages + utilization + + + + GPU + gpu + + + + Percentage + percent + + none + absolute + 4 + 4 + + + 559 + + + The utilization of a GPU in percentages + utilization + + + + GPU + gpu + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 560 + + + The utilization of a GPU in percentages + utilization + + + + GPU + gpu + + + + Percentage + percent + + maximum + absolute + 4 + 4 + + + 561 + + + The utilization of a GPU in percentages + utilization + + + + GPU + gpu + + + + Percentage + percent + + minimum + absolute + 4 + 4 + + + 562 + + + The amount of GPU memory used in kilobytes + mem.used + + + + GPU + gpu + + + + Kilobyte + kiloBytes + + none + absolute + 4 + 4 + + + 563 + + + The amount of GPU memory used in kilobytes + mem.used + + + + GPU + gpu + + + + Kilobyte + kiloBytes + + average + absolute + 4 + 4 + + + 564 + + + The amount of GPU memory used in kilobytes + mem.used + + + + GPU + gpu + + + + Kilobyte + kiloBytes + + maximum + absolute + 4 + 4 + + + 565 + + + The amount of GPU memory used in kilobytes + mem.used + + + + GPU + gpu + + + + Kilobyte + kiloBytes + + minimum + absolute + 4 + 4 + + + 566 + + + The amount of GPU memory used in percentages of the total available + mem.usage + + + + GPU + gpu + + + + Percentage + percent + + none + absolute + 4 + 4 + + + 567 + + + The amount of GPU memory used in percentages of the total available + mem.usage + + + + GPU + gpu + + + + Percentage + percent + + average + absolute + 4 + 4 + + + 568 + + + The amount of GPU memory used in percentages of the total available + mem.usage + + + + GPU + gpu + + + + Percentage + percent + + maximum + absolute + 4 + 4 + + + 569 + + + The amount of GPU memory used in percentages of the total available + mem.usage + + + + GPU + gpu + + + + Percentage + percent + + minimum + absolute + 4 + 4 + + + 570 + + + The temperature of a GPU in degrees celsius + temperature + + + + GPU + gpu + + + + Temperature in degrees Celsius + celsius + + average + absolute + 4 + 4 + + + 571 + + + Persistent memory available reservation on a host. + available.reservation + + + + PMEM + pmem + + + + Megabyte + megaBytes + + latest + absolute + 4 + 4 + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0010-ScheduledTaskManager-ScheduledTaskManager.xml b/pkg/check/testdata/default/0010-ScheduledTaskManager-ScheduledTaskManager.xml new file mode 100644 index 00000000..32a7fac2 --- /dev/null +++ b/pkg/check/testdata/default/0010-ScheduledTaskManager-ScheduledTaskManager.xml @@ -0,0 +1,11 @@ + + ScheduledTaskManager + + scheduledTask + + + + description + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0011-AlarmManager-AlarmManager.xml b/pkg/check/testdata/default/0011-AlarmManager-AlarmManager.xml new file mode 100644 index 00000000..5142e802 --- /dev/null +++ b/pkg/check/testdata/default/0011-AlarmManager-AlarmManager.xml @@ -0,0 +1,11 @@ + + AlarmManager + + defaultExpression + + + + description + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0012-EventManager-EventManager.xml b/pkg/check/testdata/default/0012-EventManager-EventManager.xml new file mode 100644 index 00000000..89fef785 --- /dev/null +++ b/pkg/check/testdata/default/0012-EventManager-EventManager.xml @@ -0,0 +1,382 @@ + + EventManager + + description + + + UserLoginSessionEvent + User login + info + + + + + User {{.UserName}}@{{.IpAddress}} logged in as {{.UserAgent}} + + + UserLogoutSessionEvent + User logout + info + + + + + User {{.UserName}}@{{.IpAddress}} logged out (login time: {{.LoginTime}}, number of API invocations: {{.CallCount}}, user agent: {{.UserAgent}}) + + + DatacenterCreatedEvent + Datacenter created + info + + + + + Created datacenter {{.Datacenter.Name}} in folder {{.Parent.Name}} + + + DatastoreFileMovedEvent + File or directory moved to datastore + info + + + + + Move of file or directory {{.SourceFile}} from {{.SourceDatastore.Name}} to {{.Datastore.Name}} as {{.TargetFile}} + + + DatastoreFileCopiedEvent + File or directory copied to datastore + info + + + + + Copy of file or directory {{.SourceFile}} from {{.SourceDatastore.Name}} to {{.Datastore.Name}} as {{.TargetFile}} + + + DatastoreFileDeletedEvent + File or directory deleted + info + + + + + Deletion of file or directory {{.TargetFile}} from {{.Datastore.Name}} was initiated + + + EnteringMaintenanceModeEvent + Entering maintenance mode + info + + + + + Host {{.Host.Name}} in {{.Datacenter.Name}} has started to enter maintenance mode + + + EnteredMaintenanceModeEvent + Entered maintenance mode + info + + + + + Host {{.Host.Name}} in {{.Datacenter.Name}} has entered maintenance mode + + + ExitMaintenanceModeEvent + Exit maintenance mode + info + + + + + Host {{.Host.Name}} in {{.Datacenter.Name}} has exited maintenance mode + + + HostRemovedEvent + Host removed + info + + + + + Removed host {{.Host.Name}} in {{.Datacenter.Name}} + + + VmSuspendedEvent + VM suspended + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is suspended + + + VmMigratedEvent + VM migrated + info + + + + + Migration of virtual machine {{.Vm.Name}} from {{.SourceHost.Name}, {{.SourceDatastore.Name}} to {{.Host.Name}, {{.Ds.Name}} completed + + + VmBeingMigratedEvent + VM migrating + info + + + + + Relocating {{.Vm.Name}} from {{.Host.Name}, {{.Ds.Name}} in {{.Datacenter.Name}} to {{.DestHost.Name}, {{.DestDatastore.Name}} in {{.DestDatacenter.Name}} + + + VmMacAssignedEvent + VM MAC assigned + info + + + + + New MAC address ({{.Mac}}) assigned to adapter {{.Adapter}} for {{.Vm.Name}} + + + VmRegisteredEvent + VM registered + info + + + + + Registered {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmReconfiguredEvent + VM reconfigured + info + + + + + Reconfigured {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmGuestRebootEvent + Guest reboot + info + + + + + Guest OS reboot for {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmBeingClonedEvent + VM being cloned + info + + + + + Cloning {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} to {{.DestName}} on host {{.DestHost.Name}} + + + VmClonedEvent + VM cloned + info + + + + + Clone of {{.SourceVm.Name}} completed + + + VmBeingDeployedEvent + Deploying VM + info + + + + + Deploying {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} from template {{.SrcTemplate.Name}} + + + VmDeployedEvent + VM deployed + info + + + + + Template {{.SrcTemplate.Name}} deployed on host {{.Host.Name}} + + + VmInstanceUuidAssignedEvent + Assign a new instance UUID + info + + + + + Assign a new instance UUID ({{.InstanceUuid}}) to {{.Vm.Name}} + + + VmPoweredOnEvent + VM powered on + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is powered on + + + VmStartingEvent + VM starting + info + + + + + {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} is starting + + + VmStoppingEvent + VM stopping + info + + + + + {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} is stopping + + + VmSuspendingEvent + VM being suspended + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is being suspended + + + VmResumingEvent + VM resuming + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is resumed + + + VmBeingCreatedEvent + Creating VM + info + + + + + Creating {{.Vm.Name}} on host {{.Host.Name}} in {{.Datacenter.Name}} + + + VmCreatedEvent + VM created + info + + + + + Created virtual machine {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmRemovedEvent + VM removed + info + + + + + Removed {{.Vm.Name}} on {{.Host.Name}} from {{.Datacenter.Name}} + + + VmResettingEvent + VM resetting + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is reset + + + VmGuestShutdownEvent + Guest OS shut down + info + + + + + Guest OS shut down for {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmUuidAssignedEvent + VM UUID assigned + info + + + + + Assigned new BIOS UUID ({{.Uuid}}) to {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + VmPoweredOffEvent + VM powered off + info + + + + + {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} is powered off + + + VmRelocatedEvent + VM relocated + info + + + + + Completed the relocation of the virtual machine + + + DrsVmMigratedEvent + DRS VM migrated + info + + + + + DRS migrated {{.Vm.Name}} from {{.SourceHost.Name}} to {{.Host.Name}} in cluster {{.ComputeResource.Name}} in {{.Datacenter.Name}} + + + DrsVmPoweredOnEvent + DRS VM powered on + info + + + + + DRS powered On {{.Vm.Name}} on {{.Host.Name}} in {{.Datacenter.Name}} + + + + + maxCollector + 1000 + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml b/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml new file mode 100644 index 00000000..e93ba2b8 --- /dev/null +++ b/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml @@ -0,0 +1,7966 @@ + + TaskManager + + recentTask + + task-8 + task-10 + task-12 + task-14 + task-24 + task-28 + task-35 + task-36 + task-43 + task-44 + task-51 + task-56 + task-58 + task-59 + task-61 + task-62 + task-64 + task-65 + task-67 + + + + description + + + + createEntry + host.OperationCleanupManager.createEntry + + + + updateEntry + host.OperationCleanupManager.updateEntry + + + + queryEntry + host.OperationCleanupManager.queryEntry + + + + Returns a list of guest operations not supported by a virtual machine + vm.guest.GuestOperationsManager.queryDisabledMethods + + + + updateHostSpecification + profile.host.HostSpecificationManager.updateHostSpecification + + + + updateHostSubSpecification + profile.host.HostSpecificationManager.updateHostSubSpecification + + + + retrieveHostSpecification + profile.host.HostSpecificationManager.retrieveHostSpecification + + + + deleteHostSubSpecification + profile.host.HostSpecificationManager.deleteHostSubSpecification + + + + deleteHostSpecification + profile.host.HostSpecificationManager.deleteHostSpecification + + + + getUpdatedHosts + profile.host.HostSpecificationManager.getUpdatedHosts + + + + Sets the value of a custom field of the graphics manager + host.GraphicsManager.setCustomValue + + + + Refresh graphics device information + host.GraphicsManager.refresh + + + + Check if shared graphics is active on the host + host.GraphicsManager.isSharedGraphicsActive + + + + updateGraphicsConfig + host.GraphicsManager.updateGraphicsConfig + + + + Get the list of configuration option keys available in this browser + EnvironmentBrowser.queryConfigOptionDescriptor + + + + Search for a specific configuration option + EnvironmentBrowser.queryConfigOption + + + + queryConfigOptionEx + EnvironmentBrowser.queryConfigOptionEx + + + + Search for a specific configuration target + EnvironmentBrowser.queryConfigTarget + + + + Query for compute-resource capabilities associated with this browser + EnvironmentBrowser.queryTargetCapabilities + + + + Query environment browser for information about the virtual machine provisioning operation policy + EnvironmentBrowser.queryProvisioningPolicy + + + + queryConfigTargetSpec + EnvironmentBrowser.queryConfigTargetSpec + + + + Sets the value of a custom field of a scheduled task + scheduler.ScheduledTask.setCustomValue + + + + Remove the scheduled task + scheduler.ScheduledTask.remove + + + + Reconfigure the scheduled task properties + scheduler.ScheduledTask.reconfigure + + + + Run the scheduled task immediately + scheduler.ScheduledTask.run + + + + Queries CMMDS contents in the vSAN cluster + host.VsanInternalSystem.queryCmmds + + + + Queries the physical vSAN disks + host.VsanInternalSystem.queryPhysicalVsanDisks + + + + Queries the vSAN objects in the cluster + host.VsanInternalSystem.queryVsanObjects + + + + Queries the vSAN objects that have at least one component on the current set of physical disks + host.VsanInternalSystem.queryObjectsOnPhysicalVsanDisk + + + + Drop ownership of the DOM objects that are owned by this host + host.VsanInternalSystem.abdicateDomOwnership + + + + Gathers low level statistic counters from the vSAN cluster + host.VsanInternalSystem.queryVsanStatistics + + + + Reconfigures the vSAN objects in the cluster + host.VsanInternalSystem.reconfigureDomObject + + + + Queries vSAN objects that are updating stale components or synchronizing new replicas + host.VsanInternalSystem.querySyncingVsanObjects + + + + Runs diagnostic tests on vSAN physical disks and verifies if objects are successfully created on the disks + host.VsanInternalSystem.runVsanPhysicalDiskDiagnostics + + + + Shows the extended attributes of the vSAN objects + host.VsanInternalSystem.getVsanObjExtAttrs + + + + Identifies the vSAN objects that can be reconfigured using the assigned storage policy in the current cluster + host.VsanInternalSystem.reconfigurationSatisfiable + + + + Identifies the vSAN objects that are available for provisioning using the assigned storage policy in the current cluster + host.VsanInternalSystem.canProvisionObjects + + + + deleteVsanObjects + host.VsanInternalSystem.deleteVsanObjects + + + + Upgrade vSAN object format, to fit in vSAN latest features + host.VsanInternalSystem.upgradeVsanObjects + + + + queryVsanObjectUuidsByFilter + host.VsanInternalSystem.queryVsanObjectUuidsByFilter + + + + Identifies the vSAN entities that are available for decommissioning in the current cluster + host.VsanInternalSystem.canDecommission + + + + Authenticate credentials in the guest operating system + vm.guest.AuthManager.validateCredentials + + + + Acquire credentials in the guest operating system + vm.guest.AuthManager.acquireCredentials + + + + Release credentials in the guest operating system + vm.guest.AuthManager.releaseCredentials + + + + Creates a local user account + host.LocalAccountManager.createUser + + + + Updates a local user account + host.LocalAccountManager.updateUser + + + + Creates a local group account + host.LocalAccountManager.createGroup + + + + Removes a local user account + host.LocalAccountManager.removeUser + + + + Removes a local group account + host.LocalAccountManager.removeGroup + + + + Assign user to group + host.LocalAccountManager.assignUserToGroup + + + + Unassigns a user from a group + host.LocalAccountManager.unassignUserFromGroup + + + + Register an image library server with vCenter + ImageLibraryManager.addLibrary + + + + Update image library information + ImageLibraryManager.updateLibrary + + + + Unregister an image library server from vCenter + ImageLibraryManager.removeLibrary + + + + Import files from the image library + ImageLibraryManager.importLibraryMedia + + + + Export files to the image library + ImageLibraryManager.exportMediaToLibrary + + + + Publish files from datastore to image library + ImageLibraryManager.publishMediaToLibrary + + + + setCustomValue + external.ContentLibrary.setCustomValue + + + + reload + external.ContentLibrary.reload + + + + rename + external.ContentLibrary.rename + + + + destroy + external.ContentLibrary.destroy + + + + addTag + external.ContentLibrary.addTag + + + + removeTag + external.ContentLibrary.removeTag + + + + retrieveCustomValues + external.ContentLibrary.retrieveCustomValues + + + + Sets the value of a custom field for an Enhanced vMotion Compatibility manager + cluster.TransitionalEVCManager.setCustomValue + + + + Enable/reconfigure Enhanced vMotion Compatibility for a cluster + cluster.TransitionalEVCManager.configureEVC + + + + Disable Enhanced vMotion Compatibility for a cluster + cluster.TransitionalEVCManager.disableEVC + + + + Test the validity of configuring Enhanced vMotion Compatibility mode on the managed cluster + cluster.TransitionalEVCManager.checkConfigureEVC + + + + Tests the validity of adding a host into the Enhanced vMotion Compatibility cluster + cluster.TransitionalEVCManager.checkAddHost + + + + lookupVmOverheadMemory + OverheadMemoryManager.lookupVmOverheadMemory + + + + Set the last page viewed size of event history + event.EventHistoryCollector.setLatestPageSize + + + + Moves view to the oldest item of event history + event.EventHistoryCollector.rewind + + + + Moves view to the newest item of event history + event.EventHistoryCollector.reset + + + + Removes the event history collector + event.EventHistoryCollector.remove + + + + Reads view from current position of event history, and then the position is moved to the next newer page + event.EventHistoryCollector.readNext + + + + Reads view from current position of event history and moves the position to the next older page + event.EventHistoryCollector.readPrev + + + + Sets the value of a custom field of a managed entity + ManagedEntity.setCustomValue + + + + Reload the entity state + ManagedEntity.reload + + + + Rename this entity + ManagedEntity.rename + + + + Deletes the entity and removes it from parent folder + ManagedEntity.destroy + + + + Add a set of tags to the entity + ManagedEntity.addTag + + + + Remove a set of tags from the entity + ManagedEntity.removeTag + + + + retrieveCustomValues + ManagedEntity.retrieveCustomValues + + + + Sets a value in the custom field for Enhanced vMotion Compatibility manager + cluster.EVCManager.setCustomValue + + + + Enable/reconfigure Enhanced vMotion Compatibility in a cluster + cluster.EVCManager.configureEvc + + + + Disable Enhanced vMotion Compatibility in a cluster + cluster.EVCManager.disableEvc + + + + Validates the configuration of Enhanced vMotion Compatibility mode in the managed cluster + cluster.EVCManager.checkConfigureEvc + + + + Validates new hosts in the Enhanced vMotion Compatibility cluster + cluster.EVCManager.checkAddHostEvc + + + + Retrieve host profile description + profile.host.HostProfile.retrieveDescription + + + + Delete host profile + profile.host.HostProfile.destroy + + + + Attach host profile to host or cluster + profile.host.HostProfile.associateEntities + + + + Detach host profile from host or cluster + profile.host.HostProfile.dissociateEntities + + + + Check compliance of a host or cluster against a host profile + profile.host.HostProfile.checkCompliance + + + + Export host profile to a file + profile.host.HostProfile.exportProfile + + + + Update reference host + profile.host.HostProfile.updateReferenceHost + + + + Update host profile + profile.host.HostProfile.update + + + + validate + profile.host.HostProfile.validate + + + + Execute profile + profile.host.HostProfile.execute + + + + Create a host profile + profile.host.ProfileManager.createProfile + + + + Query policy metadata + profile.host.ProfileManager.queryPolicyMetadata + + + + Find associated profile + profile.host.ProfileManager.findAssociatedProfile + + + + Apply host configuration + profile.host.ProfileManager.applyHostConfiguration + + + + queryMetadata + profile.host.ProfileManager.queryMetadata + + + + Generates a list of configuration tasks to be performed when applying a host profile + profile.host.ProfileManager.generateConfigTaskList + + + + Generate task list + profile.host.ProfileManager.generateTaskList + + + + Query profile metadata + profile.host.ProfileManager.queryProfileMetadata + + + + Retrieves the metadata for a set of profile categories + profile.host.ProfileManager.queryProfileCategoryMetadata + + + + Retrieves the metadata for a set of profile components + profile.host.ProfileManager.queryProfileComponentMetadata + + + + Gets information about the structure of a profile + profile.host.ProfileManager.queryProfileStructure + + + + Create default profile + profile.host.ProfileManager.createDefaultProfile + + + + Update host customizations for host + profile.host.ProfileManager.updateAnswerFile + + + + Validate host customizations for host + profile.host.ProfileManager.validateAnswerFile + + + + Returns the host customization data associated with a particular host + profile.host.ProfileManager.retrieveAnswerFile + + + + retrieveAnswerFileForProfile + profile.host.ProfileManager.retrieveAnswerFileForProfile + + + + Export host customizations for host + profile.host.ProfileManager.exportAnswerFile + + + + Check the status of the host customizations against associated profile + profile.host.ProfileManager.checkAnswerFileStatus + + + + Returns the status of the host customization data associated with the specified hosts + profile.host.ProfileManager.queryAnswerFileStatus + + + + Update host customizations + profile.host.ProfileManager.updateHostCustomizations + + + + validateHostCustomizations + profile.host.ProfileManager.validateHostCustomizations + + + + retrieveHostCustomizations + profile.host.ProfileManager.retrieveHostCustomizations + + + + retrieveHostCustomizationsForProfile + profile.host.ProfileManager.retrieveHostCustomizationsForProfile + + + + Export host customizations + profile.host.ProfileManager.exportCustomizations + + + + Import host customizations + profile.host.ProfileManager.importCustomizations + + + + Checks customization data and host state is valid for remediation + profile.host.ProfileManager.generateHostConfigTaskSpec + + + + Batch apply host configuration + profile.host.ProfileManager.applyEntitiesConfiguration + + + + Generate differences between source and target host profile to validate settings to be copied + profile.host.ProfileManager.validateComposition + + + + Copy settings to host profiles + profile.host.ProfileManager.compositeProfile + + + + Create a view for browsing the inventory and tracking changes to open folders + view.ViewManager.createInventoryView + + + + Create a view for monitoring the contents of a single container + view.ViewManager.createContainerView + + + + Create a view for getting updates + view.ViewManager.createListView + + + + Create a list view from an existing view + view.ViewManager.createListViewFromView + + + + Add the specified key to the current host + encryption.CryptoManager.addKey + + + + Add the specified keys to the current host + encryption.CryptoManager.addKeys + + + + Remove the specified key from the current host + encryption.CryptoManager.removeKey + + + + Remove the specified keys from the current host + encryption.CryptoManager.removeKeys + + + + List all the keys registered on the current host + encryption.CryptoManager.listKeys + + + + setCustomValue + external.AntiAffinityGroup.setCustomValue + + + + reload + external.AntiAffinityGroup.reload + + + + rename + external.AntiAffinityGroup.rename + + + + destroy + external.AntiAffinityGroup.destroy + + + + addTag + external.AntiAffinityGroup.addTag + + + + removeTag + external.AntiAffinityGroup.removeTag + + + + retrieveCustomValues + external.AntiAffinityGroup.retrieveCustomValues + + + + Query supported switch specification + dvs.DistributedVirtualSwitchManager.querySupportedSwitchSpec + + + + Returns a list of hosts that are compatible with a given vSphere Distributed Switch specification + dvs.DistributedVirtualSwitchManager.queryCompatibleHostForNewDvs + + + + Returns a list of hosts that are compatible with an existing vSphere Distributed Switch + dvs.DistributedVirtualSwitchManager.queryCompatibleHostForExistingDvs + + + + Query compatible host specification + dvs.DistributedVirtualSwitchManager.queryCompatibleHostSpec + + + + Queries feature capabilities available for a given vSphere Distributed Switch specification + dvs.DistributedVirtualSwitchManager.queryFeatureCapability + + + + Query switch by UUID + dvs.DistributedVirtualSwitchManager.querySwitchByUuid + + + + Query configuration target + dvs.DistributedVirtualSwitchManager.queryDvsConfigTarget + + + + Check compatibility of hosts against a vSphere Distributed Switch version + dvs.DistributedVirtualSwitchManager.checkCompatibility + + + + Update opaque data for set of entities + dvs.DistributedVirtualSwitchManager.updateOpaqueData + + + + Update opaque data for set of entities + dvs.DistributedVirtualSwitchManager.updateOpaqueDataEx + + + + Fetch opaque data for set of entities + dvs.DistributedVirtualSwitchManager.fetchOpaqueData + + + + Fetch opaque data for set of entities + dvs.DistributedVirtualSwitchManager.fetchOpaqueDataEx + + + + Execute opaque command for set of entities + dvs.DistributedVirtualSwitchManager.executeOpaqueCommand + + + + Rectify vNetwork Distributed Switch host + dvs.DistributedVirtualSwitchManager.rectifyHost + + + + Export configuration of the entity + dvs.DistributedVirtualSwitchManager.exportEntity + + + + Import configuration of the entity + dvs.DistributedVirtualSwitchManager.importEntity + + + + Look up portgroup based on portgroup key + dvs.DistributedVirtualSwitchManager.lookupPortgroup + + + + Query uplink team information + dvs.DistributedVirtualSwitchManager.QueryDvpgUplinkTeam + + + + queryHostNetworkResource + dvs.DistributedVirtualSwitchManager.queryHostNetworkResource + + + + queryVwirePort + dvs.DistributedVirtualSwitchManager.queryVwirePort + + + + Checks compliance of a host against a profile + profile.host.profileEngine.ComplianceManager.checkHostCompliance + + + + Queries the metadata for the given expression names + profile.host.profileEngine.ComplianceManager.queryExpressionMetadata + + + + Get the default compliance from host configuration subprofiles + profile.host.profileEngine.ComplianceManager.getDefaultCompliance + + + + Move the file, folder, or disk from source datacenter to destination datacenter + FileManager.move + + + + Move the source file or folder to destination datacenter + FileManager.moveFile + + + + Copy the file, folder, or disk from source datacenter to destination datacenter + FileManager.copy + + + + Copy the source file or folder to destination datacenter + FileManager.copyFile + + + + Delete the file, folder, or disk from source datacenter + FileManager.delete + + + + Delete the source file or folder from the datastore + FileManager.deleteFile + + + + Create a directory using the specified name + FileManager.makeDirectory + + + + Change the owner of the specified file to the specified user + FileManager.changeOwner + + + + setCustomValue + external.TagPolicyOption.setCustomValue + + + + reload + external.TagPolicyOption.reload + + + + rename + external.TagPolicyOption.rename + + + + destroy + external.TagPolicyOption.destroy + + + + addTag + external.TagPolicyOption.addTag + + + + removeTag + external.TagPolicyOption.removeTag + + + + retrieveCustomValues + external.TagPolicyOption.retrieveCustomValues + + + + Retrieve cluster profile description + profile.cluster.ClusterProfile.retrieveDescription + + + + Delete cluster profile + profile.cluster.ClusterProfile.destroy + + + + Attach cluster profile to cluster + profile.cluster.ClusterProfile.associateEntities + + + + Detach cluster profile from cluster + profile.cluster.ClusterProfile.dissociateEntities + + + + Check compliance of a cluster against a cluster profile + profile.cluster.ClusterProfile.checkCompliance + + + + Export cluster profile to a file + profile.cluster.ClusterProfile.exportProfile + + + + Update configuration of cluster profile + profile.cluster.ClusterProfile.update + + + + Check for dependencies, conflicts, and obsolete updates + host.PatchManager.Check + + + + Scan the host for patch status + host.PatchManager.Scan + + + + Scan the host for patch status + host.PatchManager.ScanV2 + + + + Stage the updates to the host + host.PatchManager.Stage + + + + Install the patch + host.PatchManager.Install + + + + Install the patch + host.PatchManager.InstallV2 + + + + Uninstall the patch + host.PatchManager.Uninstall + + + + Query the host for installed bulletins + host.PatchManager.Query + + + + Retrieves information regarding processes + host.SystemDebugManager.queryProcessInfo + + + + Changes the power on or power off sequence + host.AutoStartManager.reconfigure + + + + Powers On virtual machines according to the current AutoStart configuration + host.AutoStartManager.autoPowerOn + + + + Powers Off virtual machines according to the current AutoStart configuration + host.AutoStartManager.autoPowerOff + + + + Remove the managed objects + view.ManagedObjectView.destroy + + + + Remove the list view object + view.ListView.destroy + + + + Modify the list view + view.ListView.modify + + + + Reset the list view + view.ListView.reset + + + + Resets a set of objects in a given view + view.ListView.resetFromView + + + + Creates a registry key in the Windows guest operating system + vm.guest.WindowsRegistryManager.createRegistryKey + + + + Lists all registry subkeys for a specified registry key in the Windows guest operating system. + vm.guest.WindowsRegistryManager.listRegistryKeys + + + + Deletes a registry key in the Windows guest operating system + vm.guest.WindowsRegistryManager.deleteRegistryKey + + + + Sets and creates a registry value in the Windows guest operating system + vm.guest.WindowsRegistryManager.setRegistryValue + + + + Lists all registry values for a specified registry key in the Windows guest operating system + vm.guest.WindowsRegistryManager.listRegistryValues + + + + Deletes a registry value in the Windows guest operating system + vm.guest.WindowsRegistryManager.deleteRegistryValue + + + + Registers a Secondary VM with a Fault Tolerant Primary VM + host.FaultToleranceManager.registerSecondary + + + + Unregister a Secondary VM from the associated Primary VM + host.FaultToleranceManager.unregisterSecondary + + + + Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM + host.FaultToleranceManager.makePrimary + + + + Makes the peer VM primary and terminates the local virtual machine + host.FaultToleranceManager.goLivePeerVM + + + + Stop a specified virtual machine in a Fault Tolerant pair + host.FaultToleranceManager.terminateFaultTolerantVM + + + + Disable Fault Tolerance on a specified Secondary VM + host.FaultToleranceManager.disableSecondary + + + + Enable Fault Tolerance on a specified Secondary VM + host.FaultToleranceManager.enableSecondary + + + + Start Fault Tolerant Secondary VM on remote host + host.FaultToleranceManager.startSecondaryOnRemoteHost + + + + Unregister the Fault Tolerance service + host.FaultToleranceManager.unregister + + + + Sets the component health information of the specified local virtual machine + host.FaultToleranceManager.setLocalVMComponentHealth + + + + Gets component health information of the FT peer of the specified local virtual machine + host.FaultToleranceManager.getPeerVMComponentHealth + + + + Set vCenter HA cluster mode + vcha.FailoverClusterManager.setClusterMode + + + + getClusterMode + vcha.FailoverClusterManager.getClusterMode + + + + getClusterHealth + vcha.FailoverClusterManager.getClusterHealth + + + + Initiate a failover from active vCenter Server node to the passive node + vcha.FailoverClusterManager.initiateFailover + + + + executeStep + modularity.WorkflowStepHandler.executeStep + + + + undoStep + modularity.WorkflowStepHandler.undoStep + + + + finalizeStep + modularity.WorkflowStepHandler.finalizeStep + + + + setCustomValue + external.TagPolicy.setCustomValue + + + + reload + external.TagPolicy.reload + + + + rename + external.TagPolicy.rename + + + + destroy + external.TagPolicy.destroy + + + + addTag + external.TagPolicy.addTag + + + + removeTag + external.TagPolicy.removeTag + + + + retrieveCustomValues + external.TagPolicy.retrieveCustomValues + + + + CreateVRP + VRPResourceManager.CreateVRP + + + + UpdateVRP + VRPResourceManager.UpdateVRP + + + + DeleteVRP + VRPResourceManager.DeleteVRP + + + + DeployVM + VRPResourceManager.DeployVM + + + + UndeployVM + VRPResourceManager.UndeployVM + + + + SetManagedByVDC + VRPResourceManager.SetManagedByVDC + + + + GetAllVRPIds + VRPResourceManager.GetAllVRPIds + + + + GetRPSettings + VRPResourceManager.GetRPSettings + + + + GetVRPSettings + VRPResourceManager.GetVRPSettings + + + + GetVRPUsage + VRPResourceManager.GetVRPUsage + + + + GetVRPofVM + VRPResourceManager.GetVRPofVM + + + + GetChildRPforHub + VRPResourceManager.GetChildRPforHub + + + + Creates a top-level directory on the specified datastore + DatastoreNamespaceManager.CreateDirectory + + + + Deletes the specified top-level directory from the datastore + DatastoreNamespaceManager.DeleteDirectory + + + + ConvertNamespacePathToUuidPath + DatastoreNamespaceManager.ConvertNamespacePathToUuidPath + + + + setCustomValue + external.VirtualDatacenter.setCustomValue + + + + reload + external.VirtualDatacenter.reload + + + + rename + external.VirtualDatacenter.rename + + + + destroy + external.VirtualDatacenter.destroy + + + + addTag + external.VirtualDatacenter.addTag + + + + removeTag + external.VirtualDatacenter.removeTag + + + + retrieveCustomValues + external.VirtualDatacenter.retrieveCustomValues + + + + Retrieve profile description + profile.Profile.retrieveDescription + + + + Remove profile + profile.Profile.destroy + + + + Associate entities with the profile + profile.Profile.associateEntities + + + + Dissociate entities from the profile + profile.Profile.dissociateEntities + + + + Check compliance against the profile + profile.Profile.checkCompliance + + + + Export profile to a file + profile.Profile.exportProfile + + + + getNetworkIpSettings + vdcs.IpManager.getNetworkIpSettings + + + + allocate + vdcs.IpManager.allocate + + + + release + vdcs.IpManager.release + + + + releaseAll + vdcs.IpManager.releaseAll + + + + queryAll + vdcs.IpManager.queryAll + + + + Sets the value of a custom field of a datastore cluster + StoragePod.setCustomValue + + + + Reloads the datastore cluster + StoragePod.reload + + + + Rename a datastore cluster + StoragePod.rename + + + + Remove a datastore cluster + StoragePod.destroy + + + + Adds a set of tags to a datastore cluster + StoragePod.addTag + + + + Removes a set of tags from a datastore cluster + StoragePod.removeTag + + + + retrieveCustomValues + StoragePod.retrieveCustomValues + + + + Creates a new folder + StoragePod.createFolder + + + + Move datastores into a datastore cluster + StoragePod.moveInto + + + + Creates a new virtual machine + StoragePod.createVm + + + + Adds an existing virtual machine to this datastore cluster + StoragePod.registerVm + + + + Creates a new cluster compute-resource in this datastore cluster + StoragePod.createCluster + + + + Creates a new cluster compute-resource in this datastore cluster + StoragePod.createClusterEx + + + + Creates a new single-host compute-resource + StoragePod.addStandaloneHost + + + + Creates a new single-host compute-resource and enables lockdown mode on the host + StoragePod.addStandaloneHostWithAdminDisabled + + + + Create a new datacenter with the given name + StoragePod.createDatacenter + + + + Recursively deletes all child virtual machine folders and unregisters all virtual machines + StoragePod.unregisterAndDestroy + + + + Creates a vSphere Distributed Switch + StoragePod.createDistributedVirtualSwitch + + + + Creates a new datastore cluster + StoragePod.createStoragePod + + + + Deletes the content of the temporary directory on the host + AgentManager.prepareToUpgrade + + + + Validates and executes the installer/uninstaller executable uploaded to the temporary directory + AgentManager.upgrade + + + + Configure host power management policy + host.PowerSystem.configurePolicy + + + + Sets the value of a custom field of a network + Network.setCustomValue + + + + Reload information about the network + Network.reload + + + + Rename network + Network.rename + + + + Deletes a network if it is not used by any host or virtual machine + Network.destroy + + + + Add a set of tags to the network + Network.addTag + + + + Remove a set of tags from the network + Network.removeTag + + + + retrieveCustomValues + Network.retrieveCustomValues + + + + Remove network + Network.destroyNetwork + + + + Retrieves the argument meta-data for a given event type + event.EventManager.retrieveArgumentDescription + + + + Creates an event collector to retrieve all server events based on a filter + event.EventManager.createCollector + + + + Logs a user-defined event + event.EventManager.logUserEvent + + + + Provides the events selected by the specified filter + event.EventManager.QueryEvent + + + + Returns the events specified by a list of IDs + event.EventManager.queryEventsById + + + + Posts the specified event + event.EventManager.postEvent + + + + Query the latest events in the specified filter + event.EventManager.queryLastEvent + + + + Create the disk, either a datastore path or a URL referring to the virtual disk + VirtualDiskManager.createVirtualDisk + + + + Delete the disk, either a datastore path or a URL referring to the virtual disk + VirtualDiskManager.deleteVirtualDisk + + + + Queries information about a virtual disk + VirtualDiskManager.queryVirtualDiskInfo + + + + Move the disk, either a datastore path or a URL referring to the virtual disk + VirtualDiskManager.moveVirtualDisk + + + + Copy the disk, either a datastore path or a URL referring to the virtual disk + VirtualDiskManager.copyVirtualDisk + + + + Expand the capacity of a virtual disk to the new capacity + VirtualDiskManager.extendVirtualDisk + + + + Return the percentage of fragmentation of the sparse virtual disk + VirtualDiskManager.queryVirtualDiskFragmentation + + + + Defragment a sparse virtual disk + VirtualDiskManager.defragmentVirtualDisk + + + + Shrink a sparse virtual disk + VirtualDiskManager.shrinkVirtualDisk + + + + Inflate a sparse virtual disk up to the full size + VirtualDiskManager.inflateVirtualDisk + + + + Explicitly zero out the virtual disk. + VirtualDiskManager.eagerZeroVirtualDisk + + + + Overwrite all blocks of the virtual disk with zeros + VirtualDiskManager.zeroFillVirtualDisk + + + + Optimally eager zero a VMFS thick virtual disk. + VirtualDiskManager.optimizeEagerZeroVirtualDisk + + + + Set the UUID for the disk, either a datastore path or a URL referring to the virtual disk + VirtualDiskManager.setVirtualDiskUuid + + + + Get the virtual disk SCSI inquiry page data + VirtualDiskManager.queryVirtualDiskUuid + + + + Get the disk geometry information for the virtual disk + VirtualDiskManager.queryVirtualDiskGeometry + + + + Reparent disks + VirtualDiskManager.reparentDisks + + + + Create a new disk and attach it to the end of disk chain specified + VirtualDiskManager.createChildDisk + + + + revertToChildDisk + VirtualDiskManager.revertToChildDisk + + + + Consolidate a list of disks to the parent most disk + VirtualDiskManager.consolidateDisks + + + + importUnmanagedSnapshot + VirtualDiskManager.importUnmanagedSnapshot + + + + releaseManagedSnapshot + VirtualDiskManager.releaseManagedSnapshot + + + + enableUPIT + VirtualDiskManager.enableUPIT + + + + disableUPIT + VirtualDiskManager.disableUPIT + + + + queryObjectInfo + VirtualDiskManager.queryObjectInfo + + + + queryObjectTypes + VirtualDiskManager.queryObjectTypes + + + + Create a virtual disk object + vslm.host.VStorageObjectManager.createDisk + + + + Register a legacy disk to be a virtual disk object + vslm.host.VStorageObjectManager.registerDisk + + + + Extend a virtual disk to the new capacity + vslm.host.VStorageObjectManager.extendDisk + + + + Inflate a thin virtual disk + vslm.host.VStorageObjectManager.inflateDisk + + + + Rename a virtual storage object + vslm.host.VStorageObjectManager.renameVStorageObject + + + + Update storage policy on a virtual storage object + vslm.host.VStorageObjectManager.updateVStorageObjectPolicy + + + + Delete a virtual storage object + vslm.host.VStorageObjectManager.deleteVStorageObject + + + + Retrieve a virtual storage object + vslm.host.VStorageObjectManager.retrieveVStorageObject + + + + retrieveVStorageObjectState + vslm.host.VStorageObjectManager.retrieveVStorageObjectState + + + + List virtual storage objects on a datastore + vslm.host.VStorageObjectManager.listVStorageObject + + + + Clone a virtual storage object + vslm.host.VStorageObjectManager.cloneVStorageObject + + + + Relocate a virtual storage object + vslm.host.VStorageObjectManager.relocateVStorageObject + + + + Reconcile datastore inventory + vslm.host.VStorageObjectManager.reconcileDatastoreInventory + + + + Schedule reconcile datastore inventory + vslm.host.VStorageObjectManager.scheduleReconcileDatastoreInventory + + + + Prepare a vMotion send operation + host.VMotionManager.prepareSource + + + + Prepares a VMotion send operation asynchronously + host.VMotionManager.prepareSourceEx + + + + Prepare a vMotion receive operation + host.VMotionManager.prepareDestination + + + + Prepares a vMotion receive operation asynchronously + host.VMotionManager.prepareDestinationEx + + + + Initiate a vMotion receive operation + host.VMotionManager.initiateDestination + + + + Initiate a vMotion send operation + host.VMotionManager.initiateSource + + + + Initiates a VMotion send operation + host.VMotionManager.initiateSourceEx + + + + Tell the source that vMotion migration is complete (success or failure) + host.VMotionManager.completeSource + + + + Tell the destination that vMotion migration is complete (success or failure) + host.VMotionManager.completeDestination + + + + Reparent the disks at destination and commit the redo logs at the end of a vMotion migration + host.VMotionManager.upgradeDestination + + + + Enables or disables VMotionManager memory mirror migrate + host.VMotionManager.updateMemMirrorFlag + + + + queryMigrationIds + host.VMotionManager.queryMigrationIds + + + + updateHostSubSpecificationByFile + profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByFile + + + + updateHostSubSpecificationByData + profile.host.profileEngine.HostSpecificationAgent.updateHostSubSpecificationByData + + + + retrieveHostSpecification + profile.host.profileEngine.HostSpecificationAgent.retrieveHostSpecification + + + + deleteHostSubSpecification + profile.host.profileEngine.HostSpecificationAgent.deleteHostSubSpecification + + + + addKey + encryption.CryptoManagerKmip.addKey + + + + addKeys + encryption.CryptoManagerKmip.addKeys + + + + removeKey + encryption.CryptoManagerKmip.removeKey + + + + removeKeys + encryption.CryptoManagerKmip.removeKeys + + + + listKeys + encryption.CryptoManagerKmip.listKeys + + + + registerKmipServer + encryption.CryptoManagerKmip.registerKmipServer + + + + markDefault + encryption.CryptoManagerKmip.markDefault + + + + updateKmipServer + encryption.CryptoManagerKmip.updateKmipServer + + + + removeKmipServer + encryption.CryptoManagerKmip.removeKmipServer + + + + listKmipServers + encryption.CryptoManagerKmip.listKmipServers + + + + retrieveKmipServersStatus + encryption.CryptoManagerKmip.retrieveKmipServersStatus + + + + generateKey + encryption.CryptoManagerKmip.generateKey + + + + retrieveKmipServerCert + encryption.CryptoManagerKmip.retrieveKmipServerCert + + + + uploadKmipServerCert + encryption.CryptoManagerKmip.uploadKmipServerCert + + + + generateSelfSignedClientCert + encryption.CryptoManagerKmip.generateSelfSignedClientCert + + + + generateClientCsr + encryption.CryptoManagerKmip.generateClientCsr + + + + retrieveSelfSignedClientCert + encryption.CryptoManagerKmip.retrieveSelfSignedClientCert + + + + retrieveClientCsr + encryption.CryptoManagerKmip.retrieveClientCsr + + + + retrieveClientCert + encryption.CryptoManagerKmip.retrieveClientCert + + + + updateSelfSignedClientCert + encryption.CryptoManagerKmip.updateSelfSignedClientCert + + + + updateKmsSignedCsrClientCert + encryption.CryptoManagerKmip.updateKmsSignedCsrClientCert + + + + uploadClientCert + encryption.CryptoManagerKmip.uploadClientCert + + + + Unregisters an extension + ExtensionManager.unregisterExtension + + + + Find an extension + ExtensionManager.findExtension + + + + Registers an extension + ExtensionManager.registerExtension + + + + Updates extension information + ExtensionManager.updateExtension + + + + Get vCenter Server's public key + ExtensionManager.getPublicKey + + + + Set public key of the extension + ExtensionManager.setPublicKey + + + + Update the stored authentication certificate for a specified extension + ExtensionManager.setCertificate + + + + Updates extension-specific data associated with an extension + ExtensionManager.updateExtensionData + + + + Retrieves extension-specific data associated with an extension + ExtensionManager.queryExtensionData + + + + Retrieves extension-specific data keys associated with an extension + ExtensionManager.queryExtensionDataKeys + + + + Clears extension-specific data associated with an extension + ExtensionManager.clearExtensionData + + + + Retrieves statistics about the amount of data being stored by extensions registered with vCenter Server + ExtensionManager.queryExtensionDataUsage + + + + Finds entities managed by an extension + ExtensionManager.queryManagedBy + + + + Query statistics about IP allocation usage, system-wide or for specified extensions + ExtensionManager.queryExtensionIpAllocationUsage + + + + Enable replication of virtual machine + HbrManager.enableReplication + + + + Disable replication of virtual machine + HbrManager.disableReplication + + + + Reconfigure replication for virtual machine + HbrManager.reconfigureReplication + + + + Retrieve replication configuration of virtual machine + HbrManager.retrieveReplicationConfig + + + + Pause replication of virtual machine + HbrManager.pauseReplication + + + + Resume replication of virtual machine + HbrManager.resumeReplication + + + + Start a replication resynchronization for virtual machine + HbrManager.fullSync + + + + Start extraction and transfer of a new replication instance for virtual machine + HbrManager.createInstance + + + + Transfer a replication instance for powered-off virtual machine + HbrManager.startOfflineInstance + + + + Stop replication of powered-off virtual machine + HbrManager.stopOfflineInstance + + + + Qureies the current state of a replicated virtual machine + HbrManager.queryReplicationState + + + + queryReplicationCapabilities + HbrManager.queryReplicationCapabilities + + + + Sets the value of a custom field of a host storage system + host.StorageSystem.setCustomValue + + + + Gets the partition information for the disks named by the device names + host.StorageSystem.retrieveDiskPartitionInfo + + + + Computes the disk partition information given the desired disk layout + host.StorageSystem.computeDiskPartitionInfo + + + + Compute disk partition information for resizing a partition + host.StorageSystem.computeDiskPartitionInfoForResize + + + + Change the partitions on the disk by supplying a partition specification and the device name + host.StorageSystem.updateDiskPartitions + + + + Formats a new VMFS on a disk partition + host.StorageSystem.formatVmfs + + + + Mounts an unmounted VMFS volume + host.StorageSystem.mountVmfsVolume + + + + Unmount a mounted VMFS volume + host.StorageSystem.unmountVmfsVolume + + + + Unmounts one or more mounted VMFS volumes + host.StorageSystem.unmountVmfsVolumeEx + + + + mountVmfsVolumeEx + host.StorageSystem.mountVmfsVolumeEx + + + + unmapVmfsVolumeEx + host.StorageSystem.unmapVmfsVolumeEx + + + + Removes the state information for a previously unmounted VMFS volume + host.StorageSystem.deleteVmfsVolumeState + + + + Rescan for new VMFS volumes + host.StorageSystem.rescanVmfs + + + + Extend a VMFS by attaching a disk partition + host.StorageSystem.attachVmfsExtent + + + + Expand the capacity of the VMFS extent + host.StorageSystem.expandVmfsExtent + + + + Upgrade the VMFS to the current VMFS version + host.StorageSystem.upgradeVmfs + + + + Relocate the disks for all virtual machines into directories if stored in the ROOT + host.StorageSystem.upgradeVmLayout + + + + Query for the list of unbound VMFS volumes + host.StorageSystem.queryUnresolvedVmfsVolume + + + + Resolve the detected copies of VMFS volumes + host.StorageSystem.resolveMultipleUnresolvedVmfsVolumes + + + + Resolves the detected copies of VMFS volumes + host.StorageSystem.resolveMultipleUnresolvedVmfsVolumesEx + + + + Unmounts a force mounted VMFS volume + host.StorageSystem.unmountForceMountedVmfsVolume + + + + Rescan a specific storage adapter for new storage devices + host.StorageSystem.rescanHba + + + + Rescan all storage adapters for new storage devices + host.StorageSystem.rescanAllHba + + + + Enables or disables Software Internet SCSI + host.StorageSystem.updateSoftwareInternetScsiEnabled + + + + Updates the discovery properties for an Internet SCSI host bus adapter + host.StorageSystem.updateInternetScsiDiscoveryProperties + + + + Updates the authentication properties for an Internet SCSI host bus adapter + host.StorageSystem.updateInternetScsiAuthenticationProperties + + + + Update the digest properties of an Internet SCSI host bus adapter or target + host.StorageSystem.updateInternetScsiDigestProperties + + + + Update the advanced options of an Internet SCSI host bus adapter or target + host.StorageSystem.updateInternetScsiAdvancedOptions + + + + Updates the IP properties for an Internet SCSI host bus adapter + host.StorageSystem.updateInternetScsiIPProperties + + + + Updates the name of an Internet SCSI host bus adapter + host.StorageSystem.updateInternetScsiName + + + + Updates the alias of an Internet SCSI host bus adapter + host.StorageSystem.updateInternetScsiAlias + + + + Adds send target entries to the host bus adapter discovery list + host.StorageSystem.addInternetScsiSendTargets + + + + Removes send target entries from the host bus adapter discovery list + host.StorageSystem.removeInternetScsiSendTargets + + + + Adds static target entries to the host bus adapter discovery list + host.StorageSystem.addInternetScsiStaticTargets + + + + Removes static target entries from the host bus adapter discovery list + host.StorageSystem.removeInternetScsiStaticTargets + + + + Enable a path for a logical unit + host.StorageSystem.enableMultipathPath + + + + Disable a path for a logical unit + host.StorageSystem.disableMultipathPath + + + + Set the multipath policy for a logical unit + host.StorageSystem.setMultipathLunPolicy + + + + Queries the set of path selection policy options + host.StorageSystem.queryPathSelectionPolicyOptions + + + + Queries the set of storage array type policy options + host.StorageSystem.queryStorageArrayTypePolicyOptions + + + + Updates the display name of a SCSI LUN + host.StorageSystem.updateScsiLunDisplayName + + + + Blocks I/O operations to the attached SCSI LUN + host.StorageSystem.detachScsiLun + + + + Blocks I/O operations to one or more attached SCSI LUNs + host.StorageSystem.detachScsiLunEx + + + + Removes the state information for a previously detached SCSI LUN + host.StorageSystem.deleteScsiLunState + + + + Allow I/O issue to the specified detached SCSI LUN + host.StorageSystem.attachScsiLun + + + + Enables I/O operations to one or more detached SCSI LUNs + host.StorageSystem.attachScsiLunEx + + + + Refresh the storage information and settings to pick up any changes that have occurred + host.StorageSystem.refresh + + + + Discovers new storage using FCOE + host.StorageSystem.discoverFcoeHbas + + + + Mark or unmark the specified FCOE HBA for removal from the host system + host.StorageSystem.markForRemoval + + + + Formats a new VFFS on a SSD disk + host.StorageSystem.formatVffs + + + + Extends a VFFS by attaching a SSD disk + host.StorageSystem.extendVffs + + + + Deletes a VFFS from the host + host.StorageSystem.destroyVffs + + + + Mounts an unmounted VFFS volume + host.StorageSystem.mountVffsVolume + + + + Unmounts a mounted VFFS volume + host.StorageSystem.unmountVffsVolume + + + + Removes the state information for a previously unmounted VFFS volume + host.StorageSystem.deleteVffsVolumeState + + + + Rescans for new VFFS volumes + host.StorageSystem.rescanVffs + + + + Queries available SSD disks + host.StorageSystem.queryAvailableSsds + + + + Sets an NFS user + host.StorageSystem.setNFSUser + + + + Changes the password of an NFS user + host.StorageSystem.changeNFSUserPassword + + + + Queries an NFS user + host.StorageSystem.queryNFSUser + + + + Deletes an NFS user + host.StorageSystem.clearNFSUser + + + + Turns on one or more disk locator LEDs + host.StorageSystem.turnDiskLocatorLedOn + + + + Turns off one or more disk locator LEDs + host.StorageSystem.turnDiskLocatorLedOff + + + + Marks the disk as a flash disk + host.StorageSystem.markAsSsd + + + + Marks the disk as a HDD disk + host.StorageSystem.markAsNonSsd + + + + Marks the disk as a local disk + host.StorageSystem.markAsLocal + + + + Marks the disk as a remote disk + host.StorageSystem.markAsNonLocal + + + + QueryIoFilterProviderId + host.StorageSystem.QueryIoFilterProviderId + + + + FetchIoFilterSharedSecret + host.StorageSystem.FetchIoFilterSharedSecret + + + + Updates the priority of VMFS space reclamation operation + host.StorageSystem.updateVmfsUnmapPriority + + + + Query VMFS config option + host.StorageSystem.queryVmfsConfigOption + + + + Checks whether the specified VMs can be migrated with vMotion to all the specified hosts + vm.check.ProvisioningChecker.queryVMotionCompatibilityEx + + + + Checks whether the VM can be migrated to the specified destination host, resource pool, and datastores + vm.check.ProvisioningChecker.checkMigrate + + + + Checks whether the VM can be relocated to the specified destination host, resource pool, and datastores + vm.check.ProvisioningChecker.checkRelocate + + + + Checks whether the VM can be cloned to the specified destination host, resource pool, and datastores + vm.check.ProvisioningChecker.checkClone + + + + checkInstantClone + vm.check.ProvisioningChecker.checkInstantClone + + + + Create cluster profile + profile.cluster.ProfileManager.createProfile + + + + Query policy metadata + profile.cluster.ProfileManager.queryPolicyMetadata + + + + Find associated profile + profile.cluster.ProfileManager.findAssociatedProfile + + + + Prepare vCenter HA setup on the local vCenter Server + vcha.FailoverClusterConfigurator.prepare + + + + Deploy and configure vCenter HA on the local vCenter Server + vcha.FailoverClusterConfigurator.deploy + + + + Configure vCenter HA on the local vCenter Server + vcha.FailoverClusterConfigurator.configure + + + + Create a passive node in a vCenter HA Cluster + vcha.FailoverClusterConfigurator.createPassiveNode + + + + Create a witness node in a vCenter HA Cluster + vcha.FailoverClusterConfigurator.createWitnessNode + + + + getConfig + vcha.FailoverClusterConfigurator.getConfig + + + + Destroy the vCenter HA cluster setup and remove all configuration files + vcha.FailoverClusterConfigurator.destroy + + + + Returns the current time on the server + ServiceInstance.currentTime + + + + Get the properties of the service instance + ServiceInstance.retrieveContent + + + + Retrieves the internal properties of the service instance + ServiceInstance.retrieveInternalContent + + + + Checks for errors and warnings of virtual machines migrated from one host to another + ServiceInstance.validateMigration + + + + Validates the vMotion compatibility of a set of hosts + ServiceInstance.queryVMotionCompatibility + + + + Component information for bundled products + ServiceInstance.retrieveProductComponents + + + + Create vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.createDistributedVirtualSwitch + + + + Remove vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.removeDistributedVirtualSwitch + + + + Reconfigure vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.reconfigureDistributedVirtualSwitch + + + + Update dvPort + dvs.HostDistributedVirtualSwitchManager.updatePorts + + + + Delete ports + dvs.HostDistributedVirtualSwitchManager.deletePorts + + + + Retrieve port state + dvs.HostDistributedVirtualSwitchManager.fetchPortState + + + + Clone port + dvs.HostDistributedVirtualSwitchManager.clonePort + + + + Retrieve vSphere Distributed Switch configuration specification + dvs.HostDistributedVirtualSwitchManager.retrieveDvsConfigSpec + + + + Update Distributed Port Group + dvs.HostDistributedVirtualSwitchManager.updateDVPortgroups + + + + Retrieve the list of port group keys on a given vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroup + + + + Retrievs the configuration specification for distributed virtual port groups + dvs.HostDistributedVirtualSwitchManager.retrieveDVPortgroupConfigSpec + + + + Load port + dvs.HostDistributedVirtualSwitchManager.loadDVPort + + + + Retrieve the list of port keys on the given vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.retrieveDVPort + + + + Update dvPort + dvs.HostDistributedVirtualSwitchManager.applyDVPort + + + + Update Distributed Port Group + dvs.HostDistributedVirtualSwitchManager.applyDVPortgroup + + + + Update vSphere Distributed Switch + dvs.HostDistributedVirtualSwitchManager.applyDvs + + + + Update vSphere Distributed Switch list + dvs.HostDistributedVirtualSwitchManager.applyDvsList + + + + Update Distributed Port Group list + dvs.HostDistributedVirtualSwitchManager.applyDVPortgroupList + + + + Update dvPort list + dvs.HostDistributedVirtualSwitchManager.applyDVPortList + + + + Execute opaque command + dvs.HostDistributedVirtualSwitchManager.executeOpaqueCommand + + + + Creates a default host profile of the specified type + profile.host.profileEngine.HostProfileManager.createDefaultProfile + + + + Gets the profile policy option metadata for the specified policy names + profile.host.profileEngine.HostProfileManager.queryPolicyMetadata + + + + Gets the profile metadata for the specified profile names and profile types + profile.host.profileEngine.HostProfileManager.queryProfileMetadata + + + + Gets the profile category metadata for the specified category names + profile.host.profileEngine.HostProfileManager.queryProfileCategoryMetadata + + + + Gets the profile component metadata for the specified component names + profile.host.profileEngine.HostProfileManager.queryProfileComponentMetadata + + + + Executes the host profile manager engine + profile.host.profileEngine.HostProfileManager.execute + + + + Bookkeep host profile + profile.host.profileEngine.HostProfileManager.bookKeep + + + + Retrieves description of a profile + profile.host.profileEngine.HostProfileManager.retrieveProfileDescription + + + + Update configuration tasks from host configuration + profile.host.profileEngine.HostProfileManager.updateTaskConfigSpec + + + + generateTaskList + profile.host.profileEngine.HostProfileManager.generateTaskList + + + + generateHostConfigTaskSpec + profile.host.profileEngine.HostProfileManager.generateHostConfigTaskSpec + + + + Retrieves a profile from the host's configuration + profile.host.profileEngine.HostProfileManager.retrieveProfile + + + + Prepares a host profile for export + profile.host.profileEngine.HostProfileManager.prepareExport + + + + Gets a list of policy options that are set to require user inputs + profile.host.profileEngine.HostProfileManager.queryUserInputPolicyOptions + + + + Gets information about the structure of a profile + profile.host.profileEngine.HostProfileManager.queryProfileStructure + + + + Applies the specified host configuration to the host + profile.host.profileEngine.HostProfileManager.applyHostConfig + + + + Gets the current state of the host profile manager and plug-ins on a host + profile.host.profileEngine.HostProfileManager.queryState + + + + Checks whether a virtual machine is compatible on a host + vm.check.CompatibilityChecker.checkCompatibility + + + + Checks compatibility of a VM specification on a host + vm.check.CompatibilityChecker.checkVMCompatibility + + + + Location information that needs to match a service + ServiceManager.queryServiceList + + + + Remove the inventory view object + view.InventoryView.destroy + + + + Adds the child objects of a given managed entity to the view + view.InventoryView.openFolder + + + + Notify the server that folders have been closed + view.InventoryView.closeFolder + + + + Reconfigure host update proxy + host.HostUpdateProxyManager.reconfigureHostUpdateProxy + + + + Retrieve configuration of the host update proxy + host.HostUpdateProxyManager.retrieveHostUpdateProxyConfig + + + + Updates VMCI (Virtual Machine Communication Interface) access rights for one or more virtual machines + host.VmciAccessManager.updateAccess + + + + Retrieve VMCI (Virtual Machine Communication Interface) service rights granted to a VM + host.VmciAccessManager.retrieveGrantedServices + + + + Gets the VMs with granted access to a service + host.VmciAccessManager.queryAccessToService + + + + promoteDisks + host.LowLevelProvisioningManager.promoteDisks + + + + Creates a virtual machine on disk + host.LowLevelProvisioningManager.createVm + + + + Deletes a virtual machine on disk + host.LowLevelProvisioningManager.deleteVm + + + + Deletes a virtual machine from its storage, all virtual machine files are deleted except its associated virtual disks + host.LowLevelProvisioningManager.deleteVmExceptDisks + + + + Retrieves virtual machine recovery information + host.LowLevelProvisioningManager.retrieveVmRecoveryInfo + + + + Retrieves the last virtual machine migration status if available + host.LowLevelProvisioningManager.retrieveLastVmMigrationStatus + + + + Reconfigures the virtual machine + host.LowLevelProvisioningManager.reconfigVM + + + + Reloads virtual disk information + host.LowLevelProvisioningManager.reloadDisks + + + + Consolidates virtual disks + host.LowLevelProvisioningManager.consolidateDisks + + + + Updates the snapshot layout information of a virtual machine and reloads its snapshots + host.LowLevelProvisioningManager.relayoutSnapshots + + + + Reserves files or directories on a datastore to be used for a provisioning + host.LowLevelProvisioningManager.reserveFiles + + + + Deletes a list of files from a datastore + host.LowLevelProvisioningManager.deleteFiles + + + + Extracts the NVRAM content from a checkpoint file + host.LowLevelProvisioningManager.extractNvramContent + + + + setCustomValue + external.ContentLibraryItem.setCustomValue + + + + reload + external.ContentLibraryItem.reload + + + + rename + external.ContentLibraryItem.rename + + + + destroy + external.ContentLibraryItem.destroy + + + + addTag + external.ContentLibraryItem.addTag + + + + removeTag + external.ContentLibraryItem.removeTag + + + + retrieveCustomValues + external.ContentLibraryItem.retrieveCustomValues + + + + Remove a list view object from current contents of this view + view.ContainerView.destroy + + + + Sets the value of a custom field of a datastore + Datastore.setCustomValue + + + + Reload information about the datastore + Datastore.reload + + + + Renames a datastore + Datastore.rename + + + + Removes a datastore if it is not used by any host or virtual machine + Datastore.destroy + + + + Add a set of tags to the datastore + Datastore.addTag + + + + Remove a set of tags from the datastore + Datastore.removeTag + + + + retrieveCustomValues + Datastore.retrieveCustomValues + + + + Refreshes free space on this datastore + Datastore.refresh + + + + Refresh the storage information of the datastore + Datastore.refreshStorageInfo + + + + Update virtual machine files on the datastore + Datastore.updateVirtualMachineFiles + + + + Rename the datastore + Datastore.renameDatastore + + + + Delete datastore + Datastore.destroyDatastore + + + + Replace embedded file paths on the datastore + Datastore.replaceEmbeddedFilePaths + + + + Virtual machine evacuation recommendations from the selected datastore are generated for SDRS maintenance mode + Datastore.enterMaintenanceMode + + + + Exit SDRS maintenance mode + Datastore.exitMaintenanceMode + + + + Check if the datastore supports native clone + Datastore.isNativeCloneCapable + + + + Cleanup lock files on NFSV3 datastore + Datastore.cleanupLocks + + + + updateVVolVirtualMachineFiles + Datastore.updateVVolVirtualMachineFiles + + + + Create a scheduled task + scheduler.ScheduledTaskManager.create + + + + Available scheduled tasks defined on the entity + scheduler.ScheduledTaskManager.retrieveEntityScheduledTask + + + + Create a scheduled task + scheduler.ScheduledTaskManager.createObjectScheduledTask + + + + Available scheduled tasks defined on the object + scheduler.ScheduledTaskManager.retrieveObjectScheduledTask + + + + Add a new role + AuthorizationManager.addRole + + + + Remove a role + AuthorizationManager.removeRole + + + + Update a role's name and/or privileges + AuthorizationManager.updateRole + + + + Reassign all permissions of a role to another role + AuthorizationManager.mergePermissions + + + + Gets all the permissions that use a particular role + AuthorizationManager.retrieveRolePermissions + + + + Get permissions defined on an entity + AuthorizationManager.retrieveEntityPermissions + + + + Get the permissions defined for all users + AuthorizationManager.retrieveAllPermissions + + + + retrievePermissions + AuthorizationManager.retrievePermissions + + + + Define or update permission rules on an entity + AuthorizationManager.setEntityPermissions + + + + Reset permission rules on an entity to the provided set + AuthorizationManager.resetEntityPermissions + + + + Remove a permission rule from the entity + AuthorizationManager.removeEntityPermission + + + + Get the list of source objects that have been disabled on the target entity + AuthorizationManager.queryDisabledMethods + + + + Gets the set of method names to be disabled + AuthorizationManager.disableMethods + + + + Gets the set of method names to be enabled + AuthorizationManager.enableMethods + + + + Checks whether a session holds a set of privileges on a managed entity + AuthorizationManager.hasPrivilegeOnEntity + + + + Checks whether a session holds a set of privileges on a set of managed entities + AuthorizationManager.hasPrivilegeOnEntities + + + + hasUserPrivilegeOnEntities + AuthorizationManager.hasUserPrivilegeOnEntities + + + + fetchUserPrivilegeOnEntities + AuthorizationManager.fetchUserPrivilegeOnEntities + + + + Checks whether a session holds a set of privileges required to invoke a specified method + AuthorizationManager.checkMethodInvocation + + + + Get the permission requirements for the specified request + AuthorizationManager.queryPermissions + + + + <internal> + ServiceDirectory.queryServiceEndpointList + + + + Registers a service endpoint + ServiceDirectory.registerService + + + + Unregisters a service endpoint + ServiceDirectory.unregisterService + + + + Returns nodes in the option hierarchy + option.OptionManager.queryView + + + + Updates one or more properties + option.OptionManager.updateValues + + + + validate + vdcs.NicManager.validate + + + + bind + vdcs.NicManager.bind + + + + unbind + vdcs.NicManager.unbind + + + + Check the existence of a specification + CustomizationSpecManager.exists + + + + Gets a specification + CustomizationSpecManager.get + + + + Create a new specification + CustomizationSpecManager.create + + + + Overwrite an existing specification + CustomizationSpecManager.overwrite + + + + Delete a specification + CustomizationSpecManager.delete + + + + Duplicate a specification + CustomizationSpecManager.duplicate + + + + Rename a specification + CustomizationSpecManager.rename + + + + Convert a specification item to XML text + CustomizationSpecManager.specItemToXml + + + + Convert an XML string to a specification item + CustomizationSpecManager.xmlToSpecItem + + + + Validate that required resources are available on the server to customize a particular guest operating system + CustomizationSpecManager.checkResources + + + + Sets the value of a custom field for a cluster of objects as a unified compute-resource + ClusterComputeResource.setCustomValue + + + + Reloads the cluster + ClusterComputeResource.reload + + + + Rename the compute-resource + ClusterComputeResource.rename + + + + Deletes the cluster compute-resource and removes it from its parent folder (if any) + ClusterComputeResource.destroy + + + + Add a set of tags to the cluster + ClusterComputeResource.addTag + + + + Removes a set of tags from the cluster + ClusterComputeResource.removeTag + + + + retrieveCustomValues + ClusterComputeResource.retrieveCustomValues + + + + Reconfigures a cluster + ClusterComputeResource.reconfigureEx + + + + Reconfigures a cluster + ClusterComputeResource.reconfigure + + + + Applies a recommendation + ClusterComputeResource.applyRecommendation + + + + Cancels a recommendation + ClusterComputeResource.cancelRecommendation + + + + Get recommendations for a location to power on a specific virtual machine + ClusterComputeResource.recommendHostsForVm + + + + Adds a new host to the cluster + ClusterComputeResource.addHost + + + + Adds a new host to the cluster and enables lockdown mode on the host + ClusterComputeResource.addHostWithAdminDisabled + + + + Moves a set of existing hosts into the cluster + ClusterComputeResource.moveInto + + + + Moves a host into the cluster + ClusterComputeResource.moveHostInto + + + + Refreshes the list of recommendations + ClusterComputeResource.refreshRecommendation + + + + Retrieve Enhanced vMotion Compatibility information for this cluster + ClusterComputeResource.evcManager + + + + Retrieve the transitional EVC manager for this cluster + ClusterComputeResource.transitionalEVCManager + + + + Retrieve DAS advanced runtime information for this cluster + ClusterComputeResource.retrieveDasAdvancedRuntimeInfo + + + + Retrieves HA data for a cluster + ClusterComputeResource.retrieveDasData + + + + Checks if HA admission control allows a set of virtual machines to be powered on in the cluster + ClusterComputeResource.checkDasAdmission + + + + Check how the specified HA config will affect the cluster state if high availability is enabled + ClusterComputeResource.checkReconfigureDas + + + + checkReconfigureDasVmcp + ClusterComputeResource.checkReconfigureDasVmcp + + + + DRS recommends hosts to evacuate + ClusterComputeResource.enterMaintenanceMode + + + + Find the set of Fault Tolerance compatible hosts for placing secondary of a given primary virtual machine + ClusterComputeResource.queryFaultToleranceCompatibleHosts + + + + Find the set of Fault Tolerance compatible datastores for a given virtual machine + ClusterComputeResource.queryFaultToleranceCompatibleDatastores + + + + Verify whether a given FaultToleranceConfigSpec satisfies the requirements for Fault Tolerance + ClusterComputeResource.verifyFaultToleranceConfigSpec + + + + Check whether a VM is compatible for turning on Fault Tolerance + ClusterComputeResource.queryCompatibilityForFaultTolerance + + + + Calls vSphere DRS for placement recommendations when migrating a VM across vCenter Server instances and virtual switches + ClusterComputeResource.placeVm + + + + Locates all affinity and anti-affinity rules the specified VM participates in + ClusterComputeResource.findRulesForVm + + + + stampAllRulesWithUuid + ClusterComputeResource.stampAllRulesWithUuid + + + + getResourceUsage + ClusterComputeResource.getResourceUsage + + + + queryDrmDumpHistory + ClusterComputeResource.queryDrmDumpHistory + + + + generateDrmBundle + ClusterComputeResource.generateDrmBundle + + + + waitForChanges + cdc.ChangeLogCollector.waitForChanges + + + + initializeSequence + cdc.ChangeLogCollector.initializeSequence + + + + exchangeSequence + cdc.ChangeLogCollector.exchangeSequence + + + + Generates a certificate signing request (CSR) for the host + host.CertificateManager.generateCertificateSigningRequest + + + + Generates a certificate signing request (CSR) for the host using the specified Distinguished Name + host.CertificateManager.generateCertificateSigningRequestByDn + + + + Installs a server certificate for the host + host.CertificateManager.installServerCertificate + + + + Replaces the CA certificates and certificate revocation lists (CRLs) on the host + host.CertificateManager.replaceCACertificatesAndCRLs + + + + Notifies the host services affected by SSL credentials change + host.CertificateManager.notifyAffectedServices + + + + Lists the CA certificates on the host + host.CertificateManager.listCACertificates + + + + Lists the CA certificate revocation lists (CRLs) on the host + host.CertificateManager.listCACertificateRevocationLists + + + + Sets the value of a custom field of a host CPU scheduler + host.CpuSchedulerSystem.setCustomValue + + + + Enable hyperthreads as schedulable resources + host.CpuSchedulerSystem.enableHyperThreading + + + + Disable hyperthreads as schedulable resources + host.CpuSchedulerSystem.disableHyperThreading + + + + Returns the information for the files that match the given search criteria + host.DatastoreBrowser.search + + + + Returns the information for the files that match the given search criteria + host.DatastoreBrowser.searchSubFolders + + + + Deletes the specified files from the datastore + host.DatastoreBrowser.deleteFile + + + + Update the date and time on the host + host.DateTimeSystem.updateConfig + + + + Retrieves the list of available time zones on the host + host.DateTimeSystem.queryAvailableTimeZones + + + + Get the current date and time on the host + host.DateTimeSystem.queryDateTime + + + + Update the date/time on the host + host.DateTimeSystem.updateDateTime + + + + Refresh the date and time settings + host.DateTimeSystem.refresh + + + + Acquire a lease for the files associated with the virtual disk referenced by the given datastore path + host.DiskManager.acquireLease + + + + Acquires a lease for the files associated with the virtual disk of a virtual machine + host.DiskManager.acquireLeaseExt + + + + Resets the watchdog timer and confirms that all the locks for all the disks managed by this watchdog are still valid + host.DiskManager.renewAllLeases + + + + Sets the value of a custom field of a task + Task.setCustomValue + + + + Cancels a running/queued task + Task.cancel + + + + Update task progress + Task.UpdateProgress + + + + Sets task state + Task.setState + + + + Updates task description with the current phase of the task + Task.UpdateDescription + + + + Renew a lease to prevent it from timing out + host.DiskManager.Lease.renew + + + + End the lease if it is still active + host.DiskManager.Lease.release + + + + Prepare for writing to blocks + host.DiskManager.Lease.allocateBlocks + + + + Honor the contents of a block range + host.DiskManager.Lease.clearLazyZero + + + + Mapping a specified region of a virtual disk + host.DiskManager.Lease.MapDiskRegion + + + + Updates the ESX agent configuration of a host + host.EsxAgentHostManager.updateConfig + + + + Reset the configuration to factory default + host.FirmwareSystem.resetToFactoryDefaults + + + + Backup the configuration of the host + host.FirmwareSystem.backupConfiguration + + + + Host configuration must be uploaded for a restore operation + host.FirmwareSystem.queryConfigUploadURL + + + + Restore configuration of the host + host.FirmwareSystem.restoreConfiguration + + + + Writes the configuration of the firmware system to persistent storage + host.FirmwareSystem.syncConfiguration + + + + queryQuantumMinutes + host.FirmwareSystem.queryQuantumMinutes + + + + querySyncsPerQuantum + host.FirmwareSystem.querySyncsPerQuantum + + + + Refresh hardware information + host.HealthStatusSystem.refresh + + + + Resets the state of the sensors of the IPMI subsystem + host.HealthStatusSystem.resetSystemHealthInfo + + + + Clear hardware IPMI System Event Log + host.HealthStatusSystem.clearSystemEventLog + + + + Refresh hardware IPMI System Event Log + host.HealthStatusSystem.FetchSystemEventLog + + + + Retrieves the access mode for each user or group with access permissions on the host + host.HostAccessManager.retrieveAccessEntries + + + + Changes the access mode for a user or group on the host + host.HostAccessManager.changeAccessMode + + + + Retrieves the list of users with special access to DCUI + host.HostAccessManager.queryDcuiAccess + + + + Updates the list of users with special access to DCUI + host.HostAccessManager.updateDcuiAccess + + + + Retrieve the list of special system users on the host + host.HostAccessManager.querySystemUsers + + + + Updates the list of special system users on the host + host.HostAccessManager.updateSystemUsers + + + + Queries the current list of user exceptions for lockdown mode + host.HostAccessManager.queryLockdownExceptions + + + + Updates the current list of user exceptions for lockdown mode + host.HostAccessManager.updateLockdownExceptions + + + + Changes lockdown mode on the host + host.HostAccessManager.changeLockdownMode + + + + Get acceptance level settings for host image configuration + host.ImageConfigManager.queryHostAcceptanceLevel + + + + Queries the current host image profile information + host.ImageConfigManager.queryHostImageProfile + + + + Updates the acceptance level of a host + host.ImageConfigManager.updateAcceptanceLevel + + + + fetchSoftwarePackages + host.ImageConfigManager.fetchSoftwarePackages + + + + installDate + host.ImageConfigManager.installDate + + + + Retrieves information about the kernel modules on the host + host.KernelModuleSystem.queryModules + + + + Specifies the options to be passed to the kernel module when loaded + host.KernelModuleSystem.updateModuleOptionString + + + + Retrieves the options configured to be passed to a kernel module when loaded + host.KernelModuleSystem.queryConfiguredModuleOptionString + + + + Sets the value of a custom field of a host memory manager system + host.MemoryManagerSystem.setCustomValue + + + + Set the configured service console memory reservation + host.MemoryManagerSystem.reconfigureServiceConsoleReservation + + + + Updates the virtual machine reservation information + host.MemoryManagerSystem.reconfigureVirtualMachineReservation + + + + Query the common message bus proxy service information + host.MessageBusProxy.retrieveInfo + + + + Configure the common message bus proxy service + host.MessageBusProxy.configure + + + + Remove the common message proxy service configuration and disable the service + host.MessageBusProxy.unconfigure + + + + Start the common message bus proxy service + host.MessageBusProxy.start + + + + Stop the common message bus proxy service + host.MessageBusProxy.stop + + + + Reload the common message bus proxy service and enable any configuration changes + host.MessageBusProxy.reload + + + + Sets the value of a custom field of a host service system. + host.ServiceSystem.setCustomValue + + + + Updates the activation policy of the service + host.ServiceSystem.updatePolicy + + + + Starts the service + host.ServiceSystem.start + + + + Stops the service + host.ServiceSystem.stop + + + + Restarts the service + host.ServiceSystem.restart + + + + Uninstalls the service + host.ServiceSystem.uninstall + + + + Refresh the service information and settings to detect any changes made directly on the host + host.ServiceSystem.refresh + + + + Reconfigure the SNMP agent + host.SnmpSystem.reconfigureSnmpAgent + + + + Send test notification + host.SnmpSystem.sendTestNotification + + + + Configures virtual flash resource on a list of SSD devices + host.VFlashManager.configureVFlashResourceEx + + + + Configures virtual flash resource on a host + host.VFlashManager.configureVFlashResource + + + + Removes virtual flash resource from a host + host.VFlashManager.removeVFlashResource + + + + Configures virtual flash host swap cache + host.VFlashManager.configureHostVFlashCache + + + + Retrieves virtual flash module configuration options from a host + host.VFlashManager.getVFlashModuleDefaultConfig + + + + Queries disk eligibility for use in the vSAN cluster + host.VsanSystem.queryDisksForVsan + + + + Adds the selected disks to the vSAN cluster + host.VsanSystem.addDisks + + + + Initializes the selected disks to be used in the vSAN cluster + host.VsanSystem.initializeDisks + + + + Removes the disks that are used in the vSAN cluster + host.VsanSystem.removeDisk + + + + Removes the selected disk group from the vSAN cluster + host.VsanSystem.removeDiskMapping + + + + unmountDiskMapping + host.VsanSystem.unmountDiskMapping + + + + Updates the vSAN configuration for this host + host.VsanSystem.update + + + + Retrieves the current vSAN runtime information for this host + host.VsanSystem.queryHostStatus + + + + Evacuates the specified host from the vSAN cluster + host.VsanSystem.evacuateNode + + + + Recommissions the host back to vSAN cluster + host.VsanSystem.recommissionNode + + + + Retrieves a ticket to register the VASA Provider for vSAN in the Storage Monitoring Service + host.VsanSystem.fetchVsanSharedSecret + + + + Enables ActiveDirectory authentication on the host + host.ActiveDirectoryAuthentication.joinDomain + + + + Enables Active Directory authentication on the host using a vSphere Authentication Proxy server + host.ActiveDirectoryAuthentication.joinDomainWithCAM + + + + Import the certificate of vSphere Authentication Proxy server to ESXi's authentication store + host.ActiveDirectoryAuthentication.importCertificateForCAM + + + + Disables ActiveDirectory authentication on the host + host.ActiveDirectoryAuthentication.leaveCurrentDomain + + + + Enables smart card authentication of ESXi Direct Console UI users + host.ActiveDirectoryAuthentication.enableSmartCardAuthentication + + + + Installs a smart card trust anchor on the host + host.ActiveDirectoryAuthentication.installSmartCardTrustAnchor + + + + replaceSmartCardTrustAnchors + host.ActiveDirectoryAuthentication.replaceSmartCardTrustAnchors + + + + Removes an installed smart card trust anchor from the host + host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchor + + + + Removes the installed smart card trust anchor from the host + host.ActiveDirectoryAuthentication.removeSmartCardTrustAnchorByFingerprint + + + + Lists the smart card trust anchors installed on the host + host.ActiveDirectoryAuthentication.listSmartCardTrustAnchors + + + + Disables smart card authentication of ESXi Direct Console UI users + host.ActiveDirectoryAuthentication.disableSmartCardAuthentication + + + + Changes the datastore for virtual machine swap files + host.DatastoreSystem.updateLocalSwapDatastore + + + + Retrieves the list of disks that can be used to contain VMFS datastore extents + host.DatastoreSystem.queryAvailableDisksForVmfs + + + + Queries options for creating a new VMFS datastore for a disk + host.DatastoreSystem.queryVmfsDatastoreCreateOptions + + + + Creates a new VMFS datastore + host.DatastoreSystem.createVmfsDatastore + + + + Queries options for extending an existing VMFS datastore for a disk + host.DatastoreSystem.queryVmfsDatastoreExtendOptions + + + + Query the options available for expanding the extents of a VMFS datastore + host.DatastoreSystem.queryVmfsDatastoreExpandOptions + + + + Extends an existing VMFS datastore + host.DatastoreSystem.extendVmfsDatastore + + + + Expand the capacity of a VMFS datastore extent + host.DatastoreSystem.expandVmfsDatastore + + + + processVmfsDatastoreUpdate + host.DatastoreSystem.processVmfsDatastoreUpdate + + + + Creates a new Network Attached Storage (NAS) datastore + host.DatastoreSystem.createNasDatastore + + + + Creates a new local datastore + host.DatastoreSystem.createLocalDatastore + + + + Updates the Virtual Volume datastore configuration according to the provided settings + host.DatastoreSystem.UpdateVvolDatastoreInternal + + + + Creates a datastore backed by a Virtual Volume storage container + host.DatastoreSystem.createVvolDatastoreInternal + + + + Creates a Virtuial Volume datastore + host.DatastoreSystem.createVvolDatastore + + + + Removes a datastore from a host + host.DatastoreSystem.removeDatastore + + + + Removes one or more datastores from a host + host.DatastoreSystem.removeDatastoreEx + + + + Configures datastore principal user for the host + host.DatastoreSystem.configureDatastorePrincipal + + + + Gets the list of unbound VMFS volumes + host.DatastoreSystem.queryUnresolvedVmfsVolumes + + + + Resignature unresolved VMFS volume with new VMFS identifier + host.DatastoreSystem.resignatureUnresolvedVmfsVolume + + + + NotifyDatastore + host.DatastoreSystem.NotifyDatastore + + + + Check if the file objects for the specified virtual machine IDs are accessible + host.DatastoreSystem.checkVmFileAccessibility + + + + Sets the value of a custom field of a host firewall system + host.FirewallSystem.setCustomValue + + + + Updates the default firewall policy + host.FirewallSystem.updateDefaultPolicy + + + + Open the firewall ports belonging to the specified ruleset + host.FirewallSystem.enableRuleset + + + + Block the firewall ports belonging to the specified ruleset + host.FirewallSystem.disableRuleset + + + + Update the allowed IP list of the specified ruleset + host.FirewallSystem.updateRuleset + + + + Refresh the firewall information and settings to detect any changes made directly on the host + host.FirewallSystem.refresh + + + + Sets the value of a custom field of a host network system + host.NetworkSystem.setCustomValue + + + + Network configuration information + host.NetworkSystem.updateNetworkConfig + + + + Update the DNS configuration for the host + host.NetworkSystem.updateDnsConfig + + + + Update IP route configuration + host.NetworkSystem.updateIpRouteConfig + + + + Update console IP route configuration + host.NetworkSystem.updateConsoleIpRouteConfig + + + + Applies the IP route table configuration for the host + host.NetworkSystem.updateIpRouteTableConfig + + + + Add a new virtual switch to the system + host.NetworkSystem.addVirtualSwitch + + + + Remove an existing virtual switch from the system + host.NetworkSystem.removeVirtualSwitch + + + + Updates the properties of the virtual switch + host.NetworkSystem.updateVirtualSwitch + + + + Add a port group to the virtual switch + host.NetworkSystem.addPortGroup + + + + Remove a port group from the virtual switch + host.NetworkSystem.removePortGroup + + + + Reconfigure a port group on the virtual switch + host.NetworkSystem.updatePortGroup + + + + Configure link speed and duplexity + host.NetworkSystem.updatePhysicalNicLinkSpeed + + + + Request network hint information for a physical NIC + host.NetworkSystem.queryNetworkHint + + + + Add a virtual host or service console NIC + host.NetworkSystem.addVirtualNic + + + + Remove a virtual host or service console NIC + host.NetworkSystem.removeVirtualNic + + + + Configure virtual host or VMkernel NIC + host.NetworkSystem.updateVirtualNic + + + + Add a virtual service console NIC + host.NetworkSystem.addServiceConsoleVirtualNic + + + + Remove a virtual service console NIC + host.NetworkSystem.removeServiceConsoleVirtualNic + + + + Update IP configuration for a service console virtual NIC + host.NetworkSystem.updateServiceConsoleVirtualNic + + + + Restart the service console virtual network adapter interface + host.NetworkSystem.restartServiceConsoleVirtualNic + + + + Refresh the network information and settings to detect any changes that have occurred + host.NetworkSystem.refresh + + + + Invoke API call on host with transactionId + host.NetworkSystem.invokeHostTransactionCall + + + + Commit transaction to confirm that host is connected to vCenter Server + host.NetworkSystem.commitTransaction + + + + performHostOpaqueNetworkDataOperation + host.NetworkSystem.performHostOpaqueNetworkDataOperation + + + + Retrieves a list of available diagnostic partitions + host.DiagnosticSystem.queryAvailablePartition + + + + Changes the active diagnostic partition to a different partition + host.DiagnosticSystem.selectActivePartition + + + + Retrieves a list of disks that can be used to contain a diagnostic partition + host.DiagnosticSystem.queryPartitionCreateOptions + + + + Retrieves the diagnostic partition creation description for a disk + host.DiagnosticSystem.queryPartitionCreateDesc + + + + Creates a diagnostic partition according to the provided creation specification + host.DiagnosticSystem.createDiagnosticPartition + + + + Sets the value of a custom field on a vApp + VirtualApp.setCustomValue + + + + Reload the vApp + VirtualApp.reload + + + + Rename the vApp + VirtualApp.rename + + + + Delete the vApp, including all child vApps and virtual machines + VirtualApp.destroy + + + + Add a set of tags to the vApp + VirtualApp.addTag + + + + Remove a set of tags from the vApp + VirtualApp.removeTag + + + + retrieveCustomValues + VirtualApp.retrieveCustomValues + + + + Updates the resource configuration for the vApp + VirtualApp.updateConfig + + + + Moves a set of entities into this vApp + VirtualApp.moveInto + + + + Change resource configuration of a set of children of the vApp + VirtualApp.updateChildResourceConfiguration + + + + Creates a new resource pool + VirtualApp.createResourcePool + + + + Deletes all child resource pools recursively + VirtualApp.destroyChildren + + + + Creates a child vApp of this vApp + VirtualApp.createVApp + + + + Creates a virtual machine in this vApp + VirtualApp.createVm + + + + Adds an existing virtual machine to this vApp + VirtualApp.registerVm + + + + Deploys a virtual machine or vApp + VirtualApp.importVApp + + + + Returns configuration options for a set of resources for a Virtual App + VirtualApp.queryResourceConfigOption + + + + Refreshes the resource usage runtime information for a Virtual App + VirtualApp.refreshRuntime + + + + Updates the vApp configuration + VirtualApp.updateVAppConfig + + + + Updates the list of linked children + VirtualApp.updateLinkedChildren + + + + Clone the vApp, including all child entities + VirtualApp.clone + + + + Exports the vApp as an OVF template + VirtualApp.exportVApp + + + + Starts the vApp + VirtualApp.powerOn + + + + Stops the vApp + VirtualApp.powerOff + + + + Suspends the vApp + VirtualApp.suspend + + + + Unregister all child virtual machines and remove the vApp + VirtualApp.unregister + + + + Set the value of a custom filed of a host's virtual NIC manager + host.VirtualNicManager.setCustomValue + + + + Gets the network configuration for the specified NIC type + host.VirtualNicManager.queryNetConfig + + + + Select the virtual NIC to be used for the specified NIC type + host.VirtualNicManager.selectVnic + + + + Deselect the virtual NIC used for the specified NIC type + host.VirtualNicManager.deselectVnic + + + + Download overhead computation scheme script + OverheadService.downloadScript + + + + Download host configuration consumed by overhead computation script + OverheadService.downloadHostConfig + + + + Download VM configuration consumed by overhead computation script + OverheadService.downloadVMXConfig + + + + Add an alias to the alias store in the guest operating system + vm.guest.AliasManager.addAlias + + + + Remove an alias from the alias store in the guest operating system + vm.guest.AliasManager.removeAlias + + + + Remove all aliases associated with a SSO Server certificate from the guest operating system + vm.guest.AliasManager.removeAliasByCert + + + + List all aliases for a user in the guest operating system + vm.guest.AliasManager.listAliases + + + + List all mapped aliases in the guest operating system + vm.guest.AliasManager.listMappedAliases + + + + Create a directory in the guest operating system + vm.guest.FileManager.makeDirectory + + + + Delete a file in the guest operating system + vm.guest.FileManager.deleteFile + + + + Delete a directory in the guest operating system + vm.guest.FileManager.deleteDirectory + + + + Move or rename a directory in the guest operating system + vm.guest.FileManager.moveDirectory + + + + Move or rename a file in the guest operating system + vm.guest.FileManager.moveFile + + + + Create a temporary file in the guest operating system + vm.guest.FileManager.createTemporaryFile + + + + Create a temporary directory in the guest operating system + vm.guest.FileManager.createTemporaryDirectory + + + + List files or directories in the guest operating system + vm.guest.FileManager.listFiles + + + + Change the attributes of a file in the guest operating system + vm.guest.FileManager.changeFileAttributes + + + + Initiates an operation to transfer a file from the guest operating system + vm.guest.FileManager.initiateFileTransferFromGuest + + + + Initiates an operation to transfer a file to the guest operating system + vm.guest.FileManager.initiateFileTransferToGuest + + + + Start a program in the guest operating system + vm.guest.ProcessManager.startProgram + + + + List processes in the guest operating system + vm.guest.ProcessManager.listProcesses + + + + Terminate a process in the guest operating system + vm.guest.ProcessManager.terminateProcess + + + + Read an environment variable in the guest operating system + vm.guest.ProcessManager.readEnvironmentVariable + + + + Remove view + view.View.destroy + + + + Retrieves all the associated License Data objects + LicenseDataManager.queryEntityLicenseData + + + + Retrieves the license data associated with a specified managed entity + LicenseDataManager.queryAssociatedLicenseData + + + + Updates the license container associated with a specified managed entity + LicenseDataManager.updateAssociatedLicenseData + + + + Applies associated license data to a managed entity + LicenseDataManager.applyAssociatedLicenseData + + + + Updates the license assigned to an entity + LicenseAssignmentManager.updateAssignedLicense + + + + Removes an assignment of a license to an entity + LicenseAssignmentManager.removeAssignedLicense + + + + Queries for all the licenses assigned to an entity or all entities + LicenseAssignmentManager.queryAssignedLicenses + + + + Checks if the corresponding features are licensed for a list of entities + LicenseAssignmentManager.isFeatureAvailable + + + + Updates in-use status of a licensed feature + LicenseAssignmentManager.updateFeatureInUse + + + + Registers a licenseable entity + LicenseAssignmentManager.registerEntity + + + + Unregisters an existing licenseable entity and releases any serial numbers assigned to it. + LicenseAssignmentManager.unregisterEntity + + + + Updates the usage count of a license entity + LicenseAssignmentManager.updateUsage + + + + Uploads a license file to vCenter Server + LicenseAssignmentManager.uploadLicenseFile + + + + queryAssignedLicensesEx + LicenseAssignmentManager.queryAssignedLicensesEx + + + + updateEntity + LicenseAssignmentManager.updateEntity + + + + updateEntitiesProperties + LicenseAssignmentManager.updateEntitiesProperties + + + + Set backup agent custom value + vm.BackupAgent.setCustomValue + + + + Start a backup operation inside the virtual machine guest + vm.BackupAgent.startBackup + + + + Stop a backup operation in a virtual machine + vm.BackupAgent.abortBackup + + + + Notify the virtual machine when a snapshot operation is complete + vm.BackupAgent.notifySnapshotCompletion + + + + Wait for an event delivered by the virtual machine guest + vm.BackupAgent.waitForEvent + + + + Create a virtual machine namespace + vm.NamespaceManager.createNamespace + + + + Delete the virtual machine namespace + vm.NamespaceManager.deleteNamespace + + + + Delete all namespaces associated with the virtual machine + vm.NamespaceManager.deleteAllNamespaces + + + + Reconfigure the virtual machine namespace + vm.NamespaceManager.updateNamespace + + + + Retrieve detailed information about the virtual machine namespace + vm.NamespaceManager.queryNamespace + + + + Retrieve the list of all namespaces for a virtual machine + vm.NamespaceManager.listNamespaces + + + + Queue event for delivery to the agent in the virtual machine + vm.NamespaceManager.sendEventToGuest + + + + Retrieve events sent by the agent in the virtual machine + vm.NamespaceManager.fetchEventsFromGuest + + + + Update key/value pairs accessible by the agent in the virtual machine + vm.NamespaceManager.updateData + + + + Retrieve key/value pairs set by the agent in the virtual machine + vm.NamespaceManager.retrieveData + + + + Pauses a virtual machine + vm.PauseManager.pause + + + + Unpauses a virtual machine + vm.PauseManager.unpause + + + + Powers on a virtual machine and pauses it immediately + vm.PauseManager.powerOnPaused + + + + Configures host cache by allocating space on a low latency device (usually a solid state drive) for enhanced system performance + host.CacheConfigurationManager.configureCache + + + + Query whether virtual NIC is used by iSCSI multi-pathing + host.IscsiManager.queryVnicStatus + + + + Query whether physical NIC is used by iSCSI multi-pathing + host.IscsiManager.queryPnicStatus + + + + Query all the virtual NICs used by iSCSI multi-pathing + host.IscsiManager.queryBoundVnics + + + + Query candidate virtual NICs that can be used for iSCSI multi-pathing + host.IscsiManager.queryCandidateNics + + + + Add virtual NIC to iSCSI Adapter + host.IscsiManager.bindVnic + + + + Remove virtual NIC from iSCSI Adapter + host.IscsiManager.unbindVnic + + + + Query migration dependencies for migrating the physical and virtual NICs + host.IscsiManager.queryMigrationDependencies + + + + Set PCI Passthrough system custom value + host.PciPassthruSystem.setCustomValue + + + + Refresh the available PCI passthrough device information + host.PciPassthruSystem.refresh + + + + Update PCI passthrough device configuration + host.PciPassthruSystem.updatePassthruConfig + + + + Queries the list of network protocol profiles for a datacenter + IpPoolManager.queryIpPools + + + + Creates a new network protocol profile + IpPoolManager.createIpPool + + + + Updates a network protocol profile on a datacenter + IpPoolManager.updateIpPool + + + + Destroys a network protocol profile on the given datacenter + IpPoolManager.destroyIpPool + + + + Allocates an IPv4 address from an IP pool + IpPoolManager.allocateIpv4Address + + + + Allocates an IPv6 address from an IP pool + IpPoolManager.allocateIpv6Address + + + + Releases an IP allocation back to an IP pool + IpPoolManager.releaseIpAllocation + + + + Query IP allocations by IP pool and extension key + IpPoolManager.queryIPAllocations + + + + Refreshes the CA certificates on the host + CertificateManager.refreshCACertificatesAndCRLs + + + + Refreshes the subject certificate on the host + CertificateManager.refreshCertificates + + + + Revokes the subject certificate of a host + CertificateManager.revokeCertificates + + + + Get information about the performance statistics that can be queried for a particular entity + PerformanceManager.queryProviderSummary + + + + Gets available performance statistic metrics for the specified managed entity between begin and end times + PerformanceManager.queryAvailableMetric + + + + Get counter information for the list of counter IDs passed in + PerformanceManager.queryCounter + + + + All performance data over 1 year old are deleted from the vCenter database + PerformanceManager.queryCounterByLevel + + + + Gets the performance statistics for the entity + PerformanceManager.queryStats + + + + Get performance statistics for the entity and the breakdown across its child entities + PerformanceManager.queryCompositeStats + + + + Summarizes performance statistics at the specified interval + PerformanceManager.summarizeStats + + + + Add a new historical interval configuration + PerformanceManager.createHistoricalInterval + + + + Remove a historical interval configuration + PerformanceManager.removeHistoricalInterval + + + + Update a historical interval configuration if it exists + PerformanceManager.updateHistoricalInterval + + + + Update counter to level mapping + PerformanceManager.updateCounterLevelMapping + + + + Reset counter to level mapping to the default values + PerformanceManager.resetCounterLevelMapping + + + + Queries all internal counters, supported by this performance manager + PerformanceManager.queryPerfCounterInt + + + + Enable a counter or a set of counters in the counters collection of this performance manager + PerformanceManager.enableStat + + + + Exclude a counter or a set of counters from the counters collection of this performance manager + PerformanceManager.disableStat + + + + registerProvider + ExternalStatsManager.registerProvider + + + + unregisterProvider + ExternalStatsManager.unregisterProvider + + + + isRegistered + ExternalStatsManager.isRegistered + + + + getRegisteredProviders + ExternalStatsManager.getRegisteredProviders + + + + getEnabledClusters + ExternalStatsManager.getEnabledClusters + + + + updateStats + ExternalStatsManager.updateStats + + + + Creates a task collector to retrieve all tasks that have executed on the server based on a filter + TaskManager.createCollector + + + + Create a task + TaskManager.createTask + + + + createTaskWithEntityName + TaskManager.createTaskWithEntityName + + + + Sets the value of a custom field of an host + HostSystem.setCustomValue + + + + Reloads the host system + HostSystem.reload + + + + Rename this host + HostSystem.rename + + + + Removes the host + HostSystem.destroy + + + + Add a set of tags to the host + HostSystem.addTag + + + + Remove a set of tags from the host + HostSystem.removeTag + + + + retrieveCustomValues + HostSystem.retrieveCustomValues + + + + Provides details of the secure boot and TPM status + HostSystem.queryTpmAttestationReport + + + + Connection information about a host + HostSystem.queryConnectionInfo + + + + Retrieves vCenter Server-specific internal host capabilities + HostSystem.retrieveInternalCapability + + + + <internal> + HostSystem.retrieveInternalConfigManager + + + + Update the configuration of the system resource hierarchy + HostSystem.updateSystemResources + + + + Update the configuration of the system swap + HostSystem.updateSystemSwapConfiguration + + + + Reconnects to a host + HostSystem.reconnect + + + + Disconnects from a host + HostSystem.disconnect + + + + Puts the host in maintenance mode + HostSystem.enterMaintenanceMode + + + + Disables maintenance mode + HostSystem.exitMaintenanceMode + + + + Initiates a host reboot + HostSystem.reboot + + + + Initiates a host shutdown + HostSystem.shutdown + + + + Puts this host into standby mode + HostSystem.enterStandbyMode + + + + Brings this host out of standby mode + HostSystem.exitStandbyMode + + + + Determines the amount of memory overhead necessary to power on a virtual machine with the specified characteristics + HostSystem.queryOverhead + + + + Query memory overhead + HostSystem.queryOverheadEx + + + + Reconfigures the host for vSphere HA + HostSystem.reconfigureDAS + + + + Retrieves a reference to Patch Manager + HostSystem.retrievePatchManager + + + + Update the flags of the host system + HostSystem.updateFlags + + + + Send Wake-on-LAN packets to the physical NICs specified + HostSystem.sendWakeOnLanPacket + + + + Enable lockdown mode on this host + HostSystem.disableAdmin + + + + Disable lockdown mode on this host + HostSystem.enableAdmin + + + + Enable lockdown mode on this host + HostSystem.enterLockdownMode + + + + Disable lockdown mode on this host + HostSystem.exitLockdownMode + + + + Update information about the vCenter Server managing this host + HostSystem.updateManagementServerIp + + + + Establish a remote connection to a CIM interface + HostSystem.acquireCimServicesTicket + + + + Update IPMI or ILO information for this host used by DPM + HostSystem.updateIpmi + + + + Updates the SSL thumbprint registry on the host + HostSystem.updateSslThumbprintInfo + + + + Retrieves the hardware uptime for the host in seconds + HostSystem.retrieveHardwareUptime + + + + Retrieves a reference to Dynamic Type Manager + HostSystem.retrieveDynamicTypeManager + + + + Retrieves a reference to Managed Method Executer + HostSystem.retrieveManagedMethodExecuter + + + + Query memory overhead for a virtual machine power on + HostSystem.queryOverheadEx2 + + + + Test an EVC mode on a host + HostSystem.testEvcMode + + + + Applies an EVC mode to a host + HostSystem.applyEvcMode + + + + Checks whether the certificate matches the host certificate that vCenter Server trusts + HostSystem.checkCertificateTrusted + + + + Prepare host for encryption + HostSystem.prepareCrypto + + + + Enable encryption on the current host + HostSystem.enableCrypto + + + + Configure the encryption key on the current host + HostSystem.configureCryptoKey + + + + vSphere Distributed Switch set custom value + DistributedVirtualSwitch.setCustomValue + + + + vSphere Distributed Switch reload + DistributedVirtualSwitch.reload + + + + Rename vSphere Distributed Switch + DistributedVirtualSwitch.rename + + + + Delete vSphere Distributed Switch + DistributedVirtualSwitch.destroy + + + + vSphere Distributed Switch add tag + DistributedVirtualSwitch.addTag + + + + vSphere Distributed Switch remove tag + DistributedVirtualSwitch.removeTag + + + + retrieveCustomValues + DistributedVirtualSwitch.retrieveCustomValues + + + + Retrieve dvPort keys + DistributedVirtualSwitch.fetchPortKeys + + + + Retrieve dvPorts + DistributedVirtualSwitch.fetchPorts + + + + Query vSphere Distributed Switch used virtual LAN ID + DistributedVirtualSwitch.queryUsedVlanId + + + + Reconfigure vSphere Distributed Switch + DistributedVirtualSwitch.reconfigure + + + + vSphere Distributed Switch product specification operation + DistributedVirtualSwitch.performProductSpecOperation + + + + Merge vSphere Distributed Switches + DistributedVirtualSwitch.merge + + + + Add Distributed Port Group + DistributedVirtualSwitch.addPortgroups + + + + Move dvPorts + DistributedVirtualSwitch.movePort + + + + Update vSphere Distributed Switch capability + DistributedVirtualSwitch.updateCapability + + + + Reconfigure dvPort + DistributedVirtualSwitch.reconfigurePort + + + + Refresh dvPort state + DistributedVirtualSwitch.refreshPortState + + + + Rectify host in vSphere Distributed Switch + DistributedVirtualSwitch.rectifyHost + + + + Update network resource pools on vSphere Distributed Switch + DistributedVirtualSwitch.updateNetworkResourcePool + + + + Add network resource pools on vSphere Distributed Switch + DistributedVirtualSwitch.addNetworkResourcePool + + + + Remove network resource pools on vSphere Distributed Switch + DistributedVirtualSwitch.removeNetworkResourcePool + + + + Reconfigures the network resource pool on a distributed switch + DistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool + + + + Update network I/O control on vSphere Distributed Switch + DistributedVirtualSwitch.enableNetworkResourceManagement + + + + Get vSphere Distributed Switch configuration spec to rollback + DistributedVirtualSwitch.rollback + + + + Add Distributed Port Group + DistributedVirtualSwitch.addPortgroup + + + + Update health check configuration on vSphere Distributed Switch + DistributedVirtualSwitch.updateHealthCheckConfig + + + + Look up portgroup based on portgroup key + DistributedVirtualSwitch.lookupPortgroup + + + + Annotates the given OVF section tree with configuration choices for this OVF consumer + OvfConsumer.annotateOst + + + + Validates that this OVF consumer can accept an instantiation OVF section tree + OvfConsumer.validateInstantiationOst + + + + Notifies the OVF consumer that the specified OVF section tree nodes should be registered + OvfConsumer.registerEntities + + + + Notifies the OVF consumer that the specified managed entities should be unregistered + OvfConsumer.unregisterEntities + + + + Notifies the OVF consumer that the specified entities have been cloned + OvfConsumer.cloneEntities + + + + Create OVF sections for the given managed entities and populate the entity OVF section tree + OvfConsumer.populateEntityOst + + + + Retrieves the public OVF environment sections that this OVF consumer has for a given virtual machine + OvfConsumer.retrievePublicOvfEnvironmentSections + + + + Notifies the OVF consumer that a virtual machine is about to be powered on + OvfConsumer.notifyPowerOn + + + + Sets the value of a custom field of a virtual machine snapshot + vm.Snapshot.setCustomValue + + + + Change the execution state of the virtual machine to the state of this snapshot + vm.Snapshot.revert + + + + Remove snapshot and delete its associated storage + vm.Snapshot.remove + + + + Rename the snapshot + vm.Snapshot.rename + + + + Create a linked clone from this snapshot + vm.Snapshot.createLinkedClone + + + + Export the snapshot as an OVF template + vm.Snapshot.exportSnapshot + + + + Check compliance of host or cluster against a profile + profile.ComplianceManager.checkCompliance + + + + Query compliance status + profile.ComplianceManager.queryComplianceStatus + + + + queryEntitiesByComplianceStatus + profile.ComplianceManager.queryEntitiesByComplianceStatus + + + + Clear historical compliance data + profile.ComplianceManager.clearComplianceStatus + + + + Query expression metadata + profile.ComplianceManager.queryExpressionMetadata + + + + Create a new alarm + alarm.AlarmManager.create + + + + Get available alarms defined on the entity + alarm.AlarmManager.getAlarm + + + + Checks if alarm actions are enabled for an entity + alarm.AlarmManager.getAlarmActionsEnabled + + + + Enables or disables firing alarm actions for an entity + alarm.AlarmManager.setAlarmActionsEnabled + + + + The state of instantiated alarms on the entity + alarm.AlarmManager.getAlarmState + + + + Stops alarm actions from firing until the alarm next triggers on an entity + alarm.AlarmManager.acknowledgeAlarm + + + + Sets the status of an alarm for an entity + alarm.AlarmManager.setAlarmStatus + + + + clearTriggeredAlarms + alarm.AlarmManager.clearTriggeredAlarms + + + + testSMTPSetup + alarm.AlarmManager.testSMTPSetup + + + + Creates a Private (trigger-only) Alarm on a managed entity + alarm.AlarmManager.createPrivateAlarm + + + + Retrieves all of the Private (trigger-only) Alarms defined on the specified managed entity + alarm.AlarmManager.queryPrivateAlarms + + + + Retrieves the full list of currently-triggered Alarms, as a list of triggers + alarm.AlarmManager.syncTriggeredAlarms + + + + Retrieves any queued-up alarm triggers representing Alarm state changes since the last time this method was called + alarm.AlarmManager.retrieveTriggers + + + + Updates the VASA provider state for the specified datastores + VasaVvolManager.updateVasaProviderState + + + + Creates a new Virtual Volume datastore + VasaVvolManager.createVVolDatastore + + + + Remove Virtual Volume datastore from specified hosts + VasaVvolManager.removeVVolDatastore + + + + Updates the VASA client context on the host + VasaVvolManager.updateVasaClientContext + + + + fetchRelocatedMACAddress + NetworkManager.fetchRelocatedMACAddress + + + + Checks the MAC addresses used by this vCenter Server instance + NetworkManager.checkIfMACAddressInUse + + + + Reclaims the MAC addresses that are not used by remote vCenter Server instances + NetworkManager.reclaimMAC + + + + Creates a new identity binding between the host and vCenter Server + host.TpmManager.requestIdentity + + + + Verifies the authenticity and correctness of the supplied attestation credential + host.TpmManager.verifyCredential + + + + Generates an integrity report for the selected components + host.TpmManager.generateReport + + + + Distributed Port Group set custom value + dvs.DistributedVirtualPortgroup.setCustomValue + + + + Reload Distributed Port Group + dvs.DistributedVirtualPortgroup.reload + + + + Rename Distributed Port Group + dvs.DistributedVirtualPortgroup.rename + + + + Delete Distributed Port Group + dvs.DistributedVirtualPortgroup.destroy + + + + Add tag to Distributed Port Group + dvs.DistributedVirtualPortgroup.addTag + + + + Distributed Port Group remove tag + dvs.DistributedVirtualPortgroup.removeTag + + + + retrieveCustomValues + dvs.DistributedVirtualPortgroup.retrieveCustomValues + + + + Distributed Port Group delete network + dvs.DistributedVirtualPortgroup.destroyNetwork + + + + Reconfigure Distributed Port Group + dvs.DistributedVirtualPortgroup.reconfigure + + + + Get Distributed Port Group configuration spec to rollback + dvs.DistributedVirtualPortgroup.rollback + + + + Sets the value of a custom field of an alarm + alarm.Alarm.setCustomValue + + + + Remove the alarm + alarm.Alarm.remove + + + + Reconfigure the alarm + alarm.Alarm.reconfigure + + + + Sets the value of a custom field for a unified compute resource + ComputeResource.setCustomValue + + + + Reloads the resource + ComputeResource.reload + + + + Rename the compute-resource + ComputeResource.rename + + + + Removes the host resource + ComputeResource.destroy + + + + Add a set of tags to this object + ComputeResource.addTag + + + + Removes a set of tags from this object + ComputeResource.removeTag + + + + retrieveCustomValues + ComputeResource.retrieveCustomValues + + + + Reconfigures a compute-resource + ComputeResource.reconfigureEx + + + + Set the last page viewed size and contain at most maxCount items in the page + HistoryCollector.setLatestPageSize + + + + Move the scroll position to the oldest item + HistoryCollector.rewind + + + + Move the scroll position to the item just above the last page viewed + HistoryCollector.reset + + + + Remove the collector from server + HistoryCollector.remove + + + + Update specific metadata for the given owner and list of virtual machine IDs + vm.MetadataManager.updateMetadata + + + + Retrieve specific metadata for the given owner and list of virtual machine IDs + vm.MetadataManager.retrieveMetadata + + + + Retrieve all metadata for the given owner and datastore + vm.MetadataManager.retrieveAllMetadata + + + + Clear all metadata for the given owner and datastore + vm.MetadataManager.clearMetadata + + + + Queries the latest values of performance statistics of a virtual machine + InternalStatsCollector.queryLatestVmStats + + + + vSphere Distributed Switch set custom value + dvs.VmwareDistributedVirtualSwitch.setCustomValue + + + + Reload vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.reload + + + + Rename vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.rename + + + + Remove vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.destroy + + + + vSphere Distributed Switch add tag + dvs.VmwareDistributedVirtualSwitch.addTag + + + + vSphere Distributed Switch remove tag + dvs.VmwareDistributedVirtualSwitch.removeTag + + + + retrieveCustomValues + dvs.VmwareDistributedVirtualSwitch.retrieveCustomValues + + + + Retrieve dvPort keys + dvs.VmwareDistributedVirtualSwitch.fetchPortKeys + + + + Retrieve dvPorts + dvs.VmwareDistributedVirtualSwitch.fetchPorts + + + + Query used virtual LAN ID + dvs.VmwareDistributedVirtualSwitch.queryUsedVlanId + + + + Reconfigure vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.reconfigure + + + + vSphere Distributed Switch product specification operation + dvs.VmwareDistributedVirtualSwitch.performProductSpecOperation + + + + Merge vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.merge + + + + Add Distributed Port Groups + dvs.VmwareDistributedVirtualSwitch.addPortgroups + + + + Move dvPort + dvs.VmwareDistributedVirtualSwitch.movePort + + + + Update vSphere Distributed Switch capability + dvs.VmwareDistributedVirtualSwitch.updateCapability + + + + Reconfigure dvPort + dvs.VmwareDistributedVirtualSwitch.reconfigurePort + + + + Refresh dvPort state + dvs.VmwareDistributedVirtualSwitch.refreshPortState + + + + Rectify vSphere Distributed Switch host + dvs.VmwareDistributedVirtualSwitch.rectifyHost + + + + Update network resource pools on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.updateNetworkResourcePool + + + + Add network resource pools on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.addNetworkResourcePool + + + + Remove network resource pools on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.removeNetworkResourcePool + + + + Reconfigures a network resource pool on a distributed switch + dvs.VmwareDistributedVirtualSwitch.reconfigureVmVnicNetworkResourcePool + + + + Update network I/O control on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.enableNetworkResourceManagement + + + + Get vSphere Distributed Switch configuration spec to rollback + dvs.VmwareDistributedVirtualSwitch.rollback + + + + Add Distributed Port Group + dvs.VmwareDistributedVirtualSwitch.addPortgroup + + + + Update health check configuration on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.updateHealthCheckConfig + + + + Look up portgroup based on portgroup key + dvs.VmwareDistributedVirtualSwitch.lookupPortgroup + + + + Update Link Aggregation Control Protocol groups on vSphere Distributed Switch + dvs.VmwareDistributedVirtualSwitch.updateLacpGroupConfig + + + + Create a virtual disk object + vslm.vcenter.VStorageObjectManager.createDisk + + + + Register a legacy disk to be a virtual disk object + vslm.vcenter.VStorageObjectManager.registerDisk + + + + Extend a virtual disk to the new capacity + vslm.vcenter.VStorageObjectManager.extendDisk + + + + Inflate a thin virtual disk + vslm.vcenter.VStorageObjectManager.inflateDisk + + + + Rename a virtual storage object + vslm.vcenter.VStorageObjectManager.renameVStorageObject + + + + Update storage policy on a virtual storage object + vslm.vcenter.VStorageObjectManager.updateVStorageObjectPolicy + + + + Delete a virtual storage object + vslm.vcenter.VStorageObjectManager.deleteVStorageObject + + + + Retrieve a virtual storage object + vslm.vcenter.VStorageObjectManager.retrieveVStorageObject + + + + retrieveVStorageObjectState + vslm.vcenter.VStorageObjectManager.retrieveVStorageObjectState + + + + List virtual storage objects on a datastore + vslm.vcenter.VStorageObjectManager.listVStorageObject + + + + Clone a virtual storage object + vslm.vcenter.VStorageObjectManager.cloneVStorageObject + + + + Relocate a virtual storage object + vslm.vcenter.VStorageObjectManager.relocateVStorageObject + + + + attachTagToVStorageObject + vslm.vcenter.VStorageObjectManager.attachTagToVStorageObject + + + + detachTagFromVStorageObject + vslm.vcenter.VStorageObjectManager.detachTagFromVStorageObject + + + + listVStorageObjectsAttachedToTag + vslm.vcenter.VStorageObjectManager.listVStorageObjectsAttachedToTag + + + + listTagsAttachedToVStorageObject + vslm.vcenter.VStorageObjectManager.listTagsAttachedToVStorageObject + + + + Reconcile datastore inventory + vslm.vcenter.VStorageObjectManager.reconcileDatastoreInventory + + + + Schedule reconcile datastore inventory + vslm.vcenter.VStorageObjectManager.scheduleReconcileDatastoreInventory + + + + Check whether a user is a member of a given list of groups + UserDirectory.checkGroupMembership + + + + Searches for users and groups + UserDirectory.retrieveUserGroups + + + + Create profile + profile.ProfileManager.createProfile + + + + Query policy metadata + profile.ProfileManager.queryPolicyMetadata + + + + Find associated profile + profile.ProfileManager.findAssociatedProfile + + + + Validates if a host is compatible with the requirements in an OVF package + OvfManager.validateHost + + + + Parses and validates an OVF descriptor + OvfManager.parseDescriptor + + + + Convert OVF descriptor to entity specification + OvfManager.createImportSpec + + + + Creates an OVF descriptor from either a VM or vApp + OvfManager.createDescriptor + + + + Parses and validates an OVF descriptor at a given URL + OvfManager.parseDescriptorAtUrl + + + + Deploys an OVF template from a URL + OvfManager.importOvfAtUrl + + + + Uploads OVF template to a remote server + OvfManager.exportOvfToUrl + + + + Updates the system global message + SessionManager.updateMessage + + + + Logs on to the server through token representing principal identity + SessionManager.loginByToken + + + + Create a login session + SessionManager.login + + + + Log on to the server using SSPI passthrough authentication + SessionManager.loginBySSPI + + + + Log on to the server using SSL thumbprint authentication + SessionManager.loginBySSLThumbprint + + + + Log on to the server using a session ticket + SessionManager.loginBySessionTicket + + + + Acquire a ticket for authenticating to a remote service + SessionManager.acquireSessionTicket + + + + Logout and end the current session + SessionManager.logout + + + + Acquire one-time ticket for authenticating server-local client + SessionManager.acquireLocalTicket + + + + Acquire a one-time credential that may be used to make the specified request + SessionManager.acquireGenericServiceTicket + + + + Logout and end the provided list of sessions + SessionManager.terminate + + + + Set the session locale for determining the languages used for messages and formatting data + SessionManager.setLocale + + + + Creates a privileged login session for an extension + SessionManager.loginExtension + + + + Invalid subject name + SessionManager.loginExtensionBySubjectName + + + + Login extension by certificate + SessionManager.loginExtensionByCertificate + + + + Convert session to impersonate specified user + SessionManager.impersonateUser + + + + Validates that a currently active session exists + SessionManager.sessionIsActive + + + + Acquire a session-specific ticket string that can be used to clone the current session + SessionManager.acquireCloneTicket + + + + Clone the specified session and associate it with the current connection + SessionManager.cloneSession + + + + Opens a disk on a virtual machine for read/write access + NfcService.randomAccessOpen + + + + Opens a disk on a virtual machine for read access + NfcService.randomAccessOpenReadonly + + + + randomAccessFileOpen + NfcService.randomAccessFileOpen + + + + Read files associated with a virtual machine + NfcService.getVmFiles + + + + Write files associated with a virtual machine + NfcService.putVmFiles + + + + Permission to manipulate file paths + NfcService.fileManagement + + + + Permission to manipulate all system related file paths + NfcService.systemManagement + + + + getServerNfcLibVersion + NfcService.getServerNfcLibVersion + + + + registerProvider + HealthUpdateManager.registerProvider + + + + unregisterProvider + HealthUpdateManager.unregisterProvider + + + + queryProviderList + HealthUpdateManager.queryProviderList + + + + hasProvider + HealthUpdateManager.hasProvider + + + + queryProviderName + HealthUpdateManager.queryProviderName + + + + queryHealthUpdateInfos + HealthUpdateManager.queryHealthUpdateInfos + + + + addMonitoredEntities + HealthUpdateManager.addMonitoredEntities + + + + removeMonitoredEntities + HealthUpdateManager.removeMonitoredEntities + + + + queryMonitoredEntities + HealthUpdateManager.queryMonitoredEntities + + + + hasMonitoredEntity + HealthUpdateManager.hasMonitoredEntity + + + + queryUnmonitoredHosts + HealthUpdateManager.queryUnmonitoredHosts + + + + postHealthUpdates + HealthUpdateManager.postHealthUpdates + + + + queryHealthUpdates + HealthUpdateManager.queryHealthUpdates + + + + addFilter + HealthUpdateManager.addFilter + + + + queryFilterList + HealthUpdateManager.queryFilterList + + + + queryFilterName + HealthUpdateManager.queryFilterName + + + + queryFilterInfoIds + HealthUpdateManager.queryFilterInfoIds + + + + queryFilterEntities + HealthUpdateManager.queryFilterEntities + + + + addFilterEntities + HealthUpdateManager.addFilterEntities + + + + removeFilterEntities + HealthUpdateManager.removeFilterEntities + + + + removeFilter + HealthUpdateManager.removeFilter + + + + Sets the value of a custom field of a host vMotion system + host.VMotionSystem.setCustomValue + + + + Update the IP configuration of the vMotion virtual NIC + host.VMotionSystem.updateIpConfig + + + + Select the virtual NIC to be used for vMotion + host.VMotionSystem.selectVnic + + + + Deselect the virtual NIC to be used for vMotion + host.VMotionSystem.deselectVnic + + + + Creates a new custom property + CustomFieldsManager.addFieldDefinition + + + + Removes a custom property + CustomFieldsManager.removeFieldDefinition + + + + Renames a custom property + CustomFieldsManager.renameFieldDefinition + + + + Assigns a value to a custom property + CustomFieldsManager.setField + + + + Get the list of ManagedEntities that the name is a Substring of the custom field name and the value is a Substring of the field value. + CustomFieldsManager.getEntitiesWithCustomFieldAndValue + + + + retrieveCustomFields + CustomFieldsManager.retrieveCustomFields + + + + Controls the configuration of the digests for the virtual disks + CbrcManager.configureDigest + + + + Recomputes the digest for the given virtual disks, if necessary + CbrcManager.recomputeDigest + + + + Returns the current configuration of the digest for the given digest-enabled virtual disks + CbrcManager.queryDigestInfo + + + + Returns the status of runtime digest usage for the given digest-enabled virtual disks + CbrcManager.queryDigestRuntimeInfo + + + + Gets the list of diagnostic files for a given system + DiagnosticManager.queryDescriptions + + + + Returns part of a log file + DiagnosticManager.browse + + + + Instructs the server to generate system logs bundles + DiagnosticManager.generateLogBundles + + + + Queries file integrity information + DiagnosticManager.queryFileHash + + + + Configures calculation parameters used for computation of workload model for a datastore + DrsStatsManager.configureWorkloadCharacterization + + + + Queries a host for the current workload model calculation parameters + DrsStatsManager.queryWorkloadCharacterization + + + + Configures datastore correlation detector with datastore to datastore cluster mappings + DrsStatsManager.configureCorrelationDetector + + + + Queries correlation detector for a list of datastores correlated to a given datastore + DrsStatsManager.queryCorrelationResult + + + + Updates agent virtual machine information + EsxAgentConfigManager.updateAgentVmInfo + + + + Returns the state for each of the specified agent virtual machines + EsxAgentConfigManager.queryAgentVmInfo + + + + Updates the number of required agent virtual machines for one or more compute resources + EsxAgentConfigManager.updateComputeResourceAgentInfo + + + + Retrieves the agent information for one or more compute resources + EsxAgentConfigManager.queryComputeResourceAgentInfo + + + + Sets the value of a custom field of an extensible managed object + ExtensibleManagedObject.setCustomValue + + + + Gets the download manifest for this lease + HttpNfcLease.getManifest + + + + The lease completed successfully + HttpNfcLease.complete + + + + The lease has ended + HttpNfcLease.abort + + + + Updates lease progress + HttpNfcLease.progress + + + + Installs an IO Filter on a compute resource + IoFilterManager.installIoFilter + + + + Uninstalls an IO Filter from a compute resource + IoFilterManager.uninstallIoFilter + + + + Upgrades an IO Filter on a compute resource + IoFilterManager.upgradeIoFilter + + + + Queries IO Filter installation issues on a compute resource + IoFilterManager.queryIssue + + + + queryIoFilterInfo + IoFilterManager.queryIoFilterInfo + + + + Resolves IO Filter installation errors on a host + IoFilterManager.resolveInstallationErrorsOnHost + + + + Resolves IO Filter installation errors on a cluster + IoFilterManager.resolveInstallationErrorsOnCluster + + + + Queries information about virtual disks that use an IO Filter installed on a compute resource + IoFilterManager.queryDisksUsingFilter + + + + Updates the policy to IO Filter mapping in vCenter Server + IoFilterManager.updateIoFilterPolicy + + + + Searches the current license source for licenses available from this system + LicenseManager.querySupportedFeatures + + + + Searches the current license source for licenses available for each feature known to this system + LicenseManager.querySourceAvailability + + + + Returns the list of features and the number of licenses that have been reserved + LicenseManager.queryUsage + + + + Defines the product edition + LicenseManager.setEdition + + + + Checks if a feature is enabled + LicenseManager.checkFeature + + + + Enable a feature that is marked as user-configurable + LicenseManager.enable + + + + Release licenses for a user-configurable feature + LicenseManager.disable + + + + Allows reconfiguration of the License Manager license source + LicenseManager.configureSource + + + + Installing license + LicenseManager.updateLicense + + + + Adds a new license to the license inventory + LicenseManager.addLicense + + + + Removes a license from the license inventory + LicenseManager.removeLicense + + + + Decodes the license to return the properties of that license key + LicenseManager.decodeLicense + + + + Update a license's label + LicenseManager.updateLabel + + + + Removes a license's label + LicenseManager.removeLabel + + + + Gets the License Data Manager + LicenseManager.queryLicenseDataManager + + + + Activates the remote hard enforcement + LicenseManager.activateRemoteHardEnforcement + + + + Add a service whose connections are to be proxied + ProxyService.addEndpoint + + + + End point to be detached + ProxyService.removeEndpoint + + + + Estimates the database size required to store VirtualCenter data + ResourcePlanningManager.estimateDatabaseSize + + + + Finds a virtual machine or host by UUID + SearchIndex.findByUuid + + + + Finds a virtual machine by its location on a datastore + SearchIndex.findByDatastorePath + + + + Finds a virtual machine or host by its DNS name + SearchIndex.findByDnsName + + + + Finds a virtual machine or host by IP address + SearchIndex.findByIp + + + + Finds a virtual machine or host based on its location in the inventory + SearchIndex.findByInventoryPath + + + + Finds an immediate child of a folder + SearchIndex.findChild + + + + Find entities based on their UUID + SearchIndex.findAllByUuid + + + + Find by DNS name + SearchIndex.findAllByDnsName + + + + Find entities based on their IP address + SearchIndex.findAllByIp + + + + findAllInstantCloneParentInGroup + SearchIndex.findAllInstantCloneParentInGroup + + + + findAllInstantCloneChildrenOfGroup + SearchIndex.findAllInstantCloneChildrenOfGroup + + + + Execute the client service + SimpleCommand.Execute + + + + Configure Storage I/O Control on datastore + StorageResourceManager.ConfigureDatastoreIORM + + + + Configure Storage I/O Control on datastore + StorageResourceManager.ConfigureDatastoreIORMOnHost + + + + Query Storage I/O Control configuration options + StorageResourceManager.QueryIORMConfigOption + + + + Returns the device model computed for a given datastore by storage DRS + StorageResourceManager.GetStorageIORMDeviceModel + + + + Query datastore performance metrics in summary form + StorageResourceManager.queryDatastorePerformanceSummary + + + + Apply a Storage DRS recommendation + StorageResourceManager.applyRecommendationToPod + + + + Apply Storage DRS recommendations + StorageResourceManager.applyRecommendation + + + + Cancels a storage DRS recommendation + StorageResourceManager.cancelRecommendation + + + + Refreshes the storage DRS recommendations on the specified datastore cluster + StorageResourceManager.refreshRecommendation + + + + refreshRecommendationsForPod + StorageResourceManager.refreshRecommendationsForPod + + + + Configure Storage DRS on a datastore cluster + StorageResourceManager.configureStorageDrsForPod + + + + Invokes storage DRS for placement recommendations + StorageResourceManager.recommendDatastores + + + + rankForPlacement + StorageResourceManager.rankForPlacement + + + + queryStorageStatisticsByProfile + StorageResourceManager.queryStorageStatisticsByProfile + + + + Set the last page viewed size and contain at most maxCount items in the page + TaskHistoryCollector.setLatestPageSize + + + + Move the scroll position to the oldest item + TaskHistoryCollector.rewind + + + + Move the scroll position to the item just above the last page viewed + TaskHistoryCollector.reset + + + + Remove the collector from server + TaskHistoryCollector.remove + + + + The scroll position is moved to the next new page after the read + TaskHistoryCollector.readNext + + + + The scroll position is moved to the next older page after the read + TaskHistoryCollector.readPrev + + + + performUpgradePreflightCheck + VsanUpgradeSystem.performUpgradePreflightCheck + + + + queryUpgradeStatus + VsanUpgradeSystem.queryUpgradeStatus + + + + performUpgrade + VsanUpgradeSystem.performUpgrade + + + + Sets the value of a custom field of an opaque network + OpaqueNetwork.setCustomValue + + + + Reloads the information about the opaque network + OpaqueNetwork.reload + + + + Renames an opaque network + OpaqueNetwork.rename + + + + Deletes an opaque network if it is not used by any host or virtual machine + OpaqueNetwork.destroy + + + + Adds a set of tags to the opaque network + OpaqueNetwork.addTag + + + + Removes a set of tags from the opaque network + OpaqueNetwork.removeTag + + + + retrieveCustomValues + OpaqueNetwork.retrieveCustomValues + + + + Removes an opaque network + OpaqueNetwork.destroyNetwork + + + + Sets the value of a custom field of a resource pool of physical resources + ResourcePool.setCustomValue + + + + Reload the resource pool + ResourcePool.reload + + + + Rename the resource pool + ResourcePool.rename + + + + Delete the resource pool, which also deletes its contents and removes it from its parent folder (if any) + ResourcePool.destroy + + + + Add a set of tags to the resource pool + ResourcePool.addTag + + + + Remove a set of tags from the resource pool + ResourcePool.removeTag + + + + retrieveCustomValues + ResourcePool.retrieveCustomValues + + + + Updates the resource pool configuration + ResourcePool.updateConfig + + + + Moves a set of resource pools or virtual machines into this pool + ResourcePool.moveInto + + + + Change the resource configuration of a set of children of the resource pool + ResourcePool.updateChildResourceConfiguration + + + + Creates a new resource pool + ResourcePool.createResourcePool + + + + Removes all child resource pools recursively + ResourcePool.destroyChildren + + + + Creates a child vApp of this resource pool + ResourcePool.createVApp + + + + Creates a virtual machine in this resource pool + ResourcePool.createVm + + + + Adds an existing virtual machine to this resource pool + ResourcePool.registerVm + + + + Deploys a virtual machine or vApp + ResourcePool.importVApp + + + + Returns configuration options for a set of resources for a resource pool + ResourcePool.queryResourceConfigOption + + + + Refreshes the resource usage runtime information + ResourcePool.refreshRuntime + + + + Sets the value of a custom field of a virtual machine + VirtualMachine.setCustomValue + + + + Reloads the virtual machine + VirtualMachine.reload + + + + Rename the virtual machine + VirtualMachine.rename + + + + Delete this virtual machine. Deleting this virtual machine also deletes its contents and removes it from its parent folder (if any). + VirtualMachine.destroy + + + + Add a set of tags to the virtual machine + VirtualMachine.addTag + + + + Remove a set of tags from the virtual machine + VirtualMachine.removeTag + + + + retrieveCustomValues + VirtualMachine.retrieveCustomValues + + + + Refresh storage information for the virtual machine + VirtualMachine.refreshStorageInfo + + + + Retrieves the backup agent for the virtual machine + VirtualMachine.retrieveBackupAgent + + + + Create a new snapshot of this virtual machine + VirtualMachine.createSnapshot + + + + Create a new snapshot of this virtual machine + VirtualMachine.createSnapshotEx + + + + Reverts the virtual machine to the current snapshot + VirtualMachine.revertToCurrentSnapshot + + + + Remove all the snapshots associated with this virtual machine + VirtualMachine.removeAllSnapshots + + + + Consolidate disk files of this virtual machine + VirtualMachine.consolidateDisks + + + + Estimate the temporary space required to consolidate disk files. + VirtualMachine.estimateStorageRequirementForConsolidate + + + + Reconfigure this virtual machine + VirtualMachine.reconfigure + + + + Upgrade virtual machine compatibility to the latest version + VirtualMachine.upgradeVirtualHardware + + + + Returns the XML document that represents the OVF environment + VirtualMachine.extractOvfEnvironment + + + + Power On this virtual machine + VirtualMachine.powerOn + + + + Power Off this virtual machine + VirtualMachine.powerOff + + + + Suspend virtual machine + VirtualMachine.suspend + + + + Reset this virtual machine + VirtualMachine.reset + + + + Issues a command to the guest operating system to perform a clean shutdown of all services + VirtualMachine.shutdownGuest + + + + Issues a command to the guest operating system asking it to perform a reboot + VirtualMachine.rebootGuest + + + + Issues a command to the guest operating system to prepare for a suspend operation + VirtualMachine.standbyGuest + + + + Respond to a question that is blocking this virtual machine + VirtualMachine.answer + + + + Customize a virtual machine's guest operating system + VirtualMachine.customize + + + + Check the customization specification against the virtual machine configuration + VirtualMachine.checkCustomizationSpec + + + + Migrate a virtual machine's execution to a specific resource pool or host + VirtualMachine.migrate + + + + Relocate the virtual machine to a specific location + VirtualMachine.relocate + + + + Creates a clone of this virtual machine + VirtualMachine.clone + + + + instantClone + VirtualMachine.instantClone + + + + retrieveInstantCloneChildren + VirtualMachine.retrieveInstantCloneChildren + + + + retrieveInstantCloneParent + VirtualMachine.retrieveInstantCloneParent + + + + markAsInstantCloneParent + VirtualMachine.markAsInstantCloneParent + + + + unmarkAsInstantCloneParent + VirtualMachine.unmarkAsInstantCloneParent + + + + createForkChild + VirtualMachine.createForkChild + + + + enableForkParent + VirtualMachine.enableForkParent + + + + disableForkParent + VirtualMachine.disableForkParent + + + + retrieveForkChildren + VirtualMachine.retrieveForkChildren + + + + retrieveForkParent + VirtualMachine.retrieveForkParent + + + + Exports the virtual machine as an OVF template + VirtualMachine.exportVm + + + + Virtual machine is marked as a template + VirtualMachine.markAsTemplate + + + + Reassociate a virtual machine with a host or resource pool + VirtualMachine.markAsVirtualMachine + + + + Removes this virtual machine from the inventory without removing any of the virtual machine files on disk + VirtualMachine.unregister + + + + Clears cached guest OS information + VirtualMachine.resetGuestInformation + + + + Mounts the tools CD installer as a CD-ROM for the guest + VirtualMachine.mountToolsInstaller + + + + Connects the VMware Tools CD image to the guest + VirtualMachine.mountToolsInstallerImage + + + + Unmounts the tools installer + VirtualMachine.unmountToolsInstaller + + + + Issues a command to the guest operating system to install VMware Tools or upgrade to the latest revision + VirtualMachine.upgradeTools + + + + Upgrades VMware Tools in the virtual machine from specified CD image + VirtualMachine.upgradeToolsFromImage + + + + Establishing a Mouse Keyboard Screen Ticket + VirtualMachine.acquireMksTicket + + + + Establishing a specific remote virtual machine connection ticket + VirtualMachine.acquireTicket + + + + Sets the console window's resolution as specified + VirtualMachine.setScreenResolution + + + + Defragment all virtual disks attached to this virtual machine + VirtualMachine.defragmentAllDisks + + + + Secondary VM created + VirtualMachine.createSecondary + + + + Creates a secondary VM + VirtualMachine.createSecondaryEx + + + + Remove all secondaries for this virtual machine and turn off Fault Tolerance + VirtualMachine.turnOffFaultTolerance + + + + Test Fault Tolerance failover by making a Secondary VM in a Fault Tolerance pair the Primary VM + VirtualMachine.makePrimary + + + + Test restart Secondary VM by stopping a Secondary VM in the Fault Tolerance pair + VirtualMachine.terminateFaultTolerantVM + + + + Suspend Fault Tolerance on this virtual machine + VirtualMachine.disableSecondary + + + + Resume Fault Tolerance on this virtual machine + VirtualMachine.enableSecondary + + + + Set the display topology for the virtual machine + VirtualMachine.setDisplayTopology + + + + Start a recording session on this virtual machine + VirtualMachine.startRecording + + + + Stop a currently active recording session on this virtual machine + VirtualMachine.stopRecording + + + + Start a replay session on this virtual machine + VirtualMachine.startReplaying + + + + Stop a replay session on this virtual machine + VirtualMachine.stopReplaying + + + + Promote disks of the virtual machine that have delta disk backings + VirtualMachine.promoteDisks + + + + Take a screenshot of a virtual machine's guest OS console + VirtualMachine.createScreenshot + + + + Injects a sequence of USB HID scan codes into the keyboard + VirtualMachine.putUsbScanCodes + + + + Query for changes to the virtual machine's disks since a given point in the past + VirtualMachine.queryChangedDiskAreas + + + + Query files of the virtual machine not owned by the datastore principal user + VirtualMachine.queryUnownedFiles + + + + Reloads the virtual machine from a new configuration file + VirtualMachine.reloadFromPath + + + + Check if virtual machine is compatible for Fault Tolerance + VirtualMachine.queryFaultToleranceCompatibility + + + + queryFaultToleranceCompatibilityEx + VirtualMachine.queryFaultToleranceCompatibilityEx + + + + Suspend and resume the virtual machine + VirtualMachine.invokeFSR + + + + Hard stop virtual machine + VirtualMachine.terminate + + + + Check if native clone is supported on the virtual machine + VirtualMachine.isNativeSnapshotCapable + + + + Configures the quorum file path prefix for the virtual machine + VirtualMachine.configureQuorumFilePathPrefix + + + + Retrieves the quorum file path prefix for the virtual machine + VirtualMachine.retrieveQuorumFilePathPrefix + + + + Specifies the OVF Environments to be injected into and returned for a virtual machine + VirtualMachine.injectOvfEnvironment + + + + Wipes a Flex-SE virtual disk + VirtualMachine.wipeDisk + + + + Shrinks a Flex-SE virtual disk + VirtualMachine.shrinkDisk + + + + Sends a non-maskable interrupt (NMI) to the virtual machine + VirtualMachine.sendNMI + + + + Reloads the virtual machine + VirtualMachine.reloadEx + + + + Attach an existing virtual disk to the virtual machine + VirtualMachine.attachDisk + + + + Detach a virtual disk from the virtual machine + VirtualMachine.detachDisk + + + + Apply EVC Mode to a virtual machine + VirtualMachine.applyEvcMode + + + + Sets the value of a custom field of a datacenter + Datacenter.setCustomValue + + + + Reloads the datacenter + Datacenter.reload + + + + Rename the datacenter + Datacenter.rename + + + + Deletes the datacenter and removes it from its parent folder (if any) + Datacenter.destroy + + + + Add a set of tags to the datacenter + Datacenter.addTag + + + + Remove a set of tags from the datacenter + Datacenter.removeTag + + + + retrieveCustomValues + Datacenter.retrieveCustomValues + + + + Gets information of a host that can be used in the connection wizard + Datacenter.queryConnectionInfo + + + + queryConnectionInfoViaSpec + Datacenter.queryConnectionInfoViaSpec + + + + Initialize tasks for powering on virtual machines + Datacenter.powerOnVm + + + + Retrieve the list of configuration option keys available in this datacenter + Datacenter.queryConfigOptionDescriptor + + + + Reconfigures the datacenter + Datacenter.reconfigure + + + + Sets the value of a custom field of a folder + Folder.setCustomValue + + + + Reloads the folder + Folder.reload + + + + Rename the folder + Folder.rename + + + + Delete this object, deleting its contents and removing it from its parent folder (if any) + Folder.destroy + + + + Add a set of tags to the folder + Folder.addTag + + + + Remove a set of tags from the folder + Folder.removeTag + + + + retrieveCustomValues + Folder.retrieveCustomValues + + + + Creates a new folder + Folder.createFolder + + + + Moves a set of managed entities into this folder + Folder.moveInto + + + + Create a new virtual machine + Folder.createVm + + + + Adds an existing virtual machine to the folder + Folder.registerVm + + + + Create a new cluster compute-resource in this folder + Folder.createCluster + + + + Create a new cluster compute-resource in this folder + Folder.createClusterEx + + + + Create a new single-host compute-resource + Folder.addStandaloneHost + + + + Create a new single-host compute-resource and enable lockdown mode on the host + Folder.addStandaloneHostWithAdminDisabled + + + + Create a new datacenter with the given name + Folder.createDatacenter + + + + Recursively deletes all child virtual machine folders and unregisters all virtual machines + Folder.unregisterAndDestroy + + + + Create a vSphere Distributed Switch + Folder.createDistributedVirtualSwitch + + + + Create a datastore cluster + Folder.createStoragePod + + + + Get available boot devices for the host system + host.BootDeviceSystem.queryBootDevices + + + + Update the boot device on the host system + host.BootDeviceSystem.updateBootDevice + + + + Configuring vSphere HA + DasConfig.ConfigureHost + + + + Unconfiguring vSphere HA + DasConfig.UnconfigureHost + + + + Migrates a virtual machine from one host to another + Drm.ExecuteVMotionLRO + + + + Power on this virtual machine + Drm.ExecuteVmPowerOnLRO + + + + Puts this host into standby mode + Drm.EnterStandbyLRO + + + + Brings this host out of standby mode + Drm.ExitStandbyLRO + + + + Power On this virtual machine + Datacenter.ExecuteVmPowerOnLRO + + + + Upgrade the vCenter Agent + Upgrade.UpgradeAgent + + + + Upgrade the vCenter Agents on all cluster hosts + ClusterUpgrade.UpgradeAgent + + + + Deploys a virtual machine or vApp + ResourcePool.ImportVAppLRO + + + + Set suspended state of the cluster + ClusterComputeResource.setSuspendedState + + + + Exports the virtual machine as an OVF template + VirtualMachine.ExportVmLRO + + + + Exports the vApp as an OVF template + VirtualApp.ExportVAppLRO + + + + Start Secondary VM as the Primary VM is powered on + FaultTolerance.PowerOnSecondaryLRO + + + + Execute Storage vMotion migrations for Storage DRS + Drm.ExecuteStorageVmotionLro + + + + Apply recommendations to enter into SDRS maintenance mode + Drm.ExecuteMaintenanceRecommendationsLro + + + + Task that monitors the SDRS maintenance mode activity + Drm.TrackEnterMaintenanceLro + + + + ResetSensor + com.vmware.hardwarehealth.ResetSensor + + + + ResetSelLog + com.vmware.hardwarehealth.ResetSelLog + + + + RefreshHost + com.vmware.hardwarehealth.RefreshHost + + + + install + eam.agent.install + + + + uninstall + eam.agent.uninstall + + + + upgrade + eam.agent.upgrade + + + + Remediating hosts in bulk + com.vmware.rbd.bulkRemediateMapping + + + + Creating rule in Auto Deploy server + com.vmware.rbd.CreateRuleWithTransform + + + + Applying Image profile to a host + com.vmware.rbd.ApplyImageProfile + + + + Editing Auto Deploy rule + com.vmware.rbd.UpdateSpecWithTransform + + + + Repairing Deploy cache in Auto Deploy server + com.vmware.rbd.RepairDeployCache + + + + Compliance checking hosts in bulk + com.vmware.rbd.bulkMappingComplianceCheck + + + + Mount + com.vmware.vcenter.iso.Image.Mount + + + + Unmount + com.vmware.vcenter.iso.Image.Unmount + + + + Create + com.vmware.ovfs.ImportSession.Create + + + + Create + com.vmware.ovfs.ExportSession.Create + + + + instantiate + com.vmware.ovfs.LibraryItem.instantiate + + + + capture + com.vmware.ovfs.LibraryItem.capture + + + + parse + com.vmware.ovfs.LibraryItem.parse + + + + Scrub + com.vmware.content.Scrub + + + + Create + com.vmware.content.Library.Create + + + + Update + com.vmware.content.Library.Update + + + + Delete + com.vmware.content.Library.Delete + + + + DeleteContent + com.vmware.content.Library.DeleteContent + + + + Sync + com.vmware.content.Library.Sync + + + + Scrub + com.vmware.content.Library.Scrub + + + + Create + com.vmware.content.LibraryItem.Create + + + + Update + com.vmware.content.LibraryItem.Update + + + + UpdateBackings + com.vmware.content.LibraryItem.UpdateBackings + + + + Delete + com.vmware.content.LibraryItem.Delete + + + + DeleteContent + com.vmware.content.LibraryItem.DeleteContent + + + + DeleteFileContent + com.vmware.content.LibraryItem.DeleteFileContent + + + + UploadContent + com.vmware.content.LibraryItem.UploadContent + + + + FetchContent + com.vmware.content.LibraryItem.FetchContent + + + + Copy + com.vmware.content.LibraryItem.Copy + + + + Sync + com.vmware.content.LibraryItem.Sync + + + + WaitForUpload + com.vmware.content.LibraryItem.WaitForUpload + + + + SetTag + com.vmware.content.LibraryItem.SetTag + + + + RemoveTag + com.vmware.content.LibraryItem.RemoveTag + + + + Install vSAN iSCSI target service + com.vmware.vsan.iscsi.tasks.installVibTask + + + + Create Home Object and set vSAN iSCSI target service + com.vmware.vsan.iscsi.tasks.settingTask + + + + Enable vSAN iSCSI target service in cluster + com.vmware.vsan.iscsi.tasks.enable + + + + Edit vSAN iSCSI target service in cluster + com.vmware.vsan.iscsi.tasks.edit + + + + Add a new iSCSI target + com.vmware.vsan.iscsi.tasks.addTarget + + + + Edit the iSCSI target + com.vmware.vsan.iscsi.tasks.editTarget + + + + Remove the iSCSI target + com.vmware.vsan.iscsi.tasks.removeTarget + + + + Add a new iSCSI LUN + com.vmware.vsan.iscsi.tasks.addLUN + + + + Edit the iSCSI LUN + com.vmware.vsan.iscsi.tasks.editLUN + + + + Remove the iSCSI LUN + com.vmware.vsan.iscsi.tasks.removeLUN + + + + VMDK Load Test + com.vmware.vsan.health.tasks.runvmdkloadtest + + + + Install vSAN health ESX extension + com.vmware.vsan.health.tasks.health.preparecluster + + + + Uninstall vSAN health ESX extension + com.vmware.vsan.health.tasks.health.uninstallcluster + + + + Install vSAN sizing ESX extension + com.vmware.vsan.health.tasks.sizing.preparecluster + + + + Uninstall vSAN sizing ESX extension + com.vmware.vsan.health.tasks.sizing.uninstallcluster + + + + preparecluster + com.vmware.vsan.health.tasks.perfsvc.preparecluster + + + + uninstallcluster + com.vmware.vsan.health.tasks.perfsvc.uninstallcluster + + + + Fix vSAN Cluster Object Immediately + com.vmware.vsan.health.tasks.repairclusterobjects + + + + Rebalance vSAN Cluster + com.vmware.vsan.health.tasks.rebalancecluster + + + + Stop Rebalance vSAN Cluster + com.vmware.vsan.health.tasks.stoprebalancecluster + + + + Upgrade vSAN disk format + com.vmware.vsan.health.tasks.upgrade + + + + Attach vSAN support bundle to SR + com.vmware.vsan.health.tasks.attachtosr + + + + Attach vSAN support bundle to PR + com.vmware.vsan.health.tasks.attachtopr + + + + Download file from URL + com.vmware.vsan.health.tasks.downloadfromurl + + + + Online check of vSAN health + com.vmware.vsan.health.tasks.performonlinehealthcheck + + + + Remediate vSAN cluster + com.vmware.vsan.clustermgmt.tasks.remediatevsancluster + + + + Remediate vSAN configurations + com.vmware.vsan.clustermgmt.tasks.remediatevc + + + + Enable vSAN performance service + com.vmware.vsan.perfsvc.tasks.createstatsdb + + + + Disable vSAN performance service + com.vmware.vsan.perfsvc.tasks.deletestatsdb + + + + Gathering data for performance diagnosis + com.vmware.vsan.perfsvc.tasks.runqueryfordiagnosis + + + + vSAN: Update Software/Driver/Firmware + com.vmware.vsan.patch.tasks.patch + + + + vSAN: Migrate VSS to VDS + com.vmware.vsan.vds.tasks.migratevss + + + + Create disk group on vSAN + com.vmware.vsan.diskmgmt.tasks.initializediskmappings + + + + Add witness host to a stretched cluster + com.vmware.vsan.stretchedcluster.tasks.addwitnesshost + + + + Replace witness host for a stretched cluster + com.vmware.vsan.stretchedcluster.tasks.replacewitnesshost + + + + Remove witness host from a stretched cluster + com.vmware.vsan.stretchedcluster.tasks.removewitnesshost + + + + Convert the given configuration to a stretched cluster + com.vmware.vsan.stretchedcluster.tasks.convert2stretchedcluster + + + + Set preferred fault domain for a stretched cluster + com.vmware.vsan.stretchedcluster.tasks.setpreferredfaultdomain + + + + Convert disk format for vSAN + com.vmware.vsan.diskconvertion.tasks.conversion + + + + Reconfigure vSAN cluster + com.vmware.vsan.clustermgmt.tasks.reconfigurecluster + + + + Regenerate new keys for encrypted vSAN cluster + com.vmware.vsan.clustermgmt.tasks.rekey + + + + vSAN operation precheck + com.vmware.vsan.clustermgmt.tasks.precheck + + + + Updates the vSAN configuration for this host + com.vmware.vsan.vsansystem.tasks.update + + + + Scan vSAN Objects for issues + com.vmware.vsan.diskmgmt.tasks.objectscan + + + + Perform Convert disk format precheck for issues that could be encountered + com.vmware.vsan.diskconvertion.tasks.precheck + + + + Perform compliance resource check task + com.vmware.vsan.prechecker.tasks.complianceresourcecheck + + + + Download patch definitions + com.vmware.vcIntegrity.SigUpdateTask + + + + Check new notifications + com.vmware.vcIntegrity.CheckNotificationTask + + + + Scan an entity + com.vmware.vcIntegrity.ScanTask + + + + Remediate an entity + com.vmware.vcIntegrity.RemediateTask + + + + Stage patches to an entity + com.vmware.vcIntegrity.StageTask + + + + Discover virtual appliance + com.vmware.vcIntegrity.VaDiscoveryTask + + + + Detect Update Manager Guest Agent installation on Linux VMs + com.vmware.vcIntegrity.DetectLinuxGATask + + + + Cancel detecting Update Manager GuestAgent installation on Linux VMs + com.vmware.vcIntegrity.CancelDetectLinuxGATask + + + + Cancel download of patch definitions + com.vmware.vcIntegrity.CancelSigUpdateTask + + + + Cancel scanning an entity + com.vmware.vcIntegrity.CancelScanTask + + + + Cancel remediating an entity + com.vmware.vcIntegrity.CancelRemediateTask + + + + Cancel discovering a virtual appliance + com.vmware.vcIntegrity.CancelVaDiscoveryTask + + + + Configure VMware Tools upgrade setting + com.vmware.vcIntegrity.ConfigureToolsUpgradeTask + + + + Import ESXi image + com.vmware.vcIntegrity.ImportRelease + + + + Upload offline patches + com.vmware.vcIntegrity.DownloadOfflinePatchTask + + + + Confirm importing offline host patches + com.vmware.vcIntegrity.ConfirmOfflinePatchTask + + + + Cancel importing offline host patches + com.vmware.vcIntegrity.CancelOfflinePatchTask + + + + Remediation pre-check + com.vmware.vcIntegrity.RemediatePrecheckTask + + + + Task is queued + queued + + + + Task is in progress + running + + + + Task completed successfully + success + + + + Task completed with a failure + error + + + + Task started by a scheduled task + TaskReasonSchedule + + + + Task started by a specific user + TaskReasonUser + + + + Task started by the server + TaskReasonSystem + + + + Task started by an alarm + TaskReasonAlarm + + + + + maxCollector + 0 + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0014-ExtensionManager-ExtensionManager.xml b/pkg/check/testdata/default/0014-ExtensionManager-ExtensionManager.xml new file mode 100644 index 00000000..be32631e --- /dev/null +++ b/pkg/check/testdata/default/0014-ExtensionManager-ExtensionManager.xml @@ -0,0 +1,7 @@ + + ExtensionManager + + extensionList + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml b/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml new file mode 100644 index 00000000..158744fe --- /dev/null +++ b/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml @@ -0,0 +1,40 @@ + + CustomizationSpecManager + + info + + + vcsim-linux + + Linux + 1569965707 + 2021-01-08T17:08:20.679746468+01:00 + + + vcsim-linux-static + + Linux + 1569969598 + 2021-01-08T17:08:20.679746894+01:00 + + + vcsim-windows-static + + Windows + 1569978029 + 2021-01-08T17:08:20.679747102+01:00 + + + vcsim-windows-domain + + Windows + 1569970234 + 2021-01-08T17:08:20.679747246+01:00 + + + + + encryptionKey + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0016-CustomFieldsManager-CustomFieldsManager.xml b/pkg/check/testdata/default/0016-CustomFieldsManager-CustomFieldsManager.xml new file mode 100644 index 00000000..38cf176f --- /dev/null +++ b/pkg/check/testdata/default/0016-CustomFieldsManager-CustomFieldsManager.xml @@ -0,0 +1,7 @@ + + CustomFieldsManager + + field + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0017-DiagnosticManager-DiagMgr.xml b/pkg/check/testdata/default/0017-DiagnosticManager-DiagMgr.xml new file mode 100644 index 00000000..f60b12b1 --- /dev/null +++ b/pkg/check/testdata/default/0017-DiagnosticManager-DiagMgr.xml @@ -0,0 +1,3 @@ + + DiagMgr + \ No newline at end of file diff --git a/pkg/check/testdata/default/0018-LicenseManager-LicenseManager.xml b/pkg/check/testdata/default/0018-LicenseManager-LicenseManager.xml new file mode 100644 index 00000000..5a521506 --- /dev/null +++ b/pkg/check/testdata/default/0018-LicenseManager-LicenseManager.xml @@ -0,0 +1,3 @@ + + LicenseManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0019-SearchIndex-SearchIndex.xml b/pkg/check/testdata/default/0019-SearchIndex-SearchIndex.xml new file mode 100644 index 00000000..a527df65 --- /dev/null +++ b/pkg/check/testdata/default/0019-SearchIndex-SearchIndex.xml @@ -0,0 +1,3 @@ + + SearchIndex + \ No newline at end of file diff --git a/pkg/check/testdata/default/0020-FileManager-FileManager.xml b/pkg/check/testdata/default/0020-FileManager-FileManager.xml new file mode 100644 index 00000000..8254734f --- /dev/null +++ b/pkg/check/testdata/default/0020-FileManager-FileManager.xml @@ -0,0 +1,3 @@ + + FileManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0021-DatastoreNamespaceManager-DatastoreNamespaceManager.xml b/pkg/check/testdata/default/0021-DatastoreNamespaceManager-DatastoreNamespaceManager.xml new file mode 100644 index 00000000..8028c4d4 --- /dev/null +++ b/pkg/check/testdata/default/0021-DatastoreNamespaceManager-DatastoreNamespaceManager.xml @@ -0,0 +1,3 @@ + + DatastoreNamespaceManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0022-VirtualDiskManager-virtualDiskManager.xml b/pkg/check/testdata/default/0022-VirtualDiskManager-virtualDiskManager.xml new file mode 100644 index 00000000..7f93beb4 --- /dev/null +++ b/pkg/check/testdata/default/0022-VirtualDiskManager-virtualDiskManager.xml @@ -0,0 +1,3 @@ + + virtualDiskManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0023-HostSnmpSystem-SnmpSystem.xml b/pkg/check/testdata/default/0023-HostSnmpSystem-SnmpSystem.xml new file mode 100644 index 00000000..cfc1fa5e --- /dev/null +++ b/pkg/check/testdata/default/0023-HostSnmpSystem-SnmpSystem.xml @@ -0,0 +1,16 @@ + + SnmpSystem + + configuration + + + + limits + + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0024-VirtualMachineProvisioningChecker-ProvChecker.xml b/pkg/check/testdata/default/0024-VirtualMachineProvisioningChecker-ProvChecker.xml new file mode 100644 index 00000000..125242fb --- /dev/null +++ b/pkg/check/testdata/default/0024-VirtualMachineProvisioningChecker-ProvChecker.xml @@ -0,0 +1,3 @@ + + ProvChecker + \ No newline at end of file diff --git a/pkg/check/testdata/default/0025-VirtualMachineCompatibilityChecker-CompatChecker.xml b/pkg/check/testdata/default/0025-VirtualMachineCompatibilityChecker-CompatChecker.xml new file mode 100644 index 00000000..d2206f9c --- /dev/null +++ b/pkg/check/testdata/default/0025-VirtualMachineCompatibilityChecker-CompatChecker.xml @@ -0,0 +1,3 @@ + + CompatChecker + \ No newline at end of file diff --git a/pkg/check/testdata/default/0026-OvfManager-OvfManager.xml b/pkg/check/testdata/default/0026-OvfManager-OvfManager.xml new file mode 100644 index 00000000..c1dadf8f --- /dev/null +++ b/pkg/check/testdata/default/0026-OvfManager-OvfManager.xml @@ -0,0 +1,11 @@ + + OvfManager + + ovfImportOption + + + + ovfExportOption + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0027-IpPoolManager-IpPoolManager.xml b/pkg/check/testdata/default/0027-IpPoolManager-IpPoolManager.xml new file mode 100644 index 00000000..e613210c --- /dev/null +++ b/pkg/check/testdata/default/0027-IpPoolManager-IpPoolManager.xml @@ -0,0 +1,3 @@ + + IpPoolManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0028-DistributedVirtualSwitchManager-DVSManager.xml b/pkg/check/testdata/default/0028-DistributedVirtualSwitchManager-DVSManager.xml new file mode 100644 index 00000000..2967282c --- /dev/null +++ b/pkg/check/testdata/default/0028-DistributedVirtualSwitchManager-DVSManager.xml @@ -0,0 +1,3 @@ + + DVSManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0029-HostProfileManager-HostProfileManager.xml b/pkg/check/testdata/default/0029-HostProfileManager-HostProfileManager.xml new file mode 100644 index 00000000..faa67a3d --- /dev/null +++ b/pkg/check/testdata/default/0029-HostProfileManager-HostProfileManager.xml @@ -0,0 +1,7 @@ + + HostProfileManager + + profile + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0030-ClusterProfileManager-ClusterProfileManager.xml b/pkg/check/testdata/default/0030-ClusterProfileManager-ClusterProfileManager.xml new file mode 100644 index 00000000..c0df3cb2 --- /dev/null +++ b/pkg/check/testdata/default/0030-ClusterProfileManager-ClusterProfileManager.xml @@ -0,0 +1,7 @@ + + ClusterProfileManager + + profile + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0031-ProfileComplianceManager-MoComplianceManager.xml b/pkg/check/testdata/default/0031-ProfileComplianceManager-MoComplianceManager.xml new file mode 100644 index 00000000..b23a54d0 --- /dev/null +++ b/pkg/check/testdata/default/0031-ProfileComplianceManager-MoComplianceManager.xml @@ -0,0 +1,3 @@ + + MoComplianceManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0032-LocalizationManager-LocalizationManager.xml b/pkg/check/testdata/default/0032-LocalizationManager-LocalizationManager.xml new file mode 100644 index 00000000..ab46fe1a --- /dev/null +++ b/pkg/check/testdata/default/0032-LocalizationManager-LocalizationManager.xml @@ -0,0 +1,7 @@ + + LocalizationManager + + catalog + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0033-StorageResourceManager-StorageResourceManager.xml b/pkg/check/testdata/default/0033-StorageResourceManager-StorageResourceManager.xml new file mode 100644 index 00000000..6390f3d2 --- /dev/null +++ b/pkg/check/testdata/default/0033-StorageResourceManager-StorageResourceManager.xml @@ -0,0 +1,3 @@ + + StorageResourceManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0034-GuestOperationsManager-guestOperationsManager.xml b/pkg/check/testdata/default/0034-GuestOperationsManager-guestOperationsManager.xml new file mode 100644 index 00000000..afc1a64c --- /dev/null +++ b/pkg/check/testdata/default/0034-GuestOperationsManager-guestOperationsManager.xml @@ -0,0 +1,11 @@ + + guestOperationsManager + + fileManager + guestOperationsFileManager + + + processManager + guestOperationsProcessManager + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0035-OverheadMemoryManager-OverheadMemoryManager.xml b/pkg/check/testdata/default/0035-OverheadMemoryManager-OverheadMemoryManager.xml new file mode 100644 index 00000000..fa20822b --- /dev/null +++ b/pkg/check/testdata/default/0035-OverheadMemoryManager-OverheadMemoryManager.xml @@ -0,0 +1,3 @@ + + OverheadMemoryManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0036-CertificateManager-certificateManager.xml b/pkg/check/testdata/default/0036-CertificateManager-certificateManager.xml new file mode 100644 index 00000000..4d7b9ff1 --- /dev/null +++ b/pkg/check/testdata/default/0036-CertificateManager-certificateManager.xml @@ -0,0 +1,3 @@ + + certificateManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0037-IoFilterManager-IoFilterManager.xml b/pkg/check/testdata/default/0037-IoFilterManager-IoFilterManager.xml new file mode 100644 index 00000000..0e700c1c --- /dev/null +++ b/pkg/check/testdata/default/0037-IoFilterManager-IoFilterManager.xml @@ -0,0 +1,3 @@ + + IoFilterManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0038-VcenterVStorageObjectManager-VStorageObjectManager.xml b/pkg/check/testdata/default/0038-VcenterVStorageObjectManager-VStorageObjectManager.xml new file mode 100644 index 00000000..c1087b2c --- /dev/null +++ b/pkg/check/testdata/default/0038-VcenterVStorageObjectManager-VStorageObjectManager.xml @@ -0,0 +1,3 @@ + + VStorageObjectManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0039-HostSpecificationManager-HostSpecificationManager.xml b/pkg/check/testdata/default/0039-HostSpecificationManager-HostSpecificationManager.xml new file mode 100644 index 00000000..bfb1396a --- /dev/null +++ b/pkg/check/testdata/default/0039-HostSpecificationManager-HostSpecificationManager.xml @@ -0,0 +1,3 @@ + + HostSpecificationManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0040-CryptoManagerKmip-CryptoManager.xml b/pkg/check/testdata/default/0040-CryptoManagerKmip-CryptoManager.xml new file mode 100644 index 00000000..8475a6a8 --- /dev/null +++ b/pkg/check/testdata/default/0040-CryptoManagerKmip-CryptoManager.xml @@ -0,0 +1,11 @@ + + CryptoManager + + enabled + false + + + kmipServers + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0041-HealthUpdateManager-HealthUpdateManager.xml b/pkg/check/testdata/default/0041-HealthUpdateManager-HealthUpdateManager.xml new file mode 100644 index 00000000..525d832b --- /dev/null +++ b/pkg/check/testdata/default/0041-HealthUpdateManager-HealthUpdateManager.xml @@ -0,0 +1,3 @@ + + HealthUpdateManager + \ No newline at end of file diff --git a/pkg/check/testdata/default/0042-FailoverClusterConfigurator-FailoverClusterConfigurator.xml b/pkg/check/testdata/default/0042-FailoverClusterConfigurator-FailoverClusterConfigurator.xml new file mode 100644 index 00000000..c0b52778 --- /dev/null +++ b/pkg/check/testdata/default/0042-FailoverClusterConfigurator-FailoverClusterConfigurator.xml @@ -0,0 +1,7 @@ + + FailoverClusterConfigurator + + disabledConfigureMethod + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0043-FailoverClusterManager-FailoverClusterManager.xml b/pkg/check/testdata/default/0043-FailoverClusterManager-FailoverClusterManager.xml new file mode 100644 index 00000000..665f2aa7 --- /dev/null +++ b/pkg/check/testdata/default/0043-FailoverClusterManager-FailoverClusterManager.xml @@ -0,0 +1,7 @@ + + FailoverClusterManager + + disabledClusterMethod + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml b/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml new file mode 100644 index 00000000..0faeb9b3 --- /dev/null +++ b/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml @@ -0,0 +1,100 @@ + + datacenter-2 + + value + + + + availableField + + + + parent + group-d1 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + vmFolder + folder-3 + + + hostFolder + folder-4 + + + datastoreFolder + folder-5 + + + networkFolder + folder-6 + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + dvportgroup-13 + + + + configuration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0045-Folder-folder-3.xml b/pkg/check/testdata/default/0045-Folder-folder-3.xml new file mode 100644 index 00000000..1a489b55 --- /dev/null +++ b/pkg/check/testdata/default/0045-Folder-folder-3.xml @@ -0,0 +1,161 @@ + + folder-3 + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + vm + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + vm-57 + vm-60 + vm-63 + vm-66 + + + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + vm + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + vm-57 + vm-60 + vm-63 + vm-66 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml b/pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml new file mode 100644 index 00000000..1d88db22 --- /dev/null +++ b/pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml @@ -0,0 +1,487 @@ + + vm-57 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_H0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-01-08T17:08:20.710831565+01:00 + DC0_H0_VM0 + otherGuest + vmx-13 + 265104de-1472-547c-b873-6dc7883fb6cb + b4689bed-97f0-5bcd-8a4c-07477cc8f06f + + otherGuest + + + [LocalDS_0] DC0_H0_VM0/DC0_H0_VM0.vmx + [LocalDS_0] DC0_H0_VM0 + [LocalDS_0] DC0_H0_VM0 + [LocalDS_0] DC0_H0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824636856992 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC0_H0_VM0/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + persistent + true + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-13 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:36:63:62 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + + + layout + + DC0_H0_VM0.nvram + vmware.log + + 204 + [LocalDS_0] DC0_H0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_H0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_H0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_H0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_H0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-01-08T17:08:20.71170659+01:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + 0 + 0 + 0 + + 2021-01-08T17:08:20.711706377+01:00 + + + + environmentBrowser + envbrowser-20 + + + resourcePool + resgroup-22 + + + runtime + + host-21 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:36:63:62 + true + 4000 + + + + + + summary + + vm-57 + + host-21 + connected + poweredOn + false + 2021-01-08T17:08:20.711818532+01:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_H0_VM0 + + [LocalDS_0] DC0_H0_VM0/DC0_H0_VM0.vmx + 32 + 1 + 1 + 1 + 265104de-1472-547c-b873-6dc7883fb6cb + b4689bed-97f0-5bcd-8a4c-07477cc8f06f + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-01-08T17:08:20.711706435+01:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + dvportgroup-13 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml b/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml new file mode 100644 index 00000000..1ea51c82 --- /dev/null +++ b/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml @@ -0,0 +1,3 @@ + + envbrowser-20 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml b/pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml new file mode 100644 index 00000000..fe19c794 --- /dev/null +++ b/pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml @@ -0,0 +1,487 @@ + + vm-60 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_H0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-01-08T17:08:20.712084403+01:00 + DC0_H0_VM1 + otherGuest + vmx-13 + 39365506-5a0a-5fd0-be10-9586ad53aaad + 12f8928d-f144-5c57-89db-dd2d0902c9fa + + otherGuest + + + [LocalDS_0] DC0_H0_VM1/DC0_H0_VM1.vmx + [LocalDS_0] DC0_H0_VM1 + [LocalDS_0] DC0_H0_VM1 + [LocalDS_0] DC0_H0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824636746096 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC0_H0_VM1/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + persistent + true + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-13 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:36:63:62 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + + + layout + + DC0_H0_VM1.nvram + vmware.log + + 204 + [LocalDS_0] DC0_H0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_H0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_H0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_H0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_H0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-01-08T17:08:20.71270383+01:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + 0 + 0 + 0 + + 2021-01-08T17:08:20.712703585+01:00 + + + + environmentBrowser + envbrowser-20 + + + resourcePool + resgroup-22 + + + runtime + + host-21 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:36:63:62 + true + 4000 + + + + + + summary + + vm-60 + + host-21 + connected + poweredOn + false + 2021-01-08T17:08:20.712787081+01:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_H0_VM1 + + [LocalDS_0] DC0_H0_VM1/DC0_H0_VM1.vmx + 32 + 1 + 1 + 1 + 39365506-5a0a-5fd0-be10-9586ad53aaad + 12f8928d-f144-5c57-89db-dd2d0902c9fa + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-01-08T17:08:20.712703641+01:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + dvportgroup-13 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml b/pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml new file mode 100644 index 00000000..becfd0db --- /dev/null +++ b/pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml @@ -0,0 +1,487 @@ + + vm-63 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_RP0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-01-08T17:08:20.712958895+01:00 + DC0_C0_RP0_VM0 + otherGuest + vmx-13 + cd0681bf-2f18-5c00-9b9b-8197c0095348 + bfff331f-7f07-572d-951e-edd3701dc061 + + otherGuest + + + [LocalDS_0] DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx + [LocalDS_0] DC0_C0_RP0_VM0 + [LocalDS_0] DC0_C0_RP0_VM0 + [LocalDS_0] DC0_C0_RP0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824638594200 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC0_C0_RP0_VM0/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + persistent + true + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-13 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:33:34:38 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + + + layout + + DC0_C0_RP0_VM0.nvram + vmware.log + + 204 + [LocalDS_0] DC0_C0_RP0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_C0_RP0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_C0_RP0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_C0_RP0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_C0_RP0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-01-08T17:08:20.713581425+01:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + 0 + 0 + 0 + + 2021-01-08T17:08:20.713581175+01:00 + + + + environmentBrowser + envbrowser-25 + + + resourcePool + resgroup-26 + + + runtime + + host-50 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:33:34:38 + true + 4000 + + + + + + summary + + vm-63 + + host-50 + connected + poweredOn + false + 2021-01-08T17:08:20.713668046+01:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_C0_RP0_VM0 + + [LocalDS_0] DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx + 32 + 1 + 1 + 1 + cd0681bf-2f18-5c00-9b9b-8197c0095348 + bfff331f-7f07-572d-951e-edd3701dc061 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-01-08T17:08:20.713581236+01:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + dvportgroup-13 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml b/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml new file mode 100644 index 00000000..6205bce5 --- /dev/null +++ b/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml @@ -0,0 +1,3 @@ + + envbrowser-25 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml b/pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml new file mode 100644 index 00000000..7c5b6443 --- /dev/null +++ b/pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml @@ -0,0 +1,487 @@ + + vm-66 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_RP0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-01-08T17:08:20.713854587+01:00 + DC0_C0_RP0_VM1 + otherGuest + vmx-13 + f7c371d6-2003-5a48-9859-3bc9a8b08908 + 6132d223-1566-5921-bc3b-df91ece09a4d + + otherGuest + + + [LocalDS_0] DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx + [LocalDS_0] DC0_C0_RP0_VM1 + [LocalDS_0] DC0_C0_RP0_VM1 + [LocalDS_0] DC0_C0_RP0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824639098712 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC0_C0_RP0_VM1/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + persistent + true + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-13 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:33:34:38 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + + + layout + + DC0_C0_RP0_VM1.nvram + vmware.log + + 204 + [LocalDS_0] DC0_C0_RP0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_C0_RP0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_C0_RP0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_C0_RP0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_C0_RP0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-01-08T17:08:20.715290329+01:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + 0 + 0 + 0 + + 2021-01-08T17:08:20.715290106+01:00 + + + + environmentBrowser + envbrowser-25 + + + resourcePool + resgroup-26 + + + runtime + + host-34 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:33:34:38 + true + 4000 + + + + + + summary + + vm-66 + + host-34 + connected + poweredOn + false + 2021-01-08T17:08:20.715375497+01:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_C0_RP0_VM1 + + [LocalDS_0] DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx + 32 + 1 + 1 + 1 + f7c371d6-2003-5a48-9859-3bc9a8b08908 + 6132d223-1566-5921-bc3b-df91ece09a4d + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-01-08T17:08:20.715290162+01:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + dvportgroup-13 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0052-Folder-folder-4.xml b/pkg/check/testdata/default/0052-Folder-folder-4.xml new file mode 100644 index 00000000..3504e9c8 --- /dev/null +++ b/pkg/check/testdata/default/0052-Folder-folder-4.xml @@ -0,0 +1,155 @@ + + folder-4 + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + host + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + computeresource-23 + clustercomputeresource-27 + + + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + host + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + computeresource-23 + clustercomputeresource-27 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml b/pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml new file mode 100644 index 00000000..5029bea2 --- /dev/null +++ b/pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml @@ -0,0 +1,113 @@ + + computeresource-23 + + value + + + + availableField + + + + parent + folder-4 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + resourcePool + resgroup-22 + + + host + + host-21 + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + summary + + 2294 + 4294430720 + 2 + 2 + 2294 + 4294430720 + 1 + 1 + green + + + + environmentBrowser + envbrowser-20 + + + configurationEx + + vmDirectory + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0054-HostSystem-host-21.xml b/pkg/check/testdata/default/0054-HostSystem-host-21.xml new file mode 100644 index 00000000..61478b59 --- /dev/null +++ b/pkg/check/testdata/default/0054-HostSystem-host-21.xml @@ -0,0 +1,5298 @@ + + host-21 + + value + + + + availableField + + + + parent + computeresource-23 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-01-08T17:08:20.682378072+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-21 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + dcf7fb3c-4a1c-5a05-b730-5e09f3704e2f + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-01-08T17:08:20.682378072+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC0_H0 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + dcf7fb3c-4a1c-5a05-b730-5e09f3704e2f + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-15 + memoryManagerSystem + hoststoragesystem-19 + hostnetworksystem-16 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-18 + optionmanager-17 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-57 + vm-60 + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml b/pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml new file mode 100644 index 00000000..8f609c75 --- /dev/null +++ b/pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml @@ -0,0 +1,17 @@ + + hostdatastoresystem-15 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml b/pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml new file mode 100644 index 00000000..21ca6644 --- /dev/null +++ b/pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-16 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml b/pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml new file mode 100644 index 00000000..6e0f72f1 --- /dev/null +++ b/pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml @@ -0,0 +1,176 @@ + + resgroup-22 + + value + + + + availableField + + + + parent + computeresource-23 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + Resources + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + Resources + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + computeresource-23 + + + resourcePool + + + + vm + + vm-57 + vm-60 + + + + config + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml b/pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml new file mode 100644 index 00000000..3f68c22c --- /dev/null +++ b/pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml @@ -0,0 +1,161 @@ + + clustercomputeresource-27 + + value + + + + availableField + + + + parent + folder-4 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + resourcePool + resgroup-26 + + + host + + host-34 + host-42 + host-50 + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + summary + + 6882 + 12883292160 + 6 + 6 + 6882 + 12883292160 + 3 + 3 + green + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + environmentBrowser + envbrowser-25 + + + configurationEx + + vmDirectory + + + true + + + + + configuration + + + + + + + recommendation + + + + drsRecommendation + + + + migrationHistory + + + + actionHistory + + + + drsFault + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0059-HostSystem-host-34.xml b/pkg/check/testdata/default/0059-HostSystem-host-34.xml new file mode 100644 index 00000000..fac1e603 --- /dev/null +++ b/pkg/check/testdata/default/0059-HostSystem-host-34.xml @@ -0,0 +1,5297 @@ + + host-34 + + value + + + + availableField + + + + parent + clustercomputeresource-27 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-01-08T17:08:20.69168753+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-34 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + c2ac5c27-2c72-5d75-9472-fd619e1af669 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-01-08T17:08:20.69168753+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC0_C0_H0 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + c2ac5c27-2c72-5d75-9472-fd619e1af669 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-29 + memoryManagerSystem + hoststoragesystem-33 + hostnetworksystem-30 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-32 + optionmanager-31 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-66 + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml b/pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml new file mode 100644 index 00000000..4b32f0de --- /dev/null +++ b/pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml @@ -0,0 +1,17 @@ + + hostdatastoresystem-29 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml b/pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml new file mode 100644 index 00000000..ebd3d726 --- /dev/null +++ b/pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-30 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0062-HostSystem-host-42.xml b/pkg/check/testdata/default/0062-HostSystem-host-42.xml new file mode 100644 index 00000000..01e73c86 --- /dev/null +++ b/pkg/check/testdata/default/0062-HostSystem-host-42.xml @@ -0,0 +1,5295 @@ + + host-42 + + value + + + + availableField + + + + parent + clustercomputeresource-27 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_H1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-01-08T17:08:20.697733144+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-42 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + 71250d01-ac64-5947-be3f-eed29cec5d20 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-01-08T17:08:20.697733144+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC0_C0_H1 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + 71250d01-ac64-5947-be3f-eed29cec5d20 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-37 + memoryManagerSystem + hoststoragesystem-41 + hostnetworksystem-38 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-40 + optionmanager-39 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml b/pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml new file mode 100644 index 00000000..87959bfc --- /dev/null +++ b/pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml @@ -0,0 +1,17 @@ + + hostdatastoresystem-37 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml b/pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml new file mode 100644 index 00000000..051d2577 --- /dev/null +++ b/pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-38 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0065-HostSystem-host-50.xml b/pkg/check/testdata/default/0065-HostSystem-host-50.xml new file mode 100644 index 00000000..c4436a45 --- /dev/null +++ b/pkg/check/testdata/default/0065-HostSystem-host-50.xml @@ -0,0 +1,5297 @@ + + host-50 + + value + + + + availableField + + + + parent + clustercomputeresource-27 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_H2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-01-08T17:08:20.703393303+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-50 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + 2590bc96-2b87-5b73-a9cb-2acba722a79a + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-01-08T17:08:20.703393303+01:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC0_C0_H2 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + 2590bc96-2b87-5b73-a9cb-2acba722a79a + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-45 + memoryManagerSystem + hoststoragesystem-49 + hostnetworksystem-46 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-48 + optionmanager-47 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-63 + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + network + + network-7 + dvportgroup-11 + dvportgroup-13 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml b/pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml new file mode 100644 index 00000000..5f2451c3 --- /dev/null +++ b/pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml @@ -0,0 +1,17 @@ + + hostdatastoresystem-45 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml b/pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml new file mode 100644 index 00000000..cf1fe666 --- /dev/null +++ b/pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-46 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml b/pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml new file mode 100644 index 00000000..024be685 --- /dev/null +++ b/pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml @@ -0,0 +1,176 @@ + + resgroup-26 + + value + + + + availableField + + + + parent + clustercomputeresource-27 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + Resources + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + Resources + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-27 + + + resourcePool + + + + vm + + vm-63 + vm-66 + + + + config + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0069-Folder-folder-5.xml b/pkg/check/testdata/default/0069-Folder-folder-5.xml new file mode 100644 index 00000000..8b541020 --- /dev/null +++ b/pkg/check/testdata/default/0069-Folder-folder-5.xml @@ -0,0 +1,161 @@ + + folder-5 + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + datastore + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + datastore + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml b/pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml new file mode 100644 index 00000000..144376d8 --- /dev/null +++ b/pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml @@ -0,0 +1,128 @@ + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + value + + + + availableField + + + + parent + folder-5 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_0 + testdata/default/govcsim-DC0-LocalDS_0-824089577 + 16629899264 + 16634093568 + 16634093568 + 2021-01-08T17:08:20.710164907+01:00 + testdata/default/govcsim-DC0-LocalDS_0-824089577 + + + + summary + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + LocalDS_0 + testdata/default/govcsim-DC0-LocalDS_0-824089577 + 16753934336 + 16629899264 + true + OTHER + normal + + + + host + + + host-50 + + readWrite + true + true + + + + + + vm + + vm-57 + vm-60 + vm-63 + vm-66 + + + + browser + hostdatastorebrowser-55 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml b/pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml new file mode 100644 index 00000000..8bc765ae --- /dev/null +++ b/pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml @@ -0,0 +1,13 @@ + + hostdatastorebrowser-55 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0072-Folder-folder-6.xml b/pkg/check/testdata/default/0072-Folder-folder-6.xml new file mode 100644 index 00000000..9b3a74b9 --- /dev/null +++ b/pkg/check/testdata/default/0072-Folder-folder-6.xml @@ -0,0 +1,161 @@ + + folder-6 + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + network-7 + dvs-9 + dvportgroup-11 + dvportgroup-13 + + + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + network-7 + dvs-9 + dvportgroup-11 + dvportgroup-13 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0073-Network-network-7.xml b/pkg/check/testdata/default/0073-Network-network-7.xml new file mode 100644 index 00000000..dc297c04 --- /dev/null +++ b/pkg/check/testdata/default/0073-Network-network-7.xml @@ -0,0 +1,86 @@ + + network-7 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + VM Network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + network-7 + VM Network + true + + + + + host + + + + vm + + + + name + VM Network + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml b/pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml new file mode 100644 index 00000000..a966fcd6 --- /dev/null +++ b/pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml @@ -0,0 +1,120 @@ + + dvs-9 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DVS0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + uuid + fea97929-4b2d-5972-b146-930c6d0b4014 + + + capability + + + + summary + + DVS0 + fea97929-4b2d-5972-b146-930c6d0b4014 + 0 + + DVS + VMware, Inc. + 6.5.0 + 5973321 + etherswitch + + host-21 + host-34 + host-42 + host-50 + DVS0-DVUplinks-9 + DC0_DVPG0 + + + + config + + fea97929-4b2d-5972-b146-930c6d0b4014 + DVS0 + 0 + 0 + 0 + + + + 0001-01-01T00:00:00Z + 0 + + + + networkResourcePool + + + + portgroup + + dvportgroup-11 + dvportgroup-13 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml b/pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml new file mode 100644 index 00000000..02fcaf67 --- /dev/null +++ b/pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml @@ -0,0 +1,150 @@ + + dvportgroup-11 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DVS0-DVUplinks-9 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + dvportgroup-11 + DVS0-DVUplinks-9 + true + + + + + host + + host-21 + host-34 + host-42 + host-50 + + + + vm + + + + name + DVS0-DVUplinks-9 + + + key + dvportgroup-11 + + + config + + dvportgroup-11 + DVS0-DVUplinks-9 + 0 + dvs-9 + + + false + + 0 + 4094 + + + + false + + false + loadbalance_srcid + + + false + true + + + false + true + + + false + true + + + + + + true + false + false + false + true + false + false + false + false + false + false + + + + + portKeys + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml b/pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml new file mode 100644 index 00000000..c06e4b35 --- /dev/null +++ b/pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml @@ -0,0 +1,147 @@ + + dvportgroup-13 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_DVPG0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + dvportgroup-13 + DC0_DVPG0 + true + + + + + host + + host-21 + host-34 + host-42 + host-50 + + + + vm + + + + name + DC0_DVPG0 + + + key + dvportgroup-13 + + + config + + dvportgroup-13 + DC0_DVPG0 + 0 + dvs-9 + + + false + 0 + + + false + + false + loadbalance_srcid + + + false + true + + + false + true + + + false + true + + + + + + true + false + false + false + true + false + false + false + false + false + false + + + + + portKeys + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/README b/pkg/check/testdata/default/README new file mode 100644 index 00000000..fa84e222 --- /dev/null +++ b/pkg/check/testdata/default/README @@ -0,0 +1,13 @@ +This directory contains simulated vCenter environment, generated using vcsim and govc v0.23.1. + +# Run vcsim with default settings, i.e. with 1 host and 2 VMs +$ vcsim -tls=false + +# Save simulated objects in a directory. +$ govc object.save + +# Copy datastore content generated by vcsim from /tmp to here. +$ cp -r /tmp/govcsim-DC0-LocalDS_0* . + +# Change the datastore paths from "/tmp" to "testdata/default". +$ sed -i 's!/tmp/govcsim-DC0-LocalDS_0!testdata/default/govcsim-DC0-LocalDS_0!g' vcsim-127.0.0.1/*.xml diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log new file mode 100644 index 00000000..abe158ce --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/01/08 17:08:20 created +vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log new file mode 100644 index 00000000..abe158ce --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/01/08 17:08:20 created +vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log new file mode 100644 index 00000000..abe158ce --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/01/08 17:08:20 created +vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log new file mode 100644 index 00000000..abe158ce --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/01/08 17:08:20 created +vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff From 9d79a5598bab6009a497c0a78964d4e958170c87 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:34:49 +0100 Subject: [PATCH 05/26] Add CollectClusterInfo tests --- pkg/check/info_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pkg/check/info_test.go diff --git a/pkg/check/info_test.go b/pkg/check/info_test.go new file mode 100644 index 00000000..9d3aee39 --- /dev/null +++ b/pkg/check/info_test.go @@ -0,0 +1,33 @@ +package check + +import ( + "strings" + "testing" + + "k8s.io/component-base/metrics/legacyregistry" + "k8s.io/component-base/metrics/testutil" +) + +func TestInfo(t *testing.T) { + ctx, cleanup, err := setupSimulator(nil, defaultModel) + if err != nil { + t.Fatalf("Failed to setup vSphere simulator: %s", err) + } + defer cleanup() + + err = CollectClusterInfo(ctx) + if err != nil { + t.Errorf("CollectClusterInfo failed: %s", err) + } + + // UUID & version is hardcoded in the simulator, github.com/vmware/govmomi/simulator/vpx/service_content.go + expectedMetric := ` + # HELP vsphere_vcenter_info [ALPHA] Information about vSphere vCenter. + # TYPE vsphere_vcenter_info gauge + vsphere_vcenter_info{uuid="dbed6e0c-bd88-4ef6-b594-21283e1c677f",version="6.5.0"} 1 +` + + if err := testutil.GatherAndCompare(legacyregistry.DefaultGatherer, strings.NewReader(expectedMetric), "vsphere_vcenter_info"); err != nil { + t.Errorf("Unexpected metric: %s", err) + } +} From 0c706b81558fbf427cc9361832cfd8240318be92 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:47:42 +0100 Subject: [PATCH 06/26] Add CheckDatastore tests And fix a bug in the datastore checks. --- pkg/check/datastore.go | 2 +- pkg/check/datastore_test.go | 145 ++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 pkg/check/datastore_test.go diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index cfc32754..807d2328 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -242,7 +242,7 @@ func checkVolumeName(name string) error { if err != nil { return fmt.Errorf("error running systemd-escape: %s", err) } - if len(path) >= 255 { + if len(escapedPath) >= 255 { return fmt.Errorf("datastore name is too long: escaped volume path %q must be under 255 characters, got %d", escapedPath, len(escapedPath)) } return nil diff --git a/pkg/check/datastore_test.go b/pkg/check/datastore_test.go new file mode 100644 index 00000000..04c422e2 --- /dev/null +++ b/pkg/check/datastore_test.go @@ -0,0 +1,145 @@ +package check + +import ( + "fmt" + "testing" + + v1 "k8s.io/api/core/v1" + storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var ( + datastoreTests = []struct { + name string + datastore string + expectError bool + }{ + { + name: "short datastore", + datastore: "short", + expectError: false, + }, + { + name: "long datastore", + datastore: "01234567890123456789012345678901234567890123456789", // 269 characters in the escaped path + expectError: true, + }, + { + name: "short datastore with too many dashes", + datastore: "0-1-2-3-4-5-6-7-8-9", // 265 characters in the escaped path + expectError: true, + }, + } +) + +func TestCheckDefaultDatastore(t *testing.T) { + for _, test := range datastoreTests { + t.Run(test.name, func(t *testing.T) { + // Stage + kubeClient := &fakeKubeClient{ + infrastructure: infrastructure(), + nodes: defaultNodes(), + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + ctx.VMConfig.Workspace.DefaultDatastore = test.datastore + // Act + err = CheckDefaultDatastore(ctx) + + // Assert + if err != nil && !test.expectError { + t.Errorf("Unexpected error: %s", err) + } + if err == nil && test.expectError { + t.Errorf("Expected error, got none") + } + }) + } +} + +func TestCheckStorageClassesWithDatastore(t *testing.T) { + for _, test := range datastoreTests { + t.Run(test.name, func(t *testing.T) { + // Stage + kubeClient := &fakeKubeClient{ + infrastructure: infrastructure(), + nodes: defaultNodes(), + storageClasses: []storagev1.StorageClass{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: test.name, + }, + Provisioner: "kubernetes.io/vsphere-volume", + Parameters: map[string]string{ + // TODO: add tests with storagePolicyName + "datastore": test.datastore, + }, + }, + }, + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Act + err = CheckStorageClasses(ctx) + + // Assert + if err != nil && !test.expectError { + t.Errorf("Unexpected error: %s", err) + } + if err == nil && test.expectError { + t.Errorf("Expected error, got none") + } + }) + } +} + +func TestCheckPVs(t *testing.T) { + for _, test := range datastoreTests { + t.Run(test.name, func(t *testing.T) { + // Stage + kubeClient := &fakeKubeClient{ + infrastructure: infrastructure(), + nodes: defaultNodes(), + pvs: []v1.PersistentVolume{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: test.name, + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{ + VolumePath: fmt.Sprintf("[%s] 00000000-0000-0000-0000-000000000000/my-cluster-id-dynamic-pvc-00000000-0000-0000-0000-000000000000.vmdk", test.datastore), + }, + }, + }, + }, + }, + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Act + err = CheckPVs(ctx) + + // Assert + if err != nil && !test.expectError { + t.Errorf("Unexpected error: %s", err) + } + if err == nil && test.expectError { + t.Errorf("Expected error, got none") + } + }) + } +} From 3a5d164515aa269d82a6c41a7489d77ac99cca68 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:48:16 +0100 Subject: [PATCH 07/26] Add CollectNodeESXiVersion tests --- pkg/check/node_esxi_version_test.go | 84 +++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 pkg/check/node_esxi_version_test.go diff --git a/pkg/check/node_esxi_version_test.go b/pkg/check/node_esxi_version_test.go new file mode 100644 index 00000000..8755a3d1 --- /dev/null +++ b/pkg/check/node_esxi_version_test.go @@ -0,0 +1,84 @@ +package check + +import ( + "strings" + "testing" + + testutil "github.com/prometheus/client_golang/prometheus/testutil" + "k8s.io/component-base/metrics/legacyregistry" +) + +func TestCollectNodeESXiVersion(t *testing.T) { + tests := []struct { + name string + esxiVersion string + expectedMetrics string + }{ + { + name: "esxi 6.7.0", + esxiVersion: "6.7.0", + expectedMetrics: ` + # HELP vsphere_esxi_version_total [ALPHA] Number of ESXi hosts with given version. + # TYPE vsphere_esxi_version_total gauge + vsphere_esxi_version_total{version="6.7.0"} 1 +`, + }, + { + name: "esxi 7.0.0", + esxiVersion: "7.0.0", + expectedMetrics: ` + # HELP vsphere_esxi_version_total [ALPHA] Number of ESXi hosts with given version. + # TYPE vsphere_esxi_version_total gauge + vsphere_esxi_version_total{version="7.0.0"} 1 +`, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // Stage + check := CollectNodeESXiVersion{} + kubeClient := &fakeKubeClient{ + nodes: defaultNodes(), + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Set esxi version of the only host. + err = customizeHostVersion(defaultHostId, test.esxiVersion) + if err != nil { + t.Fatalf("Failed to customize host: %s", err) + } + + // Reset metrics from previous tests. Note: the tests can't run in parallel! + legacyregistry.Reset() + + // Act - simulate loop through all nodes + err = check.StartCheck() + if err != nil { + t.Errorf("StartCheck failed: %s", err) + } + + for _, node := range kubeClient.nodes { + vm, err := getVM(ctx, &node) + if err != nil { + t.Errorf("Error getting vm for node %s: %s", node.Name, err) + } + err = check.CheckNode(ctx, &node, vm) + if err != nil { + t.Errorf("Unexpected error on node %s: %s", node.Name, err) + } + } + + check.FinishCheck(ctx) + + // Assert + if err := testutil.GatherAndCompare(legacyregistry.DefaultGatherer, strings.NewReader(test.expectedMetrics), "vsphere_esxi_version_total"); err != nil { + t.Errorf("Unexpected metric: %s", err) + } + }) + } +} From 65d2dba52d9a6a49b7f7d6d338632e80e842c2cf Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:48:37 +0100 Subject: [PATCH 08/26] Add CollectNodeHWVersion tests --- pkg/check/node_hw_version_test.go | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 pkg/check/node_hw_version_test.go diff --git a/pkg/check/node_hw_version_test.go b/pkg/check/node_hw_version_test.go new file mode 100644 index 00000000..a82179b0 --- /dev/null +++ b/pkg/check/node_hw_version_test.go @@ -0,0 +1,93 @@ +package check + +import ( + "strings" + "testing" + + testutil "github.com/prometheus/client_golang/prometheus/testutil" + "github.com/vmware/govmomi/vim25/types" + "k8s.io/component-base/metrics/legacyregistry" +) + +func TestCollectNodeHWVersion(t *testing.T) { + tests := []struct { + name string + hwVersion string + expectedMetrics string + }{ + { + name: "hw ver 13", + hwVersion: "vmx-13", + // There are two VMs. The first one gets hwVersion from the test, the seconds one keeps the default (vmx-13) + expectedMetrics: ` +# HELP vsphere_node_hw_version_total [ALPHA] Number of vSphere nodes with given HW version. +# TYPE vsphere_node_hw_version_total gauge +vsphere_node_hw_version_total{hw_version="vmx-13"} 2 +`, + }, + { + name: "hw ver 15", + hwVersion: "vmx-15", + expectedMetrics: ` +# HELP vsphere_node_hw_version_total [ALPHA] Number of vSphere nodes with given HW version. +# TYPE vsphere_node_hw_version_total gauge +vsphere_node_hw_version_total{hw_version="vmx-13"} 1 +vsphere_node_hw_version_total{hw_version="vmx-15"} 1 +`, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // Stage + check := CollectNodeHWVersion{} + kubeClient := &fakeKubeClient{ + nodes: defaultNodes(), + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Set HW version of the first VM. Leave the other VMs with the default version (vmx-13). + node := &kubeClient.nodes[0] + err = customizeVM(ctx, node, &types.VirtualMachineConfigSpec{ + ExtraConfig: []types.BaseOptionValue{ + &types.OptionValue{ + Key: "SET.config.version", Value: test.hwVersion, + }, + }}) + if err != nil { + t.Fatalf("Failed to customize node: %s", err) + } + + // Reset metrics from previous tests. Note: the tests can't run in parallel! + legacyregistry.Reset() + + // Act - simulate loop through all nodes + err = check.StartCheck() + if err != nil { + t.Errorf("StartCheck failed: %s", err) + } + + for _, node := range kubeClient.nodes { + vm, err := getVM(ctx, &node) + if err != nil { + t.Errorf("Error getting vm for node %s: %s", node.Name, err) + } + err = check.CheckNode(ctx, &node, vm) + if err != nil { + t.Errorf("Unexpected error on node %s: %s", node.Name, err) + } + } + + check.FinishCheck(ctx) + + // Assert + if err := testutil.GatherAndCompare(legacyregistry.DefaultGatherer, strings.NewReader(test.expectedMetrics), "vsphere_node_hw_version_total"); err != nil { + t.Errorf("Unexpected metric: %s", err) + } + }) + } +} From de41566c8daf4db4f058b1a8a97710daf558fed4 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:48:54 +0100 Subject: [PATCH 09/26] Add CheckNodeProviderID tests --- pkg/check/node_provider_test.go | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pkg/check/node_provider_test.go diff --git a/pkg/check/node_provider_test.go b/pkg/check/node_provider_test.go new file mode 100644 index 00000000..2c59f916 --- /dev/null +++ b/pkg/check/node_provider_test.go @@ -0,0 +1,57 @@ +package check + +import ( + "testing" + + v1 "k8s.io/api/core/v1" +) + +func TestCheckNodeProviderID(t *testing.T) { + tests := []struct { + name string + node v1.Node + expectError bool + }{ + { + name: "node with provider", + node: node("vm1", withProviderID("3fd46873-7ff8-4a3f-a144-b7678def1010")), + expectError: false, + }, + { + name: "node without provider", + node: node("vm2"), + expectError: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // Stage + check := CheckNodeProviderID{} + err := check.StartCheck() + if err != nil { + t.Errorf("StartCheck failed: %s", err) + } + + kubeClient := &fakeKubeClient{ + nodes: []v1.Node{test.node}, + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Act + err = check.CheckNode(ctx, &test.node, nil) + + // Assert + if err != nil && !test.expectError { + t.Errorf("Unexpected error: %s", err) + } + if err == nil && test.expectError { + t.Errorf("Expected error, got none") + } + }) + } +} From 66b6b0666592167a75a357e73cb21ef0333c7ede Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 15:49:20 +0100 Subject: [PATCH 10/26] Add CheckNodeDiskUUID tests --- pkg/check/node_uuid_test.go | 74 +++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 pkg/check/node_uuid_test.go diff --git a/pkg/check/node_uuid_test.go b/pkg/check/node_uuid_test.go new file mode 100644 index 00000000..6a265857 --- /dev/null +++ b/pkg/check/node_uuid_test.go @@ -0,0 +1,74 @@ +package check + +import ( + "testing" + + "github.com/vmware/govmomi/vim25/types" +) + +func TestCheckNodeDiskUUID(t *testing.T) { + tests := []struct { + name string + uuidEnabled bool + expectError bool + }{ + { + name: "enabled true", + uuidEnabled: true, + expectError: false, + }, + { + name: "enabled false", + uuidEnabled: false, + expectError: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // Stage + check := CheckNodeDiskUUID{} + err := check.StartCheck() + if err != nil { + t.Errorf("StartCheck failed: %s", err) + } + + kubeClient := &fakeKubeClient{ + nodes: defaultNodes(), + } + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Set VM disk.enableUUID + node := &kubeClient.nodes[0] + err = customizeVM(ctx, node, &types.VirtualMachineConfigSpec{ + ExtraConfig: []types.BaseOptionValue{ + &types.OptionValue{ + Key: "SET.config.flags.diskUuidEnabled", Value: test.uuidEnabled, + }, + }}) + if err != nil { + t.Fatalf("Failed to customize node: %s", err) + } + + vm, err := getVM(ctx, node) + if err != nil { + t.Errorf("Error getting vm for node %s: %s", node.Name, err) + } + + // Act + err = check.CheckNode(ctx, &kubeClient.nodes[0], vm) + + // Assert + if err != nil && !test.expectError { + t.Errorf("Unexpected error: %s", err) + } + if err == nil && test.expectError { + t.Errorf("Expected error, got none") + } + }) + } +} From 88157e7230c86e9252cf316f97b24b8ff3f81a59 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 8 Jan 2021 17:01:58 +0100 Subject: [PATCH 11/26] Add CheckFolderPermissions tests --- pkg/check/folder_test.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 pkg/check/folder_test.go diff --git a/pkg/check/folder_test.go b/pkg/check/folder_test.go new file mode 100644 index 00000000..3cbf2aea --- /dev/null +++ b/pkg/check/folder_test.go @@ -0,0 +1,27 @@ +package check + +import ( + "testing" + "time" +) + +func TestCheckFolderPermissions(t *testing.T) { + // Very simple test, no error cases + + // Stage + kubeClient := &fakeKubeClient{} + ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) + if err != nil { + t.Fatalf("setupSimulator failed: %s", err) + } + defer cleanup() + + // Act + *Timeout = time.Second + err = CheckFolderPermissions(ctx) + + // Assert + if err != nil { + t.Errorf("Unexpected error: %s", err) + } +} From 66e6cdf807e5259f8f4211eb08bc90dbec86c323 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Tue, 9 Feb 2021 18:39:45 +0100 Subject: [PATCH 12/26] Fix volume name lenght check Use the same logic as Kubernetes to truncate cluster-id in volume names. This will fix false alerts when the cluster ID is too long. --- pkg/check/datastore.go | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index cfc32754..52f2eb63 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -17,6 +17,11 @@ import ( const ( dsParameter = "datastore" storagePolicyParameter = "storagepolicyname" + + // Maximum length of -dynamic-pvc- for volume names. + // Kubernetes uses 90, https://github.com/kubernetes/kubernetes/blob/93d288e2a47fa6d497b50d37c8b3a04e91da4228/pkg/volume/vsphere_volume/vsphere_volume_util.go#L100 + // Using 63 to work around https://bugzilla.redhat.com/show_bug.cgi?id=1926943 + maxVolumeName = 63 ) // CheckStorageClasses tests that datastore name in all StorageClasses in the cluster is short enough. @@ -228,9 +233,10 @@ func getPolicy(ctx *CheckContext, name string) ([]types.BasePbmProfile, error) { func checkDataStore(dsName string, infrastructure *configv1.Infrastructure) error { clusterID := infrastructure.Status.InfrastructureName - volumeName := fmt.Sprintf("[%s] 00000000-0000-0000-0000-000000000000/%s-dynamic-pvc-00000000-0000-0000-0000-000000000000.vmdk", dsName, clusterID) - klog.V(4).Infof("Checking data store %q with potential volume Name %s", dsName, volumeName) - if err := checkVolumeName(volumeName); err != nil { + volumeName := generateVolumeName(clusterID, "pvc-00000000-0000-0000-0000-000000000000", maxVolumeName) + fullVolumeName := fmt.Sprintf("[%s] 00000000-0000-0000-0000-000000000000/%s.vmdk", dsName, volumeName) + klog.V(4).Infof("Checking data store %q with potential volume Name %s", dsName, fullVolumeName) + if err := checkVolumeName(fullVolumeName); err != nil { return fmt.Errorf("datastore %s: %s", dsName, err) } return nil @@ -257,3 +263,20 @@ func systemdEscape(path string) (string, error) { escapedPath := strings.TrimSpace(string(out)) return escapedPath, nil } + +// Copied from https://github.com/kubernetes/kubernetes/blob/93d288e2a47fa6d497b50d37c8b3a04e91da4228/pkg/volume/util/util.go#L230 +// GenerateVolumeName returns a PV name with clusterName prefix. The function +// should be used to generate a name of GCE PD or Cinder volume. It basically +// adds "-dynamic-" before the PV name, making sure the resulting +// string fits given length and cuts "dynamic" if not. +func generateVolumeName(clusterName, pvName string, maxLength int) string { + prefix := clusterName + "-dynamic" + pvLen := len(pvName) + + // cut the "-dynamic" to fit full pvName into maxLength + // +1 for the '-' dash + if pvLen+1+len(prefix) > maxLength { + prefix = prefix[:maxLength-pvLen-1] + } + return prefix + "-" + pvName +} From 3c34324e16bf169cb267277a14060043b236b56c Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Fri, 5 Feb 2021 15:30:46 -0500 Subject: [PATCH 13/26] Add checks for datastore Ensure that datastore check gets called Add unit tests for the same --- pkg/check/datastore.go | 114 ++++++++++++++++++++++++++++++++++-- pkg/check/datastore_test.go | 36 +++++++++++- pkg/check/framework_test.go | 2 +- 3 files changed, 144 insertions(+), 8 deletions(-) diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index a7c44d87..2dd28fc2 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -6,10 +6,15 @@ import ( "os/exec" "strings" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/property" + configv1 "github.com/openshift/api/config/v1" + "github.com/vmware/govmomi/find" "github.com/vmware/govmomi/pbm" "github.com/vmware/govmomi/pbm/types" "github.com/vmware/govmomi/view" + "github.com/vmware/govmomi/vim25/mo" vim "github.com/vmware/govmomi/vim25/types" "k8s.io/klog/v2" ) @@ -17,11 +22,13 @@ import ( const ( dsParameter = "datastore" storagePolicyParameter = "storagepolicyname" - // Maximum length of -dynamic-pvc- for volume names. // Kubernetes uses 90, https://github.com/kubernetes/kubernetes/blob/93d288e2a47fa6d497b50d37c8b3a04e91da4228/pkg/volume/vsphere_volume/vsphere_volume_util.go#L100 // Using 63 to work around https://bugzilla.redhat.com/show_bug.cgi?id=1926943 - maxVolumeName = 63 + maxVolumeName = 63 + dataCenterType = "Datacenter" + DatastoreInfoProperty = "info" + SummaryProperty = "summary" ) // CheckStorageClasses tests that datastore name in all StorageClasses in the cluster is short enough. @@ -47,7 +54,7 @@ func CheckStorageClasses(ctx *CheckContext) error { for k, v := range sc.Parameters { switch strings.ToLower(k) { case dsParameter: - if err := checkDataStore(v, infra); err != nil { + if err := checkDataStore(ctx, v, infra); err != nil { klog.V(2).Infof("CheckStorageClasses: %s: %s", sc.Name, err) errs = append(errs, fmt.Errorf("StorageClass %s: %s", sc.Name, err)) } @@ -95,7 +102,7 @@ func CheckDefaultDatastore(ctx *CheckContext) error { } dsName := ctx.VMConfig.Workspace.DefaultDatastore - if err := checkDataStore(dsName, infra); err != nil { + if err := checkDataStore(ctx, dsName, infra); err != nil { return fmt.Errorf("defaultDatastore %q in vSphere configuration: %s", dsName, err) } return nil @@ -124,7 +131,7 @@ func checkStoragePolicy(ctx *CheckContext, policyName string, infrastructure *co var errs []error for _, dataStore := range dataStores { - err := checkDataStore(dataStore, infrastructure) + err := checkDataStore(ctx, dataStore, infrastructure) if err != nil { errs = append(errs, fmt.Errorf("storage policy %s: %s", policyName, err)) } @@ -231,7 +238,7 @@ func getPolicy(ctx *CheckContext, name string) ([]types.BasePbmProfile, error) { return c.RetrieveContent(tctx, []types.PbmProfileId{{UniqueId: name}}) } -func checkDataStore(dsName string, infrastructure *configv1.Infrastructure) error { +func checkDataStore(ctx *CheckContext, dsName string, infrastructure *configv1.Infrastructure) error { clusterID := infrastructure.Status.InfrastructureName volumeName := generateVolumeName(clusterID, "pvc-00000000-0000-0000-0000-000000000000", maxVolumeName) fullVolumeName := fmt.Sprintf("[%s] 00000000-0000-0000-0000-000000000000/%s.vmdk", dsName, volumeName) @@ -239,9 +246,104 @@ func checkDataStore(dsName string, infrastructure *configv1.Infrastructure) erro if err := checkVolumeName(fullVolumeName); err != nil { return fmt.Errorf("datastore %s: %s", dsName, err) } + if err := checkForDatastoreCluster(ctx, dsName); err != nil { + return err + } + return nil +} + +func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + finder := find.NewFinder(ctx.VMClient, false) + datacenters, err := finder.DatacenterList(tctx, "*") + if err != nil { + klog.Errorf("error listing datacenters: %v", err) + return nil + } + workspaceDC := ctx.VMConfig.Workspace.Datacenter + var matchingDC *object.Datacenter + for _, dc := range datacenters { + if dc.Name() == workspaceDC { + matchingDC = dc + } + } + + // lets fetch the datastore + finder = find.NewFinder(ctx.VMClient, false) + finder.SetDatacenter(matchingDC) + tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + ds, err := finder.Datastore(tctx, dataStoreName) + if err != nil { + klog.Errorf("error getting datastore %s: %v", dataStoreName, err) + return nil + } + + var dsMo mo.Datastore + pc := property.DefaultCollector(matchingDC.Client()) + properties := []string{DatastoreInfoProperty, SummaryProperty} + tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + err = pc.RetrieveOne(tctx, ds.Reference(), properties, &dsMo) + + if err != nil { + klog.Errorf("error getting properties of datastore %s: %v", dataStoreName, err) + return nil + } + + // list datastore cluster + m := view.NewManager(ctx.VMClient) + kind := []string{"StoragePod"} + tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + v, err := m.CreateContainerView(tctx, ctx.VMClient.ServiceContent.RootFolder, kind, true) + if err != nil { + klog.Errorf("error listing datastore cluster: %+v", err) + return nil + } + var content []mo.StoragePod + tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + err = v.Retrieve(tctx, kind, []string{SummaryProperty, "childEntity"}, &content) + if err != nil { + klog.Errorf("error retrieving datastore cluster properties: %+v", err) + return nil + } + err = v.Destroy(tctx) + if err != nil { + klog.Errorf("error destroying view: %+v", err) + return nil + } + for _, ds := range content { + for _, child := range ds.Folder.ChildEntity { + tDS, err := getDatastore(ctx, child) + if err != nil { + klog.Errorf("fetching datastore %s failed: %v", child.String(), err) + continue + } + if tDS.Summary.Url == dsMo.Summary.Url { + return fmt.Errorf("datastore %s is part of %s datastore cluster", tDS.Summary.Name, ds.Summary.Name) + } + } + } + klog.V(2).Infof("Checked datastore %s for SRDS - no problems found", dataStoreName) return nil } +func getDatastore(ctx *CheckContext, ref vim.ManagedObjectReference) (mo.Datastore, error) { + var dsMo mo.Datastore + pc := property.DefaultCollector(ctx.VMClient) + properties := []string{DatastoreInfoProperty, SummaryProperty} + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + err := pc.RetrieveOne(tctx, ref, properties, &dsMo) + if err != nil { + return dsMo, err + } + return dsMo, nil +} + func checkVolumeName(name string) error { path := fmt.Sprintf("/var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/%s", name) escapedPath, err := systemdEscape(path) diff --git a/pkg/check/datastore_test.go b/pkg/check/datastore_test.go index 04c422e2..33bf1e4e 100644 --- a/pkg/check/datastore_test.go +++ b/pkg/check/datastore_test.go @@ -30,6 +30,16 @@ var ( datastore: "0-1-2-3-4-5-6-7-8-9", // 265 characters in the escaped path expectError: true, }, + { + name: "datastore which is part of a datastore cluster", + datastore: "/DC0/datastore/DC0_POD0/LocalDS_2", + expectError: true, + }, + { + name: "datastore which is not part of a datastore cluster", + datastore: "/DC0/datastore/LocalDS_1", + expectError: false, + }, } ) @@ -103,7 +113,31 @@ func TestCheckStorageClassesWithDatastore(t *testing.T) { } func TestCheckPVs(t *testing.T) { - for _, test := range datastoreTests { + var ( + pvWithDatastoreNames = []struct { + name string + datastore string + expectError bool + }{ + { + name: "short datastore", + datastore: "short", + expectError: false, + }, + { + name: "long datastore", + datastore: "01234567890123456789012345678901234567890123456789", // 269 characters in the escaped path + expectError: true, + }, + { + name: "short datastore with too many dashes", + datastore: "0-1-2-3-4-5-6-7-8-9", // 265 characters in the escaped path + expectError: true, + }, + } + ) + + for _, test := range pvWithDatastoreNames { t.Run(test.name, func(t *testing.T) { // Stage kubeClient := &fakeKubeClient{ diff --git a/pkg/check/framework_test.go b/pkg/check/framework_test.go index d3c07e72..6ab16bc7 100644 --- a/pkg/check/framework_test.go +++ b/pkg/check/framework_test.go @@ -24,7 +24,7 @@ const ( defaultDC = "DC0" defaultVMPath = "/DC0/vm/" defaultHost = "H0" - defaultHostId = "host-21" // Generated by vcsim + defaultHostId = "host-24" // Generated by vcsim defaultHostPath = "/DC0/host/DC0_" ) From 9cfad821d46a9a2ce8cb22025f7ec17e659ac39c Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Tue, 9 Feb 2021 18:53:23 -0500 Subject: [PATCH 14/26] Add test data for cluster fix test data to have datastore cluster --- pkg/check/testdata/README | 13 + .../0000-ServiceInstance-ServiceInstance.xml | 4 +- .../testdata/default/0001-Folder-group-d1.xml | 2 + .../0006-SessionManager-SessionManager.xml | 24 +- .../0012-EventManager-EventManager.xml | 30 + .../default/0013-TaskManager-TaskManager.xml | 67 +- ...onSpecManager-CustomizationSpecManager.xml | 8 +- .../default/0044-Datacenter-datacenter-2.xml | 11 +- .../testdata/default/0045-Folder-folder-3.xml | 20 +- ...-57.xml => 0046-VirtualMachine-vm-152.xml} | 53 +- .../0047-EnvironmentBrowser-envbrowser-20.xml | 3 - .../0047-EnvironmentBrowser-envbrowser-23.xml | 3 + ...-60.xml => 0048-VirtualMachine-vm-155.xml} | 53 +- ...-63.xml => 0049-VirtualMachine-vm-158.xml} | 47 +- .../0050-EnvironmentBrowser-envbrowser-25.xml | 3 - .../0050-EnvironmentBrowser-envbrowser-28.xml | 3 + ...-66.xml => 0051-VirtualMachine-vm-161.xml} | 41 +- .../default/0052-VirtualMachine-vm-164.xml | 494 ++ .../default/0053-VirtualMachine-vm-167.xml | 494 ++ ...-folder-4.xml => 0054-Folder-folder-4.xml} | 8 +- ...55-ComputeResource-computeresource-26.xml} | 17 +- ...ost-21.xml => 0056-HostSystem-host-24.xml} | 33 +- ...atastoreSystem-hostdatastoresystem-18.xml} | 7 +- ...ostNetworkSystem-hostnetworksystem-19.xml} | 2 +- ....xml => 0059-ResourcePool-resgroup-25.xml} | 12 +- ...uteResource-clustercomputeresource-30.xml} | 21 +- ...ost-34.xml => 0061-HostSystem-host-37.xml} | 32 +- ...atastoreSystem-hostdatastoresystem-32.xml} | 7 +- ...ostNetworkSystem-hostnetworksystem-33.xml} | 2 +- ...ost-42.xml => 0064-HostSystem-host-45.xml} | 33 +- ...atastoreSystem-hostdatastoresystem-40.xml} | 7 +- ...ostNetworkSystem-hostnetworksystem-41.xml} | 2 +- ...ost-50.xml => 0067-HostSystem-host-53.xml} | 31 +- ...atastoreSystem-hostdatastoresystem-48.xml} | 7 +- ...ostNetworkSystem-hostnetworksystem-49.xml} | 2 +- .../default/0070-ResourcePool-resgroup-29.xml | 180 + .../default/0071-ResourcePool-resgroup-55.xml | 172 + .../default/0072-ResourcePool-resgroup-56.xml | 172 + .../default/0073-VirtualApp-virtualapp-57.xml | 207 + .../testdata/default/0074-Folder-folder-5.xml | 183 + .../default/0075-StoragePod-storagepod-8.xml | 195 + ...im-DC0-LocalDS_0-741472776%40folder-5.xml} | 36 +- ...storeBrowser-hostdatastorebrowser-122.xml} | 4 +- ...sim-DC0-LocalDS_1-392731591%40folder-5.xml | 123 + ...astoreBrowser-hostdatastorebrowser-126.xml | 14 + ...sim-DC0-LocalDS_2-363093114%40folder-5.xml | 123 + ...astoreBrowser-hostdatastorebrowser-130.xml | 15 + ...sim-DC0-LocalDS_3-206027153%40folder-5.xml | 123 + ...astoreBrowser-hostdatastorebrowser-134.xml | 16 + ...-folder-6.xml => 0084-Folder-folder-6.xml} | 16 +- ...twork-7.xml => 0085-Network-network-7.xml} | 0 ... 0086-DistributedVirtualSwitch-dvs-10.xml} | 16 +- ...ibutedVirtualPortgroup-dvportgroup-12.xml} | 28 +- ...ibutedVirtualPortgroup-dvportgroup-14.xml} | 20 +- .../0089-OpaqueNetwork-opaquenetwork-15.xml | 88 + .../0090-OpaqueNetwork-opaquenetwork-16.xml | 88 + .../default/0091-Folder-folder-58.xml | 153 + .../default/0092-Datacenter-datacenter-59.xml | 103 + .../default/0093-Folder-folder-60.xml | 155 + .../default/0094-Folder-folder-69.xml | 165 + .../default/0095-VirtualMachine-vm-170.xml | 494 ++ .../0096-EnvironmentBrowser-envbrowser-84.xml | 3 + .../default/0097-VirtualMachine-vm-173.xml | 494 ++ .../default/0098-VirtualMachine-vm-176.xml | 494 ++ .../0099-EnvironmentBrowser-envbrowser-89.xml | 3 + .../default/0100-VirtualMachine-vm-179.xml | 494 ++ .../default/0101-VirtualMachine-vm-182.xml | 494 ++ .../default/0102-VirtualMachine-vm-185.xml | 494 ++ .../default/0103-Folder-folder-61.xml | 153 + .../default/0104-Folder-folder-67.xml | 155 + ...105-ComputeResource-computeresource-87.xml | 116 + .../default/0106-HostSystem-host-85.xml | 5301 +++++++++++++++++ ...DatastoreSystem-hostdatastoresystem-79.xml | 20 + ...HostNetworkSystem-hostnetworksystem-80.xml | 137 + ....xml => 0109-ResourcePool-resgroup-86.xml} | 12 +- ...puteResource-clustercomputeresource-91.xml | 164 + .../default/0111-HostSystem-host-98.xml | 5301 +++++++++++++++++ ...DatastoreSystem-hostdatastoresystem-93.xml | 20 + ...HostNetworkSystem-hostnetworksystem-94.xml | 137 + .../default/0114-HostSystem-host-106.xml | 5300 ++++++++++++++++ ...atastoreSystem-hostdatastoresystem-101.xml | 20 + ...ostNetworkSystem-hostnetworksystem-102.xml | 137 + .../default/0117-HostSystem-host-114.xml | 5300 ++++++++++++++++ ...atastoreSystem-hostdatastoresystem-109.xml | 20 + ...ostNetworkSystem-hostnetworksystem-110.xml | 137 + .../default/0120-ResourcePool-resgroup-90.xml | 180 + .../0121-ResourcePool-resgroup-116.xml | 172 + .../0122-ResourcePool-resgroup-117.xml | 172 + .../0123-VirtualApp-virtualapp-118.xml | 207 + ...folder-5.xml => 0124-Folder-folder-62.xml} | 18 +- .../default/0125-StoragePod-storagepod-65.xml | 187 + .../default/0126-Folder-folder-66.xml | 185 + ...im-DC1-LocalDS_0-236535740%40folder-66.xml | 130 + ...astoreBrowser-hostdatastorebrowser-138.xml | 13 + ...im-DC1-LocalDS_1-057538539%40folder-66.xml | 123 + ...astoreBrowser-hostdatastorebrowser-142.xml | 14 + ...im-DC1-LocalDS_2-622867534%40folder-66.xml | 123 + ...astoreBrowser-hostdatastorebrowser-146.xml | 15 + ...im-DC1-LocalDS_3-260484949%40folder-66.xml | 123 + ...astoreBrowser-hostdatastorebrowser-150.xml | 16 + .../default/0135-Folder-folder-63.xml | 157 + .../default/0136-Network-network-64.xml | 86 + .../default/0137-Folder-folder-68.xml | 163 + .../0138-DistributedVirtualSwitch-dvs-71.xml | 120 + ...ributedVirtualPortgroup-dvportgroup-73.xml | 150 + ...ributedVirtualPortgroup-dvportgroup-75.xml | 147 + .../0141-OpaqueNetwork-opaquenetwork-76.xml | 88 + .../0142-OpaqueNetwork-opaquenetwork-77.xml | 88 + pkg/check/testdata/default/README | 9 +- .../DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.nvram} | 0 .../DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx} | 0 .../DC0_C0_APP0_VM0}/disk1-flat.vmdk | 0 .../DC0_C0_APP0_VM0}/disk1.vmdk | 0 .../DC0_C0_APP0_VM0/vmware.log | 2 + .../DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.nvram} | 0 .../DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx} | 0 .../DC0_C0_APP0_VM1}/disk1-flat.vmdk | 0 .../DC0_C0_APP0_VM1}/disk1.vmdk | 0 .../DC0_C0_APP0_VM1/vmware.log | 2 + .../DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram} | 0 .../DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx} | 0 .../DC0_C0_RP0_VM0}/disk1-flat.vmdk | 0 .../DC0_C0_RP0_VM0}/disk1.vmdk | 0 .../DC0_C0_RP0_VM0/vmware.log | 2 + .../DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram} | 0 .../DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx} | 0 .../DC0_C0_RP0_VM1}/disk1-flat.vmdk | 0 .../DC0_C0_RP0_VM1}/disk1.vmdk | 0 .../DC0_C0_RP0_VM1/vmware.log | 2 + .../DC0_H0_VM0/DC0_H0_VM0.nvram | 0 .../DC0_H0_VM0/DC0_H0_VM0.vmx | 0 .../DC0_H0_VM0/disk1-flat.vmdk | 0 .../DC0_H0_VM0/disk1.vmdk | 0 .../DC0_H0_VM0/vmware.log | 2 + .../DC0_H0_VM1/DC0_H0_VM1.nvram | 0 .../DC0_H0_VM1/DC0_H0_VM1.vmx | 0 .../DC0_H0_VM1/disk1-flat.vmdk | 0 .../DC0_H0_VM1/disk1.vmdk | 0 .../DC0_H0_VM1/vmware.log | 2 + .../DC0_C0_RP0_VM0/vmware.log | 2 - .../DC0_C0_RP0_VM1/vmware.log | 2 - .../DC0_H0_VM0/vmware.log | 2 - .../DC0_H0_VM1/vmware.log | 2 - .../DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.nvram | 0 .../DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx | 0 .../DC1_C0_APP0_VM0/disk1-flat.vmdk | 0 .../DC1_C0_APP0_VM0/disk1.vmdk | 0 .../DC1_C0_APP0_VM0/vmware.log | 2 + .../DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.nvram | 0 .../DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx | 0 .../DC1_C0_APP0_VM1/disk1-flat.vmdk | 0 .../DC1_C0_APP0_VM1/disk1.vmdk | 0 .../DC1_C0_APP0_VM1/vmware.log | 2 + .../DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.nvram | 0 .../DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx | 0 .../DC1_C0_RP0_VM0/disk1-flat.vmdk | 0 .../DC1_C0_RP0_VM0/disk1.vmdk | 0 .../DC1_C0_RP0_VM0/vmware.log | 2 + .../DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.nvram | 0 .../DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx | 0 .../DC1_C0_RP0_VM1/disk1-flat.vmdk | 0 .../DC1_C0_RP0_VM1/disk1.vmdk | 0 .../DC1_C0_RP0_VM1/vmware.log | 2 + .../DC1_H0_VM0/DC1_H0_VM0.nvram | 0 .../DC1_H0_VM0/DC1_H0_VM0.vmx | 0 .../DC1_H0_VM0/disk1-flat.vmdk | 0 .../DC1_H0_VM0/disk1.vmdk | 0 .../DC1_H0_VM0/vmware.log | 2 + .../DC1_H0_VM1/DC1_H0_VM1.nvram | 0 .../DC1_H0_VM1/DC1_H0_VM1.vmx | 0 .../DC1_H0_VM1/disk1-flat.vmdk | 0 .../DC1_H0_VM1/disk1.vmdk | 0 .../DC1_H0_VM1/vmware.log | 2 + 173 files changed, 31792 insertions(+), 317 deletions(-) create mode 100644 pkg/check/testdata/README rename pkg/check/testdata/default/{0046-VirtualMachine-vm-57.xml => 0046-VirtualMachine-vm-152.xml} (93%) delete mode 100644 pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml create mode 100644 pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-23.xml rename pkg/check/testdata/default/{0048-VirtualMachine-vm-60.xml => 0048-VirtualMachine-vm-155.xml} (93%) rename pkg/check/testdata/default/{0049-VirtualMachine-vm-63.xml => 0049-VirtualMachine-vm-158.xml} (93%) delete mode 100644 pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml create mode 100644 pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-28.xml rename pkg/check/testdata/default/{0051-VirtualMachine-vm-66.xml => 0051-VirtualMachine-vm-161.xml} (94%) create mode 100644 pkg/check/testdata/default/0052-VirtualMachine-vm-164.xml create mode 100644 pkg/check/testdata/default/0053-VirtualMachine-vm-167.xml rename pkg/check/testdata/default/{0052-Folder-folder-4.xml => 0054-Folder-folder-4.xml} (97%) rename pkg/check/testdata/default/{0053-ComputeResource-computeresource-23.xml => 0055-ComputeResource-computeresource-26.xml} (86%) rename pkg/check/testdata/default/{0054-HostSystem-host-21.xml => 0056-HostSystem-host-24.xml} (99%) rename pkg/check/testdata/default/{0055-HostDatastoreSystem-hostdatastoresystem-15.xml => 0057-HostDatastoreSystem-hostdatastoresystem-18.xml} (55%) rename pkg/check/testdata/default/{0064-HostNetworkSystem-hostnetworksystem-38.xml => 0058-HostNetworkSystem-hostnetworksystem-19.xml} (98%) rename pkg/check/testdata/default/{0057-ResourcePool-resgroup-22.xml => 0059-ResourcePool-resgroup-25.xml} (95%) rename pkg/check/testdata/default/{0058-ClusterComputeResource-clustercomputeresource-27.xml => 0060-ClusterComputeResource-clustercomputeresource-30.xml} (88%) rename pkg/check/testdata/default/{0059-HostSystem-host-34.xml => 0061-HostSystem-host-37.xml} (99%) rename pkg/check/testdata/default/{0060-HostDatastoreSystem-hostdatastoresystem-29.xml => 0062-HostDatastoreSystem-hostdatastoresystem-32.xml} (55%) rename pkg/check/testdata/default/{0067-HostNetworkSystem-hostnetworksystem-46.xml => 0063-HostNetworkSystem-hostnetworksystem-33.xml} (98%) rename pkg/check/testdata/default/{0062-HostSystem-host-42.xml => 0064-HostSystem-host-45.xml} (99%) rename pkg/check/testdata/default/{0063-HostDatastoreSystem-hostdatastoresystem-37.xml => 0065-HostDatastoreSystem-hostdatastoresystem-40.xml} (55%) rename pkg/check/testdata/default/{0056-HostNetworkSystem-hostnetworksystem-16.xml => 0066-HostNetworkSystem-hostnetworksystem-41.xml} (98%) rename pkg/check/testdata/default/{0065-HostSystem-host-50.xml => 0067-HostSystem-host-53.xml} (99%) rename pkg/check/testdata/default/{0066-HostDatastoreSystem-hostdatastoresystem-45.xml => 0068-HostDatastoreSystem-hostdatastoresystem-48.xml} (55%) rename pkg/check/testdata/default/{0061-HostNetworkSystem-hostnetworksystem-30.xml => 0069-HostNetworkSystem-hostnetworksystem-49.xml} (98%) create mode 100644 pkg/check/testdata/default/0070-ResourcePool-resgroup-29.xml create mode 100644 pkg/check/testdata/default/0071-ResourcePool-resgroup-55.xml create mode 100644 pkg/check/testdata/default/0072-ResourcePool-resgroup-56.xml create mode 100644 pkg/check/testdata/default/0073-VirtualApp-virtualapp-57.xml create mode 100644 pkg/check/testdata/default/0074-Folder-folder-5.xml create mode 100644 pkg/check/testdata/default/0075-StoragePod-storagepod-8.xml rename pkg/check/testdata/default/{0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml => 0076-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-741472776%40folder-5.xml} (79%) rename pkg/check/testdata/default/{0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml => 0077-HostDatastoreBrowser-hostdatastorebrowser-122.xml} (76%) create mode 100644 pkg/check/testdata/default/0078-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_1-392731591%40folder-5.xml create mode 100644 pkg/check/testdata/default/0079-HostDatastoreBrowser-hostdatastorebrowser-126.xml create mode 100644 pkg/check/testdata/default/0080-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_2-363093114%40folder-5.xml create mode 100644 pkg/check/testdata/default/0081-HostDatastoreBrowser-hostdatastorebrowser-130.xml create mode 100644 pkg/check/testdata/default/0082-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_3-206027153%40folder-5.xml create mode 100644 pkg/check/testdata/default/0083-HostDatastoreBrowser-hostdatastorebrowser-134.xml rename pkg/check/testdata/default/{0072-Folder-folder-6.xml => 0084-Folder-folder-6.xml} (92%) rename pkg/check/testdata/default/{0073-Network-network-7.xml => 0085-Network-network-7.xml} (100%) rename pkg/check/testdata/default/{0074-DistributedVirtualSwitch-dvs-9.xml => 0086-DistributedVirtualSwitch-dvs-10.xml} (91%) rename pkg/check/testdata/default/{0075-DistributedVirtualPortgroup-dvportgroup-11.xml => 0087-DistributedVirtualPortgroup-dvportgroup-12.xml} (91%) rename pkg/check/testdata/default/{0076-DistributedVirtualPortgroup-dvportgroup-13.xml => 0088-DistributedVirtualPortgroup-dvportgroup-14.xml} (92%) create mode 100644 pkg/check/testdata/default/0089-OpaqueNetwork-opaquenetwork-15.xml create mode 100644 pkg/check/testdata/default/0090-OpaqueNetwork-opaquenetwork-16.xml create mode 100644 pkg/check/testdata/default/0091-Folder-folder-58.xml create mode 100644 pkg/check/testdata/default/0092-Datacenter-datacenter-59.xml create mode 100644 pkg/check/testdata/default/0093-Folder-folder-60.xml create mode 100644 pkg/check/testdata/default/0094-Folder-folder-69.xml create mode 100644 pkg/check/testdata/default/0095-VirtualMachine-vm-170.xml create mode 100644 pkg/check/testdata/default/0096-EnvironmentBrowser-envbrowser-84.xml create mode 100644 pkg/check/testdata/default/0097-VirtualMachine-vm-173.xml create mode 100644 pkg/check/testdata/default/0098-VirtualMachine-vm-176.xml create mode 100644 pkg/check/testdata/default/0099-EnvironmentBrowser-envbrowser-89.xml create mode 100644 pkg/check/testdata/default/0100-VirtualMachine-vm-179.xml create mode 100644 pkg/check/testdata/default/0101-VirtualMachine-vm-182.xml create mode 100644 pkg/check/testdata/default/0102-VirtualMachine-vm-185.xml create mode 100644 pkg/check/testdata/default/0103-Folder-folder-61.xml create mode 100644 pkg/check/testdata/default/0104-Folder-folder-67.xml create mode 100644 pkg/check/testdata/default/0105-ComputeResource-computeresource-87.xml create mode 100644 pkg/check/testdata/default/0106-HostSystem-host-85.xml create mode 100644 pkg/check/testdata/default/0107-HostDatastoreSystem-hostdatastoresystem-79.xml create mode 100644 pkg/check/testdata/default/0108-HostNetworkSystem-hostnetworksystem-80.xml rename pkg/check/testdata/default/{0068-ResourcePool-resgroup-26.xml => 0109-ResourcePool-resgroup-86.xml} (94%) create mode 100644 pkg/check/testdata/default/0110-ClusterComputeResource-clustercomputeresource-91.xml create mode 100644 pkg/check/testdata/default/0111-HostSystem-host-98.xml create mode 100644 pkg/check/testdata/default/0112-HostDatastoreSystem-hostdatastoresystem-93.xml create mode 100644 pkg/check/testdata/default/0113-HostNetworkSystem-hostnetworksystem-94.xml create mode 100644 pkg/check/testdata/default/0114-HostSystem-host-106.xml create mode 100644 pkg/check/testdata/default/0115-HostDatastoreSystem-hostdatastoresystem-101.xml create mode 100644 pkg/check/testdata/default/0116-HostNetworkSystem-hostnetworksystem-102.xml create mode 100644 pkg/check/testdata/default/0117-HostSystem-host-114.xml create mode 100644 pkg/check/testdata/default/0118-HostDatastoreSystem-hostdatastoresystem-109.xml create mode 100644 pkg/check/testdata/default/0119-HostNetworkSystem-hostnetworksystem-110.xml create mode 100644 pkg/check/testdata/default/0120-ResourcePool-resgroup-90.xml create mode 100644 pkg/check/testdata/default/0121-ResourcePool-resgroup-116.xml create mode 100644 pkg/check/testdata/default/0122-ResourcePool-resgroup-117.xml create mode 100644 pkg/check/testdata/default/0123-VirtualApp-virtualapp-118.xml rename pkg/check/testdata/default/{0069-Folder-folder-5.xml => 0124-Folder-folder-62.xml} (84%) create mode 100644 pkg/check/testdata/default/0125-StoragePod-storagepod-65.xml create mode 100644 pkg/check/testdata/default/0126-Folder-folder-66.xml create mode 100644 pkg/check/testdata/default/0127-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_0-236535740%40folder-66.xml create mode 100644 pkg/check/testdata/default/0128-HostDatastoreBrowser-hostdatastorebrowser-138.xml create mode 100644 pkg/check/testdata/default/0129-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_1-057538539%40folder-66.xml create mode 100644 pkg/check/testdata/default/0130-HostDatastoreBrowser-hostdatastorebrowser-142.xml create mode 100644 pkg/check/testdata/default/0131-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_2-622867534%40folder-66.xml create mode 100644 pkg/check/testdata/default/0132-HostDatastoreBrowser-hostdatastorebrowser-146.xml create mode 100644 pkg/check/testdata/default/0133-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_3-260484949%40folder-66.xml create mode 100644 pkg/check/testdata/default/0134-HostDatastoreBrowser-hostdatastorebrowser-150.xml create mode 100644 pkg/check/testdata/default/0135-Folder-folder-63.xml create mode 100644 pkg/check/testdata/default/0136-Network-network-64.xml create mode 100644 pkg/check/testdata/default/0137-Folder-folder-68.xml create mode 100644 pkg/check/testdata/default/0138-DistributedVirtualSwitch-dvs-71.xml create mode 100644 pkg/check/testdata/default/0139-DistributedVirtualPortgroup-dvportgroup-73.xml create mode 100644 pkg/check/testdata/default/0140-DistributedVirtualPortgroup-dvportgroup-75.xml create mode 100644 pkg/check/testdata/default/0141-OpaqueNetwork-opaquenetwork-76.xml create mode 100644 pkg/check/testdata/default/0142-OpaqueNetwork-opaquenetwork-77.xml rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.nvram} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0}/disk1-flat.vmdk (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0}/disk1.vmdk (100%) create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/vmware.log rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.nvram} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1}/disk1-flat.vmdk (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1}/disk1.vmdk (100%) create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/vmware.log rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0}/disk1-flat.vmdk (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0}/disk1.vmdk (100%) create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/vmware.log rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx} (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1}/disk1-flat.vmdk (100%) rename pkg/check/testdata/default/{govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1 => govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1}/disk1.vmdk (100%) create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/vmware.log delete mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log delete mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log delete mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log delete mode 100644 pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/vmware.log create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.nvram create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.vmx create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1-flat.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1.vmdk create mode 100644 pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/vmware.log diff --git a/pkg/check/testdata/README b/pkg/check/testdata/README new file mode 100644 index 00000000..fa84e222 --- /dev/null +++ b/pkg/check/testdata/README @@ -0,0 +1,13 @@ +This directory contains simulated vCenter environment, generated using vcsim and govc v0.23.1. + +# Run vcsim with default settings, i.e. with 1 host and 2 VMs +$ vcsim -tls=false + +# Save simulated objects in a directory. +$ govc object.save + +# Copy datastore content generated by vcsim from /tmp to here. +$ cp -r /tmp/govcsim-DC0-LocalDS_0* . + +# Change the datastore paths from "/tmp" to "testdata/default". +$ sed -i 's!/tmp/govcsim-DC0-LocalDS_0!testdata/default/govcsim-DC0-LocalDS_0!g' vcsim-127.0.0.1/*.xml diff --git a/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml b/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml index 8d310991..15ec0b03 100644 --- a/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml +++ b/pkg/check/testdata/default/0000-ServiceInstance-ServiceInstance.xml @@ -7,8 +7,8 @@ propertyCollector ViewManager - VMware vCenter Server (govmomi simulator) - VMware vCenter Server 6.5.0 build-5973321 + VMware vCenter Server + VMware vCenter Server 6.5.0 build-5973321 (govmomi simulator) VMware, Inc. 6.5.0 5973321 diff --git a/pkg/check/testdata/default/0001-Folder-group-d1.xml b/pkg/check/testdata/default/0001-Folder-group-d1.xml index ac58d15e..52ee92fe 100644 --- a/pkg/check/testdata/default/0001-Folder-group-d1.xml +++ b/pkg/check/testdata/default/0001-Folder-group-d1.xml @@ -84,6 +84,7 @@ childEntity datacenter-2 + folder-58 @@ -170,6 +171,7 @@ childEntity datacenter-2 + folder-58 \ No newline at end of file diff --git a/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml b/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml index 8b53a425..08d93347 100644 --- a/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml +++ b/pkg/check/testdata/default/0006-SessionManager-SessionManager.xml @@ -4,34 +4,34 @@ sessionList - acdb9fd2-8a1c-48ca-9c78-bcb24f5fa421 - user - user - 2021-01-08T16:09:12.979769656Z - 2021-01-08T17:09:12.982313915+01:00 + b7b1563d-7aca-41d6-bca4-774c66067b60 + administrator@vsphere.local + administrator@vsphere.local + 2021-02-10T04:00:17.990208341Z + 2021-02-09T23:00:37.69791866-05:00 en_US en_US false 127.0.0.1 govc/0.23.0 - 4 + 112 currentSession - acdb9fd2-8a1c-48ca-9c78-bcb24f5fa421 - user - user - 2021-01-08T16:09:12.979769656Z - 2021-01-08T17:09:12.982313915+01:00 + b7b1563d-7aca-41d6-bca4-774c66067b60 + administrator@vsphere.local + administrator@vsphere.local + 2021-02-10T04:00:17.990208341Z + 2021-02-09T23:00:37.69791866-05:00 en_US en_US false 127.0.0.1 govc/0.23.0 - 4 + 112 diff --git a/pkg/check/testdata/default/0012-EventManager-EventManager.xml b/pkg/check/testdata/default/0012-EventManager-EventManager.xml index 89fef785..6b9d9db0 100644 --- a/pkg/check/testdata/default/0012-EventManager-EventManager.xml +++ b/pkg/check/testdata/default/0012-EventManager-EventManager.xml @@ -353,6 +353,36 @@ Completed the relocation of the virtual machine + + CustomizationFailed + An error occurred during customization + info + + + + + An error occurred during customization on VM {{.Vm.Name}} + + + CustomizationStartedEvent + Started customization + info + + + + + Started customization of VM {{.Vm.Name}} + + + CustomizationSucceeded + Customization succeeded + info + + + + + Customization of VM {{.Vm.Name}} succeeded + DrsVmMigratedEvent DRS VM migrated diff --git a/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml b/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml index e93ba2b8..46f94750 100644 --- a/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml +++ b/pkg/check/testdata/default/0013-TaskManager-TaskManager.xml @@ -3,25 +3,54 @@ recentTask - task-8 - task-10 - task-12 - task-14 - task-24 - task-28 - task-35 - task-36 - task-43 - task-44 - task-51 - task-56 - task-58 - task-59 - task-61 - task-62 - task-64 - task-65 - task-67 + task-9 + task-11 + task-13 + task-17 + task-27 + task-31 + task-38 + task-39 + task-46 + task-47 + task-54 + task-70 + task-72 + task-74 + task-78 + task-88 + task-92 + task-99 + task-100 + task-107 + task-108 + task-115 + task-151 + task-153 + task-154 + task-156 + task-157 + task-159 + task-160 + task-162 + task-163 + task-165 + task-166 + task-168 + task-169 + task-171 + task-172 + task-174 + task-175 + task-177 + task-178 + task-180 + task-181 + task-183 + task-184 + task-186 + task-187 + task-188 diff --git a/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml b/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml index 158744fe..d08bc7a3 100644 --- a/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml +++ b/pkg/check/testdata/default/0015-CustomizationSpecManager-CustomizationSpecManager.xml @@ -8,28 +8,28 @@ Linux 1569965707 - 2021-01-08T17:08:20.679746468+01:00 + 2021-02-09T22:59:58.204412854-05:00 vcsim-linux-static Linux 1569969598 - 2021-01-08T17:08:20.679746894+01:00 + 2021-02-09T22:59:58.204413134-05:00 vcsim-windows-static Windows 1569978029 - 2021-01-08T17:08:20.679747102+01:00 + 2021-02-09T22:59:58.204413314-05:00 vcsim-windows-domain Windows 1569970234 - 2021-01-08T17:08:20.679747246+01:00 + 2021-02-09T22:59:58.204413454-05:00 diff --git a/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml b/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml index 0faeb9b3..6d812418 100644 --- a/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml +++ b/pkg/check/testdata/default/0044-Datacenter-datacenter-2.xml @@ -81,16 +81,19 @@ datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0045-Folder-folder-3.xml b/pkg/check/testdata/default/0045-Folder-folder-3.xml index 1a489b55..e9042dcf 100644 --- a/pkg/check/testdata/default/0045-Folder-folder-3.xml +++ b/pkg/check/testdata/default/0045-Folder-folder-3.xml @@ -73,10 +73,12 @@ childEntity - vm-57 - vm-60 - vm-63 - vm-66 + vm-152 + vm-155 + vm-158 + vm-161 + vm-164 + vm-167 @@ -152,10 +154,12 @@ childEntity - vm-57 - vm-60 - vm-63 - vm-66 + vm-152 + vm-155 + vm-158 + vm-161 + vm-164 + vm-167 \ No newline at end of file diff --git a/pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml b/pkg/check/testdata/default/0046-VirtualMachine-vm-152.xml similarity index 93% rename from pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml rename to pkg/check/testdata/default/0046-VirtualMachine-vm-152.xml index 1d88db22..26278100 100644 --- a/pkg/check/testdata/default/0046-VirtualMachine-vm-57.xml +++ b/pkg/check/testdata/default/0046-VirtualMachine-vm-152.xml @@ -1,5 +1,5 @@ - vm-57 + vm-152 value @@ -93,7 +93,7 @@ config - 2021-01-08T17:08:20.710831565+01:00 + 2021-02-09T22:59:58.257596587-05:00 DC0_H0_VM0 otherGuest vmx-13 @@ -220,13 +220,13 @@ 7 - 203 + 1697971134 - - cdrom-203 + + cdrom-1697971134 - cdrom--201-824636856992 + cdrom--201-824641947584 false @@ -238,16 +238,21 @@ 0 - 204 + 255511522 1,024 KB [LocalDS_0] DC0_H0_VM0/disk1.vmdk - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 persistent + false + false true + false + 0f7d94a1-43f3-5cdd-a5b7-cd730a719f51 + false 202 0 @@ -262,7 +267,7 @@ fea97929-4b2d-5972-b146-930c6d0b4014 - dvportgroup-13 + dvportgroup-14 @@ -306,6 +311,8 @@ govcsim TRUE + + bios @@ -314,7 +321,7 @@ DC0_H0_VM0.nvram vmware.log - 204 + 255511522 [LocalDS_0] DC0_H0_VM0/disk1.vmdk @@ -373,39 +380,39 @@ true - 204 + 255511522 5 6 - 2021-01-08T17:08:20.71170659+01:00 + 2021-02-09T22:59:58.258104816-05:00 storage - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 0 0 0 - 2021-01-08T17:08:20.711706377+01:00 + 2021-02-09T22:59:58.258104626-05:00 environmentBrowser - envbrowser-20 + envbrowser-23 resourcePool - resgroup-22 + resgroup-25 runtime - host-21 + host-24 connected poweredOn false @@ -430,13 +437,13 @@ summary - vm-57 + vm-152 - host-21 + host-24 connected poweredOn false - 2021-01-08T17:08:20.711818532+01:00 + 2021-02-09T22:59:58.258317375-05:00 0 @@ -460,7 +467,7 @@ 0 0 0 - 2021-01-08T17:08:20.711706435+01:00 + 2021-02-09T22:59:58.258104676-05:00 gray @@ -471,13 +478,13 @@ datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 network - dvportgroup-13 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml b/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml deleted file mode 100644 index 1ea51c82..00000000 --- a/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-20.xml +++ /dev/null @@ -1,3 +0,0 @@ - - envbrowser-20 - \ No newline at end of file diff --git a/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-23.xml b/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-23.xml new file mode 100644 index 00000000..4f769bd2 --- /dev/null +++ b/pkg/check/testdata/default/0047-EnvironmentBrowser-envbrowser-23.xml @@ -0,0 +1,3 @@ + + envbrowser-23 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml b/pkg/check/testdata/default/0048-VirtualMachine-vm-155.xml similarity index 93% rename from pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml rename to pkg/check/testdata/default/0048-VirtualMachine-vm-155.xml index fe19c794..a9ccc237 100644 --- a/pkg/check/testdata/default/0048-VirtualMachine-vm-60.xml +++ b/pkg/check/testdata/default/0048-VirtualMachine-vm-155.xml @@ -1,5 +1,5 @@ - vm-60 + vm-155 value @@ -93,7 +93,7 @@ config - 2021-01-08T17:08:20.712084403+01:00 + 2021-02-09T22:59:58.258926233-05:00 DC0_H0_VM1 otherGuest vmx-13 @@ -220,13 +220,13 @@ 7 - 203 + 1440703602 - - cdrom-203 + + cdrom-1440703602 - cdrom--201-824636746096 + cdrom--201-824642608176 false @@ -238,16 +238,21 @@ 0 - 204 + 203 1,024 KB [LocalDS_0] DC0_H0_VM1/disk1.vmdk - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 persistent + false + false true + false + 9d75f549-529c-52a7-8e36-571334b34dda + false 202 0 @@ -262,7 +267,7 @@ fea97929-4b2d-5972-b146-930c6d0b4014 - dvportgroup-13 + dvportgroup-14 @@ -306,6 +311,8 @@ govcsim TRUE + + bios @@ -314,7 +321,7 @@ DC0_H0_VM1.nvram vmware.log - 204 + 203 [LocalDS_0] DC0_H0_VM1/disk1.vmdk @@ -373,39 +380,39 @@ true - 204 + 203 5 6 - 2021-01-08T17:08:20.71270383+01:00 + 2021-02-09T22:59:58.259977191-05:00 storage - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 0 0 0 - 2021-01-08T17:08:20.712703585+01:00 + 2021-02-09T22:59:58.259976851-05:00 environmentBrowser - envbrowser-20 + envbrowser-23 resourcePool - resgroup-22 + resgroup-25 runtime - host-21 + host-24 connected poweredOn false @@ -430,13 +437,13 @@ summary - vm-60 + vm-155 - host-21 + host-24 connected poweredOn false - 2021-01-08T17:08:20.712787081+01:00 + 2021-02-09T22:59:58.2600898-05:00 0 @@ -460,7 +467,7 @@ 0 0 0 - 2021-01-08T17:08:20.712703641+01:00 + 2021-02-09T22:59:58.259976951-05:00 gray @@ -471,13 +478,13 @@ datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 network - dvportgroup-13 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml b/pkg/check/testdata/default/0049-VirtualMachine-vm-158.xml similarity index 93% rename from pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml rename to pkg/check/testdata/default/0049-VirtualMachine-vm-158.xml index becfd0db..43734e5b 100644 --- a/pkg/check/testdata/default/0049-VirtualMachine-vm-63.xml +++ b/pkg/check/testdata/default/0049-VirtualMachine-vm-158.xml @@ -1,5 +1,5 @@ - vm-63 + vm-158 value @@ -93,7 +93,7 @@ config - 2021-01-08T17:08:20.712958895+01:00 + 2021-02-09T22:59:58.26034605-05:00 DC0_C0_RP0_VM0 otherGuest vmx-13 @@ -226,7 +226,7 @@ cdrom-203 - cdrom--201-824638594200 + cdrom--201-824645320968 false @@ -238,16 +238,21 @@ 0 - 204 + 1345084660 1,024 KB [LocalDS_0] DC0_C0_RP0_VM0/disk1.vmdk - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 persistent + false + false true + false + be8d2471-f32e-5c7e-a89b-22cb8e533890 + false 202 0 @@ -262,7 +267,7 @@ fea97929-4b2d-5972-b146-930c6d0b4014 - dvportgroup-13 + dvportgroup-14 @@ -306,6 +311,8 @@ govcsim TRUE + + bios @@ -314,7 +321,7 @@ DC0_C0_RP0_VM0.nvram vmware.log - 204 + 1345084660 [LocalDS_0] DC0_C0_RP0_VM0/disk1.vmdk @@ -373,39 +380,39 @@ true - 204 + 1345084660 5 6 - 2021-01-08T17:08:20.713581425+01:00 + 2021-02-09T22:59:58.261104958-05:00 storage - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 0 0 0 - 2021-01-08T17:08:20.713581175+01:00 + 2021-02-09T22:59:58.261104638-05:00 environmentBrowser - envbrowser-25 + envbrowser-28 resourcePool - resgroup-26 + resgroup-29 runtime - host-50 + host-45 connected poweredOn false @@ -430,13 +437,13 @@ summary - vm-63 + vm-158 - host-50 + host-45 connected poweredOn false - 2021-01-08T17:08:20.713668046+01:00 + 2021-02-09T22:59:58.261208227-05:00 0 @@ -460,7 +467,7 @@ 0 0 0 - 2021-01-08T17:08:20.713581236+01:00 + 2021-02-09T22:59:58.261104738-05:00 gray @@ -471,13 +478,13 @@ datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 network - dvportgroup-13 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml b/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml deleted file mode 100644 index 6205bce5..00000000 --- a/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-25.xml +++ /dev/null @@ -1,3 +0,0 @@ - - envbrowser-25 - \ No newline at end of file diff --git a/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-28.xml b/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-28.xml new file mode 100644 index 00000000..a7a2630e --- /dev/null +++ b/pkg/check/testdata/default/0050-EnvironmentBrowser-envbrowser-28.xml @@ -0,0 +1,3 @@ + + envbrowser-28 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml b/pkg/check/testdata/default/0051-VirtualMachine-vm-161.xml similarity index 94% rename from pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml rename to pkg/check/testdata/default/0051-VirtualMachine-vm-161.xml index 7c5b6443..ffada3b1 100644 --- a/pkg/check/testdata/default/0051-VirtualMachine-vm-66.xml +++ b/pkg/check/testdata/default/0051-VirtualMachine-vm-161.xml @@ -1,5 +1,5 @@ - vm-66 + vm-161 value @@ -93,7 +93,7 @@ config - 2021-01-08T17:08:20.713854587+01:00 + 2021-02-09T22:59:58.261434357-05:00 DC0_C0_RP0_VM1 otherGuest vmx-13 @@ -226,7 +226,7 @@ cdrom-203 - cdrom--201-824639098712 + cdrom--201-824639105960 false @@ -245,9 +245,14 @@ [LocalDS_0] DC0_C0_RP0_VM1/disk1.vmdk - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 persistent + false + false true + false + 4d8ecf72-2296-5fc3-9511-4b69fab45a4f + false 202 0 @@ -262,7 +267,7 @@ fea97929-4b2d-5972-b146-930c6d0b4014 - dvportgroup-13 + dvportgroup-14 @@ -306,6 +311,8 @@ govcsim TRUE + + bios @@ -379,33 +386,33 @@ 6 - 2021-01-08T17:08:20.715290329+01:00 + 2021-02-09T22:59:58.262144515-05:00 storage - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 0 0 0 - 2021-01-08T17:08:20.715290106+01:00 + 2021-02-09T22:59:58.262144205-05:00 environmentBrowser - envbrowser-25 + envbrowser-28 resourcePool - resgroup-26 + resgroup-29 runtime - host-34 + host-37 connected poweredOn false @@ -430,13 +437,13 @@ summary - vm-66 + vm-161 - host-34 + host-37 connected poweredOn false - 2021-01-08T17:08:20.715375497+01:00 + 2021-02-09T22:59:58.262237884-05:00 0 @@ -460,7 +467,7 @@ 0 0 0 - 2021-01-08T17:08:20.715290162+01:00 + 2021-02-09T22:59:58.262144305-05:00 gray @@ -471,13 +478,13 @@ datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 network - dvportgroup-13 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0052-VirtualMachine-vm-164.xml b/pkg/check/testdata/default/0052-VirtualMachine-vm-164.xml new file mode 100644 index 00000000..142e0dae --- /dev/null +++ b/pkg/check/testdata/default/0052-VirtualMachine-vm-164.xml @@ -0,0 +1,494 @@ + + vm-164 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_APP0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.262439594-05:00 + DC0_C0_APP0_VM0 + otherGuest + vmx-13 + bb58202a-c925-5cb6-b552-a8648ba3f1d5 + dd207ae0-7d81-5139-aa85-a7e5a292b005 + + otherGuest + + + [LocalDS_0] DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx + [LocalDS_0] DC0_C0_APP0_VM0 + [LocalDS_0] DC0_C0_APP0_VM0 + [LocalDS_0] DC0_C0_APP0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 2082145907 + + + cdrom-2082145907 + + + cdrom--201-824644764200 + false + + + true + true + true + + 202 + 0 + + + 800410273 + + + 1,024 KB + + + [LocalDS_0] DC0_C0_APP0_VM0/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + persistent + false + false + true + false + 8d3249b3-dd6a-58de-82a5-fc8bc0fc06b8 + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-14 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:31:64:35 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC0_C0_APP0_VM0.nvram + vmware.log + + 800410273 + [LocalDS_0] DC0_C0_APP0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_C0_APP0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_C0_APP0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_C0_APP0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_C0_APP0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 800410273 + + 5 + 6 + + + 2021-02-09T22:59:58.263122332-05:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + 0 + 0 + 0 + + 2021-02-09T22:59:58.263122042-05:00 + + + + environmentBrowser + envbrowser-28 + + + resourcePool + virtualapp-57 + + + runtime + + host-37 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:31:64:35 + true + 4000 + + + + + + summary + + vm-164 + + host-37 + connected + poweredOn + false + 2021-02-09T22:59:58.263214622-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_C0_APP0_VM0 + + [LocalDS_0] DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx + 32 + 1 + 1 + 1 + bb58202a-c925-5cb6-b552-a8648ba3f1d5 + dd207ae0-7d81-5139-aa85-a7e5a292b005 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.263122142-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + + + + network + + dvportgroup-14 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0053-VirtualMachine-vm-167.xml b/pkg/check/testdata/default/0053-VirtualMachine-vm-167.xml new file mode 100644 index 00000000..2712ebac --- /dev/null +++ b/pkg/check/testdata/default/0053-VirtualMachine-vm-167.xml @@ -0,0 +1,494 @@ + + vm-167 + + value + + + + availableField + + + + parent + folder-3 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_APP0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.263422211-05:00 + DC0_C0_APP0_VM1 + otherGuest + vmx-13 + baf53482-475d-59dc-8777-2b193e7af804 + 7a6cc2df-3fc0-577a-ad08-6c0ec1525506 + + otherGuest + + + [LocalDS_0] DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx + [LocalDS_0] DC0_C0_APP0_VM1 + [LocalDS_0] DC0_C0_APP0_VM1 + [LocalDS_0] DC0_C0_APP0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824640119528 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC0_C0_APP0_VM1/disk1.vmdk + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + persistent + false + false + true + false + 0ea2fee7-8aa8-5b6e-b067-b7388d2f7a4f + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-14 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:31:64:35 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC0_C0_APP0_VM1.nvram + vmware.log + + 204 + [LocalDS_0] DC0_C0_APP0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC0_C0_APP0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC0_C0_APP0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC0_C0_APP0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC0_C0_APP0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-02-09T22:59:58.264116969-05:00 + + + + storage + + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + 0 + 0 + 0 + + 2021-02-09T22:59:58.264116669-05:00 + + + + environmentBrowser + envbrowser-28 + + + resourcePool + virtualapp-57 + + + runtime + + host-53 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:31:64:35 + true + 4000 + + + + + + summary + + vm-167 + + host-53 + connected + poweredOn + false + 2021-02-09T22:59:58.264209379-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC0_C0_APP0_VM1 + + [LocalDS_0] DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx + 32 + 1 + 1 + 1 + baf53482-475d-59dc-8777-2b193e7af804 + 7a6cc2df-3fc0-577a-ad08-6c0ec1525506 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.264116759-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + + + + network + + dvportgroup-14 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0052-Folder-folder-4.xml b/pkg/check/testdata/default/0054-Folder-folder-4.xml similarity index 97% rename from pkg/check/testdata/default/0052-Folder-folder-4.xml rename to pkg/check/testdata/default/0054-Folder-folder-4.xml index 3504e9c8..52dea783 100644 --- a/pkg/check/testdata/default/0052-Folder-folder-4.xml +++ b/pkg/check/testdata/default/0054-Folder-folder-4.xml @@ -72,8 +72,8 @@ childEntity - computeresource-23 - clustercomputeresource-27 + computeresource-26 + clustercomputeresource-30 @@ -148,8 +148,8 @@ childEntity - computeresource-23 - clustercomputeresource-27 + computeresource-26 + clustercomputeresource-30 \ No newline at end of file diff --git a/pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml b/pkg/check/testdata/default/0055-ComputeResource-computeresource-26.xml similarity index 86% rename from pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml rename to pkg/check/testdata/default/0055-ComputeResource-computeresource-26.xml index 5029bea2..e1985fd5 100644 --- a/pkg/check/testdata/default/0053-ComputeResource-computeresource-23.xml +++ b/pkg/check/testdata/default/0055-ComputeResource-computeresource-26.xml @@ -1,5 +1,5 @@ - computeresource-23 + computeresource-26 value @@ -64,26 +64,29 @@ resourcePool - resgroup-22 + resgroup-25 host - host-21 + host-24 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 @@ -102,7 +105,7 @@ environmentBrowser - envbrowser-20 + envbrowser-23 configurationEx diff --git a/pkg/check/testdata/default/0054-HostSystem-host-21.xml b/pkg/check/testdata/default/0056-HostSystem-host-24.xml similarity index 99% rename from pkg/check/testdata/default/0054-HostSystem-host-21.xml rename to pkg/check/testdata/default/0056-HostSystem-host-24.xml index 61478b59..268593f3 100644 --- a/pkg/check/testdata/default/0054-HostSystem-host-21.xml +++ b/pkg/check/testdata/default/0056-HostSystem-host-24.xml @@ -1,5 +1,5 @@ - host-21 + host-24 value @@ -10,7 +10,7 @@ parent - computeresource-23 + computeresource-26 customValue @@ -68,7 +68,7 @@ connected poweredOn false - 2021-01-08T17:08:20.682378072+01:00 + 2021-02-09T22:59:58.206270389-05:00 @@ -1187,7 +1187,7 @@ summary - host-21 + host-24 VMware, Inc. (govmomi simulator) VMware Virtual Platform @@ -1237,7 +1237,7 @@ connected poweredOn false - 2021-01-08T17:08:20.682378072+01:00 + 2021-02-09T22:59:58.206270389-05:00 @@ -3152,15 +3152,15 @@ configManager cpuSchedulerSystem - hostdatastoresystem-15 + hostdatastoresystem-18 memoryManagerSystem - hoststoragesystem-19 - hostnetworksystem-16 + hoststoragesystem-22 + hostnetworksystem-19 ha-vmotion-system ha-vnic-mgr serviceSystem - hostfirewallsystem-18 - optionmanager-17 + hostfirewallsystem-21 + optionmanager-20 diagnosticsystem ha-autostart-mgr ha-snmp-agent @@ -5273,22 +5273,25 @@ vm - vm-57 - vm-60 + vm-152 + vm-155 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml b/pkg/check/testdata/default/0057-HostDatastoreSystem-hostdatastoresystem-18.xml similarity index 55% rename from pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml rename to pkg/check/testdata/default/0057-HostDatastoreSystem-hostdatastoresystem-18.xml index 8f609c75..9c5a9c48 100644 --- a/pkg/check/testdata/default/0055-HostDatastoreSystem-hostdatastoresystem-15.xml +++ b/pkg/check/testdata/default/0057-HostDatastoreSystem-hostdatastoresystem-18.xml @@ -1,9 +1,12 @@ - hostdatastoresystem-15 + hostdatastoresystem-18 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 diff --git a/pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml b/pkg/check/testdata/default/0058-HostNetworkSystem-hostnetworksystem-19.xml similarity index 98% rename from pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml rename to pkg/check/testdata/default/0058-HostNetworkSystem-hostnetworksystem-19.xml index 051d2577..5c8b4563 100644 --- a/pkg/check/testdata/default/0064-HostNetworkSystem-hostnetworksystem-38.xml +++ b/pkg/check/testdata/default/0058-HostNetworkSystem-hostnetworksystem-19.xml @@ -1,5 +1,5 @@ - hostnetworksystem-38 + hostnetworksystem-19 value diff --git a/pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml b/pkg/check/testdata/default/0059-ResourcePool-resgroup-25.xml similarity index 95% rename from pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml rename to pkg/check/testdata/default/0059-ResourcePool-resgroup-25.xml index 6e0f72f1..1f7e614e 100644 --- a/pkg/check/testdata/default/0057-ResourcePool-resgroup-22.xml +++ b/pkg/check/testdata/default/0059-ResourcePool-resgroup-25.xml @@ -1,5 +1,5 @@ - resgroup-22 + resgroup-25 value @@ -10,7 +10,7 @@ parent - computeresource-23 + computeresource-26 customValue @@ -65,7 +65,7 @@ summary - Resources + DC1_C0_APP0 ha-root-pool @@ -132,7 +132,7 @@ owner - computeresource-23 + computeresource-26 resourcePool @@ -141,8 +141,8 @@ vm - vm-57 - vm-60 + vm-152 + vm-155 diff --git a/pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml b/pkg/check/testdata/default/0060-ClusterComputeResource-clustercomputeresource-30.xml similarity index 88% rename from pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml rename to pkg/check/testdata/default/0060-ClusterComputeResource-clustercomputeresource-30.xml index 3f68c22c..f2c246ea 100644 --- a/pkg/check/testdata/default/0058-ClusterComputeResource-clustercomputeresource-27.xml +++ b/pkg/check/testdata/default/0060-ClusterComputeResource-clustercomputeresource-30.xml @@ -1,5 +1,5 @@ - clustercomputeresource-27 + clustercomputeresource-30 value @@ -64,28 +64,31 @@ resourcePool - resgroup-26 + resgroup-29 host - host-34 - host-42 - host-50 + host-37 + host-45 + host-53 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 @@ -119,7 +122,7 @@ environmentBrowser - envbrowser-25 + envbrowser-28 configurationEx diff --git a/pkg/check/testdata/default/0059-HostSystem-host-34.xml b/pkg/check/testdata/default/0061-HostSystem-host-37.xml similarity index 99% rename from pkg/check/testdata/default/0059-HostSystem-host-34.xml rename to pkg/check/testdata/default/0061-HostSystem-host-37.xml index fac1e603..3507ff85 100644 --- a/pkg/check/testdata/default/0059-HostSystem-host-34.xml +++ b/pkg/check/testdata/default/0061-HostSystem-host-37.xml @@ -1,5 +1,5 @@ - host-34 + host-37 value @@ -10,7 +10,7 @@ parent - clustercomputeresource-27 + clustercomputeresource-30 customValue @@ -68,7 +68,7 @@ connected poweredOn false - 2021-01-08T17:08:20.69168753+01:00 + 2021-02-09T22:59:58.215295504-05:00 @@ -1187,7 +1187,7 @@ summary - host-34 + host-37 VMware, Inc. (govmomi simulator) VMware Virtual Platform @@ -1237,7 +1237,7 @@ connected poweredOn false - 2021-01-08T17:08:20.69168753+01:00 + 2021-02-09T22:59:58.215295504-05:00 @@ -3152,15 +3152,15 @@ configManager cpuSchedulerSystem - hostdatastoresystem-29 + hostdatastoresystem-32 memoryManagerSystem - hoststoragesystem-33 - hostnetworksystem-30 + hoststoragesystem-36 + hostnetworksystem-33 ha-vmotion-system ha-vnic-mgr serviceSystem - hostfirewallsystem-32 - optionmanager-31 + hostfirewallsystem-35 + optionmanager-34 diagnosticsystem ha-autostart-mgr ha-snmp-agent @@ -5273,21 +5273,25 @@ vm - vm-66 + vm-161 + vm-164 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml b/pkg/check/testdata/default/0062-HostDatastoreSystem-hostdatastoresystem-32.xml similarity index 55% rename from pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml rename to pkg/check/testdata/default/0062-HostDatastoreSystem-hostdatastoresystem-32.xml index 4b32f0de..2df301a5 100644 --- a/pkg/check/testdata/default/0060-HostDatastoreSystem-hostdatastoresystem-29.xml +++ b/pkg/check/testdata/default/0062-HostDatastoreSystem-hostdatastoresystem-32.xml @@ -1,9 +1,12 @@ - hostdatastoresystem-29 + hostdatastoresystem-32 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 diff --git a/pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml b/pkg/check/testdata/default/0063-HostNetworkSystem-hostnetworksystem-33.xml similarity index 98% rename from pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml rename to pkg/check/testdata/default/0063-HostNetworkSystem-hostnetworksystem-33.xml index cf1fe666..8408c82b 100644 --- a/pkg/check/testdata/default/0067-HostNetworkSystem-hostnetworksystem-46.xml +++ b/pkg/check/testdata/default/0063-HostNetworkSystem-hostnetworksystem-33.xml @@ -1,5 +1,5 @@ - hostnetworksystem-46 + hostnetworksystem-33 value diff --git a/pkg/check/testdata/default/0062-HostSystem-host-42.xml b/pkg/check/testdata/default/0064-HostSystem-host-45.xml similarity index 99% rename from pkg/check/testdata/default/0062-HostSystem-host-42.xml rename to pkg/check/testdata/default/0064-HostSystem-host-45.xml index 01e73c86..76765664 100644 --- a/pkg/check/testdata/default/0062-HostSystem-host-42.xml +++ b/pkg/check/testdata/default/0064-HostSystem-host-45.xml @@ -1,5 +1,5 @@ - host-42 + host-45 value @@ -10,7 +10,7 @@ parent - clustercomputeresource-27 + clustercomputeresource-30 customValue @@ -68,7 +68,7 @@ connected poweredOn false - 2021-01-08T17:08:20.697733144+01:00 + 2021-02-09T22:59:58.222617124-05:00 @@ -1187,7 +1187,7 @@ summary - host-42 + host-45 VMware, Inc. (govmomi simulator) VMware Virtual Platform @@ -1237,7 +1237,7 @@ connected poweredOn false - 2021-01-08T17:08:20.697733144+01:00 + 2021-02-09T22:59:58.222617124-05:00 @@ -3152,15 +3152,15 @@ configManager cpuSchedulerSystem - hostdatastoresystem-37 + hostdatastoresystem-40 memoryManagerSystem - hoststoragesystem-41 - hostnetworksystem-38 + hoststoragesystem-44 + hostnetworksystem-41 ha-vmotion-system ha-vnic-mgr serviceSystem - hostfirewallsystem-40 - optionmanager-39 + hostfirewallsystem-43 + optionmanager-42 diagnosticsystem ha-autostart-mgr ha-snmp-agent @@ -5272,20 +5272,25 @@ vm - + + vm-158 + datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml b/pkg/check/testdata/default/0065-HostDatastoreSystem-hostdatastoresystem-40.xml similarity index 55% rename from pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml rename to pkg/check/testdata/default/0065-HostDatastoreSystem-hostdatastoresystem-40.xml index 87959bfc..81c6e9fe 100644 --- a/pkg/check/testdata/default/0063-HostDatastoreSystem-hostdatastoresystem-37.xml +++ b/pkg/check/testdata/default/0065-HostDatastoreSystem-hostdatastoresystem-40.xml @@ -1,9 +1,12 @@ - hostdatastoresystem-37 + hostdatastoresystem-40 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 diff --git a/pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml b/pkg/check/testdata/default/0066-HostNetworkSystem-hostnetworksystem-41.xml similarity index 98% rename from pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml rename to pkg/check/testdata/default/0066-HostNetworkSystem-hostnetworksystem-41.xml index 21ca6644..520b0aa2 100644 --- a/pkg/check/testdata/default/0056-HostNetworkSystem-hostnetworksystem-16.xml +++ b/pkg/check/testdata/default/0066-HostNetworkSystem-hostnetworksystem-41.xml @@ -1,5 +1,5 @@ - hostnetworksystem-16 + hostnetworksystem-41 value diff --git a/pkg/check/testdata/default/0065-HostSystem-host-50.xml b/pkg/check/testdata/default/0067-HostSystem-host-53.xml similarity index 99% rename from pkg/check/testdata/default/0065-HostSystem-host-50.xml rename to pkg/check/testdata/default/0067-HostSystem-host-53.xml index c4436a45..0995011e 100644 --- a/pkg/check/testdata/default/0065-HostSystem-host-50.xml +++ b/pkg/check/testdata/default/0067-HostSystem-host-53.xml @@ -1,5 +1,5 @@ - host-50 + host-53 value @@ -10,7 +10,7 @@ parent - clustercomputeresource-27 + clustercomputeresource-30 customValue @@ -68,7 +68,7 @@ connected poweredOn false - 2021-01-08T17:08:20.703393303+01:00 + 2021-02-09T22:59:58.230664752-05:00 @@ -1187,7 +1187,7 @@ summary - host-50 + host-53 VMware, Inc. (govmomi simulator) VMware Virtual Platform @@ -1237,7 +1237,7 @@ connected poweredOn false - 2021-01-08T17:08:20.703393303+01:00 + 2021-02-09T22:59:58.230664752-05:00 @@ -3152,15 +3152,15 @@ configManager cpuSchedulerSystem - hostdatastoresystem-45 + hostdatastoresystem-48 memoryManagerSystem - hoststoragesystem-49 - hostnetworksystem-46 + hoststoragesystem-52 + hostnetworksystem-49 ha-vmotion-system ha-vnic-mgr serviceSystem - hostfirewallsystem-48 - optionmanager-47 + hostfirewallsystem-51 + optionmanager-50 diagnosticsystem ha-autostart-mgr ha-snmp-agent @@ -5273,21 +5273,24 @@ vm - vm-63 + vm-167 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 network network-7 - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 diff --git a/pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml b/pkg/check/testdata/default/0068-HostDatastoreSystem-hostdatastoresystem-48.xml similarity index 55% rename from pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml rename to pkg/check/testdata/default/0068-HostDatastoreSystem-hostdatastoresystem-48.xml index 5f2451c3..c91be3d3 100644 --- a/pkg/check/testdata/default/0066-HostDatastoreSystem-hostdatastoresystem-45.xml +++ b/pkg/check/testdata/default/0068-HostDatastoreSystem-hostdatastoresystem-48.xml @@ -1,9 +1,12 @@ - hostdatastoresystem-45 + hostdatastoresystem-48 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 diff --git a/pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml b/pkg/check/testdata/default/0069-HostNetworkSystem-hostnetworksystem-49.xml similarity index 98% rename from pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml rename to pkg/check/testdata/default/0069-HostNetworkSystem-hostnetworksystem-49.xml index ebd3d726..49318e41 100644 --- a/pkg/check/testdata/default/0061-HostNetworkSystem-hostnetworksystem-30.xml +++ b/pkg/check/testdata/default/0069-HostNetworkSystem-hostnetworksystem-49.xml @@ -1,5 +1,5 @@ - hostnetworksystem-30 + hostnetworksystem-49 value diff --git a/pkg/check/testdata/default/0070-ResourcePool-resgroup-29.xml b/pkg/check/testdata/default/0070-ResourcePool-resgroup-29.xml new file mode 100644 index 00000000..ccbc06c5 --- /dev/null +++ b/pkg/check/testdata/default/0070-ResourcePool-resgroup-29.xml @@ -0,0 +1,180 @@ + + resgroup-29 + + value + + + + availableField + + + + parent + clustercomputeresource-30 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + Resources + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-30 + + + resourcePool + + resgroup-55 + resgroup-56 + virtualapp-57 + + + + vm + + vm-158 + vm-161 + + + + config + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0071-ResourcePool-resgroup-55.xml b/pkg/check/testdata/default/0071-ResourcePool-resgroup-55.xml new file mode 100644 index 00000000..8c5c4e80 --- /dev/null +++ b/pkg/check/testdata/default/0071-ResourcePool-resgroup-55.xml @@ -0,0 +1,172 @@ + + resgroup-55 + + value + + + + availableField + + + + parent + resgroup-29 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_RP1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-30 + + + resourcePool + + + + vm + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0072-ResourcePool-resgroup-56.xml b/pkg/check/testdata/default/0072-ResourcePool-resgroup-56.xml new file mode 100644 index 00000000..d1805592 --- /dev/null +++ b/pkg/check/testdata/default/0072-ResourcePool-resgroup-56.xml @@ -0,0 +1,172 @@ + + resgroup-56 + + value + + + + availableField + + + + parent + resgroup-29 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_RP2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-30 + + + resourcePool + + + + vm + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0073-VirtualApp-virtualapp-57.xml b/pkg/check/testdata/default/0073-VirtualApp-virtualapp-57.xml new file mode 100644 index 00000000..a71abb2b --- /dev/null +++ b/pkg/check/testdata/default/0073-VirtualApp-virtualapp-57.xml @@ -0,0 +1,207 @@ + + virtualapp-57 + + value + + + + availableField + + + + parent + resgroup-29 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_C0_APP0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-30 + + + resourcePool + + + + vm + + vm-164 + vm-167 + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + + parentFolder + folder-3 + + + datastore + + + + network + + + + vAppConfig + + + 0 + vcsim + VMware + 0.1 + http://www.vmware.com/ + + + false + 0 + vcsim + + + + childLink + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0074-Folder-folder-5.xml b/pkg/check/testdata/default/0074-Folder-folder-5.xml new file mode 100644 index 00000000..224ed08c --- /dev/null +++ b/pkg/check/testdata/default/0074-Folder-folder-5.xml @@ -0,0 +1,183 @@ + + folder-5 + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + datastore + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + storagepod-8 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + + + + value + + + + availableField + + + + parent + datacenter-2 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + datastore + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + storagepod-8 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0075-StoragePod-storagepod-8.xml b/pkg/check/testdata/default/0075-StoragePod-storagepod-8.xml new file mode 100644 index 00000000..3beca691 --- /dev/null +++ b/pkg/check/testdata/default/0075-StoragePod-storagepod-8.xml @@ -0,0 +1,195 @@ + + storagepod-8 + + value + + + + availableField + + + + parent + folder-5 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_POD0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + + + + childEntity + + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + + + + summary + + + 0 + 0 + + + + podStorageDrsEntry + + + + true + false + + + + + + + value + + + + availableField + + + + parent + folder-5 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC0_POD0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + + + + childEntity + + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + + + + summary + + + 0 + 0 + + + + podStorageDrsEntry + + + + true + false + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml b/pkg/check/testdata/default/0076-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-741472776%40folder-5.xml similarity index 79% rename from pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml rename to pkg/check/testdata/default/0076-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-741472776%40folder-5.xml index 144376d8..03781733 100644 --- a/pkg/check/testdata/default/0070-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-824089577%40folder-5.xml +++ b/pkg/check/testdata/default/0076-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_0-741472776%40folder-5.xml @@ -1,5 +1,5 @@ - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 value @@ -66,22 +66,22 @@ info LocalDS_0 - testdata/default/govcsim-DC0-LocalDS_0-824089577 - 16629899264 - 16634093568 - 16634093568 - 2021-01-08T17:08:20.710164907+01:00 - testdata/default/govcsim-DC0-LocalDS_0-824089577 + testdata/default/govcsim-DC0-LocalDS_0-741472776 + 33505005568 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.25671251-05:00 + testdata/default/govcsim-DC0-LocalDS_0-741472776 summary - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 LocalDS_0 - testdata/default/govcsim-DC0-LocalDS_0-824089577 - 16753934336 - 16629899264 + testdata/default/govcsim-DC0-LocalDS_0-741472776 + 33681489920 + 33505005568 true OTHER normal @@ -91,7 +91,7 @@ host - host-50 + host-53 readWrite true @@ -103,15 +103,17 @@ vm - vm-57 - vm-60 - vm-63 - vm-66 + vm-152 + vm-155 + vm-158 + vm-161 + vm-164 + vm-167 browser - hostdatastorebrowser-55 + hostdatastorebrowser-122 capability diff --git a/pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml b/pkg/check/testdata/default/0077-HostDatastoreBrowser-hostdatastorebrowser-122.xml similarity index 76% rename from pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml rename to pkg/check/testdata/default/0077-HostDatastoreBrowser-hostdatastorebrowser-122.xml index 8bc765ae..1e034dc2 100644 --- a/pkg/check/testdata/default/0071-HostDatastoreBrowser-hostdatastorebrowser-55.xml +++ b/pkg/check/testdata/default/0077-HostDatastoreBrowser-hostdatastorebrowser-122.xml @@ -1,9 +1,9 @@ - hostdatastorebrowser-55 + hostdatastorebrowser-122 datastore - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 diff --git a/pkg/check/testdata/default/0078-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_1-392731591%40folder-5.xml b/pkg/check/testdata/default/0078-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_1-392731591%40folder-5.xml new file mode 100644 index 00000000..d70a3f94 --- /dev/null +++ b/pkg/check/testdata/default/0078-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_1-392731591%40folder-5.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + + value + + + + availableField + + + + parent + folder-5 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_1 + testdata/default/govcsim-DC0-LocalDS_1-392731591 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.2567795-05:00 + testdata/default/govcsim-DC0-LocalDS_1-392731591 + + + + summary + + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + LocalDS_1 + testdata/default/govcsim-DC0-LocalDS_1-392731591 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-53 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-126 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0079-HostDatastoreBrowser-hostdatastorebrowser-126.xml b/pkg/check/testdata/default/0079-HostDatastoreBrowser-hostdatastorebrowser-126.xml new file mode 100644 index 00000000..84f4ce9c --- /dev/null +++ b/pkg/check/testdata/default/0079-HostDatastoreBrowser-hostdatastorebrowser-126.xml @@ -0,0 +1,14 @@ + + hostdatastorebrowser-126 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0080-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_2-363093114%40folder-5.xml b/pkg/check/testdata/default/0080-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_2-363093114%40folder-5.xml new file mode 100644 index 00000000..f0adfd0c --- /dev/null +++ b/pkg/check/testdata/default/0080-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_2-363093114%40folder-5.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + + value + + + + availableField + + + + parent + storagepod-8 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_2 + testdata/default/govcsim-DC0-LocalDS_2-363093114 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.256840079-05:00 + testdata/default/govcsim-DC0-LocalDS_2-363093114 + + + + summary + + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + LocalDS_2 + testdata/default/govcsim-DC0-LocalDS_2-363093114 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-53 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-130 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0081-HostDatastoreBrowser-hostdatastorebrowser-130.xml b/pkg/check/testdata/default/0081-HostDatastoreBrowser-hostdatastorebrowser-130.xml new file mode 100644 index 00000000..315266f7 --- /dev/null +++ b/pkg/check/testdata/default/0081-HostDatastoreBrowser-hostdatastorebrowser-130.xml @@ -0,0 +1,15 @@ + + hostdatastorebrowser-130 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0082-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_3-206027153%40folder-5.xml b/pkg/check/testdata/default/0082-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_3-206027153%40folder-5.xml new file mode 100644 index 00000000..05586d96 --- /dev/null +++ b/pkg/check/testdata/default/0082-Datastore-%2Ftmp%2Fgovcsim-DC0-LocalDS_3-206027153%40folder-5.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + + value + + + + availableField + + + + parent + storagepod-8 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_3 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_3 + testdata/default/govcsim-DC0-LocalDS_3-206027153 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.256916189-05:00 + testdata/default/govcsim-DC0-LocalDS_3-206027153 + + + + summary + + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + LocalDS_3 + testdata/default/govcsim-DC0-LocalDS_3-206027153 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-53 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-134 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0083-HostDatastoreBrowser-hostdatastorebrowser-134.xml b/pkg/check/testdata/default/0083-HostDatastoreBrowser-hostdatastorebrowser-134.xml new file mode 100644 index 00000000..943bd2e5 --- /dev/null +++ b/pkg/check/testdata/default/0083-HostDatastoreBrowser-hostdatastorebrowser-134.xml @@ -0,0 +1,16 @@ + + hostdatastorebrowser-134 + + datastore + + testdata/default/govcsim-DC0-LocalDS_0-741472776@folder-5 + testdata/default/govcsim-DC0-LocalDS_1-392731591@folder-5 + testdata/default/govcsim-DC0-LocalDS_2-363093114@folder-5 + testdata/default/govcsim-DC0-LocalDS_3-206027153@folder-5 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0072-Folder-folder-6.xml b/pkg/check/testdata/default/0084-Folder-folder-6.xml similarity index 92% rename from pkg/check/testdata/default/0072-Folder-folder-6.xml rename to pkg/check/testdata/default/0084-Folder-folder-6.xml index 9b3a74b9..ad7c5b11 100644 --- a/pkg/check/testdata/default/0072-Folder-folder-6.xml +++ b/pkg/check/testdata/default/0084-Folder-folder-6.xml @@ -74,9 +74,11 @@ childEntity network-7 - dvs-9 - dvportgroup-11 - dvportgroup-13 + dvs-10 + dvportgroup-12 + dvportgroup-14 + opaquenetwork-15 + opaquenetwork-16 @@ -153,9 +155,11 @@ childEntity network-7 - dvs-9 - dvportgroup-11 - dvportgroup-13 + dvs-10 + dvportgroup-12 + dvportgroup-14 + opaquenetwork-15 + opaquenetwork-16 \ No newline at end of file diff --git a/pkg/check/testdata/default/0073-Network-network-7.xml b/pkg/check/testdata/default/0085-Network-network-7.xml similarity index 100% rename from pkg/check/testdata/default/0073-Network-network-7.xml rename to pkg/check/testdata/default/0085-Network-network-7.xml diff --git a/pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml b/pkg/check/testdata/default/0086-DistributedVirtualSwitch-dvs-10.xml similarity index 91% rename from pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml rename to pkg/check/testdata/default/0086-DistributedVirtualSwitch-dvs-10.xml index a966fcd6..74a936ba 100644 --- a/pkg/check/testdata/default/0074-DistributedVirtualSwitch-dvs-9.xml +++ b/pkg/check/testdata/default/0086-DistributedVirtualSwitch-dvs-10.xml @@ -1,5 +1,5 @@ - dvs-9 + dvs-10 value @@ -83,11 +83,11 @@ 5973321 etherswitch - host-21 - host-34 - host-42 - host-50 - DVS0-DVUplinks-9 + host-24 + host-37 + host-45 + host-53 + DVS0-DVUplinks-10 DC0_DVPG0 @@ -113,8 +113,8 @@ portgroup - dvportgroup-11 - dvportgroup-13 + dvportgroup-12 + dvportgroup-14 \ No newline at end of file diff --git a/pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml b/pkg/check/testdata/default/0087-DistributedVirtualPortgroup-dvportgroup-12.xml similarity index 91% rename from pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml rename to pkg/check/testdata/default/0087-DistributedVirtualPortgroup-dvportgroup-12.xml index 02fcaf67..0ff021f6 100644 --- a/pkg/check/testdata/default/0075-DistributedVirtualPortgroup-dvportgroup-11.xml +++ b/pkg/check/testdata/default/0087-DistributedVirtualPortgroup-dvportgroup-12.xml @@ -1,5 +1,5 @@ - dvportgroup-11 + dvportgroup-12 value @@ -40,7 +40,7 @@ name - DVS0-DVUplinks-9 + DVS0-DVUplinks-10 disabledMethod @@ -65,8 +65,8 @@ summary - dvportgroup-11 - DVS0-DVUplinks-9 + dvportgroup-12 + DVS0-DVUplinks-10 true @@ -74,10 +74,10 @@ host - host-21 - host-34 - host-42 - host-50 + host-24 + host-37 + host-45 + host-53 @@ -86,19 +86,19 @@ name - DVS0-DVUplinks-9 + DVS0-DVUplinks-10 key - dvportgroup-11 + dvportgroup-12 config - dvportgroup-11 - DVS0-DVUplinks-9 + dvportgroup-12 + DVS0-DVUplinks-10 0 - dvs-9 + dvs-10 false @@ -127,7 +127,7 @@ - + earlyBinding true false diff --git a/pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml b/pkg/check/testdata/default/0088-DistributedVirtualPortgroup-dvportgroup-14.xml similarity index 92% rename from pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml rename to pkg/check/testdata/default/0088-DistributedVirtualPortgroup-dvportgroup-14.xml index c06e4b35..710cbe05 100644 --- a/pkg/check/testdata/default/0076-DistributedVirtualPortgroup-dvportgroup-13.xml +++ b/pkg/check/testdata/default/0088-DistributedVirtualPortgroup-dvportgroup-14.xml @@ -1,5 +1,5 @@ - dvportgroup-13 + dvportgroup-14 value @@ -65,7 +65,7 @@ summary - dvportgroup-13 + dvportgroup-14 DC0_DVPG0 true @@ -74,10 +74,10 @@ host - host-21 - host-34 - host-42 - host-50 + host-24 + host-37 + host-45 + host-53 @@ -90,15 +90,15 @@ key - dvportgroup-13 + dvportgroup-14 config - dvportgroup-13 + dvportgroup-14 DC0_DVPG0 0 - dvs-9 + dvs-10 false @@ -124,7 +124,7 @@ - + earlyBinding true false diff --git a/pkg/check/testdata/default/0089-OpaqueNetwork-opaquenetwork-15.xml b/pkg/check/testdata/default/0089-OpaqueNetwork-opaquenetwork-15.xml new file mode 100644 index 00000000..b2aae8a2 --- /dev/null +++ b/pkg/check/testdata/default/0089-OpaqueNetwork-opaquenetwork-15.xml @@ -0,0 +1,88 @@ + + opaquenetwork-15 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + opaquenetwork-15 + DC0_NSX0 + true + + a660233a-1ff0-4db2-9967-06676875efe3 + nsx.LogicalSwitch + + + + host + + + + vm + + + + name + DC0_NSX0 + + + extraConfig + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0090-OpaqueNetwork-opaquenetwork-16.xml b/pkg/check/testdata/default/0090-OpaqueNetwork-opaquenetwork-16.xml new file mode 100644 index 00000000..8a97e9e1 --- /dev/null +++ b/pkg/check/testdata/default/0090-OpaqueNetwork-opaquenetwork-16.xml @@ -0,0 +1,88 @@ + + opaquenetwork-16 + + value + + + + availableField + + + + parent + folder-6 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + opaquenetwork-16 + DC0_NSX1 + true + + eab84262-0fcc-4954-9288-c9ba7d93fad1 + nsx.LogicalSwitch + + + + host + + + + vm + + + + name + DC0_NSX1 + + + extraConfig + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0091-Folder-folder-58.xml b/pkg/check/testdata/default/0091-Folder-folder-58.xml new file mode 100644 index 00000000..6bcc4df1 --- /dev/null +++ b/pkg/check/testdata/default/0091-Folder-folder-58.xml @@ -0,0 +1,153 @@ + + folder-58 + + value + + + + availableField + + + + parent + group-d1 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Folder + Datacenter + + + + childEntity + + datacenter-59 + + + + value + + + + availableField + + + + parent + group-d1 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Folder + Datacenter + + + + childEntity + + datacenter-59 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0092-Datacenter-datacenter-59.xml b/pkg/check/testdata/default/0092-Datacenter-datacenter-59.xml new file mode 100644 index 00000000..cf3ba466 --- /dev/null +++ b/pkg/check/testdata/default/0092-Datacenter-datacenter-59.xml @@ -0,0 +1,103 @@ + + datacenter-59 + + value + + + + availableField + + + + parent + folder-58 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + vmFolder + folder-60 + + + hostFolder + folder-61 + + + datastoreFolder + folder-62 + + + networkFolder + folder-63 + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + dvportgroup-75 + + + + configuration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0093-Folder-folder-60.xml b/pkg/check/testdata/default/0093-Folder-folder-60.xml new file mode 100644 index 00000000..25ce5bd4 --- /dev/null +++ b/pkg/check/testdata/default/0093-Folder-folder-60.xml @@ -0,0 +1,155 @@ + + folder-60 + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + vm + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + folder-69 + + + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + vm + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + folder-69 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0094-Folder-folder-69.xml b/pkg/check/testdata/default/0094-Folder-folder-69.xml new file mode 100644 index 00000000..93dc6160 --- /dev/null +++ b/pkg/check/testdata/default/0094-Folder-folder-69.xml @@ -0,0 +1,165 @@ + + folder-69 + + value + + + + availableField + + + + parent + folder-60 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + vm-170 + vm-173 + vm-176 + vm-179 + vm-182 + vm-185 + + + + value + + + + availableField + + + + parent + folder-60 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + VirtualMachine + VirtualApp + Folder + + + + childEntity + + vm-170 + vm-173 + vm-176 + vm-179 + vm-182 + vm-185 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0095-VirtualMachine-vm-170.xml b/pkg/check/testdata/default/0095-VirtualMachine-vm-170.xml new file mode 100644 index 00000000..dba0e712 --- /dev/null +++ b/pkg/check/testdata/default/0095-VirtualMachine-vm-170.xml @@ -0,0 +1,494 @@ + + vm-170 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_H0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.264447068-05:00 + DC1_H0_VM0 + otherGuest + vmx-13 + 7930a567-e3b5-5e70-8d60-d32f5c963f60 + a628c174-5062-55cb-82be-c528a0b08c02 + + otherGuest + + + [LocalDS_0] DC1_H0_VM0/DC1_H0_VM0.vmx + [LocalDS_0] DC1_H0_VM0 + [LocalDS_0] DC1_H0_VM0 + [LocalDS_0] DC1_H0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824641149856 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC1_H0_VM0/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + 3ef531e6-4e1b-5910-a47d-7097c691b3bf + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:66:36:30 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_H0_VM0.nvram + vmware.log + + 204 + [LocalDS_0] DC1_H0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_H0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_H0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_H0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_H0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-02-09T22:59:58.265202376-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.265202056-05:00 + + + + environmentBrowser + envbrowser-84 + + + resourcePool + resgroup-86 + + + runtime + + host-85 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:66:36:30 + true + 4000 + + + + + + summary + + vm-170 + + host-85 + connected + poweredOn + false + 2021-02-09T22:59:58.265284486-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_H0_VM0 + + [LocalDS_0] DC1_H0_VM0/DC1_H0_VM0.vmx + 32 + 1 + 1 + 1 + 7930a567-e3b5-5e70-8d60-d32f5c963f60 + a628c174-5062-55cb-82be-c528a0b08c02 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.265202156-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0096-EnvironmentBrowser-envbrowser-84.xml b/pkg/check/testdata/default/0096-EnvironmentBrowser-envbrowser-84.xml new file mode 100644 index 00000000..44e2a273 --- /dev/null +++ b/pkg/check/testdata/default/0096-EnvironmentBrowser-envbrowser-84.xml @@ -0,0 +1,3 @@ + + envbrowser-84 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0097-VirtualMachine-vm-173.xml b/pkg/check/testdata/default/0097-VirtualMachine-vm-173.xml new file mode 100644 index 00000000..ba9ccb48 --- /dev/null +++ b/pkg/check/testdata/default/0097-VirtualMachine-vm-173.xml @@ -0,0 +1,494 @@ + + vm-173 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_H0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.265495465-05:00 + DC1_H0_VM1 + otherGuest + vmx-13 + 45412182-a62f-5c2f-bacb-4d3a45e2e5d9 + e69f1292-4e60-540d-8182-ff2b19e4e97f + + otherGuest + + + [LocalDS_0] DC1_H0_VM1/DC1_H0_VM1.vmx + [LocalDS_0] DC1_H0_VM1 + [LocalDS_0] DC1_H0_VM1 + [LocalDS_0] DC1_H0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 1378320822 + + + cdrom-1378320822 + + + cdrom--201-824635601528 + false + + + true + true + true + + 202 + 0 + + + 203 + + + 1,024 KB + + + [LocalDS_0] DC1_H0_VM1/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + 86a4017d-fc99-503d-be04-afb8c80ca22c + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:66:36:30 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_H0_VM1.nvram + vmware.log + + 203 + [LocalDS_0] DC1_H0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_H0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_H0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_H0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_H0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 203 + + 5 + 6 + + + 2021-02-09T22:59:58.266267783-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.266267483-05:00 + + + + environmentBrowser + envbrowser-84 + + + resourcePool + resgroup-86 + + + runtime + + host-85 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:66:36:30 + true + 4000 + + + + + + summary + + vm-173 + + host-85 + connected + poweredOn + false + 2021-02-09T22:59:58.266348703-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_H0_VM1 + + [LocalDS_0] DC1_H0_VM1/DC1_H0_VM1.vmx + 32 + 1 + 1 + 1 + 45412182-a62f-5c2f-bacb-4d3a45e2e5d9 + e69f1292-4e60-540d-8182-ff2b19e4e97f + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.266267573-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0098-VirtualMachine-vm-176.xml b/pkg/check/testdata/default/0098-VirtualMachine-vm-176.xml new file mode 100644 index 00000000..c55d9ad8 --- /dev/null +++ b/pkg/check/testdata/default/0098-VirtualMachine-vm-176.xml @@ -0,0 +1,494 @@ + + vm-176 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_RP0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.266567433-05:00 + DC1_C0_RP0_VM0 + otherGuest + vmx-13 + 48cb9b41-18e2-5b40-8751-9f67e5cfbd87 + e9aeab08-6234-57ae-b312-929d3116064c + + otherGuest + + + [LocalDS_0] DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx + [LocalDS_0] DC1_C0_RP0_VM0 + [LocalDS_0] DC1_C0_RP0_VM0 + [LocalDS_0] DC1_C0_RP0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 203 + + + cdrom-203 + + + cdrom--201-824641743496 + false + + + true + true + true + + 202 + 0 + + + 204 + + + 1,024 KB + + + [LocalDS_0] DC1_C0_RP0_VM0/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + 8b7e5ac1-9ba4-54eb-b192-71711eb7cae7 + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:64:38:37 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_C0_RP0_VM0.nvram + vmware.log + + 204 + [LocalDS_0] DC1_C0_RP0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_C0_RP0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_C0_RP0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_C0_RP0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_C0_RP0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 204 + + 5 + 6 + + + 2021-02-09T22:59:58.26734035-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.26734005-05:00 + + + + environmentBrowser + envbrowser-89 + + + resourcePool + resgroup-90 + + + runtime + + host-114 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:64:38:37 + true + 4000 + + + + + + summary + + vm-176 + + host-114 + connected + poweredOn + false + 2021-02-09T22:59:58.26741974-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_C0_RP0_VM0 + + [LocalDS_0] DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx + 32 + 1 + 1 + 1 + 48cb9b41-18e2-5b40-8751-9f67e5cfbd87 + e9aeab08-6234-57ae-b312-929d3116064c + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.26734014-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0099-EnvironmentBrowser-envbrowser-89.xml b/pkg/check/testdata/default/0099-EnvironmentBrowser-envbrowser-89.xml new file mode 100644 index 00000000..e4d4ffe3 --- /dev/null +++ b/pkg/check/testdata/default/0099-EnvironmentBrowser-envbrowser-89.xml @@ -0,0 +1,3 @@ + + envbrowser-89 + \ No newline at end of file diff --git a/pkg/check/testdata/default/0100-VirtualMachine-vm-179.xml b/pkg/check/testdata/default/0100-VirtualMachine-vm-179.xml new file mode 100644 index 00000000..a7977be9 --- /dev/null +++ b/pkg/check/testdata/default/0100-VirtualMachine-vm-179.xml @@ -0,0 +1,494 @@ + + vm-179 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_RP0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.267638059-05:00 + DC1_C0_RP0_VM1 + otherGuest + vmx-13 + e0d1be9b-5697-5cc0-a940-56cee271abe4 + cdefc757-d0f6-58aa-aea2-f1f3c83b60ff + + otherGuest + + + [LocalDS_0] DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx + [LocalDS_0] DC1_C0_RP0_VM1 + [LocalDS_0] DC1_C0_RP0_VM1 + [LocalDS_0] DC1_C0_RP0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 590594780 + + + cdrom-590594780 + + + cdrom--201-824637756632 + false + + + true + true + true + + 202 + 0 + + + 203 + + + 1,024 KB + + + [LocalDS_0] DC1_C0_RP0_VM1/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + daa4a96d-4853-5046-87b5-ec59fe7479fb + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:64:38:37 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_C0_RP0_VM1.nvram + vmware.log + + 203 + [LocalDS_0] DC1_C0_RP0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_C0_RP0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_C0_RP0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_C0_RP0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_C0_RP0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 203 + + 5 + 6 + + + 2021-02-09T22:59:58.268432047-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.268431717-05:00 + + + + environmentBrowser + envbrowser-89 + + + resourcePool + resgroup-90 + + + runtime + + host-106 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:64:38:37 + true + 4000 + + + + + + summary + + vm-179 + + host-106 + connected + poweredOn + false + 2021-02-09T22:59:58.268512937-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_C0_RP0_VM1 + + [LocalDS_0] DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx + 32 + 1 + 1 + 1 + e0d1be9b-5697-5cc0-a940-56cee271abe4 + cdefc757-d0f6-58aa-aea2-f1f3c83b60ff + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.268431807-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0101-VirtualMachine-vm-182.xml b/pkg/check/testdata/default/0101-VirtualMachine-vm-182.xml new file mode 100644 index 00000000..a1319559 --- /dev/null +++ b/pkg/check/testdata/default/0101-VirtualMachine-vm-182.xml @@ -0,0 +1,494 @@ + + vm-182 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_APP0_VM0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.268732997-05:00 + DC1_C0_APP0_VM0 + otherGuest + vmx-13 + db46440b-5e5c-5d0d-a4da-b1cdd238015e + 0f4f30ee-c3b9-5099-8589-0500b30477b4 + + otherGuest + + + [LocalDS_0] DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx + [LocalDS_0] DC1_C0_APP0_VM0 + [LocalDS_0] DC1_C0_APP0_VM0 + [LocalDS_0] DC1_C0_APP0_VM0 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 1062690721 + + + cdrom-1062690721 + + + cdrom--201-824647588824 + false + + + true + true + true + + 202 + 0 + + + 203 + + + 1,024 KB + + + [LocalDS_0] DC1_C0_APP0_VM0/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + f53288b7-2535-540b-a0af-eabc98e9bdc0 + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:31:35:65 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_C0_APP0_VM0.nvram + vmware.log + + 203 + [LocalDS_0] DC1_C0_APP0_VM0/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_C0_APP0_VM0.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_C0_APP0_VM0.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_C0_APP0_VM0/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_C0_APP0_VM0/disk1.vmdk + diskDescriptor + 0 + true + + + 203 + + 5 + 6 + + + 2021-02-09T22:59:58.269518374-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.269518074-05:00 + + + + environmentBrowser + envbrowser-89 + + + resourcePool + virtualapp-118 + + + runtime + + host-98 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:31:35:65 + true + 4000 + + + + + + summary + + vm-182 + + host-98 + connected + poweredOn + false + 2021-02-09T22:59:58.269601004-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_C0_APP0_VM0 + + [LocalDS_0] DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx + 32 + 1 + 1 + 1 + db46440b-5e5c-5d0d-a4da-b1cdd238015e + 0f4f30ee-c3b9-5099-8589-0500b30477b4 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.269518174-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0102-VirtualMachine-vm-185.xml b/pkg/check/testdata/default/0102-VirtualMachine-vm-185.xml new file mode 100644 index 00000000..ea49d1e3 --- /dev/null +++ b/pkg/check/testdata/default/0102-VirtualMachine-vm-185.xml @@ -0,0 +1,494 @@ + + vm-185 + + value + + + + availableField + + + + parent + folder-69 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_APP0_VM1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + capability + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + config + + + 2021-02-09T22:59:58.270204512-05:00 + DC1_C0_APP0_VM1 + otherGuest + vmx-13 + 4adcb8cf-a507-5765-8974-16da31b62dca + 0950ecb4-b343-5182-a66e-e2d2c3df8ef5 + + otherGuest + + + [LocalDS_0] DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx + [LocalDS_0] DC1_C0_APP0_VM1 + [LocalDS_0] DC1_C0_APP0_VM1 + [LocalDS_0] DC1_C0_APP0_VM1 + + + + + + 1 + 1 + 32 + + 200 + + + IDE 0 + + 0 + + + 201 + + + IDE 1 + + 1 + + + 300 + + + PS2 controller 0 + + 0 + 600 + 700 + + + 100 + + + PCI controller 0 + + 0 + 500 + 12000 + + + 400 + + + SIO controller 0 + + 0 + + + 600 + + + Keyboard + + 300 + 0 + + + 700 + + + Pointing device; Device + + + + false + autodetect + + 300 + 1 + + + 500 + + + Video card + + 100 + 0 + 4096 + 1 + false + false + automatic + 262144 + + + 12000 + + + Device on the virtual machine PCI bus that provides support for the virtual machine communication interface + + 100 + 17 + -1 + false + true + + + 202 + + + pvscsi-202 + + 0 + noSharing + 7 + + + 1302581265 + + + cdrom-1302581265 + + + cdrom--201-824647826760 + false + + + true + true + true + + 202 + 0 + + + 2045176213 + + + 1,024 KB + + + [LocalDS_0] DC1_C0_APP0_VM1/disk1.vmdk + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + persistent + false + false + true + false + 8a393bae-aaa1-52c5-8811-36a0f515e878 + false + + 202 + 0 + 1024 + + + 4000 + + + DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014 + + + + fea97929-4b2d-5972-b146-930c6d0b4014 + dvportgroup-75 + + + + true + true + false + untried + + + 32 + + 100 + 7 + generated + 00:0c:29:31:35:65 + true + + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + normal + + + govcsim + TRUE + + + bios + + + + layout + + DC1_C0_APP0_VM1.nvram + vmware.log + + 2045176213 + [LocalDS_0] DC1_C0_APP0_VM1/disk1.vmdk + + + + + layoutEx + + + 0 + [LocalDS_0] DC1_C0_APP0_VM1.nvram + nvram + 0 + true + + + 1 + [LocalDS_0] DC1_C0_APP0_VM1.vmx + config + 0 + true + + + 2 + [LocalDS_0] disk1-flat.vmdk + diskExtent + 0 + true + + + 3 + [LocalDS_0] disk1.vmdk + diskDescriptor + 0 + true + + + 4 + [LocalDS_0] vmware.log + log + 32 + 32 + true + + + 5 + [LocalDS_0] DC1_C0_APP0_VM1/disk1-flat.vmdk + diskExtent + 0 + true + + + 6 + [LocalDS_0] DC1_C0_APP0_VM1/disk1.vmdk + diskDescriptor + 0 + true + + + 2045176213 + + 5 + 6 + + + 2021-02-09T22:59:58.27117368-05:00 + + + + storage + + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + 0 + 0 + 0 + + 2021-02-09T22:59:58.27117331-05:00 + + + + environmentBrowser + envbrowser-89 + + + resourcePool + virtualapp-118 + + + runtime + + host-98 + connected + poweredOn + false + 0 + + + + guest + + toolsNotInstalled + guestToolsNotRunning + 0 + linuxGuest + + 00:0c:29:31:35:65 + true + 4000 + + + + + + summary + + vm-185 + + host-98 + connected + poweredOn + false + 2021-02-09T22:59:58.271294849-05:00 + 0 + + + otherGuest + toolsNotInstalled + + + DC1_C0_APP0_VM1 + + [LocalDS_0] DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx + 32 + 1 + 1 + 1 + 4adcb8cf-a507-5765-8974-16da31b62dca + 0950ecb4-b343-5182-a66e-e2d2c3df8ef5 + otherGuest + otherGuest + + + 0 + 0 + 0 + 2021-02-09T22:59:58.27117341-05:00 + + + gray + + green + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + network + + dvportgroup-75 + + + + rootSnapshot + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0103-Folder-folder-61.xml b/pkg/check/testdata/default/0103-Folder-folder-61.xml new file mode 100644 index 00000000..4c357867 --- /dev/null +++ b/pkg/check/testdata/default/0103-Folder-folder-61.xml @@ -0,0 +1,153 @@ + + folder-61 + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + host + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + folder-67 + + + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + host + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + folder-67 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0104-Folder-folder-67.xml b/pkg/check/testdata/default/0104-Folder-folder-67.xml new file mode 100644 index 00000000..22c40bb9 --- /dev/null +++ b/pkg/check/testdata/default/0104-Folder-folder-67.xml @@ -0,0 +1,155 @@ + + folder-67 + + value + + + + availableField + + + + parent + folder-61 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + computeresource-87 + clustercomputeresource-91 + + + + value + + + + availableField + + + + parent + folder-61 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + ComputeResource + Folder + + + + childEntity + + computeresource-87 + clustercomputeresource-91 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0105-ComputeResource-computeresource-87.xml b/pkg/check/testdata/default/0105-ComputeResource-computeresource-87.xml new file mode 100644 index 00000000..07ef5dd3 --- /dev/null +++ b/pkg/check/testdata/default/0105-ComputeResource-computeresource-87.xml @@ -0,0 +1,116 @@ + + computeresource-87 + + value + + + + availableField + + + + parent + folder-67 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + resourcePool + resgroup-86 + + + host + + host-85 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + summary + + 2294 + 4294430720 + 2 + 2 + 2294 + 4294430720 + 1 + 1 + green + + + + environmentBrowser + envbrowser-84 + + + configurationEx + + vmDirectory + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0106-HostSystem-host-85.xml b/pkg/check/testdata/default/0106-HostSystem-host-85.xml new file mode 100644 index 00000000..7c16b86b --- /dev/null +++ b/pkg/check/testdata/default/0106-HostSystem-host-85.xml @@ -0,0 +1,5301 @@ + + host-85 + + value + + + + availableField + + + + parent + computeresource-87 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-02-09T22:59:58.237589813-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-85 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + 2975dcb5-267a-508b-991e-41679bc816db + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-02-09T22:59:58.237589813-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC1_H0 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + 2975dcb5-267a-508b-991e-41679bc816db + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-79 + memoryManagerSystem + hoststoragesystem-83 + hostnetworksystem-80 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-82 + optionmanager-81 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-170 + vm-173 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0107-HostDatastoreSystem-hostdatastoresystem-79.xml b/pkg/check/testdata/default/0107-HostDatastoreSystem-hostdatastoresystem-79.xml new file mode 100644 index 00000000..2e79f998 --- /dev/null +++ b/pkg/check/testdata/default/0107-HostDatastoreSystem-hostdatastoresystem-79.xml @@ -0,0 +1,20 @@ + + hostdatastoresystem-79 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0108-HostNetworkSystem-hostnetworksystem-80.xml b/pkg/check/testdata/default/0108-HostNetworkSystem-hostnetworksystem-80.xml new file mode 100644 index 00000000..cbc6227e --- /dev/null +++ b/pkg/check/testdata/default/0108-HostNetworkSystem-hostnetworksystem-80.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-80 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml b/pkg/check/testdata/default/0109-ResourcePool-resgroup-86.xml similarity index 94% rename from pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml rename to pkg/check/testdata/default/0109-ResourcePool-resgroup-86.xml index 024be685..f4a3b6f1 100644 --- a/pkg/check/testdata/default/0068-ResourcePool-resgroup-26.xml +++ b/pkg/check/testdata/default/0109-ResourcePool-resgroup-86.xml @@ -1,5 +1,5 @@ - resgroup-26 + resgroup-86 value @@ -10,7 +10,7 @@ parent - clustercomputeresource-27 + computeresource-87 customValue @@ -65,7 +65,7 @@ summary - Resources + DC1_C0_APP0 ha-root-pool @@ -132,7 +132,7 @@ owner - clustercomputeresource-27 + computeresource-87 resourcePool @@ -141,8 +141,8 @@ vm - vm-63 - vm-66 + vm-170 + vm-173 diff --git a/pkg/check/testdata/default/0110-ClusterComputeResource-clustercomputeresource-91.xml b/pkg/check/testdata/default/0110-ClusterComputeResource-clustercomputeresource-91.xml new file mode 100644 index 00000000..03621631 --- /dev/null +++ b/pkg/check/testdata/default/0110-ClusterComputeResource-clustercomputeresource-91.xml @@ -0,0 +1,164 @@ + + clustercomputeresource-91 + + value + + + + availableField + + + + parent + folder-67 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + resourcePool + resgroup-90 + + + host + + host-98 + host-106 + host-114 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + summary + + 6882 + 12883292160 + 6 + 6 + 6882 + 12883292160 + 3 + 3 + green + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + environmentBrowser + envbrowser-89 + + + configurationEx + + vmDirectory + + + true + + + + + configuration + + + + + + + recommendation + + + + drsRecommendation + + + + migrationHistory + + + + actionHistory + + + + drsFault + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0111-HostSystem-host-98.xml b/pkg/check/testdata/default/0111-HostSystem-host-98.xml new file mode 100644 index 00000000..0016ef2a --- /dev/null +++ b/pkg/check/testdata/default/0111-HostSystem-host-98.xml @@ -0,0 +1,5301 @@ + + host-98 + + value + + + + availableField + + + + parent + clustercomputeresource-91 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_H0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-02-09T22:59:58.243820875-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-98 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + c9c66d13-420d-50b7-8ccf-6fbeef74baba + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-02-09T22:59:58.243820875-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC1_C0_H0 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + c9c66d13-420d-50b7-8ccf-6fbeef74baba + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-93 + memoryManagerSystem + hoststoragesystem-97 + hostnetworksystem-94 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-96 + optionmanager-95 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-182 + vm-185 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0112-HostDatastoreSystem-hostdatastoresystem-93.xml b/pkg/check/testdata/default/0112-HostDatastoreSystem-hostdatastoresystem-93.xml new file mode 100644 index 00000000..75389146 --- /dev/null +++ b/pkg/check/testdata/default/0112-HostDatastoreSystem-hostdatastoresystem-93.xml @@ -0,0 +1,20 @@ + + hostdatastoresystem-93 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0113-HostNetworkSystem-hostnetworksystem-94.xml b/pkg/check/testdata/default/0113-HostNetworkSystem-hostnetworksystem-94.xml new file mode 100644 index 00000000..4241d20b --- /dev/null +++ b/pkg/check/testdata/default/0113-HostNetworkSystem-hostnetworksystem-94.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-94 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0114-HostSystem-host-106.xml b/pkg/check/testdata/default/0114-HostSystem-host-106.xml new file mode 100644 index 00000000..3c04df36 --- /dev/null +++ b/pkg/check/testdata/default/0114-HostSystem-host-106.xml @@ -0,0 +1,5300 @@ + + host-106 + + value + + + + availableField + + + + parent + clustercomputeresource-91 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_H1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-02-09T22:59:58.250143328-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-106 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + 312f6b87-47ed-596b-a0e1-46a8a635e95a + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-02-09T22:59:58.250143328-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC1_C0_H1 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + 312f6b87-47ed-596b-a0e1-46a8a635e95a + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-101 + memoryManagerSystem + hoststoragesystem-105 + hostnetworksystem-102 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-104 + optionmanager-103 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-179 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0115-HostDatastoreSystem-hostdatastoresystem-101.xml b/pkg/check/testdata/default/0115-HostDatastoreSystem-hostdatastoresystem-101.xml new file mode 100644 index 00000000..287d9dda --- /dev/null +++ b/pkg/check/testdata/default/0115-HostDatastoreSystem-hostdatastoresystem-101.xml @@ -0,0 +1,20 @@ + + hostdatastoresystem-101 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0116-HostNetworkSystem-hostnetworksystem-102.xml b/pkg/check/testdata/default/0116-HostNetworkSystem-hostnetworksystem-102.xml new file mode 100644 index 00000000..6a069e54 --- /dev/null +++ b/pkg/check/testdata/default/0116-HostNetworkSystem-hostnetworksystem-102.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-102 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0117-HostSystem-host-114.xml b/pkg/check/testdata/default/0117-HostSystem-host-114.xml new file mode 100644 index 00000000..e0ac7aa3 --- /dev/null +++ b/pkg/check/testdata/default/0117-HostSystem-host-114.xml @@ -0,0 +1,5300 @@ + + host-114 + + value + + + + availableField + + + + parent + clustercomputeresource-91 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_H2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + runtime + + connected + poweredOn + false + 2021-02-09T22:59:58.253373289-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + + summary + + host-114 + + VMware, Inc. (govmomi simulator) + VMware Virtual Platform + 02089e9d-a50d-5408-b679-4fcd54a4f0d8 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af + + + Service tag of the system + ServiceTag + + + 4294430720 + Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz + 2294 + 2 + 2 + 2 + 1 + 3 + + + connected + poweredOn + false + 2021-02-09T22:59:58.253373289-05:00 + + + + VMware Rollup Health State + + + Sensor is operating under normal conditions + green + + 0 + 0 + + system + + + CPU socket #0 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #0 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-1 Cache is 16384 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + CPU socket #1 Level-2 Cache is 0 B + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Processors + + + Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000 + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 driver 8.0.3.1-NAPI + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + e1000 device firmware N/A + + + Sensor is operating under normal conditions + green + + 0 + 0 + + Software Components + + + + + CPU socket #0 + + + Physical element is functioning as expected + Green + + + + CPU socket #1 + + + Physical element is functioning as expected + Green + + + + + + + + defaultTcpipStack + active + vmk0 + 11000 + true + + + 68169720922112 + + + DC1_C0_H2 + 8989 + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + false + true + + + 67 + 1404 + 77229 + + gray + false + + + + hardware + + + VMware, Inc. + VMware Virtual Platform + 02089e9d-a50d-5408-b679-4fcd54a4f0d8 + + No Asset Tag + + + Asset tag of the system + AssetTag + + + + [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7] + + + OEM specific string + OemSpecificString + + + + Welcome to the Virtual Machine + + + OEM specific string + OemSpecificString + + + + VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70 + + + Service tag of the system + ServiceTag + + + + + Balanced + + + 2 + 2 + 2 + 3591345000 + + + 0 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 0 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + + 1 + intel + 3591345000 + 115849838 + Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz + 1 + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0010:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 4294430720 + + NUMA + 1 + + 0 + 1 + 0 + 4294967296 + 1073741824 + + + false + + 0000:00:00.0 + 1536 + 0 + 0 + 0 + -32634 + 5549 + Intel Corporation + 29072 + 6518 + Virtual Machine Chipset + + + 0000:00:01.0 + 1540 + 0 + 1 + 0 + -32634 + 0 + Intel Corporation + 29073 + 0 + 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + + 0000:00:07.0 + 1537 + 0 + 7 + 0 + -32634 + 5549 + Intel Corporation + 28944 + 6518 + Virtual Machine Chipset + + + 0000:00:07.1 + 257 + 0 + 7 + 1 + -32634 + 5549 + Intel Corporation + 28945 + 6518 + PIIX4 for 430TX/440BX/MX IDE Controller + + + 0000:00:07.3 + 1664 + 0 + 7 + 3 + -32634 + 5549 + Intel Corporation + 28947 + 6518 + Virtual Machine Chipset + + + 0000:00:07.7 + 2176 + 0 + 7 + 7 + 5549 + 5549 + VMware + 1856 + 1856 + Virtual Machine Communication Interface + + + 0000:00:0f.0 + 768 + 0 + 15 + 0 + 5549 + 5549 + VMware + 1029 + 1029 + SVGA II Adapter + + + 0000:00:11.0 + 1540 + 0 + 17 + 0 + 5549 + 0 + VMware + 1936 + 0 + PCI bridge + + + 0000:00:15.0 + 1540 + 0 + 21 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.1 + 1540 + 0 + 21 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.2 + 1540 + 0 + 21 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.3 + 1540 + 0 + 21 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.4 + 1540 + 0 + 21 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.5 + 1540 + 0 + 21 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.6 + 1540 + 0 + 21 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:15.7 + 1540 + 0 + 21 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.0 + 1540 + 0 + 22 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.1 + 1540 + 0 + 22 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.2 + 1540 + 0 + 22 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.3 + 1540 + 0 + 22 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.4 + 1540 + 0 + 22 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.5 + 1540 + 0 + 22 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.6 + 1540 + 0 + 22 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:16.7 + 1540 + 0 + 22 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.0 + 1540 + 0 + 23 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.1 + 1540 + 0 + 23 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.2 + 1540 + 0 + 23 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.3 + 1540 + 0 + 23 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.4 + 1540 + 0 + 23 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.5 + 1540 + 0 + 23 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.6 + 1540 + 0 + 23 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:17.7 + 1540 + 0 + 23 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.0 + 1540 + 0 + 24 + 0 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.1 + 1540 + 0 + 24 + 1 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.2 + 1540 + 0 + 24 + 2 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.3 + 1540 + 0 + 24 + 3 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.4 + 1540 + 0 + 24 + 4 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.5 + 1540 + 0 + 24 + 5 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.6 + 1540 + 0 + 24 + 6 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:00:18.7 + 1540 + 0 + 24 + 7 + 5549 + 0 + VMware + 1952 + 0 + PCI Express Root Port + + + 0000:03:00.0 + 263 + 3 + 0 + 0 + 5549 + 5549 + VMware + 1984 + 1984 + 0000:00:15.0 + PVSCSI SCSI Controller + + + 0000:0b:00.0 + 512 + 11 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:16.0 + vmxnet3 Virtual Ethernet Controller + + + 0000:13:00.0 + 512 + 19 + 0 + 0 + 5549 + 5549 + VMware Inc. + 1968 + 1968 + 0000:00:17.0 + vmxnet3 Virtual Ethernet Controller + + + 0 + 0000:0000:0000:0000:0000:0000:0000:1101 + 0111:0101:0110:1110:0110:0101:0100:0111 + 0110:1100:0110:0101:0111:0100:0110:1110 + 0100:1001:0110:0101:0110:1110:0110:1001 + + + 1 + 0000:0000:0000:0010:0000:0110:1101:0111 + 0000:0000:0000:0001:0000:1000:0000:0000 + 1001:0111:1011:1010:0010:0010:0010:1011 + 0000:1111:1010:1011:1111:1011:1111:1111 + + + -2147483648 + 1000:0000:0000:0000:0000:0000:0000:1000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + -2147483647 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0001 + 0010:1000:0001:0000:0000:1000:0000:0000 + + + -2147483640 + 0000:0000:0000:0000:0011:0000:0010:1010 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + 0000:0000:0000:0000:0000:0000:0000:0000 + + + 6.00 + 2015-07-02T00:00:00Z + + + 0 + + + + + licensableResource + + + numCpuPackages + + numCpuPackages + 2 + + + + + + configManager + + cpuSchedulerSystem + hostdatastoresystem-109 + memoryManagerSystem + hoststoragesystem-113 + hostnetworksystem-110 + ha-vmotion-system + ha-vnic-mgr + serviceSystem + hostfirewallsystem-112 + optionmanager-111 + diagnosticsystem + ha-autostart-mgr + ha-snmp-agent + dateTimeSystem + ha-host-patch-manager + ha-image-config-manager + ha-firmwareSystem + healthStatusSystem + ha-pcipassthrusystem + ha-license-manager + kernelModuleSystem + ha-auth-manager + ha-power-system + ha-cache-configuration-manager + iscsiManager + ha-vflash-manager + vsanSystem + messageBusProxy + ha-user-directory + ha-localacctmgr + ha-host-access-manager + ha-graphics-manager + ha-vsan-internal-system + ha-certificate-manager + + + + config + + ha-host + + VMware ESXi + VMware ESXi 6.5.0 build-5969303 + VMware, Inc. + 6.5.0 + 5969303 + INTL + 000 + vmnix-x86 + embeddedEsx + HostAgent + 6.5 + VMware ESX Server + 6.0 + + + false + + + false + false + true + + + + key-vim.host.ParallelScsiHba-vmhba0 + vmhba0 + 3 + unknown + PVSCSI SCSI Controller + pvscsi + 0000:03:00.0 + + + key-vim.host.BlockHba-vmhba1 + vmhba1 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + key-vim.host.BlockHba-vmhba64 + vmhba64 + 0 + unknown + PIIX4 for 430TX/440BX/MX IDE Controller + vmkata + 0000:00:07.1 + + + /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 + cdrom + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + + lowQuality + mpx.vmhba1:C0:T0:L0 + + + lowQuality + vml.0005000000766d686261313a303a30 + + + lowQuality + 0005000000766d686261313a303a30 + + mpx.vmhba1:C0:T0:L0 + Local NECVMWar CD-ROM (mpx.vmhba1:C0:T0:L0) + cdrom + NECVMWar + VMware IDE CDR00 + 1.00 + 5 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + ok + + false + + vStorageUnsupported + false + + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + disk + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + + lowQuality + mpx.vmhba0:C0:T0:L0 + + + lowQuality + vml.0000000000766d686261303a303a30 + + + lowQuality + 0000000000766d686261303a303a30 + + mpx.vmhba0:C0:T0:L0 + Local VMware, Disk (mpx.vmhba0:C0:T0:L0) + disk + VMware, + VMware Virtual S + 1.0 + 2 + unavailable + + GENERIC_VPD + 5 + -79 + + + GENERIC_VPD + 5 + 0 + + 0 + 1024 + ok + + false + + vStorageUnsupported + false + + 512 + 67108864 + + /vmfs/devices/disks/mpx.vmhba0:C0:T0:L0 + true + true + false + native512 + + + + key-vim.host.ScsiTopology.Interface-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + + key-vim.host.ScsiTopology.Target-vmhba0:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0000000000766d686261303a303a30 + 0 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba1 + key-vim.host.BlockHba-vmhba1 + + key-vim.host.ScsiTopology.Target-vmhba1:0:0 + 0 + + key-vim.host.ScsiTopology.Lun-0005000000766d686261313a303a30 + 0 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + + + + + key-vim.host.ScsiTopology.Interface-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + + + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + 0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + + key-vim.host.MultipathInfo.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + active + active + true + key-vim.host.BlockHba-vmhba1 + key-vim.host.MultipathInfo.LogicalUnit-0005000000766d686261313a303a30 + + + + VMW_PSP_FIXED + vmhba1:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + 0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + + key-vim.host.MultipathInfo.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + active + active + true + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.MultipathInfo.LogicalUnit-0000000000766d686261303a303a30 + + + + VMW_PSP_FIXED + vmhba0:C0:T0:L0 + + + VMW_SATP_LOCAL + + + + + + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.ParallelScsiHba-vmhba0 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.BlockHba-vmhba1 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Adapter-vmhba64 + key-vim.host.BlockHba-vmhba64 + + + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba0 + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + + + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + vmhba1:C0:T0:L0 + key-vim.host.PlugStoreTopology.Adapter-vmhba1 + key-vim.host.PlugStoreTopology.Target-ide.0:0 + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + + + key-vim.host.PlugStoreTopology.Target-pscsi.0:0 + + + + key-vim.host.PlugStoreTopology.Target-ide.0:0 + + + + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.ScsiLun-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.ScsiDisk-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + + + key-vim.host.PlugStoreTopology.Plugin-NMP + NMP + key-vim.host.PlugStoreTopology.Device-0005000000766d686261313a303a30 + key-vim.host.PlugStoreTopology.Device-0000000000766d686261303a303a30 + key-vim.host.PlugStoreTopology.Path-vmhba0:C0:T0:L0 + key-vim.host.PlugStoreTopology.Path-vmhba1:C0:T0:L0 + + + false + + + + vSwitch0 + key-vim.host.VirtualSwitch-vSwitch0 + 1536 + 1530 + 1500 + key-vim.host.PortGroup-VM Network + key-vim.host.PortGroup-Management Network + key-vim.host.PhysicalNic-vmnic0 + + 128 + + vmnic0 + + 1 + + + cdp + listen + + + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + key-vim.host.PhysicalNic-vmnic0 + vmnic0 + 0000:0b:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:a0 + + 3 + 00:0c:29:81:d8:a0 + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + key-vim.host.PhysicalNic-vmnic1 + vmnic1 + 0000:13:00.0 + nvmxnet3 + + 10000 + true + + + 10000 + true + + + + false + + + 10000 + true + + + false + 00:0c:29:81:d8:aa + + 3 + 00:0c:29:81:d8:aa + + 0 + 0 + + + false + false + true + + false + + false + true + false + + + vmk0 + key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + key-vim.host.PortGroup.Port-33554436 + + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + false + false + + vSphereProvisioning + + false + + + + + 11000 + newreno + true + + + vmotion + + false + + + + + 11000 + newreno + true + + + defaultTcpipStack + defaultTcpipStack + + true + vmk0 + localhost + localdomain +
8.8.8.8
+ localdomain +
+ + 127.0.0.1 + + 11000 + newreno + true + + + ignore + + 0.0.0.0 + 0 + 127.0.0.1 + vmk0 + + + + ignore + + 127.0.0.0 + 8 + 0.0.0.0 + vmk0 + + + +
+
+ + + + vmk0 + VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + + faultToleranceLogging + true + + vmk0 + faultToleranceLogging.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + management + true + + vmk1 + management.key-vim.host.VirtualNic-vmk1 + + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:00 + Management Network + 1500 + true + defaultTcpipStack + + + + vmk0 + management.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + management.key-vim.host.VirtualNic-vmk0 + + + vSphereProvisioning + true + + vmk0 + vSphereProvisioning.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplication + true + + vmk0 + vSphereReplication.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vSphereReplicationNFC + true + + vmk0 + vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vmotion + true + + vmk0 + vmotion.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsan + true + + vmk0 + vsan.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + vsanWitness + true + + vmk0 + vsanWitness.key-vim.host.VirtualNic-vmk0 + Management Network + + + true + 127.0.0.1 + 255.0.0.0 + + 00:0c:29:81:d8:a0 + Management Network + 1500 + true + defaultTcpipStack + + + + + + true + true + loadbalance_ip + loadbalance_srcmac + loadbalance_srcid + failover_explicit + true + false + true + true + true + true + true + true + true + + + true + true + false + true + + + true + true + true + + + + DCUI + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + TSM-SSH + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lbtd + + false + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + lwsmd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + ntpd + + false + false + false + ntpClient + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + pcscd + + false + false + false + off + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + sfcbd-watchdog + + false + false + false + CIMHttpServer + CIMHttpsServer + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + snmpd + + false + false + false + snmp + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vmsyslogd + + true + false + true + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + vpxa + + false + false + false + vpxHeartbeats + on + + esx-base + This VIB contains all of the base functionality of vSphere ESXi. + + + + xorg + + false + false + false + on + + esx-xserver + This VIB contains X Server used for virtual machine 3D hardware acceleration. + + + + + + true + true + + + CIMHttpServer + + false + + 5988 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMHttpsServer + + false + + 5989 + inbound + dst + tcp + + sfcbd-watchdog + true + + true + + + + CIMSLP + + false + + 427 + inbound + dst + udp + + + 427 + outbound + dst + udp + + + 427 + inbound + dst + tcp + + + 427 + outbound + dst + tcp + + true + + true + + + + DHCPv6 + + false + + 547 + outbound + dst + tcp + + + 546 + inbound + dst + tcp + + + 547 + outbound + dst + udp + + + 546 + inbound + dst + udp + + true + + true + + + + DVFilter + + false + + 2222 + inbound + dst + tcp + + false + + true + + + + DVSSync + + false + + 8302 + outbound + dst + udp + + + 8301 + inbound + dst + udp + + + 8301 + outbound + dst + udp + + + 8302 + inbound + dst + udp + + true + + true + + + + HBR + + false + + 31031 + outbound + dst + tcp + + + 44046 + outbound + dst + tcp + + true + + true + + + + NFC + + false + + 902 + inbound + dst + tcp + + + 902 + outbound + dst + tcp + + true + + true + + + + WOL + + false + + 9 + outbound + dst + udp + + true + + true + + + + activeDirectoryAll + + false + + 88 + outbound + dst + udp + + + 88 + outbound + dst + tcp + + + 123 + outbound + dst + udp + + + 137 + outbound + dst + udp + + + 139 + outbound + dst + tcp + + + 389 + outbound + dst + tcp + + + 389 + outbound + dst + udp + + + 445 + outbound + dst + tcp + + + 464 + outbound + dst + udp + + + 464 + outbound + dst + tcp + + + 3268 + outbound + dst + tcp + + + 7476 + outbound + dst + tcp + + + 2020 + inbound + dst + tcp + + false + + true + + + + cmmds + + false + + 12345 + inbound + dst + udp + + + 23451 + inbound + dst + udp + + + 12345 + outbound + dst + udp + + + 23451 + outbound + dst + udp + + + 12321 + inbound + dst + udp + + + 12321 + outbound + dst + udp + + false + + true + + + + dhcp + + false + + 68 + inbound + dst + udp + + + 68 + outbound + src + udp + + true + + true + + + + dns + + false + + 53 + inbound + dst + udp + + + 53 + outbound + dst + udp + + + 53 + outbound + dst + tcp + + true + + true + + + + esxupdate + + false + + 443 + outbound + dst + tcp + + false + + true + + + + faultTolerance + + false + + 80 + outbound + dst + tcp + + + 8300 + inbound + dst + tcp + + + 8300 + outbound + dst + tcp + + true + + true + + + + ftpClient + + false + + 21 + outbound + dst + tcp + + + 20 + inbound + src + tcp + + false + + true + + + + gdbserver + + false + + 1000 + 9999 + inbound + dst + tcp + + + 50000 + 50999 + inbound + dst + tcp + + false + + true + + + + httpClient + + false + + 80 + outbound + dst + tcp + + + 443 + outbound + dst + tcp + + false + + true + + + + iSCSI + + false + + 3260 + outbound + dst + tcp + + false + + true + + + + iofiltervp + + false + + 9080 + inbound + dst + tcp + + true + + true + + + + ipfam + + false + + 6999 + inbound + dst + udp + + + 6999 + outbound + dst + udp + + false + + true + + + + nfs41Client + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + nfsClient + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + ntpClient + + false + + 123 + outbound + dst + udp + + ntpd + false + + true + + + + pvrdma + + false + + 28250 + 28761 + outbound + dst + tcp + + + 28250 + 28761 + inbound + dst + tcp + + false + + true + + + + rabbitmqproxy + + false + + 5671 + outbound + dst + tcp + + true + + true + + + + rdt + + false + + 2233 + inbound + dst + tcp + + + 2233 + outbound + dst + tcp + + false + + true + + + + remoteSerialPort + + false + + 0 + 65535 + outbound + dst + tcp + + + 23 + inbound + dst + tcp + + + 1024 + 65535 + inbound + dst + tcp + + false + + true + + + + snmp + + false + + 161 + inbound + dst + udp + + snmpd + true + + true + + + + sshClient + + false + + 22 + outbound + dst + tcp + + false + + true + + + + sshServer + + true + + 22 + inbound + dst + tcp + + true + + true + + + + syslog + + false + + 514 + outbound + dst + udp + + + 514 + outbound + dst + tcp + + + 1514 + outbound + dst + tcp + + false + + true + + + + updateManager + + false + + 80 + outbound + dst + tcp + + + 9000 + 9100 + outbound + dst + tcp + + true + + true + + + + vMotion + + false + + 8000 + inbound + dst + tcp + + + 8000 + outbound + dst + tcp + + true + + true + + + + vSPC + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vSphereClient + + true + + 902 + inbound + dst + tcp + + + 443 + inbound + dst + tcp + + true + + true + + + + vpxHeartbeats + + false + + 902 + outbound + dst + udp + + vpxa + true + + true + + + + vsanEncryption + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + vsanhealth-multicasttest + + false + + 5001 + outbound + dst + udp + + + 5001 + inbound + dst + udp + + false + + true + + + + vsanvp + + false + + 8080 + inbound + dst + tcp + + + 8080 + outbound + dst + tcp + + false + + true + + + + vvold + + false + + 0 + 65535 + outbound + dst + tcp + + false + + true + + + + webAccess + + false + + 80 + inbound + dst + tcp + + true + + true + + + + + + 120 + 120 + false + PowerOff + + + + directAttached + singleHost + -15 + + mpx.vmhba0:C0:T0:L0 + 9 + + + + lockdownDisabled + 10 + + + true + + + false + false + + + + + 1 + PowerPolicy.static.name + static + PowerPolicy.static.description + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + 3 + PowerPolicy.low.name + low + PowerPolicy.low.description + + + 4 + PowerPolicy.custom.name + custom + PowerPolicy.custom.description + + + + + 2 + PowerPolicy.dynamic.name + dynamic + PowerPolicy.dynamic.description + + + + 5980f676-21a5db76-9eef-000c2981d8a0 + 0 + + false + + false + ha-host + + + false + + + + + + + + shared + performance + + + VMW_spm_1.0.0 + spm + VMW + 1.0.230 + datastoreIoControl + VMware Storage I/O Control + 2016-07-21 + true + + + VMW_vmwarevmcrypt_1.0.0 + vmwarevmcrypt + VMW + 1.0.0 + encryption + VMcrypt IO Filter + 2016-07-21 + true + +
+
+ + vm + + vm-176 + + + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + network + + network-64 + dvportgroup-73 + dvportgroup-75 + + + + datastoreBrowser + ha-host-datastorebrowser + +
\ No newline at end of file diff --git a/pkg/check/testdata/default/0118-HostDatastoreSystem-hostdatastoresystem-109.xml b/pkg/check/testdata/default/0118-HostDatastoreSystem-hostdatastoresystem-109.xml new file mode 100644 index 00000000..2fdfe66a --- /dev/null +++ b/pkg/check/testdata/default/0118-HostDatastoreSystem-hostdatastoresystem-109.xml @@ -0,0 +1,20 @@ + + hostdatastoresystem-109 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + capabilities + + false + false + false + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0119-HostNetworkSystem-hostnetworksystem-110.xml b/pkg/check/testdata/default/0119-HostNetworkSystem-hostnetworksystem-110.xml new file mode 100644 index 00000000..554d15b3 --- /dev/null +++ b/pkg/check/testdata/default/0119-HostNetworkSystem-hostnetworksystem-110.xml @@ -0,0 +1,137 @@ + + hostnetworksystem-110 + + value + + + + availableField + + + + networkInfo + + + vSwitch0 + + 0 + 0 + VM Network + + 0 + + + + key-vim.host.PortGroup-VM Network + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + VM Network + 0 + vSwitch0 + + + + + + + + + + + + key-vim.host.PortGroup-Management Network + + key-vim.host.PortGroup.Port-33554436 + 00:0c:29:81:d8:a0 + host + + key-vim.host.VirtualSwitch-vSwitch0 + + + false + true + true + + + loadbalance_srcid + true + true + false + + minimum + 10 + false + false + false + false + + + vmnic0 + + + + true + true + true + + + false + + + + Management Network + 0 + vSwitch0 + + + + loadbalance_srcid + true + false + + false + + + vmnic0 + + + + + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0120-ResourcePool-resgroup-90.xml b/pkg/check/testdata/default/0120-ResourcePool-resgroup-90.xml new file mode 100644 index 00000000..79fc3217 --- /dev/null +++ b/pkg/check/testdata/default/0120-ResourcePool-resgroup-90.xml @@ -0,0 +1,180 @@ + + resgroup-90 + + value + + + + availableField + + + + parent + clustercomputeresource-91 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + Resources + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-91 + + + resourcePool + + resgroup-116 + resgroup-117 + virtualapp-118 + + + + vm + + vm-176 + vm-179 + + + + config + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0121-ResourcePool-resgroup-116.xml b/pkg/check/testdata/default/0121-ResourcePool-resgroup-116.xml new file mode 100644 index 00000000..5da9738e --- /dev/null +++ b/pkg/check/testdata/default/0121-ResourcePool-resgroup-116.xml @@ -0,0 +1,172 @@ + + resgroup-116 + + value + + + + availableField + + + + parent + resgroup-90 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_RP1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-91 + + + resourcePool + + + + vm + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0122-ResourcePool-resgroup-117.xml b/pkg/check/testdata/default/0122-ResourcePool-resgroup-117.xml new file mode 100644 index 00000000..c75a61a7 --- /dev/null +++ b/pkg/check/testdata/default/0122-ResourcePool-resgroup-117.xml @@ -0,0 +1,172 @@ + + resgroup-117 + + value + + + + availableField + + + + parent + resgroup-90 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_RP2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-91 + + + resourcePool + + + + vm + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0123-VirtualApp-virtualapp-118.xml b/pkg/check/testdata/default/0123-VirtualApp-virtualapp-118.xml new file mode 100644 index 00000000..61b40f6f --- /dev/null +++ b/pkg/check/testdata/default/0123-VirtualApp-virtualapp-118.xml @@ -0,0 +1,207 @@ + + virtualapp-118 + + value + + + + availableField + + + + parent + resgroup-90 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_C0_APP0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + DC1_C0_APP0 + + ha-root-pool + + 4121 + false + 4121 + + 9000 + custom + + + + 961 + false + 961 + + 9000 + custom + + + + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + + runtime + + + 0 + 0 + 1007681536 + 1007681536 + 0 + 1007681536 + + + 0 + 0 + 4121 + 4121 + 0 + 4121 + + green + + + + owner + clustercomputeresource-91 + + + resourcePool + + + + vm + + vm-182 + vm-185 + + + + config + + + 0 + true + -1 + + 0 + normal + + + + 0 + true + -1 + + 0 + normal + + + + + + childConfiguration + + + + parentFolder + folder-60 + + + datastore + + + + network + + + + vAppConfig + + + 0 + vcsim + VMware + 0.1 + http://www.vmware.com/ + + + false + 0 + vcsim + + + + childLink + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0069-Folder-folder-5.xml b/pkg/check/testdata/default/0124-Folder-folder-62.xml similarity index 84% rename from pkg/check/testdata/default/0069-Folder-folder-5.xml rename to pkg/check/testdata/default/0124-Folder-folder-62.xml index 8b541020..c98a5eee 100644 --- a/pkg/check/testdata/default/0069-Folder-folder-5.xml +++ b/pkg/check/testdata/default/0124-Folder-folder-62.xml @@ -1,5 +1,5 @@ - folder-5 + folder-62 value @@ -10,7 +10,7 @@ parent - datacenter-2 + datacenter-59 customValue @@ -73,10 +73,8 @@ childEntity - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + storagepod-65 + folder-66 @@ -89,7 +87,7 @@ parent - datacenter-2 + datacenter-59 customValue @@ -152,10 +150,8 @@ childEntity - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 - testdata/default/govcsim-DC0-LocalDS_0-824089577@folder-5 + storagepod-65 + folder-66 \ No newline at end of file diff --git a/pkg/check/testdata/default/0125-StoragePod-storagepod-65.xml b/pkg/check/testdata/default/0125-StoragePod-storagepod-65.xml new file mode 100644 index 00000000..f156883b --- /dev/null +++ b/pkg/check/testdata/default/0125-StoragePod-storagepod-65.xml @@ -0,0 +1,187 @@ + + storagepod-65 + + value + + + + availableField + + + + parent + folder-62 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_POD0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + + + + childEntity + + + + summary + + + 0 + 0 + + + + podStorageDrsEntry + + + + true + false + + + + + + + value + + + + availableField + + + + parent + folder-62 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_POD0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + + + + childEntity + + + + summary + + + 0 + 0 + + + + podStorageDrsEntry + + + + true + false + + + + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0126-Folder-folder-66.xml b/pkg/check/testdata/default/0126-Folder-folder-66.xml new file mode 100644 index 00000000..8bb134cf --- /dev/null +++ b/pkg/check/testdata/default/0126-Folder-folder-66.xml @@ -0,0 +1,185 @@ + + folder-66 + + value + + + + availableField + + + + parent + folder-62 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + value + + + + availableField + + + + parent + folder-62 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Datastore + StoragePod + Folder + + + + childEntity + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0127-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_0-236535740%40folder-66.xml b/pkg/check/testdata/default/0127-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_0-236535740%40folder-66.xml new file mode 100644 index 00000000..7d6a19fb --- /dev/null +++ b/pkg/check/testdata/default/0127-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_0-236535740%40folder-66.xml @@ -0,0 +1,130 @@ + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + value + + + + availableField + + + + parent + folder-66 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_0 + testdata/default/govcsim-DC1-LocalDS_0-236535740 + 33505005568 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.256980059-05:00 + testdata/default/govcsim-DC1-LocalDS_0-236535740 + + + + summary + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + LocalDS_0 + testdata/default/govcsim-DC1-LocalDS_0-236535740 + 33681489920 + 33505005568 + true + OTHER + normal + + + + host + + + host-114 + + readWrite + true + true + + + + + + vm + + vm-170 + vm-173 + vm-176 + vm-179 + vm-182 + vm-185 + + + + browser + hostdatastorebrowser-138 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0128-HostDatastoreBrowser-hostdatastorebrowser-138.xml b/pkg/check/testdata/default/0128-HostDatastoreBrowser-hostdatastorebrowser-138.xml new file mode 100644 index 00000000..5d118e11 --- /dev/null +++ b/pkg/check/testdata/default/0128-HostDatastoreBrowser-hostdatastorebrowser-138.xml @@ -0,0 +1,13 @@ + + hostdatastorebrowser-138 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0129-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_1-057538539%40folder-66.xml b/pkg/check/testdata/default/0129-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_1-057538539%40folder-66.xml new file mode 100644 index 00000000..f11ff1c1 --- /dev/null +++ b/pkg/check/testdata/default/0129-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_1-057538539%40folder-66.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + + value + + + + availableField + + + + parent + folder-66 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_1 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_1 + testdata/default/govcsim-DC1-LocalDS_1-057538539 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.257044009-05:00 + testdata/default/govcsim-DC1-LocalDS_1-057538539 + + + + summary + + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + LocalDS_1 + testdata/default/govcsim-DC1-LocalDS_1-057538539 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-114 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-142 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0130-HostDatastoreBrowser-hostdatastorebrowser-142.xml b/pkg/check/testdata/default/0130-HostDatastoreBrowser-hostdatastorebrowser-142.xml new file mode 100644 index 00000000..de5db4d1 --- /dev/null +++ b/pkg/check/testdata/default/0130-HostDatastoreBrowser-hostdatastorebrowser-142.xml @@ -0,0 +1,14 @@ + + hostdatastorebrowser-142 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0131-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_2-622867534%40folder-66.xml b/pkg/check/testdata/default/0131-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_2-622867534%40folder-66.xml new file mode 100644 index 00000000..8ba7a51a --- /dev/null +++ b/pkg/check/testdata/default/0131-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_2-622867534%40folder-66.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + + value + + + + availableField + + + + parent + folder-66 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_2 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_2 + testdata/default/govcsim-DC1-LocalDS_2-622867534 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.257102599-05:00 + testdata/default/govcsim-DC1-LocalDS_2-622867534 + + + + summary + + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + LocalDS_2 + testdata/default/govcsim-DC1-LocalDS_2-622867534 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-114 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-146 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0132-HostDatastoreBrowser-hostdatastorebrowser-146.xml b/pkg/check/testdata/default/0132-HostDatastoreBrowser-hostdatastorebrowser-146.xml new file mode 100644 index 00000000..c51c7d8c --- /dev/null +++ b/pkg/check/testdata/default/0132-HostDatastoreBrowser-hostdatastorebrowser-146.xml @@ -0,0 +1,15 @@ + + hostdatastorebrowser-146 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0133-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_3-260484949%40folder-66.xml b/pkg/check/testdata/default/0133-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_3-260484949%40folder-66.xml new file mode 100644 index 00000000..b54d8a53 --- /dev/null +++ b/pkg/check/testdata/default/0133-Datastore-%2Ftmp%2Fgovcsim-DC1-LocalDS_3-260484949%40folder-66.xml @@ -0,0 +1,123 @@ + + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + value + + + + availableField + + + + parent + folder-66 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + LocalDS_3 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + info + + LocalDS_3 + testdata/default/govcsim-DC1-LocalDS_3-260484949 + 33511297024 + 33511297024 + 33511297024 + 2021-02-09T22:59:58.257162689-05:00 + testdata/default/govcsim-DC1-LocalDS_3-260484949 + + + + summary + + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + LocalDS_3 + testdata/default/govcsim-DC1-LocalDS_3-260484949 + 33681489920 + 33511297024 + true + OTHER + normal + + + + host + + + host-114 + + readWrite + true + true + + + + + + vm + + + + browser + hostdatastorebrowser-150 + + + capability + + true + false + true + true + false + true + true + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0134-HostDatastoreBrowser-hostdatastorebrowser-150.xml b/pkg/check/testdata/default/0134-HostDatastoreBrowser-hostdatastorebrowser-150.xml new file mode 100644 index 00000000..90f13c9b --- /dev/null +++ b/pkg/check/testdata/default/0134-HostDatastoreBrowser-hostdatastorebrowser-150.xml @@ -0,0 +1,16 @@ + + hostdatastorebrowser-150 + + datastore + + testdata/default/govcsim-DC1-LocalDS_0-236535740@folder-66 + testdata/default/govcsim-DC1-LocalDS_1-057538539@folder-66 + testdata/default/govcsim-DC1-LocalDS_2-622867534@folder-66 + testdata/default/govcsim-DC1-LocalDS_3-260484949@folder-66 + + + + supportedType + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0135-Folder-folder-63.xml b/pkg/check/testdata/default/0135-Folder-folder-63.xml new file mode 100644 index 00000000..0f4bd753 --- /dev/null +++ b/pkg/check/testdata/default/0135-Folder-folder-63.xml @@ -0,0 +1,157 @@ + + folder-63 + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + network-64 + folder-68 + + + + value + + + + availableField + + + + parent + datacenter-59 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + network-64 + folder-68 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0136-Network-network-64.xml b/pkg/check/testdata/default/0136-Network-network-64.xml new file mode 100644 index 00000000..6f52b91a --- /dev/null +++ b/pkg/check/testdata/default/0136-Network-network-64.xml @@ -0,0 +1,86 @@ + + network-64 + + value + + + + availableField + + + + parent + folder-63 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + VM Network + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + network-64 + VM Network + true + + + + + host + + + + vm + + + + name + VM Network + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0137-Folder-folder-68.xml b/pkg/check/testdata/default/0137-Folder-folder-68.xml new file mode 100644 index 00000000..9c9a4160 --- /dev/null +++ b/pkg/check/testdata/default/0137-Folder-folder-68.xml @@ -0,0 +1,163 @@ + + folder-68 + + value + + + + availableField + + + + parent + folder-63 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + dvs-71 + dvportgroup-73 + dvportgroup-75 + opaquenetwork-76 + opaquenetwork-77 + + + + value + + + + availableField + + + + parent + folder-63 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + F0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + childType + + Network + DistributedVirtualSwitch + Folder + + + + childEntity + + dvs-71 + dvportgroup-73 + dvportgroup-75 + opaquenetwork-76 + opaquenetwork-77 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0138-DistributedVirtualSwitch-dvs-71.xml b/pkg/check/testdata/default/0138-DistributedVirtualSwitch-dvs-71.xml new file mode 100644 index 00000000..688a29d4 --- /dev/null +++ b/pkg/check/testdata/default/0138-DistributedVirtualSwitch-dvs-71.xml @@ -0,0 +1,120 @@ + + dvs-71 + + value + + + + availableField + + + + parent + folder-68 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DVS0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + uuid + fea97929-4b2d-5972-b146-930c6d0b4014 + + + capability + + + + summary + + DVS0 + fea97929-4b2d-5972-b146-930c6d0b4014 + 0 + + DVS + VMware, Inc. + 6.5.0 + 5973321 + etherswitch + + host-85 + host-98 + host-106 + host-114 + DVS0-DVUplinks-71 + DC1_DVPG0 + + + + config + + fea97929-4b2d-5972-b146-930c6d0b4014 + DVS0 + 0 + 0 + 0 + + + + 0001-01-01T00:00:00Z + 0 + + + + networkResourcePool + + + + portgroup + + dvportgroup-73 + dvportgroup-75 + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0139-DistributedVirtualPortgroup-dvportgroup-73.xml b/pkg/check/testdata/default/0139-DistributedVirtualPortgroup-dvportgroup-73.xml new file mode 100644 index 00000000..b8ece2da --- /dev/null +++ b/pkg/check/testdata/default/0139-DistributedVirtualPortgroup-dvportgroup-73.xml @@ -0,0 +1,150 @@ + + dvportgroup-73 + + value + + + + availableField + + + + parent + folder-68 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DVS0-DVUplinks-71 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + dvportgroup-73 + DVS0-DVUplinks-71 + true + + + + + host + + host-85 + host-98 + host-106 + host-114 + + + + vm + + + + name + DVS0-DVUplinks-71 + + + key + dvportgroup-73 + + + config + + dvportgroup-73 + DVS0-DVUplinks-71 + 0 + dvs-71 + + + false + + 0 + 4094 + + + + false + + false + loadbalance_srcid + + + false + true + + + false + true + + + false + true + + + + earlyBinding + + true + false + false + false + true + false + false + false + false + false + false + + + + + portKeys + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0140-DistributedVirtualPortgroup-dvportgroup-75.xml b/pkg/check/testdata/default/0140-DistributedVirtualPortgroup-dvportgroup-75.xml new file mode 100644 index 00000000..8b42148a --- /dev/null +++ b/pkg/check/testdata/default/0140-DistributedVirtualPortgroup-dvportgroup-75.xml @@ -0,0 +1,147 @@ + + dvportgroup-75 + + value + + + + availableField + + + + parent + folder-68 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + name + DC1_DVPG0 + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + dvportgroup-75 + DC1_DVPG0 + true + + + + + host + + host-85 + host-98 + host-106 + host-114 + + + + vm + + + + name + DC1_DVPG0 + + + key + dvportgroup-75 + + + config + + dvportgroup-75 + DC1_DVPG0 + 0 + dvs-71 + + + false + 0 + + + false + + false + loadbalance_srcid + + + false + true + + + false + true + + + false + true + + + + earlyBinding + + true + false + false + false + true + false + false + false + false + false + false + + + + + portKeys + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0141-OpaqueNetwork-opaquenetwork-76.xml b/pkg/check/testdata/default/0141-OpaqueNetwork-opaquenetwork-76.xml new file mode 100644 index 00000000..55a23967 --- /dev/null +++ b/pkg/check/testdata/default/0141-OpaqueNetwork-opaquenetwork-76.xml @@ -0,0 +1,88 @@ + + opaquenetwork-76 + + value + + + + availableField + + + + parent + folder-68 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + opaquenetwork-76 + DC1_NSX0 + true + + fb718cf7-4198-4633-b4a1-bf2afd2e764b + nsx.LogicalSwitch + + + + host + + + + vm + + + + name + DC1_NSX0 + + + extraConfig + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/0142-OpaqueNetwork-opaquenetwork-77.xml b/pkg/check/testdata/default/0142-OpaqueNetwork-opaquenetwork-77.xml new file mode 100644 index 00000000..5e2f7062 --- /dev/null +++ b/pkg/check/testdata/default/0142-OpaqueNetwork-opaquenetwork-77.xml @@ -0,0 +1,88 @@ + + opaquenetwork-77 + + value + + + + availableField + + + + parent + folder-68 + + + customValue + + + + overallStatus + green + + + configStatus + green + + + configIssue + + + + effectiveRole + + -1 + + + + permission + + + + disabledMethod + + + + recentTask + + + + declaredAlarmState + + + + triggeredAlarmState + + + + tag + + + + summary + + opaquenetwork-77 + DC1_NSX1 + true + + 571745e6-fc43-48f1-8022-11075240320d + nsx.LogicalSwitch + + + + host + + + + vm + + + + name + DC1_NSX1 + + + extraConfig + + + \ No newline at end of file diff --git a/pkg/check/testdata/default/README b/pkg/check/testdata/default/README index fa84e222..dd67ce6d 100644 --- a/pkg/check/testdata/default/README +++ b/pkg/check/testdata/default/README @@ -1,7 +1,12 @@ This directory contains simulated vCenter environment, generated using vcsim and govc v0.23.1. -# Run vcsim with default settings, i.e. with 1 host and 2 VMs -$ vcsim -tls=false +# Run vcsim with following settings. +$ vcsim -tls=false -dc 2 -folder 1 -ds 4 -pod 1 -nsx 2 -pool 2 -app 1 -vm 2 + +# this will give us a datastore cluster with no datastores inside it. +# we should move some datastores in the datastore cluster +$ govc object.mv /DC0/datastore/LocalDS_2 /DC0/datastore/DC0_POD0 +$ govc object.mv /DC0/datastore/LocalDS_3 /DC0/datastore/DC0_POD0 # Save simulated objects in a directory. $ govc object.save diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.nvram similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.nvram diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/DC0_C0_APP0_VM0.vmx diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/disk1-flat.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1-flat.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/disk1-flat.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/disk1.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/disk1.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/disk1.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.nvram similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.nvram diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/DC0_C0_APP0_VM1.vmx diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/disk1-flat.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1-flat.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/disk1-flat.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/disk1.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/disk1.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/disk1.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_APP0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.nvram rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.nvram diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/DC0_H0_VM0.vmx rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/DC0_C0_RP0_VM0.vmx diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/disk1-flat.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1-flat.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/disk1-flat.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/disk1.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/disk1.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/disk1.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.nvram rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.nvram diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/DC0_H0_VM1.vmx rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/DC0_C0_RP0_VM1.vmx diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/disk1-flat.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1-flat.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/disk1-flat.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/disk1.vmdk similarity index 100% rename from pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/disk1.vmdk rename to pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/disk1.vmdk diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_C0_RP0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/DC0_H0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/DC0_H0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-741472776/DC0_H0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log deleted file mode 100644 index abe158ce..00000000 --- a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM0/vmware.log +++ /dev/null @@ -1,2 +0,0 @@ -vmx 2021/01/08 17:08:20 created -vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log deleted file mode 100644 index abe158ce..00000000 --- a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_C0_RP0_VM1/vmware.log +++ /dev/null @@ -1,2 +0,0 @@ -vmx 2021/01/08 17:08:20 created -vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log deleted file mode 100644 index abe158ce..00000000 --- a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM0/vmware.log +++ /dev/null @@ -1,2 +0,0 @@ -vmx 2021/01/08 17:08:20 created -vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log deleted file mode 100644 index abe158ce..00000000 --- a/pkg/check/testdata/default/govcsim-DC0-LocalDS_0-824089577/DC0_H0_VM1/vmware.log +++ /dev/null @@ -1,2 +0,0 @@ -vmx 2021/01/08 17:08:20 created -vmx 2021/01/08 17:08:20 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/DC1_C0_APP0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/DC1_C0_APP0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_APP0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/DC1_C0_RP0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/DC1_C0_RP0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_C0_RP0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/DC1_H0_VM0.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM0/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.nvram b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.nvram new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.vmx b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/DC1_H0_VM1.vmx new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1-flat.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1-flat.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1.vmdk b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/disk1.vmdk new file mode 100644 index 00000000..e69de29b diff --git a/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/vmware.log b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/vmware.log new file mode 100644 index 00000000..2495a70d --- /dev/null +++ b/pkg/check/testdata/default/govcsim-DC1-LocalDS_0-236535740/DC1_H0_VM1/vmware.log @@ -0,0 +1,2 @@ +vmx 2021/02/09 22:59:58 created +vmx 2021/02/09 22:59:58 running power task: requesting poweredOn, existing poweredOff From 687d0f15baf0745ee4fac6c2461639f2f2a8fc16 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Tue, 9 Feb 2021 23:32:43 -0500 Subject: [PATCH 15/26] refactor code to reuse getDatacenter function Also add comments that explains when alerts gets ignored --- pkg/check/datastore.go | 39 +++++++++++++++------------------------ pkg/check/folder.go | 21 +++++++++++++++------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index 2dd28fc2..47499e08 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -6,7 +6,6 @@ import ( "os/exec" "strings" - "github.com/vmware/govmomi/object" "github.com/vmware/govmomi/property" configv1 "github.com/openshift/api/config/v1" @@ -66,7 +65,7 @@ func CheckStorageClasses(ctx *CheckContext) error { } } } - klog.V(2).Infof("CheckStorageClasses checked %d storage classes, %d problems found", len(scs), len(errs)) + klog.V(4).Infof("CheckStorageClasses checked %d storage classes, %d problems found", len(scs), len(errs)) return JoinErrors(errs) } @@ -253,26 +252,14 @@ func checkDataStore(ctx *CheckContext, dsName string, infrastructure *configv1.I } func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - finder := find.NewFinder(ctx.VMClient, false) - datacenters, err := finder.DatacenterList(tctx, "*") + matchingDC, err := getDatacenter(ctx, ctx.VMConfig.Workspace.Datacenter) if err != nil { - klog.Errorf("error listing datacenters: %v", err) - return nil - } - workspaceDC := ctx.VMConfig.Workspace.Datacenter - var matchingDC *object.Datacenter - for _, dc := range datacenters { - if dc.Name() == workspaceDC { - matchingDC = dc - } + return err } - // lets fetch the datastore - finder = find.NewFinder(ctx.VMClient, false) + finder := find.NewFinder(ctx.VMClient, false) finder.SetDatacenter(matchingDC) - tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) defer cancel() ds, err := finder.Datastore(tctx, dataStoreName) if err != nil { @@ -286,7 +273,6 @@ func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) defer cancel() err = pc.RetrieveOne(tctx, ds.Reference(), properties, &dsMo) - if err != nil { klog.Errorf("error getting properties of datastore %s: %v", dataStoreName, err) return nil @@ -302,23 +288,28 @@ func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { klog.Errorf("error listing datastore cluster: %+v", err) return nil } + defer func() { + v.Destroy(tctx) + }() + var content []mo.StoragePod tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) defer cancel() err = v.Retrieve(tctx, kind, []string{SummaryProperty, "childEntity"}, &content) if err != nil { klog.Errorf("error retrieving datastore cluster properties: %+v", err) + // it is possible that we do not actually have permission to fetch datastore clusters + // in which case rather than throwing an error - we will silently return nil, so as + // we don't trigger unnecessary alerts. return nil } - err = v.Destroy(tctx) - if err != nil { - klog.Errorf("error destroying view: %+v", err) - return nil - } + for _, ds := range content { for _, child := range ds.Folder.ChildEntity { tDS, err := getDatastore(ctx, child) if err != nil { + // we may not have permissions to fetch unrelated datastores in OCP + // and hence we are going to ignore the error. klog.Errorf("fetching datastore %s failed: %v", child.String(), err) continue } diff --git a/pkg/check/folder.go b/pkg/check/folder.go index 418886ed..141f5f08 100644 --- a/pkg/check/folder.go +++ b/pkg/check/folder.go @@ -17,16 +17,14 @@ import ( // The check tries to list "kubevols/". It tolerates when it's missing, // it will be created by OCP on the first provisioning. func CheckFolderPermissions(ctx *CheckContext) error { - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - finder := find.NewFinder(ctx.VMClient, false) - dc, err := finder.Datacenter(tctx, ctx.VMConfig.Workspace.Datacenter) + dc, err := getDatacenter(ctx, ctx.VMConfig.Workspace.Datacenter) if err != nil { - return fmt.Errorf("failed to access datacenter %s: %s", ctx.VMConfig.Workspace.Datacenter, err) + return err } - tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) defer cancel() + finder := find.NewFinder(ctx.VMClient, false) finder.SetDatacenter(dc) ds, err := finder.Datastore(tctx, ctx.VMConfig.Workspace.DefaultDatastore) if err != nil { @@ -106,3 +104,14 @@ func listDirectory(ctx *CheckContext, ds *object.Datastore, path string, tolerat } return nil } + +func getDatacenter(ctx *CheckContext, dcName string) (*object.Datacenter, error) { + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + finder := find.NewFinder(ctx.VMClient, false) + dc, err := finder.Datacenter(tctx, dcName) + if err != nil { + return nil, fmt.Errorf("failed to access datacenter %s: %s", dcName, err) + } + return dc, nil +} From 1ffea30ca3d39b7dd683226b62689bd4db81008d Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Tue, 9 Feb 2021 23:35:44 -0500 Subject: [PATCH 16/26] Change readme location and add some additional comments --- pkg/check/testdata/README | 9 +++++++-- pkg/check/testdata/default/README | 18 ------------------ 2 files changed, 7 insertions(+), 20 deletions(-) delete mode 100644 pkg/check/testdata/default/README diff --git a/pkg/check/testdata/README b/pkg/check/testdata/README index fa84e222..dd67ce6d 100644 --- a/pkg/check/testdata/README +++ b/pkg/check/testdata/README @@ -1,7 +1,12 @@ This directory contains simulated vCenter environment, generated using vcsim and govc v0.23.1. -# Run vcsim with default settings, i.e. with 1 host and 2 VMs -$ vcsim -tls=false +# Run vcsim with following settings. +$ vcsim -tls=false -dc 2 -folder 1 -ds 4 -pod 1 -nsx 2 -pool 2 -app 1 -vm 2 + +# this will give us a datastore cluster with no datastores inside it. +# we should move some datastores in the datastore cluster +$ govc object.mv /DC0/datastore/LocalDS_2 /DC0/datastore/DC0_POD0 +$ govc object.mv /DC0/datastore/LocalDS_3 /DC0/datastore/DC0_POD0 # Save simulated objects in a directory. $ govc object.save diff --git a/pkg/check/testdata/default/README b/pkg/check/testdata/default/README deleted file mode 100644 index dd67ce6d..00000000 --- a/pkg/check/testdata/default/README +++ /dev/null @@ -1,18 +0,0 @@ -This directory contains simulated vCenter environment, generated using vcsim and govc v0.23.1. - -# Run vcsim with following settings. -$ vcsim -tls=false -dc 2 -folder 1 -ds 4 -pod 1 -nsx 2 -pool 2 -app 1 -vm 2 - -# this will give us a datastore cluster with no datastores inside it. -# we should move some datastores in the datastore cluster -$ govc object.mv /DC0/datastore/LocalDS_2 /DC0/datastore/DC0_POD0 -$ govc object.mv /DC0/datastore/LocalDS_3 /DC0/datastore/DC0_POD0 - -# Save simulated objects in a directory. -$ govc object.save - -# Copy datastore content generated by vcsim from /tmp to here. -$ cp -r /tmp/govcsim-DC0-LocalDS_0* . - -# Change the datastore paths from "/tmp" to "testdata/default". -$ sed -i 's!/tmp/govcsim-DC0-LocalDS_0!testdata/default/govcsim-DC0-LocalDS_0!g' vcsim-127.0.0.1/*.xml From 37dde765644f963f2a9e3e2b476a7757b82e3ecf Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Tue, 9 Feb 2021 23:42:42 -0500 Subject: [PATCH 17/26] Remove WIP note --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 798465fb..2762a960 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,3 @@ This operator is deployed automatically in OpenShift clusters when it runs on vS ```sh $ ./vsphere-problem-detector start -v 5 --kubeconfig=$KUBECONFIG --namespace=openshift-cluster-storage-operator ``` - - -## WIP - -This is work-in-progress operator. - -Until proper `VSphereProblemDetector` CRD is introduced in openshift/api, `ClusterCSIDriver` CR with name `csi.ovirt.org` is used! -Results of checks are rendered as `clustercsidriver.Status.Conditions` instead of proper fields. From 6c5ef4d8d03cc23e1c1f9ad14e58c4a38f44c2dd Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 10 Feb 2021 10:37:25 -0500 Subject: [PATCH 18/26] refactor code to reuse datacenter and datastore fetch functions also fix logging --- pkg/check/datastore.go | 28 +++++------------------- pkg/check/folder.go | 18 +--------------- pkg/check/util.go | 48 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 40 deletions(-) create mode 100644 pkg/check/util.go diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index 47499e08..67d4fc97 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -9,7 +9,6 @@ import ( "github.com/vmware/govmomi/property" configv1 "github.com/openshift/api/config/v1" - "github.com/vmware/govmomi/find" "github.com/vmware/govmomi/pbm" "github.com/vmware/govmomi/pbm/types" "github.com/vmware/govmomi/view" @@ -65,7 +64,7 @@ func CheckStorageClasses(ctx *CheckContext) error { } } } - klog.V(4).Infof("CheckStorageClasses checked %d storage classes, %d problems found", len(scs), len(errs)) + klog.V(2).Infof("CheckStorageClasses checked %d storage classes, %d problems found", len(scs), len(errs)) return JoinErrors(errs) } @@ -254,14 +253,10 @@ func checkDataStore(ctx *CheckContext, dsName string, infrastructure *configv1.I func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { matchingDC, err := getDatacenter(ctx, ctx.VMConfig.Workspace.Datacenter) if err != nil { + klog.Errorf("error getting datacenter %s: %v", ctx.VMConfig.Workspace.Datacenter, err) return err } - // lets fetch the datastore - finder := find.NewFinder(ctx.VMClient, false) - finder.SetDatacenter(matchingDC) - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - ds, err := finder.Datastore(tctx, dataStoreName) + ds, err := getDataStoreByName(ctx, dataStoreName, matchingDC) if err != nil { klog.Errorf("error getting datastore %s: %v", dataStoreName, err) return nil @@ -270,7 +265,7 @@ func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { var dsMo mo.Datastore pc := property.DefaultCollector(matchingDC.Client()) properties := []string{DatastoreInfoProperty, SummaryProperty} - tctx, cancel = context.WithTimeout(ctx.Context, *Timeout) + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) defer cancel() err = pc.RetrieveOne(tctx, ds.Reference(), properties, &dsMo) if err != nil { @@ -318,23 +313,10 @@ func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { } } } - klog.V(2).Infof("Checked datastore %s for SRDS - no problems found", dataStoreName) + klog.V(4).Infof("Checked datastore %s for SRDS - no problems found", dataStoreName) return nil } -func getDatastore(ctx *CheckContext, ref vim.ManagedObjectReference) (mo.Datastore, error) { - var dsMo mo.Datastore - pc := property.DefaultCollector(ctx.VMClient) - properties := []string{DatastoreInfoProperty, SummaryProperty} - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - err := pc.RetrieveOne(tctx, ref, properties, &dsMo) - if err != nil { - return dsMo, err - } - return dsMo, nil -} - func checkVolumeName(name string) error { path := fmt.Sprintf("/var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/%s", name) escapedPath, err := systemdEscape(path) diff --git a/pkg/check/folder.go b/pkg/check/folder.go index 141f5f08..9f3f65d5 100644 --- a/pkg/check/folder.go +++ b/pkg/check/folder.go @@ -4,7 +4,6 @@ import ( "context" "fmt" - "github.com/vmware/govmomi/find" "github.com/vmware/govmomi/object" "github.com/vmware/govmomi/vim25/types" "k8s.io/klog/v2" @@ -22,11 +21,7 @@ func CheckFolderPermissions(ctx *CheckContext) error { return err } - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - finder := find.NewFinder(ctx.VMClient, false) - finder.SetDatacenter(dc) - ds, err := finder.Datastore(tctx, ctx.VMConfig.Workspace.DefaultDatastore) + ds, err := getDataStoreByName(ctx, ctx.VMConfig.Workspace.DefaultDatastore, dc) if err != nil { return fmt.Errorf("failed to access datastore %s: %s", ctx.VMConfig.Workspace.DefaultDatastore, err) } @@ -104,14 +99,3 @@ func listDirectory(ctx *CheckContext, ds *object.Datastore, path string, tolerat } return nil } - -func getDatacenter(ctx *CheckContext, dcName string) (*object.Datacenter, error) { - tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) - defer cancel() - finder := find.NewFinder(ctx.VMClient, false) - dc, err := finder.Datacenter(tctx, dcName) - if err != nil { - return nil, fmt.Errorf("failed to access datacenter %s: %s", dcName, err) - } - return dc, nil -} diff --git a/pkg/check/util.go b/pkg/check/util.go new file mode 100644 index 00000000..e18aaf36 --- /dev/null +++ b/pkg/check/util.go @@ -0,0 +1,48 @@ +package check + +import ( + "context" + "fmt" + + "github.com/vmware/govmomi/find" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25/mo" + vim "github.com/vmware/govmomi/vim25/types" +) + +func getDatacenter(ctx *CheckContext, dcName string) (*object.Datacenter, error) { + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + finder := find.NewFinder(ctx.VMClient, false) + dc, err := finder.Datacenter(tctx, dcName) + if err != nil { + return nil, fmt.Errorf("failed to access datacenter %s: %s", dcName, err) + } + return dc, nil +} + +func getDataStoreByName(ctx *CheckContext, dsName string, dc *object.Datacenter) (*object.Datastore, error) { + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + finder := find.NewFinder(ctx.VMClient, false) + finder.SetDatacenter(dc) + ds, err := finder.Datastore(tctx, dsName) + if err != nil { + return nil, fmt.Errorf("failed to access datastore %s: %s", dsName, err) + } + return ds, nil +} + +func getDatastore(ctx *CheckContext, ref vim.ManagedObjectReference) (mo.Datastore, error) { + var dsMo mo.Datastore + pc := property.DefaultCollector(ctx.VMClient) + properties := []string{DatastoreInfoProperty, SummaryProperty} + tctx, cancel := context.WithTimeout(ctx.Context, *Timeout) + defer cancel() + err := pc.RetrieveOne(tctx, ref, properties, &dsMo) + if err != nil { + return dsMo, err + } + return dsMo, nil +} From aed5b4ee7b65150460fb8c901489897bf4eca315 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 10 Feb 2021 10:58:29 -0500 Subject: [PATCH 19/26] Return error when we can't find datastore --- pkg/check/datastore.go | 2 +- pkg/check/datastore_test.go | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index 67d4fc97..5e018361 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -259,7 +259,7 @@ func checkForDatastoreCluster(ctx *CheckContext, dataStoreName string) error { ds, err := getDataStoreByName(ctx, dataStoreName, matchingDC) if err != nil { klog.Errorf("error getting datastore %s: %v", dataStoreName, err) - return nil + return err } var dsMo mo.Datastore diff --git a/pkg/check/datastore_test.go b/pkg/check/datastore_test.go index 33bf1e4e..54baebfa 100644 --- a/pkg/check/datastore_test.go +++ b/pkg/check/datastore_test.go @@ -17,9 +17,14 @@ var ( }{ { name: "short datastore", - datastore: "short", + datastore: "LocalDS_1", expectError: false, }, + { + name: "non-existant datastore", + datastore: "foobar", // this datastore does not exist and hence should result in error + expectError: true, + }, { name: "long datastore", datastore: "01234567890123456789012345678901234567890123456789", // 269 characters in the escaped path @@ -121,7 +126,7 @@ func TestCheckPVs(t *testing.T) { }{ { name: "short datastore", - datastore: "short", + datastore: "LocalDS_1", expectError: false, }, { From d7e83f6f2f48d0bc4cf5dd5160eaf0710bf44ed1 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 17 Feb 2021 15:31:21 -0500 Subject: [PATCH 20/26] Disable PV check --- pkg/check/interface.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/check/interface.go b/pkg/check/interface.go index 1fb9aae0..514367ee 100644 --- a/pkg/check/interface.go +++ b/pkg/check/interface.go @@ -23,8 +23,10 @@ var ( "ClusterInfo": CollectClusterInfo, "CheckFolderPermissions": CheckFolderPermissions, "CheckDefaultDatastore": CheckDefaultDatastore, - "CheckPVs": CheckPVs, - "CheckStorageClasses": CheckStorageClasses, + // PV checks are disabled because existing PVs can't be fixed easily and it could be problematic + // to keep alerting on them + // "CheckPVs": CheckPVs, + "CheckStorageClasses": CheckStorageClasses, } DefaultNodeChecks []NodeCheck = []NodeCheck{ &CheckNodeDiskUUID{}, From 60c4b8ef3e06b73a8d79239fbbf6c339b0cb2758 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Tue, 16 Mar 2021 11:47:38 -0400 Subject: [PATCH 21/26] Fix deadlock when enqueing to functions into the pool --- pkg/operator/operator.go | 8 ++++---- pkg/operator/pool.go | 4 ++-- pkg/operator/pool_test.go | 41 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 pkg/operator/pool_test.go diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index 4d196a35..54b86691 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -50,6 +50,8 @@ const ( cloudCredentialsSecretName = "vsphere-cloud-credentials" // TODO: make it configurable? parallelVSPhereCalls = 10 + // Size of golang channel buffer + channelBufferSize = 100 ) var ( @@ -151,7 +153,7 @@ func (c *vSphereProblemDetectorController) runChecks(ctx context.Context) (time. KubeClient: c, } - checkRunner := NewCheckThreadPool(parallelVSPhereCalls) + checkRunner := NewCheckThreadPool(parallelVSPhereCalls, channelBufferSize) resultCollector := NewResultsCollector() c.enqueueClusterChecks(checkContext, checkRunner, resultCollector) if err := c.enqueueNodeChecks(checkContext, checkRunner, resultCollector); err != nil { @@ -251,9 +253,7 @@ func (c *vSphereProblemDetectorController) enqueueSingleNodeChecks(checkContext for i := range c.nodeChecks { check := c.nodeChecks[i] klog.V(4).Infof("Adding node check %s:%s", node.Name, check.Name()) - checkRunner.RunGoroutine(checkContext.Context, func() { - c.runSingleNodeSingleCheck(checkContext, resultCollector, node, vm, check) - }) + c.runSingleNodeSingleCheck(checkContext, resultCollector, node, vm, check) } }) } diff --git a/pkg/operator/pool.go b/pkg/operator/pool.go index 4ff7e13a..993cff7c 100644 --- a/pkg/operator/pool.go +++ b/pkg/operator/pool.go @@ -16,9 +16,9 @@ type CheckThreadPool struct { } // Creates a new CheckThreadPool with given max. number of goroutines. -func NewCheckThreadPool(parallelism int) *CheckThreadPool { +func NewCheckThreadPool(parallelism int, channelBufferSize int) *CheckThreadPool { pool := &CheckThreadPool{ - workCh: make(chan func(), 100), + workCh: make(chan func(), channelBufferSize), } for i := 0; i < parallelism; i++ { diff --git a/pkg/operator/pool_test.go b/pkg/operator/pool_test.go new file mode 100644 index 00000000..1080eb23 --- /dev/null +++ b/pkg/operator/pool_test.go @@ -0,0 +1,41 @@ +package operator + +import ( + "context" + "fmt" + "testing" + "time" +) + +func TestThreadPool(t *testing.T) { + pool := NewCheckThreadPool(5, 5) + ctx := context.TODO() + startTime := time.Now() + for i := 0; i < 5; i++ { + i := i + pool.RunGoroutine(ctx, func() { + fmt.Printf("running parent task %d\n", i) + for j := 0; j < 5; j++ { + j := j + runSomeTask(fmt.Sprintf("task-%d-%d", i, j)) + } + }) + } + waitChannel := make(chan interface{}) + go func() { + pool.Wait(ctx) + close(waitChannel) + }() + select { + case <-waitChannel: + fmt.Printf("test finished successfully") + case <-time.After(40 * time.Second): + t.Errorf("test failed to finish") + } + fmt.Printf("time taken is: %v", time.Now().Sub(startTime)) +} + +func runSomeTask(taskID string) { + fmt.Printf("Running task: %s\n", taskID) + time.Sleep(5 * time.Second) +} From bb986315622020ef9b728fb1548c91be17caa969 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 30 Apr 2021 10:53:36 +0200 Subject: [PATCH 22/26] Don't degrade cluster on connection error Clusters that do not have correct credentials to vCenter should not get degraded when vsphere-problem-detector cannot connect to it. Instead, keep the cluster Availabe=true and only report a new metric + alert on it. Add the error message to Availabe=true condition, so it can be found without digging through logs. --- pkg/operator/metrics.go | 9 +++++++++ pkg/operator/operator.go | 22 +++++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pkg/operator/metrics.go b/pkg/operator/metrics.go index c91d1422..221311b6 100644 --- a/pkg/operator/metrics.go +++ b/pkg/operator/metrics.go @@ -49,6 +49,14 @@ var ( }, []string{checkNameLabel, nodeNameLabel}, ) + + syncErrrorMetric = metrics.NewGauge( + &metrics.GaugeOpts{ + Name: "vsphere_sync_errors", + Help: "Indicates failing vSphere problem detector sync error. Value 1 means that the last sync failed.", + StabilityLevel: metrics.ALPHA, + }, + ) ) func init() { @@ -56,4 +64,5 @@ func init() { legacyregistry.MustRegister(clusterCheckErrrorMetric) legacyregistry.MustRegister(nodeCheckTotalMetric) legacyregistry.MustRegister(nodeCheckErrrorMetric) + legacyregistry.MustRegister(syncErrrorMetric) } diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index 54b86691..4c13f4f5 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -111,13 +111,26 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac return err } + availableCnd := operatorapi.OperatorCondition{ + Type: controllerName + operatorapi.OperatorStatusTypeAvailable, + Status: operatorapi.ConditionTrue, + } + // TODO: Run in a separate goroutine? We may not want to run time-consuming checks here. if platformSupported && time.Now().After(c.nextCheck) { delay, err := c.runChecks(ctx) if err != nil { - // This sets VSphereProblemDetectorControllerDegraded condition - return err + // Do not return the error, it would degrade the whole cluster. + // Keep the operator Available=true, but give it a specific message. + klog.Errorf("Failed to run checks: %s", err) + // E.g.: "failed to connect to vcenter.example.com: ServerFaultCode: Cannot complete login due to an incorrect user name or password." + availableCnd.Message = err.Error() + availableCnd.Reason = "SyncFailed" + syncErrrorMetric.Set(1) + } else { + syncErrrorMetric.Set(0) } + // Poke the controller sync loop after the delay to re-run tests queue := syncCtx.Queue() queueKey := syncCtx.QueueKey() @@ -126,11 +139,6 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac }) } - availableCnd := operatorapi.OperatorCondition{ - Type: controllerName + operatorapi.OperatorStatusTypeAvailable, - Status: operatorapi.ConditionTrue, - } - if _, _, updateErr := v1helpers.UpdateStatus(c.operatorClient, v1helpers.UpdateConditionFn(availableCnd), ); updateErr != nil { From 95e98aef36ee56048c1d8611cc36c5ddcd28590f Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 5 May 2021 13:18:14 +0200 Subject: [PATCH 23/26] Use informers for all API objects Use informers for everything that vsphere-problem-detector needs from the API server. This will result in less errors reported as failed checks on random hiccups of the API server, network, etcd etc. As result, types needed to be changed to pointers. --- pkg/check/datastore.go | 4 ++-- pkg/check/datastore_test.go | 4 ++-- pkg/check/framework_test.go | 22 +++++++++++----------- pkg/check/interface.go | 6 +++--- pkg/check/node_esxi_version_test.go | 4 ++-- pkg/check/node_hw_version_test.go | 6 +++--- pkg/check/node_provider_test.go | 6 +++--- pkg/check/node_uuid_test.go | 4 ++-- pkg/operator/kubeclient.go | 26 +++++++------------------- pkg/operator/operator.go | 15 ++++++++++++++- pkg/operator/starter.go | 2 +- 11 files changed, 50 insertions(+), 49 deletions(-) diff --git a/pkg/check/datastore.go b/pkg/check/datastore.go index 5e018361..b7c922eb 100644 --- a/pkg/check/datastore.go +++ b/pkg/check/datastore.go @@ -43,7 +43,7 @@ func CheckStorageClasses(ctx *CheckContext) error { var errs []error for i := range scs { - sc := &scs[i] + sc := scs[i] if sc.Provisioner != "kubernetes.io/vsphere-volume" { klog.V(4).Infof("Skipping storage class %s: not a vSphere class", sc.Name) continue @@ -77,7 +77,7 @@ func CheckPVs(ctx *CheckContext) error { return err } for i := range pvs { - pv := &pvs[i] + pv := pvs[i] if pv.Spec.VsphereVolume == nil { continue } diff --git a/pkg/check/datastore_test.go b/pkg/check/datastore_test.go index 54baebfa..2eca1606 100644 --- a/pkg/check/datastore_test.go +++ b/pkg/check/datastore_test.go @@ -84,7 +84,7 @@ func TestCheckStorageClassesWithDatastore(t *testing.T) { kubeClient := &fakeKubeClient{ infrastructure: infrastructure(), nodes: defaultNodes(), - storageClasses: []storagev1.StorageClass{ + storageClasses: []*storagev1.StorageClass{ { ObjectMeta: metav1.ObjectMeta{ Name: test.name, @@ -148,7 +148,7 @@ func TestCheckPVs(t *testing.T) { kubeClient := &fakeKubeClient{ infrastructure: infrastructure(), nodes: defaultNodes(), - pvs: []v1.PersistentVolume{ + pvs: []*v1.PersistentVolume{ { ObjectMeta: metav1.ObjectMeta{ Name: test.name, diff --git a/pkg/check/framework_test.go b/pkg/check/framework_test.go index 6ab16bc7..25034e10 100644 --- a/pkg/check/framework_test.go +++ b/pkg/check/framework_test.go @@ -102,9 +102,9 @@ func setupSimulator(kubeClient *fakeKubeClient, modelDir string) (ctx *CheckCont type fakeKubeClient struct { infrastructure *ocpv1.Infrastructure - nodes []v1.Node - storageClasses []storagev1.StorageClass - pvs []v1.PersistentVolume + nodes []*v1.Node + storageClasses []*storagev1.StorageClass + pvs []*v1.PersistentVolume } var _ KubeClient = &fakeKubeClient{} @@ -113,20 +113,20 @@ func (f *fakeKubeClient) GetInfrastructure(ctx context.Context) (*ocpv1.Infrastr return f.infrastructure, nil } -func (f *fakeKubeClient) ListNodes(ctx context.Context) ([]v1.Node, error) { +func (f *fakeKubeClient) ListNodes(ctx context.Context) ([]*v1.Node, error) { return f.nodes, nil } -func (f *fakeKubeClient) ListStorageClasses(ctx context.Context) ([]storagev1.StorageClass, error) { +func (f *fakeKubeClient) ListStorageClasses(ctx context.Context) ([]*storagev1.StorageClass, error) { return f.storageClasses, nil } -func (f *fakeKubeClient) ListPVs(ctx context.Context) ([]v1.PersistentVolume, error) { +func (f *fakeKubeClient) ListPVs(ctx context.Context) ([]*v1.PersistentVolume, error) { return f.pvs, nil } -func node(name string, modifiers ...func(*v1.Node)) v1.Node { - n := v1.Node{ +func node(name string, modifiers ...func(*v1.Node)) *v1.Node { + n := &v1.Node{ ObjectMeta: metav1.ObjectMeta{ Name: name, }, @@ -135,7 +135,7 @@ func node(name string, modifiers ...func(*v1.Node)) v1.Node { }, } for _, modifier := range modifiers { - modifier(&n) + modifier(n) } return n } @@ -146,8 +146,8 @@ func withProviderID(id string) func(*v1.Node) { } } -func defaultNodes() []v1.Node { - nodes := []v1.Node{} +func defaultNodes() []*v1.Node { + nodes := []*v1.Node{} for _, vm := range defaultVMs { node := node(vm.name, withProviderID("vsphere://"+vm.uuid)) nodes = append(nodes, node) diff --git a/pkg/check/interface.go b/pkg/check/interface.go index 514367ee..0003226e 100644 --- a/pkg/check/interface.go +++ b/pkg/check/interface.go @@ -45,11 +45,11 @@ type KubeClient interface { // GetInfrastructure returns current Infrastructure instance. GetInfrastructure(ctx context.Context) (*ocpv1.Infrastructure, error) // ListNodes returns list of all nodes in the cluster. - ListNodes(ctx context.Context) ([]v1.Node, error) + ListNodes(ctx context.Context) ([]*v1.Node, error) // ListStorageClasses returns list of all storage classes in the cluster. - ListStorageClasses(ctx context.Context) ([]storagev1.StorageClass, error) + ListStorageClasses(ctx context.Context) ([]*storagev1.StorageClass, error) // ListPVs returns list of all PVs in the cluster. - ListPVs(ctx context.Context) ([]v1.PersistentVolume, error) + ListPVs(ctx context.Context) ([]*v1.PersistentVolume, error) } type CheckContext struct { diff --git a/pkg/check/node_esxi_version_test.go b/pkg/check/node_esxi_version_test.go index 8755a3d1..b9ab17d3 100644 --- a/pkg/check/node_esxi_version_test.go +++ b/pkg/check/node_esxi_version_test.go @@ -63,11 +63,11 @@ func TestCollectNodeESXiVersion(t *testing.T) { } for _, node := range kubeClient.nodes { - vm, err := getVM(ctx, &node) + vm, err := getVM(ctx, node) if err != nil { t.Errorf("Error getting vm for node %s: %s", node.Name, err) } - err = check.CheckNode(ctx, &node, vm) + err = check.CheckNode(ctx, node, vm) if err != nil { t.Errorf("Unexpected error on node %s: %s", node.Name, err) } diff --git a/pkg/check/node_hw_version_test.go b/pkg/check/node_hw_version_test.go index a82179b0..434d9c9a 100644 --- a/pkg/check/node_hw_version_test.go +++ b/pkg/check/node_hw_version_test.go @@ -51,7 +51,7 @@ vsphere_node_hw_version_total{hw_version="vmx-15"} 1 defer cleanup() // Set HW version of the first VM. Leave the other VMs with the default version (vmx-13). - node := &kubeClient.nodes[0] + node := kubeClient.nodes[0] err = customizeVM(ctx, node, &types.VirtualMachineConfigSpec{ ExtraConfig: []types.BaseOptionValue{ &types.OptionValue{ @@ -72,11 +72,11 @@ vsphere_node_hw_version_total{hw_version="vmx-15"} 1 } for _, node := range kubeClient.nodes { - vm, err := getVM(ctx, &node) + vm, err := getVM(ctx, node) if err != nil { t.Errorf("Error getting vm for node %s: %s", node.Name, err) } - err = check.CheckNode(ctx, &node, vm) + err = check.CheckNode(ctx, node, vm) if err != nil { t.Errorf("Unexpected error on node %s: %s", node.Name, err) } diff --git a/pkg/check/node_provider_test.go b/pkg/check/node_provider_test.go index 2c59f916..1b640fca 100644 --- a/pkg/check/node_provider_test.go +++ b/pkg/check/node_provider_test.go @@ -9,7 +9,7 @@ import ( func TestCheckNodeProviderID(t *testing.T) { tests := []struct { name string - node v1.Node + node *v1.Node expectError bool }{ { @@ -34,7 +34,7 @@ func TestCheckNodeProviderID(t *testing.T) { } kubeClient := &fakeKubeClient{ - nodes: []v1.Node{test.node}, + nodes: []*v1.Node{test.node}, } ctx, cleanup, err := setupSimulator(kubeClient, defaultModel) if err != nil { @@ -43,7 +43,7 @@ func TestCheckNodeProviderID(t *testing.T) { defer cleanup() // Act - err = check.CheckNode(ctx, &test.node, nil) + err = check.CheckNode(ctx, test.node, nil) // Assert if err != nil && !test.expectError { diff --git a/pkg/check/node_uuid_test.go b/pkg/check/node_uuid_test.go index 6a265857..9e4ce07d 100644 --- a/pkg/check/node_uuid_test.go +++ b/pkg/check/node_uuid_test.go @@ -43,7 +43,7 @@ func TestCheckNodeDiskUUID(t *testing.T) { defer cleanup() // Set VM disk.enableUUID - node := &kubeClient.nodes[0] + node := kubeClient.nodes[0] err = customizeVM(ctx, node, &types.VirtualMachineConfigSpec{ ExtraConfig: []types.BaseOptionValue{ &types.OptionValue{ @@ -60,7 +60,7 @@ func TestCheckNodeDiskUUID(t *testing.T) { } // Act - err = check.CheckNode(ctx, &kubeClient.nodes[0], vm) + err = check.CheckNode(ctx, kubeClient.nodes[0], vm) // Assert if err != nil && !test.expectError { diff --git a/pkg/operator/kubeclient.go b/pkg/operator/kubeclient.go index 36232d75..c231d9cc 100644 --- a/pkg/operator/kubeclient.go +++ b/pkg/operator/kubeclient.go @@ -7,7 +7,7 @@ import ( "github.com/openshift/vsphere-problem-detector/pkg/check" v1 "k8s.io/api/core/v1" storagev1 "k8s.io/api/storage/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" ) var _ check.KubeClient = &vSphereProblemDetectorController{} @@ -18,26 +18,14 @@ func (c *vSphereProblemDetectorController) GetInfrastructure(ctx context.Context return c.infraLister.Get(infrastructureName) } -func (c *vSphereProblemDetectorController) ListNodes(ctx context.Context) ([]v1.Node, error) { - list, err := c.kubeClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{}) - if err != nil { - return nil, err - } - return list.Items, nil +func (c *vSphereProblemDetectorController) ListNodes(ctx context.Context) ([]*v1.Node, error) { + return c.nodeLister.List(labels.Everything()) } -func (c *vSphereProblemDetectorController) ListStorageClasses(ctx context.Context) ([]storagev1.StorageClass, error) { - list, err := c.kubeClient.StorageV1().StorageClasses().List(ctx, metav1.ListOptions{}) - if err != nil { - return nil, err - } - return list.Items, nil +func (c *vSphereProblemDetectorController) ListStorageClasses(ctx context.Context) ([]*storagev1.StorageClass, error) { + return c.scLister.List(labels.Everything()) } -func (c *vSphereProblemDetectorController) ListPVs(ctx context.Context) ([]v1.PersistentVolume, error) { - list, err := c.kubeClient.CoreV1().PersistentVolumes().List(ctx, metav1.ListOptions{}) - if err != nil { - return nil, err - } - return list.Items, nil +func (c *vSphereProblemDetectorController) ListPVs(ctx context.Context) ([]*v1.PersistentVolume, error) { + return c.pvLister.List(labels.Everything()) } diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index 4c13f4f5..9a3ab8a6 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -18,6 +18,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/kubernetes" corelister "k8s.io/client-go/listers/core/v1" + storagelister "k8s.io/client-go/listers/storage/v1" "k8s.io/klog/v2" ) @@ -26,6 +27,9 @@ type vSphereProblemDetectorController struct { kubeClient kubernetes.Interface infraLister infralister.InfrastructureLister secretLister corelister.SecretLister + nodeLister corelister.NodeLister + pvLister corelister.PersistentVolumeLister + scLister storagelister.StorageClassLister cloudConfigMapLister corelister.ConfigMapLister eventRecorder events.Recorder @@ -75,10 +79,16 @@ func NewVSphereProblemDetectorController( secretInformer := namespacedInformer.InformersFor(operatorNamespace).Core().V1().Secrets() cloudConfigMapInformer := namespacedInformer.InformersFor(cloudConfigNamespace).Core().V1().ConfigMaps() + nodeInformer := namespacedInformer.InformersFor("").Core().V1().Nodes() + pvInformer := namespacedInformer.InformersFor("").Core().V1().PersistentVolumes() + scInformer := namespacedInformer.InformersFor("").Storage().V1().StorageClasses() c := &vSphereProblemDetectorController{ operatorClient: operatorClient, kubeClient: kubeClient, secretLister: secretInformer.Lister(), + nodeLister: nodeInformer.Lister(), + pvLister: pvInformer.Lister(), + scLister: scInformer.Lister(), cloudConfigMapLister: cloudConfigMapInformer.Lister(), infraLister: configInformer.Lister(), eventRecorder: eventRecorder.WithComponentSuffix(controllerName), @@ -90,6 +100,9 @@ func NewVSphereProblemDetectorController( return factory.New().WithSync(c.sync).WithSyncDegradedOnError(operatorClient).WithInformers( configInformer.Informer(), secretInformer.Informer(), + nodeInformer.Informer(), + pvInformer.Informer(), + scInformer.Informer(), cloudConfigMapInformer.Informer(), ).ToController(controllerName, c.eventRecorder) } @@ -235,7 +248,7 @@ func (c *vSphereProblemDetectorController) enqueueNodeChecks(checkContext *check } for i := range nodes { - node := &nodes[i] + node := nodes[i] c.enqueueSingleNodeChecks(checkContext, checkRunner, resultCollector, node) } return nil diff --git a/pkg/operator/starter.go b/pkg/operator/starter.go index f8db54ef..0d27571b 100644 --- a/pkg/operator/starter.go +++ b/pkg/operator/starter.go @@ -29,7 +29,7 @@ func RunOperator(ctx context.Context, controllerConfig *controllercmd.Controller if err != nil { return err } - kubeInformers := v1helpers.NewKubeInformersForNamespaces(kubeClient, operatorNamespace, cloudConfigNamespace) + kubeInformers := v1helpers.NewKubeInformersForNamespaces(kubeClient, operatorNamespace, cloudConfigNamespace, "") csiConfigClient, err := operatorclient.NewForConfig(controllerConfig.KubeConfig) if err != nil { From df807c6b8f33c53a1c2a34dd492f30b3771457d0 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 5 May 2021 20:11:33 +0200 Subject: [PATCH 24/26] Apply exp. backoff on every runCheck error Exp. backoff should be used on all errors, incl. failed connections to vCenter. Reorganize calculation of the next check to accomodate that. --- pkg/operator/operator.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index 9a3ab8a6..d742eb4c 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -141,12 +141,15 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac availableCnd.Reason = "SyncFailed" syncErrrorMetric.Set(1) } else { + // Clean the error metric syncErrrorMetric.Set(0) } // Poke the controller sync loop after the delay to re-run tests queue := syncCtx.Queue() queueKey := syncCtx.QueueKey() + c.nextCheck = c.lastCheck.Add(delay) + klog.V(2).Infof("Scheduled the next check in %s (%s)", delay, c.nextCheck) time.AfterFunc(delay, func() { queue.Add(queueKey) }) @@ -162,9 +165,13 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac } func (c *vSphereProblemDetectorController) runChecks(ctx context.Context) (time.Duration, error) { + // pre-calculate exp. backoff on error + nextErrorDelay := c.backoff.Step() + c.lastCheck = time.Now() + vmConfig, vmClient, err := c.connect(ctx) if err != nil { - return 0, err + return nextErrorDelay, err } checkContext := &check.CheckContext{ @@ -178,12 +185,12 @@ func (c *vSphereProblemDetectorController) runChecks(ctx context.Context) (time. resultCollector := NewResultsCollector() c.enqueueClusterChecks(checkContext, checkRunner, resultCollector) if err := c.enqueueNodeChecks(checkContext, checkRunner, resultCollector); err != nil { - return 0, err + return nextErrorDelay, err } klog.V(4).Infof("Waiting for all checks") if err := checkRunner.Wait(ctx); err != nil { - return 0, err + return nextErrorDelay, err } c.finishNodeChecks(checkContext) @@ -192,11 +199,10 @@ func (c *vSphereProblemDetectorController) runChecks(ctx context.Context) (time. results, checksFailed := resultCollector.Collect() c.reportResults(results) c.lastResults = results - c.lastCheck = time.Now() var nextDelay time.Duration if checksFailed { // Use exponential backoff - nextDelay = c.backoff.Step() + nextDelay = nextErrorDelay } else { // Reset the backoff on success c.backoff = defaultBackoff @@ -204,8 +210,6 @@ func (c *vSphereProblemDetectorController) runChecks(ctx context.Context) (time. // (i.e. retry as slow as allowed). nextDelay = defaultBackoff.Cap } - c.nextCheck = c.lastCheck.Add(nextDelay) - klog.V(2).Infof("Scheduled the next check in %s (%s)", nextDelay, c.nextCheck) return nextDelay, nil } From c827699e889ef35cbf4e83711af9282297b764a7 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Tue, 11 May 2021 20:21:04 +0200 Subject: [PATCH 25/26] Restore 4.7 Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 137d198b..a9e18f80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.8 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/vsphere-problem-detector COPY . . ENV GO_PACKAGE github.com/openshift/vsphere-problem-detector RUN make -FROM registry.ci.openshift.org/ocp/4.8:base +FROM registry.ci.openshift.org/ocp/4.7:base COPY --from=builder /go/src/github.com/openshift/vsphere-problem-detector/vsphere-problem-detector /usr/bin/ ENTRYPOINT ["/usr/bin/vsphere-problem-detector"] LABEL io.openshift.release.operator=true From d9b13c9e1aa70401fc607bd736f26c706c5fd65d Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Mon, 17 May 2021 20:01:29 +0200 Subject: [PATCH 26/26] Save error in Available message on every sync Make sure that the error message in Available condition is set on every sync() call, not only when the checks actually run. --- pkg/operator/operator.go | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index d742eb4c..d5efa469 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -40,6 +40,7 @@ type vSphereProblemDetectorController struct { lastCheck time.Time nextCheck time.Time lastResults []checkResult + lastError error backoff wait.Backoff } @@ -133,18 +134,11 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac if platformSupported && time.Now().After(c.nextCheck) { delay, err := c.runChecks(ctx) if err != nil { - // Do not return the error, it would degrade the whole cluster. - // Keep the operator Available=true, but give it a specific message. klog.Errorf("Failed to run checks: %s", err) - // E.g.: "failed to connect to vcenter.example.com: ServerFaultCode: Cannot complete login due to an incorrect user name or password." - availableCnd.Message = err.Error() - availableCnd.Reason = "SyncFailed" - syncErrrorMetric.Set(1) - } else { - // Clean the error metric - syncErrrorMetric.Set(0) } - + // Do not return the error, it would degrade the whole cluster. + // Remember the error and put it in Available condition message below. + c.lastError = err // Poke the controller sync loop after the delay to re-run tests queue := syncCtx.Queue() queueKey := syncCtx.QueueKey() @@ -155,6 +149,18 @@ func (c *vSphereProblemDetectorController) sync(ctx context.Context, syncCtx fac }) } + if c.lastError != nil { + // Make sure the last error is saved into Available condition on every sync call, + // not only when the check actually run. + // E.g.: "failed to connect to vcenter.example.com: ServerFaultCode: Cannot complete login due to an incorrect user name or password." + availableCnd.Message = c.lastError.Error() + availableCnd.Reason = "SyncFailed" + syncErrrorMetric.Set(1) + } else { + // Clean the error metric + syncErrrorMetric.Set(0) + } + if _, _, updateErr := v1helpers.UpdateStatus(c.operatorClient, v1helpers.UpdateConditionFn(availableCnd), ); updateErr != nil {