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: taskServiceApi
url: ../openapi/dell-servers-task-service-api-openapi.yml
type: openapi
- name: updateServiceApi
url: ../openapi/dell-servers-update-service-api-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#/Members@odata.count
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#/Members@odata.count
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
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.