arazzo: 1.0.1
info:
title: Dell Servers Power Action with State Polling
summary: Issue a power action on a system and poll until the power state settles.
description: >-
Drives a power transition on a Dell PowerEdge server through the iDRAC
Redfish API and waits for it to complete. The workflow reads the current
power state, issues the requested reset action, and then re-reads the
system on a poll loop until the reported power state is no longer a
transitional value such as PoweringOn or PoweringOff. Branching directs the
flow back into the poll loop while the system is still transitioning and
ends the flow once a stable state is reached. 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
x-realizes-capability-ids:
- BC-600.50
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-600.50
capability_name: IT Infrastructure Management
spec: dell-servers-systems-api-openapi.yml
confidence: 0.82
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: systemsApi
url: ../openapi/dell-servers-systems-api-openapi.yml
type: openapi
workflows:
- workflowId: power-action-poll
summary: Issue a reset action and poll the system until power state settles.
description: >-
Reads current power state, issues a reset action, then polls the system
resource until the power state is no longer transitional.
inputs:
type: object
required:
- systemId
- resetType
properties:
systemId:
type: string
description: Computer system identifier, typically System.Embedded.1.
resetType:
type: string
description: >-
Reset action to perform, for example On, ForceOff, GracefulShutdown,
GracefulRestart, ForceRestart, or PowerCycle.
steps:
- stepId: getInitialState
description: Read the system to capture the power state before the action.
operationId: getSystem
parameters:
- name: SystemId
in: path
value: $inputs.systemId
successCriteria:
- condition: $statusCode == 200
outputs:
startingPowerState: $response.body#/PowerState
- stepId: issueReset
description: Issue the requested reset action on the system.
operationId: resetSystem
parameters:
- name: SystemId
in: path
value: $inputs.systemId
requestBody:
contentType: application/json
payload:
ResetType: $inputs.resetType
successCriteria:
- condition: $statusCode == 204
outputs:
resetStatus: $statusCode
- stepId: pollPowerState
description: >-
Re-read the system and inspect its power state. Loop back while the state
is still transitioning; end once it has settled to On or Off.
operationId: getSystem
parameters:
- name: SystemId
in: path
value: $inputs.systemId
successCriteria:
- condition: $statusCode == 200
outputs:
powerState: $response.body#/PowerState
health: $response.body#/Status/Health
onSuccess:
- name: stillTransitioning
type: goto
stepId: pollPowerState
criteria:
- context: $response.body
condition: $.PowerState == 'PoweringOn' || $.PowerState == 'PoweringOff'
type: jsonpath
- name: settled
type: end
criteria:
- context: $response.body
condition: $.PowerState == 'On' || $.PowerState == 'Off'
type: jsonpath
outputs:
startingPowerState: $steps.getInitialState.outputs.startingPowerState
finalPowerState: $steps.pollPowerState.outputs.powerState
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.