Merge "Refactoring of the cli lister module"
This commit is contained in:
commit
48f2435436
|
@ -14,9 +14,6 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from cliff.lister import Lister
|
from cliff.lister import Lister
|
||||||
|
|
||||||
from validations_libs.validation_actions import ValidationActions
|
from validations_libs.validation_actions import ValidationActions
|
||||||
|
@ -34,7 +31,7 @@ class ValidationList(Lister):
|
||||||
metavar='<group>[,<group>,...]',
|
metavar='<group>[,<group>,...]',
|
||||||
action=CommaListAction,
|
action=CommaListAction,
|
||||||
default=[],
|
default=[],
|
||||||
help=("Run specific group validations, "
|
help=("List specific group of validations, "
|
||||||
"if more than one group is required "
|
"if more than one group is required "
|
||||||
"separate the group names with commas: "
|
"separate the group names with commas: "
|
||||||
"--group pre-upgrade,prep | "
|
"--group pre-upgrade,prep | "
|
||||||
|
@ -42,12 +39,12 @@ class ValidationList(Lister):
|
||||||
parser.add_argument('--validation-dir', dest='validation_dir',
|
parser.add_argument('--validation-dir', dest='validation_dir',
|
||||||
default=constants.ANSIBLE_VALIDATION_DIR,
|
default=constants.ANSIBLE_VALIDATION_DIR,
|
||||||
help=("Path where the validation playbooks "
|
help=("Path where the validation playbooks "
|
||||||
"is located."))
|
"are located."))
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
"""Take validation action"""
|
"""Take validation action"""
|
||||||
# Get parameters:
|
|
||||||
group = parsed_args.group
|
group = parsed_args.group
|
||||||
validation_dir = parsed_args.validation_dir
|
validation_dir = parsed_args.validation_dir
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ def parse_all_validations_on_disk(path, groups=None):
|
||||||
:type path: `string`
|
:type path: `string`
|
||||||
:param groups: Groups of validations. Could be a `list` or a
|
:param groups: Groups of validations. Could be a `list` or a
|
||||||
comma-separated `string` of groups
|
comma-separated `string` of groups
|
||||||
|
:type groups: `list` or `string`
|
||||||
:return: A list of validations metadata.
|
:return: A list of validations metadata.
|
||||||
:rtype: `list`
|
:rtype: `list`
|
||||||
|
|
||||||
|
@ -90,8 +91,8 @@ def parse_all_validations_on_disk(path, groups=None):
|
||||||
|
|
||||||
validations_abspath = glob.glob("{path}/*.yaml".format(path=path))
|
validations_abspath = glob.glob("{path}/*.yaml".format(path=path))
|
||||||
|
|
||||||
for pl in validations_abspath:
|
for playbook in validations_abspath:
|
||||||
val = Validation(pl)
|
val = Validation(playbook)
|
||||||
|
|
||||||
if not groups or set(groups).intersection(val.groups):
|
if not groups or set(groups).intersection(val.groups):
|
||||||
results.append(val.get_metadata)
|
results.append(val.get_metadata)
|
||||||
|
|
|
@ -46,10 +46,17 @@ class ValidationActions(object):
|
||||||
else constants.ANSIBLE_VALIDATION_DIR)
|
else constants.ANSIBLE_VALIDATION_DIR)
|
||||||
|
|
||||||
def list_validations(self, group=None):
|
def list_validations(self, group=None):
|
||||||
"""Get a list of the available validations
|
"""Get a list of the validations selected by group
|
||||||
|
membership. With their names and group membership information.
|
||||||
This is used to print table from python ``Tuple`` with ``PrettyTable``.
|
This is used to print table from python ``Tuple`` with ``PrettyTable``.
|
||||||
|
|
||||||
|
:param group: Group or multiple groups of validations.
|
||||||
|
Additional groups have to be separated by comma.
|
||||||
|
:type group: `string`
|
||||||
|
|
||||||
|
:return: Column names and a list of the selected validations
|
||||||
|
:rtype: `tuple`
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
----------------+--------------------------+----------------------+
|
----------------+--------------------------+----------------------+
|
||||||
|
@ -60,9 +67,6 @@ class ValidationActions(object):
|
||||||
| validation3 | Name of the validation3 | ['group4] |
|
| validation3 | Name of the validation3 | ['group4] |
|
||||||
+---------------+--------------------------+----------------------+
|
+---------------+--------------------------+----------------------+
|
||||||
|
|
||||||
:return: The list of the available validations
|
|
||||||
:rtype: `tuple`
|
|
||||||
|
|
||||||
:Example:
|
:Example:
|
||||||
|
|
||||||
>>> path = "/foo/bar"
|
>>> path = "/foo/bar"
|
||||||
|
@ -77,13 +81,13 @@ class ValidationActions(object):
|
||||||
validations = v_utils.parse_all_validations_on_disk(
|
validations = v_utils.parse_all_validations_on_disk(
|
||||||
self.validation_path, group)
|
self.validation_path, group)
|
||||||
|
|
||||||
return_values = []
|
return_values = [
|
||||||
column_name = ('ID', 'Name', 'Groups')
|
(val.get('id'), val.get('name'), val.get('groups'))
|
||||||
|
for val in validations]
|
||||||
|
|
||||||
for val in validations:
|
column_names = ('ID', 'Name', 'Groups')
|
||||||
return_values.append((val.get('id'), val.get('name'),
|
|
||||||
val.get('groups')))
|
return (column_names, return_values)
|
||||||
return (column_name, return_values)
|
|
||||||
|
|
||||||
def show_validations(self, validation,
|
def show_validations(self, validation,
|
||||||
log_path=constants.VALIDATIONS_LOG_BASEDIR):
|
log_path=constants.VALIDATIONS_LOG_BASEDIR):
|
||||||
|
|
Loading…
Reference in New Issue