diff --git a/samples/vsphere/services/services_list.py b/samples/vsphere/services/services_list.py new file mode 100644 index 00000000..1be3cac5 --- /dev/null +++ b/samples/vsphere/services/services_list.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +""" +* ******************************************************* +* Copyright (c) VMware, Inc. 2016. All Rights Reserved. +* SPDX-License-Identifier: MIT +* ******************************************************* +* +* DISCLAIMER. THIS PROGRAM IS PROVIDED TO YOU "AS IS" WITHOUT +* WARRANTIES OR CONDITIONS OF ANY KIND, WHETHER ORAL OR WRITTEN, +* EXPRESS OR IMPLIED. THE AUTHOR SPECIFICALLY DISCLAIMS ANY IMPLIED +* WARRANTIES OR CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, +* NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. +""" + +__author__ = 'VMware, Inc.' +__copyright__ = 'Copyright 2018 VMware, Inc. All rights reserved.' +__vcenter_version__ = '6.7+' + +from tabulate import tabulate + +from vmware.vapi.vsphere.client import create_vsphere_client +from samples.vsphere.common.ssl_helper import get_unverified_session + +from samples.vsphere.common import sample_cli +from samples.vsphere.common import sample_util + +class ListServices(object): + """ + Demonstrates the details of vCenter Services + + Retrieves the vCenter Services, its Health Status and Service Startup Type. + + Prerequisites: + - vCenter Server + """ + + + def __init__(self): + # Create argument parser for standard inputs: + # server, username, password and skipverification + parser = sample_cli.build_arg_parser() + args = sample_util.process_cli_args(parser.parse_args()) + + # Skip server cert verification if needed. + # This is not recommended in production code. + session = get_unverified_session() if args.skipverification else None + + # Connect to vSphere client + self.client = create_vsphere_client(server=args.server, + username=args.username, + password=args.password, + session=session) + def run(self): + services_list = self.client.vcenter.services.Service.list_details() + table = [] + for key,value in services_list.items(): + row = [key, + value.name_key, + value.health, + value.state, + value.startup_type] + table.append(row) + headers = ["Service Name", "Service Name Key", "Service Health", "Service Status", "Service Startup Type"] + print(tabulate(table,headers)) + +def main(): + list_services = ListServices() + list_services.run() + +if __name__ == '__main__': + main() \ No newline at end of file