Contents
pyvmomiの
6.7.1.2018.12
からオブジェクト(Managed, Data)をJSONに変換できるようになったので、やり方をメモっておきます。
サポートされたPR
サンプルコード
サンプルコードは、クラスターのManaged ObjectデータをJSONに変換する例です。
オブジェクトをJSONに変換するには以下のように VmomiJSONEncoder
を使用すれば可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#!/usr/bin/env python from pyVim.connect import SmartConnect, Disconnect from pyVmomi.VmomiSupport import VmomiJSONEncoder from pyVmomi import vim import ssl import atexit import json host = '' username = 'administrator@vsphere.local' password = '' mob = vim.ClusterComputeResource if __name__ == "__main__": context = None if hasattr(ssl, '_create_unverified_context'): context = ssl._create_unverified_context() si = SmartConnect(host=host, user=username, pwd=password, sslContext=context) atexit.register(Disconnect, si) content = si.content mob_list = content.viewManager.CreateContainerView(content.rootFolder, [mob], True) for mob in mob_list.view: obj_to_json = json.dumps(mob, cls=VmomiJSONEncoder, indent=2) print(obj_to_json) |
出力例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "_vimid": "domain-c1042", "_vimref": "vim.ClusterComputeResource:domain-c1042", "_vimtype": "vim.ClusterComputeResource", "value": [], "availableField": [], "parent": "vim.Folder:group-h5", "customValue": [], "overallStatus": "green", "configStatus": "green", "configIssue": [], "effectiveRole": [ -1 ], (snip) |
今まではオブジェクトの中身を確認するのに工夫が必要でしたが、これでオブジェクトのデータが扱いやすい形に変換できるようになって便利になりました 🙂