Rubrik Poll Async Result - Rubrik Polaris

Poll async result for any asynchronous request made to rubrik.

Rubrik Security Cloud · 6 tasks · 5 inputs · 1 output

Details

IDRubrik Poll Async Result - Rubrik Polaris
From Version6.0.0
Tasks6

README

Poll async result for any asynchronous request made to rubrik.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

  • GenericPolling

Integrations

  • RubrikPolaris

Scripts

  • Exists

Commands

  • rubrik-gps-async-result

Playbook Inputs


Name Description Default Value Required
ClusterId Cluster ID of the object.   Required
RequestId ID of the asynchronous request.   Required
PollingInterval Frequency with which the polling command will run (minutes). 5 Optional
PollingTimeout Amount of time to poll before declaring a timeout and resuming the playbook (in minutes). 720 Optional
cluster_ip_address 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.
  Optional

Playbook Outputs


Path Description Type
RubrikPolaris.GPSAsyncResult Response of async result. unknown

Playbook Image


Rubrik Poll Async Result - Rubrik Polaris

Inputs

  • ClusterId — Cluster ID of the object.
  • RequestId — ID of the asynchronous request.
  • PollingInterval — Frequency with which the polling command will run (minutes).
  • PollingTimeout — Amount of time to poll before declaring a timeout and resuming the playbook (in minutes).
  • cluster_ip_address — 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.

Outputs

  • RubrikPolaris.GPSAsyncResult — Response of async result.

Commands used

rubrik-gps-async-result

Flowchart

yes Start Start GenericPolling with Cluster IP Address - GenericPolling GenericPolling with Clust... GenericPolling Get async results - rubrik-gps-async-result Get async results rubrik-gps-async-result Done Done GenericPolling - GenericPolling GenericPolling GenericPolling Does Cluster IP address exists? - Exists Does Cluster IP address e... Exists
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