import argparse from tabulate import tabulate from ..models import StackStatus def credential_parser_factory(): """ Creates a new parser for login credentials """ credentialparser = argparse.ArgumentParser( prog="login", description="Subparser for login credentials provided by CI" ) credentialparser.add_argument("--username", action="store", type=str, required=True) credentialparser.add_argument("--password", action="store", type=str, required=True) return credentialparser def stack_formatter(stacks): """ Prints a given stack list formatted as a table """ if not stacks["ok"]: raise RuntimeError("Stack GET didn't work") table, headers = [], ["Stackname", "Status"] for key, val in stacks["stackList"].items(): table.append([key, StackStatus(val['status']).name.lower()]) print(tabulate(table, headers=headers, tablefmt="github"), "\n") def status_formatter(status): """ Prints the status for a given stack """ print(f"Is Stack Ok? {'Yes' if status['ok'] else 'No'}") headers = ["Container", "Status"] table = [[k, v] for k, v in status["serviceStatusList"].items()] print(tabulate(table, headers=headers, tablefmt="github"), "\n") def generic_formatter(status): """ Prints a generic dockge message """ print(f"Is Ok? {'Yes' if status['ok'] else 'No'}") print(f"Stack status: {status['msg']}")