Ejemplo n.º 1
0
    def setUpClass(cls):
        #
        # command: pwd
        #
        def pwd_command_success(instance):
            instance.writeln("[OK]")

        def pwd_command_failure(instance):
            instance.writeln("MockSSH: Supported usage: pwd")

        command_pwd = MockSSH.ArgumentValidatingCommand(
            'pwd', [pwd_command_success], [pwd_command_failure], *[])

        #
        # command: ls
        #
        def ls_command_success(instance):
            instance.writeln("[OK]")

        def ls_command_failure(instance):
            instance.writeln("MockSSH: Supported usage: ls l")

        command_ls = MockSSH.ArgumentValidatingCommand('ls',
                                                       [ls_command_success],
                                                       [ls_command_failure],
                                                       *["l"])

        #
        # command: date
        #
        def date_command_success(instance):
            instance.writeln("[OK]")

        def date_command_failure(instance):
            instance.writeln("MockSSH: Supported usage: date")

        command_date = MockSSH.ArgumentValidatingCommand(
            'date', [date_command_success], [date_command_failure], *[])
        commands = [command_pwd, command_ls, command_date]
        users = {'testadmin': 'x'}
        cls.keypath = tempfile.mkdtemp()
        MockSSH.startThreadedServer(commands,
                                    prompt="hostname>",
                                    keypath=cls.keypath,
                                    interface="localhost",
                                    port=9999,
                                    **users)
Ejemplo n.º 2
0
#
def conf_output_error(instance):
    instance.writeln("MockSSH: supported usage: conf t")


def conf_output_success(instance):
    instance.writeln("Enter configuration commands, one per line. End "
                     "with CNTL/Z")


def conf_change_protocol_prompt(instance):
    instance.protocol.prompt = "hostname(config)#"


command_conf = MockSSH.ArgumentValidatingCommand(
    'conf', [conf_output_success, conf_change_protocol_prompt],
    [conf_output_error], *["t"])


#
# command: exit
#
def exit_command_success(instance):
    if 'config' in instance.protocol.prompt:
        instance.protocol.prompt = "hostname#"
    else:
        instance.protocol.call_command(instance.protocol.commands['_exit'])


def exit_command_failure(instance):
    instance.writeln("MockSSH: supported usage: exit")
Ejemplo n.º 3
0
from netman.adapters.shell.telnet import TelnetClient
from netman.core.objects.exceptions import CouldNotConnect, CommandTimeout, ConnectTimeout
from tests.adapters.shell.mock_telnet import MockTelnet
from tests.adapters.shell.mock_terminal_commands import passwd_change_protocol_prompt, passwd_write_password_to_transport, \
    HangingCommand, MultiAsyncWriteCommand, SkippingLineCommand, exit_command_success, KeystrokeAnsweredCommand, \
    AmbiguousCommand

command_passwd = MockSSH.PromptingCommand(
    name='passwd',
    password='******',
    prompt="Password:"******"Bonjour")],
    failure_callbacks=[lambda instance: instance.writeln("Nope")])

command_hang = HangingCommand(name='hang', hang_time=1.1)

command_flush = MultiAsyncWriteCommand(name='flush', count=5, interval=0.1)

command_skips= SkippingLineCommand(name='skips', lines=5)

command_exit = MockSSH.ArgumentValidatingCommand('exit',
                                                 [exit_command_success],
                                                 [lambda instance: instance.writeln("Nope")],
                                                 *[])

command_question = KeystrokeAnsweredCommand('keystroke')
Ejemplo n.º 4
0
fixture['tmctl -c pva_stat'] = open('mockssh/f5_tmctl_csv.txt').read()


def cmd_parser(instance):
    cmd = " ".join(instance.args)
    if cmd in fixture:
        instance.writeln(fixture[cmd])
    else:
        instance.writeln('Invalid command')


def f5_prompt(instance):
    instance.protocol.prompt = '[user@F5-TEST:/S1-green-P:Active:In Sync] ~ # '


cmd_cisco_show = MockSSH.ArgumentValidatingCommand('show', [cmd_parser],
                                                   [cmd_parser], *[])

cmd_f5_show = MockSSH.ArgumentValidatingCommand('show', [cmd_parser],
                                                [cmd_parser], *[])

cmd_f5_bash = MockSSH.ArgumentValidatingCommand('bash', [f5_prompt],
                                                [f5_prompt], *[])

cmd_f5_tmctl = MockSSH.ArgumentValidatingCommand('tmctl', [cmd_parser],
                                                 [cmd_parser], *[])


def mock_cisco():
    # Redirect stdout to null
    f = open(os.devnull, 'w')
    sys.stdout = f
Ejemplo n.º 5
0
    'en',         # the enable command
    ENABLE_PASS,  # enable password
    'Password: '******'enable',     # the enable command
    ENABLE_PASS,  # enable password
    'Password: '******'conf',
    [conf_output_success, conf_change_protocol_prompt],
    [invalid_input],
    *["t"])

command_wr = MockSSH.ArgumentValidatingCommand(
    'wr',
    [wr_build_config],
    [invalid_input],
    *["m"])

command_term_len = MockSSH.ArgumentValidatingCommand(
    'term',
    [set_term_nopage],
    [invalid_input],
    *['len', '0'])