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
This commit is contained in:
Andrey Pavlov 2016-11-10 19:17:11 +03:00
parent 8aa4dec122
commit d1c8589529
3 changed files with 29 additions and 0 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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