fixed compatibility issues between mistral and client
removed the namespace field from the action formatter to fix compatibility issues between the client and older versions of mistral. now the action-list command takes the namespace (with --namespace) as an argument and returns a list of the actions in that namespace. the command without --namespace would return the actions of the default namespace ''. fixed issues with execution-list command, the field "nulls" is removed if its empty Change-Id: Ibf64ff8d841ea1192b410902589b0c690b0b2fca Signed-off-by: ali <ali.abdelal@nokia.com>
This commit is contained in:
@@ -30,9 +30,12 @@ class ActionManager(base.ResourceManager):
|
|||||||
# If the specified definition is actually a file, read in the
|
# If the specified definition is actually a file, read in the
|
||||||
# definition file
|
# definition file
|
||||||
definition = utils.get_contents_if_file(definition)
|
definition = utils.get_contents_if_file(definition)
|
||||||
|
url = '/actions?scope=%s' % scope
|
||||||
|
if namespace:
|
||||||
|
url += '&namespace=%s' % namespace
|
||||||
|
|
||||||
return self._create(
|
return self._create(
|
||||||
'/actions?scope=%s&namespace=%s' % (scope, namespace),
|
url,
|
||||||
definition,
|
definition,
|
||||||
response_key='actions',
|
response_key='actions',
|
||||||
dump_json=False,
|
dump_json=False,
|
||||||
@@ -42,7 +45,10 @@ class ActionManager(base.ResourceManager):
|
|||||||
|
|
||||||
def update(self, definition, scope='private', id=None, namespace=''):
|
def update(self, definition, scope='private', id=None, namespace=''):
|
||||||
self._ensure_not_empty(definition=definition)
|
self._ensure_not_empty(definition=definition)
|
||||||
params = '?scope=%s&namespace=%s' % (scope, namespace)
|
params = '?scope=%s' % scope
|
||||||
|
if namespace:
|
||||||
|
params += '&namespace=%s' % namespace
|
||||||
|
|
||||||
url = ('/actions/%s' % id if id else '/actions') + params
|
url = ('/actions/%s' % id if id else '/actions') + params
|
||||||
# If the specified definition is actually a file, read in the
|
# If the specified definition is actually a file, read in the
|
||||||
# definition file
|
# definition file
|
||||||
@@ -57,7 +63,10 @@ class ActionManager(base.ResourceManager):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def list(self, marker='', limit=None, sort_keys='', sort_dirs='',
|
def list(self, marker='', limit=None, sort_keys='', sort_dirs='',
|
||||||
fields='', **filters):
|
fields='', namespace='', **filters):
|
||||||
|
if namespace:
|
||||||
|
filters['namespace'] = namespace
|
||||||
|
|
||||||
query_string = self._build_query_params(
|
query_string = self._build_query_params(
|
||||||
marker=marker,
|
marker=marker,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
|
@@ -80,6 +80,10 @@ class ExecutionManager(base.ResourceManager):
|
|||||||
if task:
|
if task:
|
||||||
filters['task_execution_id'] = task
|
filters['task_execution_id'] = task
|
||||||
|
|
||||||
|
# for backwards compatibility
|
||||||
|
if 'nulls' in filters and not filters['nulls']:
|
||||||
|
filters.pop('nulls')
|
||||||
|
|
||||||
query_string = self._build_query_params(
|
query_string = self._build_query_params(
|
||||||
marker=marker,
|
marker=marker,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
|
@@ -27,7 +27,6 @@ class ActionFormatter(base.MistralFormatter):
|
|||||||
COLUMNS = [
|
COLUMNS = [
|
||||||
('id', 'ID'),
|
('id', 'ID'),
|
||||||
('name', 'Name'),
|
('name', 'Name'),
|
||||||
('namespace', 'Namespace'),
|
|
||||||
('is_system', 'Is system'),
|
('is_system', 'Is system'),
|
||||||
('input', 'Input'),
|
('input', 'Input'),
|
||||||
('description', 'Description'),
|
('description', 'Description'),
|
||||||
@@ -47,7 +46,6 @@ class ActionFormatter(base.MistralFormatter):
|
|||||||
data = (
|
data = (
|
||||||
action.id,
|
action.id,
|
||||||
action.name,
|
action.name,
|
||||||
action.namespace,
|
|
||||||
action.is_system,
|
action.is_system,
|
||||||
input_,
|
input_,
|
||||||
desc,
|
desc,
|
||||||
@@ -74,6 +72,13 @@ class List(base.MistralLister):
|
|||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(List, self).get_parser(prog_name)
|
parser = super(List, self).get_parser(prog_name)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
'--namespace',
|
||||||
|
nargs='?',
|
||||||
|
default='',
|
||||||
|
help="Namespace of the actions.",
|
||||||
|
)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def _get_resources(self, parsed_args):
|
def _get_resources(self, parsed_args):
|
||||||
@@ -85,6 +90,7 @@ class List(base.MistralLister):
|
|||||||
sort_keys=parsed_args.sort_keys,
|
sort_keys=parsed_args.sort_keys,
|
||||||
sort_dirs=parsed_args.sort_dirs,
|
sort_dirs=parsed_args.sort_dirs,
|
||||||
fields=ActionFormatter.fields(),
|
fields=ActionFormatter.fields(),
|
||||||
|
namespace=parsed_args.namespace,
|
||||||
**base.get_filters(parsed_args)
|
**base.get_filters(parsed_args)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -121,7 +121,7 @@ class TestActionsV2(base.BaseClientV2Test):
|
|||||||
|
|
||||||
last_request = self.requests_mock.last_request
|
last_request = self.requests_mock.last_request
|
||||||
|
|
||||||
self.assertEqual('scope=private&namespace=', last_request.query)
|
self.assertEqual('scope=private', last_request.query)
|
||||||
self.assertEqual('text/plain', last_request.headers['content-type'])
|
self.assertEqual('text/plain', last_request.headers['content-type'])
|
||||||
self.assertEqual(ACTION_DEF, last_request.text)
|
self.assertEqual(ACTION_DEF, last_request.text)
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ class TestActionsV2(base.BaseClientV2Test):
|
|||||||
|
|
||||||
last_request = self.requests_mock.last_request
|
last_request = self.requests_mock.last_request
|
||||||
|
|
||||||
self.assertEqual('scope=private&namespace=', last_request.query)
|
self.assertEqual('scope=private', last_request.query)
|
||||||
self.assertEqual('text/plain', last_request.headers['content-type'])
|
self.assertEqual('text/plain', last_request.headers['content-type'])
|
||||||
self.assertEqual(ACTION_DEF, last_request.text)
|
self.assertEqual(ACTION_DEF, last_request.text)
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ class TestActionsV2(base.BaseClientV2Test):
|
|||||||
self.assertEqual(ACTION_DEF, actions[0].definition)
|
self.assertEqual(ACTION_DEF, actions[0].definition)
|
||||||
|
|
||||||
last_request = self.requests_mock.last_request
|
last_request = self.requests_mock.last_request
|
||||||
self.assertEqual('scope=private&namespace=', last_request.query)
|
self.assertEqual('scope=private', last_request.query)
|
||||||
self.assertEqual('text/plain', last_request.headers['content-type'])
|
self.assertEqual('text/plain', last_request.headers['content-type'])
|
||||||
self.assertEqual(ACTION_DEF, last_request.text)
|
self.assertEqual(ACTION_DEF, last_request.text)
|
||||||
|
|
||||||
|
@@ -60,7 +60,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
result = self.call(action_cmd.Create, app_args=['1.txt'])
|
result = self.call(action_cmd.Create, app_args=['1.txt'])
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
[('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1')],
|
'My cool action', 'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -75,7 +75,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
[('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1')],
|
'My cool action', 'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -101,7 +101,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
result = self.call(action_cmd.Create, app_args=['1.txt'])
|
result = self.call(action_cmd.Create, app_args=['1.txt'])
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace',
|
[('1234-4567-7894-7895', 'a',
|
||||||
True, cmd_base.cut(long_input), 'My cool action',
|
True, cmd_base.cut(long_input), 'My cool action',
|
||||||
'test', '1', '1')],
|
'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
@@ -114,7 +114,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
result = self.call(action_cmd.Update, app_args=['my_action.yaml'])
|
result = self.call(action_cmd.Update, app_args=['my_action.yaml'])
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
[('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1')],
|
'My cool action', 'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -129,7 +129,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
[('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1')],
|
'My cool action', 'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -145,7 +145,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
result = self.call(action_cmd.List)
|
result = self.call(action_cmd.List)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
[('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1')],
|
'My cool action', 'test', '1', '1')],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -156,7 +156,7 @@ class TestCLIActionsV2(base.BaseCommandTest):
|
|||||||
result = self.call(action_cmd.Get, app_args=['name'])
|
result = self.call(action_cmd.Get, app_args=['name'])
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
('1234-4567-7894-7895', 'a', 'test_namespace', True, "param1",
|
('1234-4567-7894-7895', 'a', True, "param1",
|
||||||
'My cool action', 'test', '1', '1'),
|
'My cool action', 'test', '1', '1'),
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user