from argparse import Namespace, _SubParsersAction 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: _SubParsersAction) -> None: command = cls() 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=command.logout) def logout(self, args: Namespace) -> None: remote = self._parse_remote_host(args.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()