Cisco Expressway · Arazzo Workflow

Cisco Expressway Upgrade Progress Monitor

Version 1.0.0

Read upgrade status, then read system status to confirm the running version.

1 workflow 1 source API 1 provider
View Spec View on GitHub CollaborationFirewall TraversalH.323Session Border ControllerSIPUnified CommunicationsVideo ConferencingArazzoWorkflows

Provider

cisco-expressway

Workflows

upgrade-progress-monitor
Read upgrade status and, when complete, confirm the running version.
Reads upgrade progress status and, when the phase is Complete, reads system status to confirm the running software version; otherwise it ends.
2 steps inputs: host, password, username outputs: progressPercentage, softwareVersion, status
1
readUpgradeStatus
getUpgradeStatus
Read the upgrade progress status and branch on whether the upgrade phase is Complete.
2
confirmRunningVersion
getSystemStatus
Read the system status overview to confirm the software version now running after a completed upgrade.

Source API Descriptions

Arazzo Workflow Specification

cisco-expressway-upgrade-progress-monitor-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Cisco Expressway Upgrade Progress Monitor
  summary: Read upgrade status, then read system status to confirm the running version.
  description: >-
    Monitors an in-flight or recent software upgrade by reading the upgrade
    progress status and branching on the reported phase: when the upgrade is
    Complete it reads the system status overview to confirm the running software
    version, and when it is still progressing or failed the flow ends so the
    phase is surfaced to the caller. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: statusApi
  url: ../openapi/cisco-expressway-status-api-openapi.yml
  type: openapi
workflows:
- workflowId: upgrade-progress-monitor
  summary: Read upgrade status and, when complete, confirm the running version.
  description: >-
    Reads upgrade progress status and, when the phase is Complete, reads system
    status to confirm the running software version; otherwise it ends.
  inputs:
    type: object
    required:
    - host
    - username
    - password
    properties:
      host:
        type: string
        description: FQDN or IP address of the Expressway node (server variable host).
      username:
        type: string
        description: Expressway administrator username for HTTP Basic auth.
      password:
        type: string
        description: Expressway administrator password for HTTP Basic auth.
  steps:
  - stepId: readUpgradeStatus
    description: >-
      Read the upgrade progress status and branch on whether the upgrade phase is
      Complete.
    operationId: getUpgradeStatus
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/Status
      progressPercentage: $response.body#/ProgressPercentage
    onSuccess:
    - name: upgradeComplete
      type: goto
      stepId: confirmRunningVersion
      criteria:
      - context: $response.body
        condition: $.Status == 'Complete'
        type: jsonpath
    - name: upgradeIncomplete
      type: end
      criteria:
      - context: $response.body
        condition: $.Status != 'Complete'
        type: jsonpath
  - stepId: confirmRunningVersion
    description: >-
      Read the system status overview to confirm the software version now running
      after a completed upgrade.
    operationId: getSystemStatus
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      softwareVersion: $response.body#/SoftwareVersion
      uptime: $response.body#/Uptime
  outputs:
    status: $steps.readUpgradeStatus.outputs.status
    progressPercentage: $steps.readUpgradeStatus.outputs.progressPercentage
    softwareVersion: $steps.confirmRunningVersion.outputs.softwareVersion