Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 46 additions & 17 deletions workflows/argo-events/workflowtemplates/inspect-server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ spec:
value: "{{workflow.parameters.node}}"
- name: param
value: uuid
- name: server-start-state
# read the current server state
- name: server-driver
# read the currently used server driver
depends: "node-id.Succeeded"
template: openstack-read-param
arguments:
Expand All @@ -39,10 +39,10 @@ spec:
- name: object_ref
value: "{{tasks.node-id.outputs.result}}"
- name: param
value: provision_state
- name: server-driver
# read the currently used server driver
depends: "server-start-state.Succeeded"
value: driver
- name: server-start-state
# read the current server state
depends: "server-driver.Succeeded"
template: openstack-read-param
arguments:
parameters:
Expand All @@ -51,21 +51,40 @@ spec:
- name: object_ref
value: "{{tasks.node-id.outputs.result}}"
- name: param
value: driver
value: provision_state
- name: fake-server
# systems using the fake-hardware driver need to be skipped over
depends: "server-start-state.Succeeded"
template: openstack-set-cmd
arguments:
parameters:
- name: object
value: node
- name: flag
value: "--resource-class"
- name: value
value: "fakehw"
- name: obj_id
value: "{{tasks.node-id.outputs.result}}"
when: >-
'{{tasks.server-driver.outputs.result}}' == 'fake-hardware' &&
'{{tasks.server-start-state.outputs.result}}' != 'active'
- name: manage-server
# move the server into manageable to inspect if needed
depends: "server-driver.Succeeded"
depends: "server-start-state.Succeeded"
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "manage"
- name: node_id
value: "{{tasks.node-id.outputs.result}}"
when: "{{tasks.server-start-state.outputs.result}} != 'manageable'"
when: >-
'{{tasks.server-start-state.outputs.result}}' != 'manageable' &&
'{{tasks.server-start-state.outputs.result}}' != 'active'
- name: server-set-inspect-redfish
# change the server to redfish based inspection
depends: "server-driver.Succeeded && (manage-server.Succeeded || manage-server.Skipped)"
depends: "server-start-state.Succeeded && (manage-server.Succeeded || manage-server.Skipped)"
template: openstack-set-cmd
arguments:
parameters:
Expand All @@ -77,10 +96,12 @@ spec:
value: "redfish"
- name: obj_id
value: "{{tasks.node-id.outputs.result}}"
when: "{{tasks.server-driver.outputs.result}} == 'redfish'"
when: >-
'{{tasks.server-driver.outputs.result}}' == 'redfish' &&
'{{tasks.server-start-state.outputs.result}}' != 'active'
- name: server-set-inspect-idrac-redfish
# change the server to idrac-redfish based inspection
depends: "server-driver.Succeeded && (manage-server.Succeeded || manage-server.Skipped)"
depends: "server-start-state.Succeeded && (manage-server.Succeeded || manage-server.Skipped)"
template: openstack-set-cmd
arguments:
parameters:
Expand All @@ -92,7 +113,9 @@ spec:
value: "idrac-redfish"
- name: obj_id
value: "{{tasks.node-id.outputs.result}}"
when: "{{tasks.server-driver.outputs.result}} == 'idrac'"
when: >-
'{{tasks.server-driver.outputs.result}}' == 'redfish' &&
'{{tasks.server-start-state.outputs.result}}' != 'active'
- name: inspect-server-redfish
# run redfish based inspection
depends: "server-set-inspect-redfish.Succeeded || server-set-inspect-idrac-redfish.Succeeded"
Expand All @@ -103,9 +126,10 @@ spec:
value: "inspect"
- name: node_id
value: "{{tasks.node-id.outputs.result}}"
when: "'{{tasks.server-start-state.outputs.result}}' != 'active'"
- name: server-set-inspect-agent
# change the server to agent based inspection
depends: "inspect-server-redfish.Succeeded || inspect-server-redfish.Omitted"
depends: "server-start-state.Succeeded && (inspect-server-redfish.Succeeded || inspect-server-redfish.Omitted)"
Copy link
Contributor

@andrrax andrrax Nov 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't this run if inspect-server-redfish (a just completed previous redfish inpsection) completed successfully? Is that really what is intended? I would expect an agent based inspection to only run if redfish/idrac-redfish isn't possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right that's the end goal. But right now due to some hardware constraints and all the data we want not yet being in the redfish inspection data this is a compromise to get us to use redfish as much as possible.

template: openstack-set-cmd
arguments:
parameters:
Expand All @@ -117,27 +141,32 @@ spec:
value: "agent"
- name: obj_id
value: "{{tasks.node-id.outputs.result}}"
when: "'{{tasks.server-start-state.outputs.result}}' != 'active'"
- name: inspect-server-agent
# run agent based inspection
depends: "server-set-inspect-agent.Succeeded"
depends: "server-start-state.Succeeded && server-set-inspect-agent.Succeeded"
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "inspect"
- name: node_id
value: "{{tasks.node-id.outputs.result}}"
when: "'{{tasks.server-start-state.outputs.result}}' != 'active'"
- name: return-server
# returns a server to its previous state if needed
depends: "inspect-server-agent.Succeeded"
depends: "server-start-state.Succeeded && inspect-server-agent.Succeeded"
template: openstack-wait-cmd
arguments:
parameters:
- name: operation
value: "{{tasks.server-start-state.outputs.result}}"
- name: node_id
value: "{{tasks.node-id.outputs.result}}"
when: "{{tasks.server-start-state.outputs.result}} != 'manageable'"
when: >-
'{{tasks.server-start-state.outputs.result}}' != 'manageable' &&
'{{tasks.server-start-state.outputs.result}}' != 'active' &&
'{{tasks.server-start-state.outputs.result}}' != 'enroll'
- name: openstack-wait-cmd
inputs:
parameters:
Expand Down
Loading