diff --git a/cloudlift/__init__.py b/cloudlift/__init__.py index 3c7e4adf..0a71f61c 100644 --- a/cloudlift/__init__.py +++ b/cloudlift/__init__.py @@ -170,5 +170,11 @@ def start_session(name, environment, mfa, component): SessionCreator(name, environment).start_session(mfa, component) +@cli.command(help="Get Service stack Output details") +@_require_environment +@_require_name +def service_output(name, environment): + ServiceInformationFetcher(name, environment).get_stack_outputs() + if __name__ == '__main__': cli() diff --git a/cloudlift/deployment/service_information_fetcher.py b/cloudlift/deployment/service_information_fetcher.py index 284240b4..40aa9336 100644 --- a/cloudlift/deployment/service_information_fetcher.py +++ b/cloudlift/deployment/service_information_fetcher.py @@ -1,6 +1,6 @@ from subprocess import call - +from terminaltables import SingleTable from click import confirm, edit, prompt from cloudlift.exceptions import UnrecoverableException @@ -33,6 +33,12 @@ def init_stack_info(self): stack['Outputs'] ) ) + self.output = list( + filter( + lambda x: x['OutputKey'], + stack['Outputs'] + ) + ) self.ecs_display_names = [ svc_name['OutputKey'] for svc_name in service_name_list ] @@ -168,3 +174,12 @@ def _fetch_current_task_definition_tag(self): return commit_sha except Exception: return None + + def get_stack_outputs(self): + changes_to_show = [["Name", "Value"]] + for svc_name in self.output: + if svc_name['OutputKey'] != "CloudliftOptions": + changes_to_show.append([ + svc_name['OutputKey'], svc_name['OutputValue']]) + print(SingleTable(changes_to_show).table) +