From d1c85895294c46c9f39e69769548f36c94527d54 Mon Sep 17 00:00:00 2001 From: Andrey Pavlov Date: Thu, 10 Nov 2016 19:17:11 +0300 Subject: [PATCH] Adding 'ccp domains list' command This command will print list of Ingress domains that need to be resolved in order to make Ingress work Change-Id: Ie7599d2833fb34facdc66f008fe615a03abd2f33 --- fuel_ccp/cli.py | 16 ++++++++++++++++ fuel_ccp/common/utils.py | 12 ++++++++++++ setup.cfg | 1 + 3 files changed, 29 insertions(+) diff --git a/fuel_ccp/cli.py b/fuel_ccp/cli.py index 69f42c75..2babe423 100644 --- a/fuel_ccp/cli.py +++ b/fuel_ccp/cli.py @@ -225,6 +225,22 @@ class ImagesList(BaseCommand, lister.Lister): ) +class DomainsList(BaseCommand, lister.Lister): + """Get Ingress domains that will be used for external access""" + + def get_parser(self, *args, **kwargs): + parser = super(DomainsList, self).get_parser(*args, **kwargs) + parser.add_argument('components', + nargs='*', + help='CCP components to get domains for') + return parser + + def take_action(self, parsed_args): + config.load_component_defaults() + domains_list = utils.get_ingress_domains(parsed_args.components) + return ('Ingress Domain',), zip(domains_list) + + def signal_handler(signo, frame): sys.exit(-signo) diff --git a/fuel_ccp/common/utils.py b/fuel_ccp/common/utils.py index 5316da24..02cccf6a 100644 --- a/fuel_ccp/common/utils.py +++ b/fuel_ccp/common/utils.py @@ -20,6 +20,18 @@ def get_ingress_host(ingress_name): ingress_name, CONF.kubernetes.namespace, CONF.configs.ingress.domain)) +def get_ingress_domains(components=None): + components_map = get_deploy_components_info() + components = components or components_map.keys() + domains = [] + for component in components: + service = components_map[component]["service_content"]["service"] + for port in service.get("ports", []): + if port.get("ingress"): + domains.append(get_ingress_host(port.get("ingress"))) + return domains + + def get_resource_path(path): return pkg_resources.resource_filename(fuel_ccp.version_info.package, path) diff --git a/setup.cfg b/setup.cfg index 50d31cc5..e035b296 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,6 +36,7 @@ ccp.cli = validate = fuel_ccp.cli:Validate config_dump = fuel_ccp.cli:ConfigDump images_list = fuel_ccp.cli:ImagesList + domains_list = fuel_ccp.cli:DomainsList [build_sphinx] source-dir = doc/source