Files

30 lines
1.0 KiB
Python

from argparse import Namespace
from typing import Any
from mdrsclient.commands.base import BaseCommand
from mdrsclient.config import ConfigFile
from mdrsclient.connection import MDRSConnection
from mdrsclient.exceptions import MissingConfigurationException
class LogoutCommand(BaseCommand):
@classmethod
def register(cls, parsers: Any) -> None:
logout_parser = parsers.add_parser("logout", help="logout from remote host")
logout_parser.add_argument("remote", help="label of remote host")
logout_parser.set_defaults(func=cls.func)
@classmethod
def func(cls, args: Namespace) -> None:
remote = str(args.remote)
cls.logout(remote)
@classmethod
def logout(cls, remote: str) -> None:
remote = cls._parse_remote_host(remote)
config = ConfigFile(remote)
if config.url is None:
raise MissingConfigurationException(f"Remote host `{remote}` is not found.")
connection = MDRSConnection(config.remote, config.url)
connection.logout()