Skip to content

Querying datastore cluster fails #24

@pmitoraj

Description

@pmitoraj

Hi
I am trying to get the details of the datastore cluster from vcenter. It works perfectly with RbVMomi but somehow PyVmomi does not properly recognize the StoragePod object.
In Ruby example, in datastoreFolder there is StoragePod("group-p52") which is an instance of StoragePod.
In python there is vim.Folder:group-p52 which is an instance of vim.Folder and does not respond to podStorageDrsEntry.
Any ideas?

Equivalent code samples:

RUBY:

irb(main):002:0> require 'rbvmomi'
=> true
irb(main):003:0> require 'pp'
=> false
irb(main):004:0> params = {:host => '*******',
irb(main):005:1*            :insecure => true,
irb(main):006:1*            :user => 'root',
irb(main):007:1*     :rev=>"5.5",
irb(main):008:1*            :password => '*****'}
=> OMITTED FOR BREVITY
irb(main):009:0> client = RbVmomi::VIM.connect(params)
=> OMITTED FOR BREVITY
irb(main):010:0> dc = client.serviceInstance.find_datacenter
=> Datacenter("datacenter-21")
irb(main):011:0> 
irb(main):012:0*   pp dc.datastoreFolder.childEntity
[StoragePod("group-p52"),
 Datastore("datastore-48"),
 Datastore("datastore-50"),
 Datastore("datastore-49"),
 Datastore("datastore-31"),
 Datastore("datastore-38"),
 Datastore("datastore-40"),
 Datastore("datastore-36"),
 Datastore("datastore-32")]
=> OMITTED FOR BREVITY
irb(main):013:0> pp dc.datastoreFolder.childEntity[0].class
StoragePod
=> StoragePod
irb(main):014:0> pp dc.datastoreFolder.childEntity[0].podStorageDrsEntry
PodStorageDrsEntry(
  actionHistory: [],
  drsFault: [],
  dynamicProperty: [],
  recommendation: [],
  storageDrsConfig: StorageDrsConfigInfo(
    dynamicProperty: [],
    podConfig: StorageDrsPodConfigInfo(
      defaultIntraVmAffinity: true,
      defaultVmBehavior: "automated",
      dynamicProperty: [],
      enabled: true,
      ioLoadBalanceConfig: StorageDrsIoLoadBalanceConfig(
        dynamicProperty: [],
        ioLatencyThreshold: 10,
        ioLoadImbalanceThreshold: 5
      ),
      ioLoadBalanceEnabled: true,
      loadBalanceInterval: 480,
      option: [],
      rule: [],
      spaceLoadBalanceConfig: StorageDrsSpaceLoadBalanceConfig(
        dynamicProperty: [],
        minSpaceUtilizationDifference: 5,
        spaceUtilizationThreshold: 60
      )
    ),
    vmConfig: []
  )
)

PYTHON:

>>> from pyVim import connect
>>> 
>>> si = connect.Connect('***',443,'root','***')
>>> datacenter = si.content.rootFolder.childEntity[0]
>>> datacenter.datastoreFolder.childEntity
(ManagedObject) [
   'vim.Folder:group-p52',
   'vim.Datastore:datastore-48',
   'vim.Datastore:datastore-50',
   'vim.Datastore:datastore-49',
   'vim.Datastore:datastore-31',
   'vim.Datastore:datastore-38',
   'vim.Datastore:datastore-40',
   'vim.Datastore:datastore-36',
   'vim.Datastore:datastore-32'
]
>>> datacenter.datastoreFolder.childEntity[0].__class__.__name__
'vim.Folder'
>>> datacenter.datastoreFolder.childEntity[0].podStorageDrsEntry
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'vim.Folder' object has no attribute 'podStorageDrsEntry'

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions