Fix community init to respect cfg paths

The validation init did not respect the paths set on the
config file. Now it does.

Resolves: rhbz#2031069

Change-Id: Ia492b53f170d65f712a182a545ef09217449648c
This commit is contained in:
apetrich 2022-01-19 17:46:40 +01:00
parent eb5c38ee62
commit 1c89a4d7ce
2 changed files with 30 additions and 8 deletions

View File

@ -15,6 +15,7 @@
# under the License.
import logging
import os
from validations_libs import constants, utils
from validations_libs.cli.base import BaseCommand
@ -49,6 +50,15 @@ class CommunityValidationInit(BaseCommand):
)
)
parser.add_argument('--validation-dir', dest='validation_dir',
default=constants.ANSIBLE_VALIDATION_DIR,
help=("Path where the validation playbooks "
"is located."))
parser.add_argument('--ansible-base-dir', dest='ansible_base_dir',
default=constants.DEFAULT_VALIDATIONS_BASEDIR,
help=("Path where the ansible roles, library "
"and plugins are located."))
return parser
def take_action(self, parsed_args):
@ -56,7 +66,10 @@ class CommunityValidationInit(BaseCommand):
# Merge config and CLI args:
self.base.set_argument_parser(self, parsed_args)
co_validation = com_val(parsed_args.validation_name)
co_validation = com_val(
parsed_args.validation_name,
validation_dir=parsed_args.validation_dir,
ansible_base_dir=parsed_args.ansible_base_dir)
if co_validation.is_community_validations_enabled(self.base.config):
LOG.debug(
@ -79,7 +92,7 @@ class CommunityValidationInit(BaseCommand):
.format(
co_validation.role_name,
constants.COMMUNITY_ROLES_DIR,
constants.ANSIBLE_ROLES_DIR)
os.path.join(parsed_args.ansible_base_dir, "roles/"))
)
)
@ -93,7 +106,7 @@ class CommunityValidationInit(BaseCommand):
.format(
co_validation.playbook_name,
constants.COMMUNITY_PLAYBOOKS_DIR,
constants.ANSIBLE_VALIDATION_DIR)
parsed_args.validation_dir)
)
)

View File

@ -17,6 +17,7 @@
import logging
import re
import os
# @matbu backward compatibility for stable/train
try:
from pathlib import Path
@ -35,9 +36,16 @@ class CommunityValidation:
from a template.
"""
def __init__(self, validation_name):
def __init__(
self,
validation_name,
validation_dir=constants.ANSIBLE_VALIDATION_DIR,
ansible_base_dir=constants.DEFAULT_VALIDATIONS_BASEDIR):
"""Construct Role and Playbook."""
self._validation_name = validation_name
self.validation_dir = validation_dir
self.ansible_base_dir = ansible_base_dir
def execute(self):
"""Execute the actions necessary to create a new community validation
@ -106,11 +114,12 @@ class CommunityValidation:
:rtype: ``Boolean``
"""
roles_dir = os.path.join(self.ansible_base_dir, "roles/")
non_community_roles = []
if Path(constants.ANSIBLE_ROLES_DIR).exists():
if Path(roles_dir).exists():
non_community_roles = [
Path(x).name
for x in Path(constants.ANSIBLE_ROLES_DIR).iterdir()
for x in Path(roles_dir).iterdir()
if x.is_dir()
]
@ -131,10 +140,10 @@ class CommunityValidation:
:rtype: ``Boolean``
"""
non_community_playbooks = []
if Path(constants.ANSIBLE_VALIDATION_DIR).exists():
if Path(self.validation_dir).exists():
non_community_playbooks = [
Path(x).name
for x in Path(constants.ANSIBLE_VALIDATION_DIR).iterdir()
for x in Path(self.validation_dir).iterdir()
if x.is_file()
]