From 6195ed794899f7c6bb86d9641cc19ccc01b9b92f Mon Sep 17 00:00:00 2001 From: Tianhao He Date: Thu, 14 Mar 2019 18:09:02 +0800 Subject: [PATCH] add list vmc task sample Signed-off-by: Tianhao He --- samples/vmc/networks_nsxt/hello_world.py | 1 + samples/vmc/tasks/list_tasks.py | 67 ++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 samples/vmc/tasks/list_tasks.py diff --git a/samples/vmc/networks_nsxt/hello_world.py b/samples/vmc/networks_nsxt/hello_world.py index 0c51fb04..d920917e 100644 --- a/samples/vmc/networks_nsxt/hello_world.py +++ b/samples/vmc/networks_nsxt/hello_world.py @@ -64,5 +64,6 @@ def main(): auth_example = AuthExample() auth_example.get_domains() + if __name__ == '__main__': main() diff --git a/samples/vmc/tasks/list_tasks.py b/samples/vmc/tasks/list_tasks.py new file mode 100644 index 00000000..9c9f6bc5 --- /dev/null +++ b/samples/vmc/tasks/list_tasks.py @@ -0,0 +1,67 @@ +""" +* ******************************************************* +* Copyright (c) VMware, Inc. 2019. 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.' + +import argparse + +from com.vmware.vmc.model_client import Task +from vmware.vapi.vmc.client import create_vmc_client + +""" +Demonstrates how to list tasks with given status + +Sample Prerequisites: + - VMware Cloud on AWS console API access +""" + +accepted = [Task.STATUS_STARTED, Task.STATUS_CANCELING, Task.STATUS_FINISHED, + Task.STATUS_FAILED, Task.STATUS_CANCELED] + +parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) + +parser.add_argument('--refresh-token', + required=True, + help='VMware Cloud API refresh token') + +parser.add_argument('--org-id', + required=True, + help='Organization identifier.') + +parser.add_argument('--task-status', + help='Task status to filter. Possible values are: {} \ + Show all tasks if no value is passed'.format(accepted)) + +args = parser.parse_args() + +vmc_client = create_vmc_client(args.refresh_token) + +tasks = [] + +if args.task_status: + status = args.task_status.upper() + + if status not in accepted: + raise ValueError('Status "{}" is invalid, accept values are {}'. + format(args.task_status, accepted)) + + tasks = vmc_client.orgs.Tasks.list( + org=args.org_id, filter="(status eq '{}')".format(status)) + + print('# List all "{}" tasks:\n'.format(status)) +else: + tasks = vmc_client.orgs.Tasks.list(org=args.org_id) + print('# List all tasks:\n') + +for task in tasks: + print('{}\n'.format(task))