id: Rubrik Poll Async Result - Rubrik Polaris version: -1 name: Rubrik Poll Async Result - Rubrik Polaris description: Poll async result for any asynchronous request made to rubrik. starttaskid: "0" tasks: "0": id: "0" taskid: e7a0c648-4655-489b-8b5f-d2e9933c32c6 type: start task: id: e7a0c648-4655-489b-8b5f-d2e9933c32c6 version: -1 name: "" iscommand: false brand: "" description: '' nexttasks: '#none#': - "8" separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 265, "y": 50 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "2": id: "2" taskid: e3125302-cca2-4074-80b0-0b97e593cd7b type: playbook task: id: e3125302-cca2-4074-80b0-0b97e593cd7b version: -1 name: GenericPolling with Cluster IP Address description: |- Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete. This playbook implements polling by continuously running the command in Step \#2 until the operation completes. The remote action should have the following structure: 1. Initiate the operation. 2. Poll to check if the operation completed. 3. (optional) Get the results of the operation. playbookName: GenericPolling type: playbook iscommand: false brand: "" nexttasks: '#none#': - "5" scriptarguments: AdditionalPollingCommandArgNames: simple: cluster_id,cluster_ip_address AdditionalPollingCommandArgValues: complex: root: inputs.ClusterId transformers: - operator: append args: item: value: simple: inputs.cluster_ip_address iscontext: true - operator: join args: separator: value: simple: ',' Ids: complex: root: inputs.RequestId Interval: complex: root: inputs.PollingInterval PollingCommandArgName: simple: request_id PollingCommandName: simple: rubrik-gps-async-result Timeout: complex: root: inputs.PollingTimeout dt: simple: RubrikPolaris.GPSAsyncResult(val.status === 'RUNNING' || val.status === 'QUEUED' || val.status === 'ACQUIRING').id separatecontext: true continueonerrortype: "" loop: iscommand: false exitCondition: "" wait: 1 max: 100 view: |- { "position": { "x": 50, "y": 370 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "5": id: "5" taskid: 00e52f45-004a-4078-83f5-cd64777beb14 type: regular task: id: 00e52f45-004a-4078-83f5-cd64777beb14 version: -1 name: Get async results description: Retrieve the result of an asynchronous request. This command will retrieve the result of requests made by commands "rubrik-gps-snapshot-files-download", "rubrik-gps-vm-livemount", "rubrik-gps-vm-export" and "rubrik-gps-vm-snapshot-create". script: '|||rubrik-gps-async-result' type: regular iscommand: true brand: "" nexttasks: '#none#': - "6" scriptarguments: cluster_id: complex: root: inputs.ClusterId cluster_ip_address: complex: root: inputs.cluster_ip_address request_id: complex: root: inputs.RequestId separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 265, "y": 545 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "6": id: "6" taskid: 3749f6c7-ea16-46e2-803b-2a4f9eb47d04 type: title task: id: 3749f6c7-ea16-46e2-803b-2a4f9eb47d04 version: -1 name: Done type: title iscommand: false brand: "" description: '' separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 265, "y": 720 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "7": id: "7" taskid: 2ade9a95-3458-4ee0-8b13-3323eb77356a type: playbook task: id: 2ade9a95-3458-4ee0-8b13-3323eb77356a version: -1 name: GenericPolling description: |- Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete. This playbook implements polling by continuously running the command in Step \#2 until the operation completes. The remote action should have the following structure: 1. Initiate the operation. 2. Poll to check if the operation completed. 3. (optional) Get the results of the operation. playbookName: GenericPolling type: playbook iscommand: false brand: "" nexttasks: '#none#': - "5" scriptarguments: AdditionalPollingCommandArgNames: simple: cluster_id AdditionalPollingCommandArgValues: complex: root: inputs.ClusterId Ids: complex: root: inputs.RequestId Interval: complex: root: inputs.PollingInterval PollingCommandArgName: simple: request_id PollingCommandName: simple: rubrik-gps-async-result Timeout: complex: root: inputs.PollingTimeout dt: simple: RubrikPolaris.GPSAsyncResult(val.status === 'RUNNING' || val.status === 'QUEUED' || val.status === 'ACQUIRING').id separatecontext: true continueonerrortype: "" loop: iscommand: false exitCondition: "" wait: 1 max: 100 view: |- { "position": { "x": 480, "y": 370 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "8": id: "8" taskid: cf09feb1-c59e-4529-8370-7758a827f577 type: condition task: id: cf09feb1-c59e-4529-8370-7758a827f577 version: -1 name: Does Cluster IP address exists? description: Check if the Cluster IP address exists in the playbook input. scriptName: Exists type: condition iscommand: false brand: "" nexttasks: '#default#': - "7" "yes": - "2" scriptarguments: value: complex: root: inputs.cluster_ip_address transformers: - operator: trim separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 265, "y": 195 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false view: |- { "linkLabelsPosition": {}, "paper": { "dimensions": { "height": 735, "width": 810, "x": 50, "y": 50 } } } inputs: - key: ClusterId value: {} required: true description: Cluster ID of the object. playbookInputQuery: - key: RequestId value: {} required: true description: ID of the asynchronous request. playbookInputQuery: - key: PollingInterval value: simple: "5" required: false description: Frequency with which the polling command will run (minutes). playbookInputQuery: - key: PollingTimeout value: simple: "720" required: false description: Amount of time to poll before declaring a timeout and resuming the playbook (in minutes). playbookInputQuery: - key: cluster_ip_address value: {} required: false description: |- IP address of the cluster node to access the download link. Only required to retrieve the results of the command "rubrik-gps-snapshot-files-download". Note: Users can retrieve the list of the IP addresses by executing the "rubrik-gps-cluster-list" command. playbookInputQuery: outputs: - contextPath: RubrikPolaris.GPSAsyncResult description: Response of async result. tests: - RubrikPolaris-Test fromversion: 6.0.0