From 75a025d2d24ca03a3c63a969f4be93c5e1b43b91 Mon Sep 17 00:00:00 2001 From: licanwei Date: Tue, 28 Mar 2017 19:49:41 +0800 Subject: [PATCH] Add action description Add action get_description in class BaseAction. This information will be sent to the API side via notification. Partially Implements: blueprint dynamic-action-description Change-Id: I9ce1b18ad8c5eb7db62ec926d1859d0f508074b0 --- watcher/applier/actions/base.py | 5 +++++ watcher/applier/actions/change_nova_service_state.py | 6 ++++++ watcher/applier/actions/migration.py | 4 ++++ watcher/applier/actions/nop.py | 4 ++++ watcher/applier/actions/resize.py | 4 ++++ watcher/applier/actions/sleep.py | 4 ++++ .../applier/workflow_engine/test_default_workflow_engine.py | 3 +++ 7 files changed, 30 insertions(+) diff --git a/watcher/applier/actions/base.py b/watcher/applier/actions/base.py index 4286b104b..6bffa5044 100644 --- a/watcher/applier/actions/base.py +++ b/watcher/applier/actions/base.py @@ -129,3 +129,8 @@ class BaseAction(loadable.Loadable): def validate_parameters(self): self.schema(self.input_parameters) return True + + @abc.abstractmethod + def get_description(self): + """Description of the action""" + raise NotImplementedError() diff --git a/watcher/applier/actions/change_nova_service_state.py b/watcher/applier/actions/change_nova_service_state.py index 50017c156..201a3c5fe 100644 --- a/watcher/applier/actions/change_nova_service_state.py +++ b/watcher/applier/actions/change_nova_service_state.py @@ -101,3 +101,9 @@ class ChangeNovaServiceState(base.BaseAction): def post_condition(self): pass + + def get_description(self): + """Description of the action""" + return ("Disables or enables the nova-compute service." + "A disabled nova-compute service can not be selected " + "by the nova for future deployment of new server.") diff --git a/watcher/applier/actions/migration.py b/watcher/applier/actions/migration.py index eb742fae6..663f84f30 100644 --- a/watcher/applier/actions/migration.py +++ b/watcher/applier/actions/migration.py @@ -172,3 +172,7 @@ class Migrate(base.BaseAction): def post_condition(self): # TODO(jed): check extra parameters (network response, etc.) pass + + def get_description(self): + """Description of the action""" + return "Moving a VM instance from source_node to destination_node" diff --git a/watcher/applier/actions/nop.py b/watcher/applier/actions/nop.py index 59ad241f1..0a4969b18 100644 --- a/watcher/applier/actions/nop.py +++ b/watcher/applier/actions/nop.py @@ -65,3 +65,7 @@ class Nop(base.BaseAction): def post_condition(self): pass + + def get_description(self): + """Description of the action""" + return "Logging a NOP message" diff --git a/watcher/applier/actions/resize.py b/watcher/applier/actions/resize.py index ea9df82fb..920c62fb4 100644 --- a/watcher/applier/actions/resize.py +++ b/watcher/applier/actions/resize.py @@ -104,3 +104,7 @@ class Resize(base.BaseAction): def post_condition(self): # TODO(jed): check extra parameters (network response, etc.) pass + + def get_description(self): + """Description of the action""" + return "Resize a server with specified flavor." diff --git a/watcher/applier/actions/sleep.py b/watcher/applier/actions/sleep.py index abb83eab4..f472eeddc 100644 --- a/watcher/applier/actions/sleep.py +++ b/watcher/applier/actions/sleep.py @@ -66,3 +66,7 @@ class Sleep(base.BaseAction): def post_condition(self): pass + + def get_description(self): + """Description of the action""" + return "Wait for a given interval in seconds." diff --git a/watcher/tests/applier/workflow_engine/test_default_workflow_engine.py b/watcher/tests/applier/workflow_engine/test_default_workflow_engine.py index fd72c3349..5452db890 100644 --- a/watcher/tests/applier/workflow_engine/test_default_workflow_engine.py +++ b/watcher/tests/applier/workflow_engine/test_default_workflow_engine.py @@ -52,6 +52,9 @@ class FakeAction(abase.BaseAction): def execute(self): raise ExpectedException() + def get_description(self): + return "fake action, just for test" + class TestDefaultWorkFlowEngine(base.DbTestCase): def setUp(self):