Dell Servers · Arazzo Workflow

Dell Servers Firmware Inventory and Task Audit

Version 1.0.0

Read the update service, list firmware versions, and poll active tasks.

1 workflow 1 source API 1 provider
View Spec View on GitHub HardwareInfrastructureManagementMonitoringServersArazzoWorkflows

Provider

dell-servers

Workflows

firmware-inventory-tasks
Read update service, list firmware inventory, then poll tasks to idle.
Confirms update capability, enumerates installed firmware, and polls the task service until no task is still running.
3 steps inputs: taskRunningName outputs: firmwareCount, firmwareMembers, remainingTasks
1
getUpdateService
getUpdateService
Read the update service resource to confirm update capability.
2
listFirmware
listFirmwareInventory
List the firmware inventory across all server components.
3
pollTasks
listTasks
Read the task service collection and loop while any lifecycle task is still present; end once the collection is empty.

Source API Descriptions

Arazzo Workflow Specification

dell-servers-firmware-inventory-tasks-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Dell Servers Firmware Inventory and Task Audit
  summary: Read the update service, list firmware versions, and poll active tasks.
  description: >-
    Audits the firmware state of a Dell PowerEdge server through the iDRAC
    Redfish API. The workflow reads the update service to confirm update
    capability, lists the firmware inventory across every server component, and
    then reads the task service to detect any in-flight lifecycle controller
    jobs such as firmware updates. The task list is polled until no task
    remains running, giving a clean stopping point before initiating new
    update work. Because this iDRAC description does not expose a SimpleUpdate
    push action, the actual firmware push is adapted out and this flow focuses
    on inventory and task observation. 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: idracRedfish
  url: ../openapi/dell-servers-idrac-redfish-openapi.yml
  type: openapi
workflows:
- workflowId: firmware-inventory-tasks
  summary: Read update service, list firmware inventory, then poll tasks to idle.
  description: >-
    Confirms update capability, enumerates installed firmware, and polls the
    task service until no task is still running.
  inputs:
    type: object
    properties:
      taskRunningName:
        type: string
        description: >-
          Optional placeholder retained for documentation of the polled state;
          not sent in any request.
  steps:
  - stepId: getUpdateService
    description: Read the update service resource to confirm update capability.
    operationId: getUpdateService
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updateService: $response.body
  - stepId: listFirmware
    description: List the firmware inventory across all server components.
    operationId: listFirmwareInventory
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firmwareCount: $response.body#/[email protected]
      firmwareMembers: $response.body#/Members
  - stepId: pollTasks
    description: >-
      Read the task service collection and loop while any lifecycle task is
      still present; end once the collection is empty.
    operationId: listTasks
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      taskCount: $response.body#/[email protected]
      tasks: $response.body#/Members
    onSuccess:
    - name: tasksRunning
      type: goto
      stepId: pollTasks
      criteria:
      - context: $response.body
        condition: $.Members.length > 0
        type: jsonpath
    - name: tasksIdle
      type: end
      criteria:
      - context: $response.body
        condition: $.Members.length == 0
        type: jsonpath
  outputs:
    firmwareCount: $steps.listFirmware.outputs.firmwareCount
    firmwareMembers: $steps.listFirmware.outputs.firmwareMembers
    remainingTasks: $steps.pollTasks.outputs.taskCount