Files
python-watcherclient/setup.cfg
Alfredo Moralejo d17bfa04ad Add action update command to support skipping actions manually
This commit introduces the "openstack optimize action update" command
that allows cloud admins to manually update action states. The only
current use case is to mark actions as SKIPPED before starting an
action plan.

Additionally, the option `--reason` can be used to provide a text that
will be stored as part of the status_message field.

Command usage:
  openstack optimize action update --state SKIPPED --reason "reason" <uuid>

The feature requires Watcher API microversion 1.5 or higher and includes
automatic version checking.

In order to assert specific strings in stderr, I'm enabling
`merge_stderr` option by default in execute. It's totally backwards
compatible, so I'm not parametrizing it.

Implements: blueprint add-skip-actions

Assisted-By: Claude (claude-sonnet-4)

Depends-On: https://review.opendev.org/c/openstack/watcher/+/955753/
Change-Id: Ice88c0ab58c0cfd784c707620da89a891055ffc2
Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
2025-08-28 14:44:46 -03:00

118 lines
5.3 KiB
INI

[metadata]
name = python-watcherclient
summary = Python client library for Watcher API
description_file =
README.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
home_page = https://docs.openstack.org/python-watcherclient/latest/
python_requires = >=3.10
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
[files]
packages =
watcherclient
[entry_points]
console_scripts =
watcher = watcherclient.shell:main
openstack.cli.extension =
infra_optim = watcherclient.osc.plugin
# Entry points for the 'openstack' command
openstack.infra_optim.v1 =
optimize_goal_show = watcherclient.v1.goal_shell:ShowGoal
optimize_goal_list = watcherclient.v1.goal_shell:ListGoal
optimize_strategy_show = watcherclient.v1.strategy_shell:ShowStrategy
optimize_strategy_list = watcherclient.v1.strategy_shell:ListStrategy
optimize_strategy_state = watcherclient.v1.strategy_shell:StateStrategy
optimize_audittemplate_show = watcherclient.v1.audit_template_shell:ShowAuditTemplate
optimize_audittemplate_list = watcherclient.v1.audit_template_shell:ListAuditTemplate
optimize_audittemplate_create = watcherclient.v1.audit_template_shell:CreateAuditTemplate
optimize_audittemplate_update = watcherclient.v1.audit_template_shell:UpdateAuditTemplate
optimize_audittemplate_delete = watcherclient.v1.audit_template_shell:DeleteAuditTemplate
optimize_audit_show = watcherclient.v1.audit_shell:ShowAudit
optimize_audit_list = watcherclient.v1.audit_shell:ListAudit
optimize_audit_create = watcherclient.v1.audit_shell:CreateAudit
optimize_audit_update = watcherclient.v1.audit_shell:UpdateAudit
optimize_audit_delete = watcherclient.v1.audit_shell:DeleteAudit
optimize_actionplan_show = watcherclient.v1.action_plan_shell:ShowActionPlan
optimize_actionplan_delete = watcherclient.v1.action_plan_shell:DeleteActionPlan
optimize_actionplan_list = watcherclient.v1.action_plan_shell:ListActionPlan
optimize_actionplan_update = watcherclient.v1.action_plan_shell:UpdateActionPlan
optimize_actionplan_start = watcherclient.v1.action_plan_shell:StartActionPlan
optimize_actionplan_cancel = watcherclient.v1.action_plan_shell:CancelActionPlan
optimize_action_show = watcherclient.v1.action_shell:ShowAction
optimize_action_list = watcherclient.v1.action_shell:ListAction
optimize_action_update = watcherclient.v1.action_shell:UpdateAction
optimize_scoringengine_show = watcherclient.v1.scoring_engine_shell:ShowScoringEngine
optimize_scoringengine_list = watcherclient.v1.scoring_engine_shell:ListScoringEngine
optimize_service_show = watcherclient.v1.service_shell:ShowService
optimize_service_list = watcherclient.v1.service_shell:ListService
optimize_datamodel_list = watcherclient.v1.data_model_shell:ListDataModel
# The same as above but used by the 'watcher' command
watcherclient.v1 =
goal_show = watcherclient.v1.goal_shell:ShowGoal
goal_list = watcherclient.v1.goal_shell:ListGoal
strategy_show = watcherclient.v1.strategy_shell:ShowStrategy
strategy_list = watcherclient.v1.strategy_shell:ListStrategy
strategy_state = watcherclient.v1.strategy_shell:StateStrategy
audittemplate_show = watcherclient.v1.audit_template_shell:ShowAuditTemplate
audittemplate_list = watcherclient.v1.audit_template_shell:ListAuditTemplate
audittemplate_create = watcherclient.v1.audit_template_shell:CreateAuditTemplate
audittemplate_update = watcherclient.v1.audit_template_shell:UpdateAuditTemplate
audittemplate_delete = watcherclient.v1.audit_template_shell:DeleteAuditTemplate
audit_show = watcherclient.v1.audit_shell:ShowAudit
audit_list = watcherclient.v1.audit_shell:ListAudit
audit_create = watcherclient.v1.audit_shell:CreateAudit
audit_update = watcherclient.v1.audit_shell:UpdateAudit
audit_delete = watcherclient.v1.audit_shell:DeleteAudit
actionplan_show = watcherclient.v1.action_plan_shell:ShowActionPlan
actionplan_list = watcherclient.v1.action_plan_shell:ListActionPlan
actionplan_update = watcherclient.v1.action_plan_shell:UpdateActionPlan
actionplan_start = watcherclient.v1.action_plan_shell:StartActionPlan
actionplan_delete = watcherclient.v1.action_plan_shell:DeleteActionPlan
actionplan_cancel = watcherclient.v1.action_plan_shell:CancelActionPlan
action_show = watcherclient.v1.action_shell:ShowAction
action_list = watcherclient.v1.action_shell:ListAction
action_update = watcherclient.v1.action_shell:UpdateAction
scoringengine_show = watcherclient.v1.scoring_engine_shell:ShowScoringEngine
scoringengine_list = watcherclient.v1.scoring_engine_shell:ListScoringEngine
service_show = watcherclient.v1.service_shell:ShowService
service_list = watcherclient.v1.service_shell:ListService
datamodel_list = watcherclient.v1.data_model_shell:ListDataModel
[pbr]
autodoc_index_modules = True
autodoc_exclude_modules =
watcherclient.tests.*
api_doc_dir = reference/api