import getpass from argparse import Namespace from typing import Any from mdrsclient.commands.base import BaseCommand class LoginCommand(BaseCommand): @classmethod def register(cls, parsers: Any) -> None: login_parser = parsers.add_parser("login", help="login to remote host") login_parser.add_argument("-u", "--username", help="login username") login_parser.add_argument("-p", "--password", help="login password") login_parser.add_argument("remote", help="label of remote host") login_parser.set_defaults(func=cls.func) @classmethod def func(cls, args: Namespace) -> None: remote = str(args.remote) username = str(args.username) if args.username else input("Username: ").strip() password = str(args.password) if args.password else getpass.getpass("Password: ").strip() cls.login(remote, username, password) @classmethod def login(cls, remote: str, username: str, password: str) -> None: from mdrsclient.client import MdrsClient remote_host = MdrsClient.parse_remote_host(remote) client = MdrsClient.from_remote(remote_host) client.login(username, password) print("Login Successful")