
Fixed action status_message update restrictions to allow updates when action is already in SKIPPED state. Previously, users could only update the status_message when initially transitioning to SKIPPED state. Changes include: - Modified validation logic to allow status_message updates for SKIPPED actions - Changed exception type from PatchError to Conflict for better semantics - Added comprehensive test coverage for the new behavior - Updated API documentation and samples - Added release note documenting the fix This enables administrators to fix typos, provide more detailed explanations, or expand on reasons in action status messages after the action has been skipped. Generated-By: claude-code Closes-Bug: #2121601 Change-Id: I64def708389a8ecd32080fba1638a4499ead349d Signed-off-by: Sean Mooney <work@seanmooney.info>
747 lines
16 KiB
YAML
747 lines
16 KiB
YAML
# variables in header
|
|
header_version:
|
|
description: |
|
|
Specific API microversion used to generate this response.
|
|
in: header
|
|
required: true
|
|
type: string
|
|
openstack-api-max-version:
|
|
description: |
|
|
Maximum API microversion supported by this endpoint, eg. "1.1"
|
|
in: header
|
|
required: true
|
|
type: string
|
|
openstack-api-min-version:
|
|
description: |
|
|
Minimum API microversion supported by this endpoint, eg. "1.0"
|
|
in: header
|
|
required: true
|
|
type: string
|
|
openstack-api-version:
|
|
description: >
|
|
A request SHOULD include this header to indicate to the Watcher API service what
|
|
version the client supports. The server will transform the response object into
|
|
compliance with the requested version, if it is supported, or return a
|
|
406 Not Acceptable error.
|
|
If this header is not supplied, the server will response with server minimum
|
|
supported version.
|
|
in: header
|
|
required: true
|
|
type: string
|
|
openstack-request-id:
|
|
description: >
|
|
An unique ID for tracking the request. The request ID associated with the request
|
|
appears in the log lines for that request. By default, the middleware configuration
|
|
ensures that the request ID appears in the log files.
|
|
in: header
|
|
required: false
|
|
type: string
|
|
|
|
# Path
|
|
action_ident:
|
|
description: |
|
|
The UUID of the Action.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
actionplan_ident:
|
|
description: |
|
|
The UUID of the Action Plan.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
audit_ident:
|
|
description: |
|
|
The UUID or name of the Audit.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
audittemplate_ident:
|
|
description: |
|
|
The UUID or name of the Audit Template.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
goal_ident:
|
|
description: |
|
|
The UUID or name of the Goal.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
scoring_engine_ident:
|
|
description: |
|
|
The UUID or name of the Scoring Engine.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
service_ident:
|
|
description: |
|
|
The ID or name of the Service.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
strategy_ident:
|
|
description: |
|
|
The UUID or name of the Strategy.
|
|
in: path
|
|
required: true
|
|
type: string
|
|
|
|
# Query body
|
|
limit:
|
|
description: |
|
|
Requests a page size of items. Returns a number of items up to a ``limit``
|
|
value. Use the limit parameter to make an initial limited request and use
|
|
the ID of the last-seen item from the response as the ``marker`` parameter
|
|
value in a subsequent limited request.
|
|
in: query
|
|
required: false
|
|
type: integer
|
|
marker:
|
|
description: |
|
|
The ID of the last-seen item. Use the ``limit`` parameter to make an
|
|
initial limited request and use the ID of the last-seen item from the
|
|
response as the ``marker`` parameter value in a subsequent limited request.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
r_action_plan:
|
|
description: |
|
|
UUID of the action plan used for filtering.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
r_audit:
|
|
description: |
|
|
Optional UUID of an audit, to get only actions for that audit.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
r_goal:
|
|
description: |
|
|
The UUID or name of the Goal.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
r_strategy:
|
|
description: |
|
|
The UUID or name of the Strategy.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
r_type:
|
|
description: |
|
|
Type of data model user want to list. Default type is compute.
|
|
Supported values: compute.
|
|
Future support values: storage, baremetal.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
sort_dir:
|
|
description: |
|
|
Sorts the response by the requested sort direction.
|
|
A valid value is ``asc`` (ascending) or ``desc`` (descending).
|
|
Default is ``asc``.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
sort_key:
|
|
description: |
|
|
Sorts the response by the this attribute value. Default is ``id``.
|
|
in: query
|
|
required: false
|
|
type: string
|
|
|
|
# variables in the API response body
|
|
|
|
# Action
|
|
action_action_plan_uuid:
|
|
description: |
|
|
The action plan this action belongs to.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
action_description:
|
|
description: |
|
|
Action description.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
action_input_parameters:
|
|
description: |
|
|
Input parameters which are used by appropriate action type. For example,
|
|
``migration`` action takes into account such parameters as
|
|
``migration_type``, ``destination_node``, ``resource_id`` and
|
|
``source_node``. To see a list of supported action types and their input
|
|
parameters visit `Action plugins page <https://docs.openstack.org/watcher/latest/contributor/plugin/plugins.html#actions>`_.
|
|
in: body
|
|
required: true
|
|
type: JSON
|
|
action_parents:
|
|
description: |
|
|
UUIDs of parent actions.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
action_state:
|
|
description: |
|
|
State of Action.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
action_status_message:
|
|
description: |
|
|
Message with additional information about the Action state.
|
|
This field can be set when transitioning an action to SKIPPED state,
|
|
or updated for actions that are already in SKIPPED state to provide
|
|
more detailed explanations, fix typos, or expand on initial reasons.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.5
|
|
action_type:
|
|
description: |
|
|
Action type based on specific API action. Actions in Watcher are
|
|
pluggable, to see a list of supported action types visit
|
|
`Action plugins page <https://docs.openstack.org/watcher/latest/contributor/plugin/plugins.html#actions>`_.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Action Plan
|
|
actionplan_audit_uuid:
|
|
description: |
|
|
The UUID of the audit this acton plan belongs to.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
actionplan_efficacy_indicators:
|
|
description: |
|
|
The list of efficacy indicators associated to this action plan.
|
|
in: body
|
|
required: false
|
|
type: array
|
|
actionplan_global_efficacy:
|
|
description: |
|
|
The global efficacy of this action plan.
|
|
in: body
|
|
required: false
|
|
type: array
|
|
actionplan_hostname:
|
|
description: |
|
|
Hostname the actionplan is running on
|
|
in: body
|
|
required: false
|
|
type: string
|
|
actionplan_state:
|
|
description: |
|
|
State of this action plan. To get more information about states and
|
|
action plan's lifecycle, visit `Action Plan State Machine page <https://docs.openstack.org/watcher/latest/architecture.html#action-plan-state-machine>`_.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
actionplan_status_message:
|
|
description: |
|
|
Message with additional information about the Action Plan state.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.5
|
|
|
|
# Audit
|
|
audit_autotrigger:
|
|
description: |
|
|
Auto execute action plan once audit is succeeded.
|
|
in: body
|
|
required: false
|
|
type: boolean
|
|
audit_endtime_req:
|
|
description: |
|
|
The local time after which audit can't be executed.
|
|
It will be converted to UTC time by Watcher.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.1
|
|
audit_endtime_resp:
|
|
description: |
|
|
The UTC time after which audit can't be executed.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.1
|
|
audit_force:
|
|
description: |
|
|
Launch audit even if action plan is ongoing.
|
|
in: body
|
|
required: false
|
|
type: boolean
|
|
min_version: 1.2
|
|
audit_goal:
|
|
description: |
|
|
The UUID or name of the Goal.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_hostname:
|
|
description: |
|
|
Hostname the audit is running on
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_interval:
|
|
description: |
|
|
Time interval between audit's execution.
|
|
Can be set either in seconds or cron syntax.
|
|
Should be defined only for CONTINUOUS audits.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_name:
|
|
description: |
|
|
Name of this audit.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_next_run_time:
|
|
description: |
|
|
The next time audit launch. Defined only for CONTINUOUS audits.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_parameters:
|
|
description: |
|
|
The strategy parameters for this audit.
|
|
in: body
|
|
required: false
|
|
type: JSON
|
|
audit_starttime_req:
|
|
description: |
|
|
The local time after which audit can be executed in accordance
|
|
with interval. It will be converted to UTC time by Watcher.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.1
|
|
audit_starttime_resp:
|
|
description: |
|
|
The UTC time after which audit can be executed in accordance with interval.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.1
|
|
audit_state:
|
|
description: |
|
|
State of this audit. To get more information about states and
|
|
audit's lifecycle, visit `Audit State Machine page <https://docs.openstack.org/watcher/latest/architecture.html#audit-state-machine>`_.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
audit_status_message:
|
|
description: |
|
|
Message with additional information about the Audit state.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
min_version: 1.5
|
|
audit_strategy:
|
|
description: |
|
|
The UUID or name of the Strategy.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audit_type:
|
|
description: |
|
|
Type of this audit. Can only be either ONESHOT or CONTINUOUS.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Audit Template
|
|
audittemplate_description:
|
|
description: |
|
|
Short description of the Audit Template.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audittemplate_goal:
|
|
description: |
|
|
The UUID or name of the Goal.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
audittemplate_name:
|
|
description: |
|
|
The name of the Audit template.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
audittemplate_scope:
|
|
description: |
|
|
Audit Scope.
|
|
in: body
|
|
required: false
|
|
type: JSON
|
|
audittemplate_strategy:
|
|
description: |
|
|
The UUID or name of the Strategy.
|
|
in: body
|
|
required: false
|
|
type: string
|
|
audittemplate_uuid:
|
|
description: |
|
|
The UUID of the Audit template.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
created_at:
|
|
description: |
|
|
The date and time when the resource was created. The date and time
|
|
stamp format is `ISO 8601 <https://en.wikipedia.org/wiki/ISO_8601>`_
|
|
in: body
|
|
required: true
|
|
type: string
|
|
deleted_at:
|
|
description: |
|
|
The date and time when the resource was deleted. The date and time
|
|
stamp format is `ISO 8601 <https://en.wikipedia.org/wiki/ISO_8601>`_
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Goal
|
|
goal_display_name:
|
|
description: |
|
|
Localized name of the goal.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
goal_efficacy_specification:
|
|
description: |
|
|
Efficacy specifications as result of stategy's execution.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
goal_name:
|
|
description: |
|
|
Name of the goal.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
goal_uuid:
|
|
description: |
|
|
Unique UUID for this goal.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
links:
|
|
description: |
|
|
A list of relative links. Includes the self and bookmark links.
|
|
in: body
|
|
required: true
|
|
type: array
|
|
|
|
# Data Model Node
|
|
node_disabled_reason:
|
|
description: |
|
|
The Disabled Reason of the node.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
node_disk:
|
|
description: |
|
|
The Disk of the node(in GiB).
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
node_disk_gb_reserved:
|
|
description: |
|
|
The Disk Reserved of the node (in GiB).
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
node_disk_ratio:
|
|
description: |
|
|
The Disk Ratio of the node.
|
|
in: body
|
|
required: true
|
|
type: float
|
|
node_hostname:
|
|
description: |
|
|
The Host Name of the node.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
node_memory:
|
|
description: |
|
|
The Memory of the node(in MiB).
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
node_memory_mb_reserved:
|
|
description: |
|
|
The Memory Reserved of the node(in MiB).
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
node_memory_ratio:
|
|
description: |
|
|
The Memory Ratio of the node.
|
|
in: body
|
|
required: true
|
|
type: float
|
|
node_state:
|
|
description: |
|
|
The State of the node. The value is up or down.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
node_status:
|
|
description: |
|
|
The Status of the node.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
node_uuid:
|
|
description: |
|
|
The Unique UUID of the node.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
node_vcpu_ratio:
|
|
description: |
|
|
The Vcpu ratio of the node.
|
|
in: body
|
|
required: true
|
|
type: float
|
|
node_vcpu_reserved:
|
|
description: |
|
|
The Vcpu Reserved of the node.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
node_vcpus:
|
|
description: |
|
|
The Vcpu of the node.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
# Scoring Engine
|
|
scoring_engine_description:
|
|
description: |
|
|
A human readable description of the Scoring Engine.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
scoring_engine_metainfo:
|
|
description: |
|
|
A metadata associated with the scoring engine
|
|
in: body
|
|
required: true
|
|
type: string
|
|
scoring_engine_name:
|
|
description: |
|
|
The name of the scoring engine.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Data Model Server
|
|
server_disk:
|
|
description: |
|
|
The Disk of the server.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
server_flavor_extra_specs:
|
|
description: |
|
|
The flavor extra specs of the server.
|
|
in: body
|
|
required: true
|
|
type: JSON
|
|
min_version: 1.6
|
|
server_locked:
|
|
description: |
|
|
Whether the server is locked.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
server_memory:
|
|
description: |
|
|
The Memory of server.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
server_metadata:
|
|
description: |
|
|
The metadata associated with the server.
|
|
in: body
|
|
required: true
|
|
type: JSON
|
|
server_name:
|
|
description: |
|
|
The Name of the server.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
server_pinned_az:
|
|
description: |
|
|
The pinned availability zone of the server.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
min_version: 1.6
|
|
server_project_id:
|
|
description: |
|
|
The project ID of the server.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
server_state:
|
|
description: |
|
|
The State of the server.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
server_uuid:
|
|
description: |
|
|
The Unique UUID of the server.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
server_vcpus:
|
|
description: |
|
|
The Vcpu of the server.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
server_watcher_exclude:
|
|
description: |
|
|
Whether the server is excluded from the scope.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
# Service
|
|
service_host:
|
|
description: |
|
|
The Name of host where service is placed on.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
service_id:
|
|
description: |
|
|
The ID of service.
|
|
in: body
|
|
required: true
|
|
type: integer
|
|
service_last_seen_up:
|
|
description: |
|
|
The Time when Watcher service sent latest heartbeat.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
service_name:
|
|
description: |
|
|
The Name of service like ``watcher-applier``.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
service_status:
|
|
description: |
|
|
The State of service. It can be either in ACTIVE or FAILED state.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Strategy
|
|
strategy_check_comment:
|
|
description: |
|
|
Requirement comment.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
strategy_check_mandatory:
|
|
description: |
|
|
Whether this requirement mandatory or not.
|
|
in: body
|
|
required: true
|
|
type: boolean
|
|
strategy_check_state:
|
|
description: |
|
|
State of requirement for Strategy.
|
|
in: body
|
|
required: true
|
|
type: string or JSON
|
|
strategy_check_type:
|
|
description: |
|
|
Type of requirement for Strategy.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
strategy_display_name:
|
|
description: |
|
|
Localized name of the strategy.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
strategy_name:
|
|
description: |
|
|
Name of the strategy.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
strategy_parameters_spec:
|
|
description: |
|
|
Parameters specifications for this strategy.
|
|
in: body
|
|
required: true
|
|
type: JSON
|
|
strategy_uuid:
|
|
description: |
|
|
Unique UUID for this strategy.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
updated_at:
|
|
description: |
|
|
The date and time when the resource was updated. The date and time
|
|
stamp format is `ISO 8601 <https://en.wikipedia.org/wiki/ISO_8601>`_
|
|
in: body
|
|
required: true
|
|
type: string
|
|
uuid:
|
|
description: |
|
|
The UUID for the resource.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
|
|
# Version
|
|
version:
|
|
description: |
|
|
Versioning of this API response, eg. "1.1".
|
|
in: body
|
|
required: true
|
|
type: string
|
|
version_description:
|
|
description: |
|
|
Descriptive text about the Watcher service.
|
|
in: body
|
|
required: true
|
|
type: string
|
|
version_id:
|
|
description: |
|
|
Major API version, eg, "v1"
|
|
in: body
|
|
required: true
|
|
type: string
|
|
versions:
|
|
description: |
|
|
Array of information about currently supported versions.
|
|
in: body
|
|
required: true
|
|
type: array
|