More commands
All checks were successful
/ backend-pylint (push) Successful in 11s

This commit is contained in:
Firq 2024-07-02 21:45:56 +02:00
parent 0c884e01cf
commit 84571f1692
Signed by: Firq
GPG key ID: 3ACC61C8CEC83C20
4 changed files with 68 additions and 12 deletions

View file

@ -105,6 +105,22 @@ class DockgeConnection:
ret = self._sio.call("agent", ("", "restartStack", name), timeout=10) ret = self._sio.call("agent", ("", "restartStack", name), timeout=10)
return ret return ret
def update(self, name):
ret = self._sio.call("agent", ("", "updateStack", name), timeout=10)
return ret
def stop(self, name):
ret = self._sio.call("agent", ("", "stopStack", name), timeout=10)
return ret
def start(self, name):
ret = self._sio.call("agent", ("", "startStack", name), timeout=10)
return ret
def down(self, name):
ret = self._sio.call("agent", ("", "downStack", name), timeout=10)
return ret
def disconnect(self): def disconnect(self):
self._sio.emit("logout") self._sio.emit("logout")
self._sio.disconnect() self._sio.disconnect()

View file

@ -2,10 +2,15 @@ from getpass import getpass
from urllib.parse import urlparse from urllib.parse import urlparse
from . import storage from . import storage
from .utils import display_help, stack_formatter, status_formatter, restart_formatter from .utils import display_help, stack_formatter, status_formatter, generic_formatter
from .parser import Credentials, credentialparser from .parser import Credentials, credentialparser
from .communicate import DockgeConnection from .communicate import DockgeConnection
def setup():
con = DockgeConnection()
con.connect_and_login()
return con
def exec_command(command, extra_args): def exec_command(command, extra_args):
match command: match command:
case "help": case "help":
@ -33,27 +38,47 @@ def exec_command(command, extra_args):
case "exit": case "exit":
storage.clear() storage.clear()
case "list": case "list":
con = DockgeConnection() con = setup()
con.connect_and_login()
stack_formatter(con.list_stacks()) stack_formatter(con.list_stacks())
con.disconnect() con.disconnect()
case "status": case "status":
if extra_args is None: if extra_args is None:
raise ValueError raise ValueError
con = DockgeConnection() con = setup()
con.connect_and_login()
status_formatter(con.list_stack(extra_args[0])) status_formatter(con.list_stack(extra_args[0]))
con.disconnect() con.disconnect()
case "restart": case "restart":
if extra_args is None: if extra_args is None:
raise ValueError raise ValueError
con = DockgeConnection() con = setup()
con.connect_and_login() generic_formatter(con.restart(extra_args[0]))
restart_formatter(con.restart(extra_args[0])) con.disconnect()
case "update":
if extra_args is None:
raise ValueError
con = setup()
generic_formatter(con.update(extra_args[0]))
con.disconnect()
case "stop":
if extra_args is None:
raise ValueError
con = setup()
generic_formatter(con.stop(extra_args[0]))
con.disconnect()
case "start":
if extra_args is None:
raise ValueError
con = setup()
generic_formatter(con.start(extra_args[0]))
con.disconnect()
case "down":
if extra_args is None:
raise ValueError
con = setup()
generic_formatter(con.down(extra_args[0]))
con.disconnect() con.disconnect()
case "debug": case "debug":
con = DockgeConnection() con = setup()
con.connect_and_login()
stack_formatter(con.list_stacks()) stack_formatter(con.list_stacks())
print("fgo-ta-com", con.list_stack("fgo-ta-com")) print("fgo-ta-com", con.list_stack("fgo-ta-com"))
con.disconnect() con.disconnect()

View file

@ -25,6 +25,6 @@ def status_formatter(status):
table = [[k, v] for k, v in status["serviceStatusList"].items()] table = [[k, v] for k, v in status["serviceStatusList"].items()]
print(tabulate(table, headers=headers, tablefmt="github"), "\n") print(tabulate(table, headers=headers, tablefmt="github"), "\n")
def restart_formatter(status): def generic_formatter(status):
print(f"Is Ok? {'Yes' if status['ok'] else 'No'}") print(f"Is Ok? {'Yes' if status['ok'] else 'No'}")
print(f"Stack status: {status['msg']}") print(f"Stack status: {status['msg']}")

View file

@ -34,6 +34,21 @@ cmd_restart = CommandListing(
description="Restarts a given stack", description="Restarts a given stack",
) )
cmd_start = CommandListing(
command="start",
description="Starts a given stack",
)
cmd_stop = CommandListing(
command="stop",
description="Stops a given stack",
)
cmd_down = CommandListing(
command="down",
description="Stop & Downs a given stack",
)
cmd_update = CommandListing( cmd_update = CommandListing(
command="update", command="update",
description="Updates a stack", description="Updates a stack",
@ -54,5 +69,5 @@ cmd_help = CommandListing(
description="Displays helping hints for commands", description="Displays helping hints for commands",
) )
commandlist = [cmd_host, cmd_login, cmd_logout, cmd_list, cmd_restart, cmd_update, cmd_exit, cmd_debug, cmd_help, cmd_status] commandlist = [cmd_host, cmd_login, cmd_logout, cmd_list, cmd_restart, cmd_update, cmd_exit, cmd_debug, cmd_help, cmd_status, cmd_start, cmd_stop, cmd_down]
commands = { k.command: k for k in commandlist } commands = { k.command: k for k in commandlist }