diff options
author | Arun Arora <aroraarun@vmware.com> | 2017-09-26 21:57:03 +0530 |
---|---|---|
committer | Arun Arora <aroraarun@vmware.com> | 2017-10-16 17:12:45 +0530 |
commit | e4a8fb1d9a9106a03cf2c30b8165966567339a11 (patch) | |
tree | 272ccfda5393e797705795ade21bda1d9aafde77 /vesagent/py | |
parent | 3406b48e1526dd7723f534d8d36ad183b01cbd06 (diff) |
VMWare vesagent for FCAPS
Fix python verify job fail issue
Change-Id: If4b7f82fe7175a4d018cd5c5232217e98824c0bd
Issue-ID: MULTICLOUD-8
Signed-off-by: Arun Arora <aroraarun@vmware.com>
Diffstat (limited to 'vesagent/py')
-rw-r--r-- | vesagent/py/dummylist.py | 5 | ||||
-rw-r--r-- | vesagent/py/getAllVmInfo.py | 178 | ||||
-rw-r--r-- | vesagent/py/test_getAllVmInfo.py | 36 |
3 files changed, 219 insertions, 0 deletions
diff --git a/vesagent/py/dummylist.py b/vesagent/py/dummylist.py new file mode 100644 index 0000000..28ed71f --- /dev/null +++ b/vesagent/py/dummylist.py @@ -0,0 +1,5 @@ +dummylist = [] +dummysingleinfo = {'Heartbeatstatus': 'gray', 'Name': 'openstack-template', 'Instance UUID': '502261f8-f9b5-4430-fc9b-4cbbd9a9da1c'} +dummylist.append(dummysingleinfo) +print("in dummylist.py",dummylist) +#listjson[] = [{'Heartbeatstatus': 'gray', 'Name': 'openstack-template', 'Instance UUID': '502261f8-f9b5-4430-fc9b-4cbbd9a9da1c'}, {'Heartbeatstatus': 'green', 'Name': 'management-server', 'Instance UUID': '50229363-1961-25ea-5909-b395b5e90701'}, {'Heartbeatstatus': 'gray', 'Name': 'New Virtual Machine', 'Instance UUID': '5022143f-6758-05f8-c5bc-777994f09590'}, {'Heartbeatstatus': 'gray', 'Name': 'metadata_proxy_router-8802f84c-bc25-437a-b7f7-6b1f44db673a-0', 'Instance UUID': '5022efd1-8dff-6dab-92ac-f56be0ef2890'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_onap', 'Instance UUID': '5022889f-48e5-cfb7-7e42-849492f52074'}, {'Heartbeatstatus': 'gray', 'Name': 'testvm2', 'Instance UUID': '50227161-5bdb-f1c7-a35e-9e1ccc690c4a'}, {'Heartbeatstatus': 'green', 'Name': 'dhcp-ddaec694-47ac-4-0', 'Instance UUID': '5022b051-bee7-970e-b542-03c1dd2371f8'}, {'Heartbeatstatus': 'green', 'Name': 'JumoHost3', 'Instance UUID': '5022a29a-c22b-95f6-8db1-64ed99b466a7'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-9dfc0681-0884-0', 'Instance UUID': '5022c282-d2b3-ddfe-afb9-3e3b1eff586a'}, {'Heartbeatstatus': 'gray', 'Name': 'DNS-clone', 'Instance UUID': '502286c7-5ae5-d832-c8e3-1cd2fb9fdfd5'}, {'Heartbeatstatus': 'gray', 'Name': 'Ubuntu_14.04', 'Instance UUID': '502237a7-1af7-5276-7661-447a00f555c2'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-6ff1b0b8-a87f-0', 'Instance UUID': '50224658-086c-b89c-fec8-99a9a68b79e5'}, {'Heartbeatstatus': 'green', 'Name': 'NSX_Controller_abfcd152-179c-441d-bde1-7eb3c95515e8', 'Instance UUID': '5022c971-9074-73b7-436e-df4ed727de18'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-341aac43-9b8d-0', 'Instance UUID': '5022bfea-4d1a-18be-31c0-4f47deb9d45b'}, {'Heartbeatstatus': 'green', 'Name': 'NSX_Controller_210c505a-fd0d-487c-aa13-c8e7c783fbd2', 'Instance UUID': '5022decc-330a-27f2-9b0c-22bda29849d5'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-f373c488-30bf-0', 'Instance UUID': '5022fc7e-13cc-45a6-5eb2-c583c90d232c'}, {'Heartbeatstatus': 'green', 'Name': 'NSX_Controller_d91e4639-fb12-4db3-b724-840ab671fee7', 'Instance UUID': '5022dd32-6c9b-a926-3545-84ed04654aef'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-696832d4-f7a3-0', 'Instance UUID': '5022b4e3-8298-becf-d7ff-9327ddd79da3'}, {'Heartbeatstatus': 'gray', 'Name': 'testvm1', 'Instance UUID': '502284ac-8a4b-00d7-7a1b-b457d16279e5'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-750f9290-a800-0', 'Instance UUID': '50226a36-d367-4dbe-2424-c6b9f9dab53f'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-08096265-239d-0', 'Instance UUID': '502224a1-8cbf-1b5a-f24e-0b462947cd34'}, {'Heartbeatstatus': 'gray', 'Name': 'metadata_proxy_router-79872529-425b-4621-8ec6-ffbbbd9cf2fd-0', 'Instance UUID': '50224e05-a656-2b9b-ffb5-e1bd940f5bac'}, {'Heartbeatstatus': 'green', 'Name': 'centos_gui', 'Instance UUID': '5022a5e7-6328-f472-43e9-c0b6a61fcb99'}, {'Heartbeatstatus': 'gray', 'Name': 'shared-7acbe88d-afb7-0', 'Instance UUID': '50225be5-1b5f-689e-05ae-2db75283c488'}, {'Heartbeatstatus': 'green', 'Name': 'dhcp-7b44ffd8-57d3-4-0', 'Instance UUID': '502262bb-cf5d-587e-e912-8f8625357e75'}, {'Heartbeatstatus': 'green', 'Name': 'NSX-Manager', 'Instance UUID': '5022c6c8-eb9f-a95d-efa0-d8889c590ed2'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-69b84c8d-a635-0', 'Instance UUID': '5022e51a-2628-0f0d-440a-ab979ff6fd64'}, {'Heartbeatstatus': 'green', 'Name': 'shared-f5021549-8b6c-0', 'Instance UUID': '50229bc3-4b19-51a3-a4fe-269312933c6a'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-c4a0d176-07d1-0', 'Instance UUID': '502209c6-f740-7c95-e817-c5e5bb2dc688'}, {'Heartbeatstatus': 'gray', 'Name': 'backup-2510da43-bd31-0', 'Instance UUID': '502288dd-9288-c7b1-50d7-865735068d4e'}, {'Heartbeatstatus': 'gray', 'Name': 'Jumphost2', 'Instance UUID': '500b1c61-6325-f84b-ed15-5a6f309170fd'}, {'Heartbeatstatus': 'green', 'Name': 'DNS', 'Instance UUID': '525fdeb5-a56b-f1e0-61bc-e057a5342431'}, {'Heartbeatstatus': 'green', 'Name': 'vcenter', 'Instance UUID': '527db7b5-e830-3a61-af22-9fb3cc5fb729'}, {'Heartbeatstatus': 'green', 'Name': 'VIO-ControlPlane-0', 'Instance UUID': '502266d2-a940-5983-3ac9-052fcb4b3c5e'}, {'Heartbeatstatus': 'gray', 'Name': 'VIO-Compute-0', 'Instance UUID': '50228a13-2863-ae65-1041-5858a1e266fb'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu16.04testsnap (680d3f89-3407-41b4-85f6-72a1696926b3)', 'Instance UUID': '502243bd-6973-239d-a749-26a31e0a2101'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_16.04_postgres_eph_snap (1d2e2ca8-f566-4108-9af6-e5539cf9e9ca)', 'Instance UUID': '5022f98b-c465-86bb-2044-1e285e0c5dd8'}, {'Heartbeatstatus': 'gray', 'Name': 'Z1dcZONESTATEpstg00_snapshot (c70da0d9-5b0f-414d-b1c7-6ca521879ed6)', 'Instance UUID': '5022ae6f-b728-acce-0eb2-01a19f38958e'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_16.04_snapEFI (7b5ad0bd-acbb-40d8-af84-5f6b3a8be85e)', 'Instance UUID': '502221a2-7c23-d7a3-11f2-9656368e4cd3'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-vid (a40d3b40-7542-4410-990f-d0be53060879)', 'Instance UUID': 'a40d3b40-7542-4410-990f-d0be53060879'}, {'Heartbeatstatus': 'green', 'Name': 'zldcNorthIndiaUPcdap02 (3dda2c96-1fd0-4ae1-b820-95e857464315)', 'Instance UUID': '3dda2c96-1fd0-4ae1-b820-95e857464315'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-aai (737e06e7-cc36-4196-bc67-1675f15957cd)', 'Instance UUID': '737e06e7-cc36-4196-bc67-1675f15957cd'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-robot (676703cd-49d6-499d-9cd7-3d317097ef90)', 'Instance UUID': '676703cd-49d6-499d-9cd7-3d317097ef90'}, {'Heartbeatstatus': 'green', 'Name': 'zldcNorthIndiaUPpstg00 (66e51416-b6c0-443a-acda-731230c06a96)', 'Instance UUID': '66e51416-b6c0-443a-acda-731230c06a96'}, {'Heartbeatstatus': 'green', 'Name': 'test ubuntu 13oct (337a4ebc-51f6-4119-bca8-f06f57a7907f)', 'Instance UUID': '337a4ebc-51f6-4119-bca8-f06f57a7907f'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-message-router (0e14c790-2bdb-4eaa-adee-d0655931499c)', 'Instance UUID': '0e14c790-2bdb-4eaa-adee-d0655931499c'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-sdnc (7337a948-b303-4409-b643-d09e92b48950)', 'Instance UUID': '7337a948-b303-4409-b643-d09e92b48950'}, {'Heartbeatstatus': 'green', 'Name': 'zldcNorthIndiaUPcoll00 (91145edd-f916-46b4-9193-4f1cc7ba836e)', 'Instance UUID': '91145edd-f916-46b4-9193-4f1cc7ba836e'}, {'Heartbeatstatus': 'green', 'Name': 'zldcNorthIndiaUPcdap00 (1e452aaa-ed6d-4519-b16b-eee6294bbaae)', 'Instance UUID': '1e452aaa-ed6d-4519-b16b-eee6294bbaae'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-appc (d22a37b3-56c5-45e3-b07e-3b57a953c70e)', 'Instance UUID': 'd22a37b3-56c5-45e3-b07e-3b57a953c70e'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-policy (a2fd952d-398f-4a10-8d67-517d7568d7ae)', 'Instance UUID': 'a2fd952d-398f-4a10-8d67-517d7568d7ae'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-portal (9b0aec34-59e2-44bd-8009-0f2a80db62e2)', 'Instance UUID': '9b0aec34-59e2-44bd-8009-0f2a80db62e2'}, {'Heartbeatstatus': 'green', 'Name': 'zldcNorthIndiaUPcdap01 (77abd09e-c88c-4a75-a68d-6ef47236a6d8)', 'Instance UUID': '77abd09e-c88c-4a75-a68d-6ef47236a6d8'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-sdc (c310a0bd-4d56-4e95-85d8-93acc8335c36)', 'Instance UUID': 'c310a0bd-4d56-4e95-85d8-93acc8335c36'}, {'Heartbeatstatus': 'green', 'Name': 'ubuntu14.04HA (fbcc941e-e61d-48a6-85e0-9a26695d8a0f)', 'Instance UUID': 'fbcc941e-e61d-48a6-85e0-9a26695d8a0f'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-dcae-controller (c723b2de-25b7-4e9f-b85b-1fb20b52c339)', 'Instance UUID': 'c723b2de-25b7-4e9f-b85b-1fb20b52c339'}, {'Heartbeatstatus': 'green', 'Name': 'onap-vm-mso (01dc316e-388e-4cd9-a72a-c806da4b0833)', 'Instance UUID': '01dc316e-388e-4cd9-a72a-c806da4b0833'}, {'Heartbeatstatus': 'gray', 'Name': 'onap-vm-dns-server (f162bab2-26dc-4288-ac3c-f332b7dd64c7)', 'Instance UUID': 'f162bab2-26dc-4288-ac3c-f332b7dd64c7'}, {'Heartbeatstatus': 'gray', 'Name': 'zldcNorthIndiaUPcdap01 (59d1953b-eec1-40f0-b3c3-160d2eae87f3)', 'Instance UUID': '59d1953b-eec1-40f0-b3c3-160d2eae87f3'}, {'Heartbeatstatus': 'gray', 'Name': 'zldcNorthIndiaUPcoll00 (98273d87-f516-4112-80ad-42a1e8139d0e)', 'Instance UUID': '98273d87-f516-4112-80ad-42a1e8139d0e'}, {'Heartbeatstatus': 'gray', 'Name': 'zldcNorthIndiaUPcdap02 (27eaa1d3-1257-40e3-b0ca-2c6911236ab4)', 'Instance UUID': '27eaa1d3-1257-40e3-b0ca-2c6911236ab4'}, {'Heartbeatstatus': 'gray', 'Name': 'zldcNorthIndiaUPpstg00 (d96aef31-73b4-4ff7-9dd2-21abaf07825f)', 'Instance UUID': 'd96aef31-73b4-4ff7-9dd2-21abaf07825f'}, {'Heartbeatstatus': 'gray', 'Name': 'zldcNorthIndiaUPcdap00 (131adfc0-91a7-468c-8b70-49c7512f26a3)', 'Instance UUID': '131adfc0-91a7-468c-8b70-49c7512f26a3'}, {'Heartbeatstatus': 'gray', 'Name': 'vol1-sdc-data (9c8cae82-2fc9-4014-b4e8-c48fbaa3a39c)', 'Instance UUID': '9c8cae82-2fc9-4014-b4e8-c48fbaa3a39c'}, {'Heartbeatstatus': 'gray', 'Name': '1b38a795-3342-4c78-9561-bd835f3fb150', 'Instance UUID': '502285f4-16c6-cc8b-7a0a-b740487be8fb'}, {'Heartbeatstatus': 'gray', 'Name': '44969d2f-b610-41d8-a1be-b7d648e7855e', 'Instance UUID': '5022e405-1e15-71c1-d711-fdbd77a6e63c'}, {'Heartbeatstatus': 'gray', 'Name': '1ce25f97-3fe6-46ea-803c-fa408963c7c3', 'Instance UUID': '5022731d-8005-5c75-6bb2-0c4d41abc8d3'}, {'Heartbeatstatus': 'gray', 'Name': 'd54d3255-9e97-4f3b-a5eb-7df2790079c9', 'Instance UUID': '5022a091-4198-6a2e-1934-9b567d6db8e1'}, {'Heartbeatstatus': 'gray', 'Name': 'f5758da1-1cc6-4dba-b49d-06c1b916e9e9', 'Instance UUID': '50224e2e-0e55-a2b5-e8f8-30c18022b5dc'}, {'Heartbeatstatus': 'gray', 'Name': '85c03839-ac42-4553-93c1-edfef7654c63', 'Instance UUID': '5022486d-8639-24aa-28fe-adbc2e7847e9'}, {'Heartbeatstatus': 'gray', 'Name': '6b829ed7-a6d2-4515-aff6-9c14502c31fb', 'Instance UUID': '502252b3-9a2d-8d59-8322-f438c9c7ca19'}, {'Heartbeatstatus': 'gray', 'Name': '2d7366ee-7082-451f-9651-3032eb21060c', 'Instance UUID': '5022fac2-8658-85a4-7e1f-d916ce3b1f95'}, {'Heartbeatstatus': 'gray', 'Name': '369dbffd-b575-40fc-93e8-0beeb6aa2c1c', 'Instance UUID': '50228391-c5d2-c62a-456e-0436aab9c2e9'}, {'Heartbeatstatus': 'gray', 'Name': 'fbebd7f9-7e5b-4390-adad-2df091abc2b5', 'Instance UUID': '50228af3-7686-ea84-4c90-8b525897a7be'}, {'Heartbeatstatus': 'gray', 'Name': 'inettest (60d1974d-a4c0-4692-a344-0ea2d9256d96)', 'Instance UUID': '60d1974d-a4c0-4692-a344-0ea2d9256d96'}, {'Heartbeatstatus': 'gray', 'Name': '89848475-69fa-4375-924c-79eb4dc9cdc7', 'Instance UUID': '50226fb3-7fc8-23aa-474f-f888833329b7'}, {'Heartbeatstatus': 'gray', 'Name': 'xenial-server-cloud-80G (fbebd7f9-7e5b-4390-adad-2df091abc2b5)', 'Instance UUID': 'c8f5248f-f488-5f8c-b08c-4395f005e75d'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_16.04_snapEFI-20G (7b5ad0bd-acbb-40d8-af84-5f6b3a8be85e)', 'Instance UUID': '39de4ab1-7dfa-55d0-8964-f5bf5742d9ee'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_14.04b-160G (369dbffd-b575-40fc-93e8-0beeb6aa2c1c)', 'Instance UUID': '1aa874c2-c3f2-5f96-b303-0bd3af3d7c52'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_14.04b-20G (369dbffd-b575-40fc-93e8-0beeb6aa2c1c)', 'Instance UUID': 'ed786c81-be81-566a-8710-a122dc0399be'}, {'Heartbeatstatus': 'gray', 'Name': 'xenial-server-cloud-20G (fbebd7f9-7e5b-4390-adad-2df091abc2b5)', 'Instance UUID': 'a7eb1923-fc15-58e1-b50f-6c1eb4af1c2d'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_16.04_snapEFI-80G (7b5ad0bd-acbb-40d8-af84-5f6b3a8be85e)', 'Instance UUID': '88751a88-d1e2-50aa-be95-b3f66b2f5ba5'}, {'Heartbeatstatus': 'gray', 'Name': 'xenial-server-cloud-160G (fbebd7f9-7e5b-4390-adad-2df091abc2b5)', 'Instance UUID': 'f9907133-7005-5de5-a5c0-80902324435e'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_14.04b-40G (369dbffd-b575-40fc-93e8-0beeb6aa2c1c)', 'Instance UUID': 'eb590b86-a4bd-5da2-b33a-52a88c803250'}, {'Heartbeatstatus': 'gray', 'Name': 'ubuntu_14.04b-80G (369dbffd-b575-40fc-93e8-0beeb6aa2c1c)', 'Instance UUID': 'c96367fe-35b8-51be-8391-ea7a1f075cec'}] diff --git a/vesagent/py/getAllVmInfo.py b/vesagent/py/getAllVmInfo.py new file mode 100644 index 0000000..a0c7c6b --- /dev/null +++ b/vesagent/py/getAllVmInfo.py @@ -0,0 +1,178 @@ +#!/usr/bin/env python +# VMware vSphere Python SDK +# Copyright (c) 2008-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. + +""" +List the vms on an ESX / vCenter host +""" + +from __future__ import print_function +from pyVim.connect import SmartConnect, Disconnect +from pyVmomi import vim +import argparse +import atexit +import getpass +import ssl +import json +import os.path + +fp = None +listjson = [] +propFile="/opt/etc/Agent.properties" + +def GetJsonFileLocation(): + AgntProps = {} + if True == os.path.isfile(propFile): + with open("/opt/etc/Agent.properties") as propfile: + for line in propfile: + name, var = line.partition("=")[::2] + AgntProps[name.strip()] = var + return AgntProps["Python_Output_Json"].strip() + else: + print(propFile+" Not Found") + return None + + +def GetArgs(): + """ + Supports the command-line arguments listed below. + """ + parser = argparse.ArgumentParser( + description='Process args for retrieving all the Virtual Machines') + parser.add_argument('-s', '--host', required=True, action='store', + help='Remote host to connect to') + parser.add_argument('-o', '--port', type=int, default=443, action='store', + help='Port to connect on') + parser.add_argument('-u', '--user', required=True, action='store', + help='User name to use when connecting to host') + parser.add_argument('-p', '--password', required=True, action='store', + help='Password to use when connecting to host') + args = parser.parse_args() + return args + + +def PrintVmInfo(vm, depth=1): + + """ + Print information for a particular virtual machine or recurse into a folder + or vApp with depth protection + """ + maxdepth = 10 + + + # if this is a group it will have children. if it does, recurse into them + # and then return + if hasattr(vm, 'childEntity'): + if depth > maxdepth: + return + vmList = vm.childEntity + for c in vmList: + PrintVmInfo(c, depth+1) + return + + + # if this is a vApp, it likely contains child VMs + # (vApps can nest vApps, but it is hardly a common usecase, so ignore that) + if isinstance(vm, vim.VirtualApp): + vmList = vm.vm + for c in vmList: + PrintVmInfo(c, depth + 1) + return + + + summary = vm.summary + #print("Name : ", summary.config.name) + #print("Path : ", summary.config.vmPathName) + #print("Guest : ", summary.config.guestFullName) + #print("Instance UUID: ", summary.config.instanceUuid) + #print("Heartbeatstatus: ", vm.guestHeartbeatStatus) + if summary.config.name and vm.guestHeartbeatStatus: + singleinfo={} + singleinfo.update({"Name":summary.config.name}) + singleinfo.update({"Instance UUID":summary.config.instanceUuid}) + singleinfo.update({"Heartbeatstatus":vm.guestHeartbeatStatus}) + #print ("Final SINGLEINFO") + listjson.append(singleinfo) + else: + print ("NAME, UUID OR HEARTBEAT NOT PRESENT") + + +def GetContent(args, context): + if hasattr(ssl, '_create_unverified_context'): + context = ssl._create_unverified_context() + si = SmartConnect(host=args.host, + user=args.user, + pwd=args.password, + port=int(args.port), + sslContext=context) + if not si: + print("Could not connect to the specified host using specified " + "username and password") + return -1 + + atexit.register(Disconnect, si) + return si.RetrieveContent() + + +def CreateJsonList(content): + for child in content.rootFolder.childEntity: + if hasattr(child, 'vmFolder'): + datacenter = child + vmFolder = datacenter.vmFolder + vmList = vmFolder.childEntity + for vm in vmList: + PrintVmInfo(vm) + print (listjson) + return listjson + + +def CreateJsonFile(JsonFile, jsonrecord): + if(len(jsonrecord) == 0): + return False + else: + #Return False if File Location is None + print("Json File Location is:",JsonFile) + fp = open(JsonFile, 'w') + if not fp: + return False + else: + json.dump(jsonrecord, fp,sort_keys=True, indent=2) + fp.close() + return True + + +def main(): + """ + Simple command-line program for listing the virtual machines on a system. + """ + args = GetArgs() + + context = None + content = GetContent(args, context) + + jsonrecord = CreateJsonList(content) + + JsonFile = GetJsonFileLocation() + if (None == JsonFile): + return -1 + + if(True == CreateJsonFile(JsonFile, jsonrecord)): + return 0 + else: + return -1 + +# Start program +if __name__ == "__main__": + main() diff --git a/vesagent/py/test_getAllVmInfo.py b/vesagent/py/test_getAllVmInfo.py new file mode 100644 index 0000000..4010d89 --- /dev/null +++ b/vesagent/py/test_getAllVmInfo.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# VMware vSphere Python SDK +# Copyright (c) 2008-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. + + +import unittest +import getAllVmInfo +import argparse +from dummylist import dummylist + +DummyJsonFile = "final-res.json" + +class TestgetAllVmInfo(unittest.TestCase): + def test_CreateJsonFilePositive(self): + #print ("dummylist is:",dummylist) + self.assertTrue(getAllVmInfo.CreateJsonFile(DummyJsonFile, dummylist)) + + def test_CreateJsonFileNegative(self): + dummylistempty = [] + #print ("dummylist is:",dummylistempty) + self.assertFalse(getAllVmInfo.CreateJsonFile(DummyJsonFile, dummylistempty)) + +if __name__ == '__main__': + unittest.main() |