44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
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']}")
|