zoukankan      html  css  js  c++  java
  • VMware Orchestrator API调用Workflow 示例

    1、获取Workflow信息

    1.1 workflow id

    1.2 workflow input

    1.3 workflow output

    2、Python示例代码

    import requests
    import time
    from django.conf import settings
    
    
    def get_result(result_url, headers, user, password):
        """
        执行Workflow执行结果查询
        """
        result_response = requests.get(url=result_url, headers=headers, auth=(user, password))
        return result_response.json()
    
    
    def get_vm_owner(user, password, workflow_id, vm_name):
        """
        通过VM名称获取VM Owner
        """
        submit_url = "https://vro-server-ip/vco/api/workflows/{}/executions".format(workflow_id)
        headers = {
            "Content-Type": "Application/Json"
        }
    
        request_body = {
            "parameters": [
                {
                    "type": "string",  # input参数类型
                    "name": "vm_name",  # input参数名称 
                    "value": {
                        "string": {
                            "value": vm_name  # input参数值
                        }
                    }
                }
            ]
        }
        response = requests.post(url=submit_url, headers=headers, json=request_body, auth=(user, password))  # 执行Workflow API异步调用
        if response.status_code == 202:
            result_url = response.headers.get("Location")  # 获取Workflow执行结果的URL
            time.sleep(10)  # 等待Workflow查询执行完成
    
            try_number = 3  # 尝试3次
            while try_number:
                result_json = get_result(result_url, headers, user, password)  # 查询Workflow执行结果
                if result_json.get("state") == "running":  # 如果Workflow还在执行中,继续循环
                    try_number = try_number - 1
                    time.sleep(3)
             continue
    if result_json.get("state") == "completed":  # 如果Workflow执行完成,获取output值 return result_json.get("output-parameters")[0]["value"]["string"]["value"] if result_json.get("state") in ["failed", "canceled"]: return None

    if __name__ == '__main__':
    owner = get_vm_owner("vro_user", "vro_password", "workflow_id", "vm_name")
    print(owner)
  • 相关阅读:
    AT&T不能访问公司网络
    尝鲜:windows 7 来了
    .net控件编程 资料篇
    Annual part 2009
    从Visual studio 2005移出Visual Assist
    不能在IIS 5.1增加应用程序扩展的BUG
    The problem of the user is not associated with a trusted sql server connection 混合登录选项设置的问题
    让我们难忘的那些歌曲
    分享利用VPC防止病毒软件的进入你的windows电脑
    杂读 May 12,2008
  • 原文地址:https://www.cnblogs.com/vincenshen/p/12536757.html
Copyright © 2011-2022 走看看