import itertools
import os
import re
import sys
import pexpect
from retrying import retry
from flag import Flag
import logging
flag = Flag()
flag.define_string('--jmp_host', 'jmp_host', None, 'jump server ssh protocol hostname')
flag.define_string('--jmp_user', 'jmp_user', None, 'jump server ssh protocol username')
flag.define_string('--jmp_pwd', 'jmp_pwd', None, 'jump server ssh protocol password')
flag.define_string('--jmp_port', 'jmp_port', 22, 'jump server ssh protocol port number')
flag.define_string('--jmp_key_passphrase', 'jmp_key_passphrase', None, 'jump server ssh protocol key passphrase')
flag_value = flag.get_flag_value()
print(flag_value.jmp_host)
print(flag_value.jmp_user)
print(flag_value.jmp_pwd)
print(flag_value.jmp_port)
print(flag_value.jmp_key_passphrase)


class ConnectionError(Exception):
    """Error exception 1lass."""
class PromptError(Exception):
    """Error exception if prompt not recognized on destination host."""

class SSHConnection:
    def __init__(self, host, prompt, port=22, user=None, password=None, key=None,
            jmp_name=None, jmp_user=None, jmp_key=None,
            jmp_password=None, jmp_port=22, jmp_key_passphrase=None,