Dell Servers · Arazzo Workflow

Dell Servers OpenManage Template Deployment Job

Version 1.0.0

Pick a configuration template, run a deploy job, and poll it to completion.

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

Provider

dell-servers

Workflows

ome-template-deploy-job
Resolve a template, create a deploy job, then poll it to completion.
Lists configuration templates, creates a deployment job targeting a device, and polls the job until it reaches one hundred percent.
3 steps inputs: deviceId, jobName, targetTypeId, targetTypeName outputs: finalStatus, jobId, templateId
1
listTemplates
listConfigurationTemplates
List configuration templates to resolve the template to deploy.
2
createDeployJob
createJob
Create a job that targets the device for the configuration deployment and run it immediately.
3
pollJob
getJob
Read the job and loop while it is still in progress; end once the completion percentage reaches one hundred.

Source API Descriptions

Arazzo Workflow Specification

dell-servers-ome-template-deploy-job-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Dell Servers OpenManage Template Deployment Job
  summary: Pick a configuration template, run a deploy job, and poll it to completion.
  description: >-
    Applies a server configuration template to a device through OpenManage
    Enterprise and waits for the deployment to finish. The workflow lists the
    configuration templates to resolve the template identifier, creates a job
    that targets the device for the configuration deployment, and then polls the
    job until its completion percentage reaches one hundred. Branching loops
    back into the poll while the job is still in progress. The selected template
    identifier is carried into the job description so the deploy is traceable.
    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: openManageEnterprise
  url: ../openapi/dell-servers-openmanage-enterprise-openapi.yml
  type: openapi
workflows:
- workflowId: ome-template-deploy-job
  summary: Resolve a template, create a deploy job, then poll it to completion.
  description: >-
    Lists configuration templates, creates a deployment job targeting a device,
    and polls the job until it reaches one hundred percent.
  inputs:
    type: object
    required:
    - deviceId
    - jobName
    - targetTypeId
    properties:
      deviceId:
        type: integer
        description: Device to receive the configuration template.
      jobName:
        type: string
        description: Name for the template deployment job.
      targetTypeId:
        type: integer
        description: Target type identifier describing the supplied target.
      targetTypeName:
        type: string
        description: Target type name, for example DEVICE.
  steps:
  - stepId: listTemplates
    description: List configuration templates to resolve the template to deploy.
    operationId: listConfigurationTemplates
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      templateId: $response.body#/value/0/Id
      templateName: $response.body#/value/0/Name
  - stepId: createDeployJob
    description: >-
      Create a job that targets the device for the configuration deployment and
      run it immediately.
    operationId: createJob
    requestBody:
      contentType: application/json
      payload:
        JobName: $inputs.jobName
        JobDescription: Template deployment job created via Arazzo workflow
        Schedule: startnow
        Targets:
        - Id: $inputs.deviceId
          Data: ''
          TargetType:
            Id: $inputs.targetTypeId
            Name: $inputs.targetTypeName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      jobId: $response.body#/Id
  - stepId: pollJob
    description: >-
      Read the job and loop while it is still in progress; end once the
      completion percentage reaches one hundred.
    operationId: getJob
    parameters:
    - name: JobId
      in: path
      value: $steps.createDeployJob.outputs.jobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      percentComplete: $response.body#/PercentComplete
      jobStatus: $response.body#/JobStatus/Name
    onSuccess:
    - name: stillRunning
      type: goto
      stepId: pollJob
      criteria:
      - context: $response.body
        condition: $.PercentComplete < 100
        type: jsonpath
    - name: complete
      type: end
      criteria:
      - context: $response.body
        condition: $.PercentComplete == 100
        type: jsonpath
  outputs:
    templateId: $steps.listTemplates.outputs.templateId
    jobId: $steps.createDeployJob.outputs.jobId
    finalStatus: $steps.pollJob.outputs.jobStatus