Exemple #1
0
def enter_enable_mode(session):
    session.hardware_expect(
        'enable',
        re_string=DEFAULT_PROMPT + '|' + ENABLE_PROMPT,
        expect_map={
            '[Pp]assword':
            lambda session: session.send_line(
                get_attribute_by_name_wrapper('Enable Password')())
        })
    # get_decrypted_password_by_attribute_name_wrapper('Enable Password')())})
    result = session.hardware_expect('',
                                     re_string=r"{}|{}".format(
                                         DEFAULT_PROMPT, ENABLE_PROMPT))
    if not re.search(ENABLE_PROMPT, result):
        raise Exception('enter_enable_mode', 'Enable password is incorrect')

    return result
from cloudshell.shell.core.context_utils import get_attribute_by_name_wrapper, get_resource_address, \
    get_decrypted_password_by_attribute_name_wrapper

"""Session types implemented in current package"""
CONNECTION_TYPE_SSH = 'ssh'
CONNECTION_TYPE_TELNET = 'telnet'
CONNECTION_TYPE_TCP = 'tcp'
CONNECTION_TYPE_AUTO = 'auto'

"""Connection map, defines SessionCreator objects which used for session creation"""
CONNECTION_MAP = OrderedDict()

"""Definition for SSH session"""
ssh_session = SessionCreator(SSHSession)
ssh_session.proxy = ReturnToPoolProxy
ssh_session.kwargs = {'username': get_attribute_by_name_wrapper('User'),
                      'password': get_decrypted_password_by_attribute_name_wrapper('Password'),
                      'host': get_resource_address,
                      'port': get_attribute_by_name_wrapper('CLI TCP Port')}
CONNECTION_MAP[CONNECTION_TYPE_SSH] = ssh_session

"""Definition for TCP session"""
tcp_session = SessionCreator(TCPSession)
tcp_session.proxy = ReturnToPoolProxy
tcp_session.kwargs = {'host': get_resource_address, 'port': get_attribute_by_name_wrapper('CLI TCP Port')}
CONNECTION_MAP[CONNECTION_TYPE_TCP] = tcp_session

"""Definition for Telnet session"""
telnet_session = SessionCreator(TelnetSession)
telnet_session.proxy = ReturnToPoolProxy
telnet_session.kwargs = {'username': get_attribute_by_name_wrapper('User'),
Exemple #3
0
"""Definition for SSH session"""
from collections import OrderedDict

from cloudshell.cli.session.session_creator import SessionCreator
from cloudshell.cli.session.session_proxy import ReturnToPoolProxy
from cloudshell.cli.session.telnet_session import TelnetSession
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_TYPE_SSH, CONNECTION_TYPE_TELNET
from cloudshell.networking.cisco.aireos.cli.aireos_ssh_session import AireOSSSHSession
from cloudshell.shell.core.context_utils import get_attribute_by_name_wrapper, get_resource_address, \
    get_attribute_by_name
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_MAP

ssh_session = SessionCreator(AireOSSSHSession)
ssh_session.proxy = ReturnToPoolProxy
ssh_session.kwargs = {
    'username': get_attribute_by_name_wrapper('User'),
    'password': get_attribute_by_name_wrapper('Password'),
    'host': get_resource_address
}
CONNECTION_MAP[CONNECTION_TYPE_SSH] = ssh_session

CONNECTION_EXPECTED_MAP = OrderedDict({
    r'[Uu]ser:':
    lambda session: session.send_line(get_attribute_by_name('User')),
    r'[Pp]assword:':
    lambda session: session.send_line(get_attribute_by_name('Password'))
})
"""Definition for Telnet session"""
telnet_session = SessionCreator(TelnetSession)
telnet_session.proxy = ReturnToPoolProxy
telnet_session.kwargs = {
Exemple #4
0
from collections import OrderedDict

from cloudshell.cli.session.session_creator import SessionCreator
from cloudshell.cli.session.session_proxy import ReturnToPoolProxy
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_TYPE_SSH
from cloudshell.networking.cisco.aireos.cli.aireos_ssh_session import AireOSSSHSession
from cloudshell.shell.core.context_utils import get_attribute_by_name_wrapper, \
    get_resource_address, get_attribute_by_name, get_decrypted_password_by_attribute_name_wrapper
from cloudshell.shell.core.dependency_injection.context_based_logger import get_logger_with_thread_id
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_MAP

"""Definition for SSH session"""
ssh_session = SessionCreator(AireOSSSHSession)
ssh_session.proxy = ReturnToPoolProxy
ssh_session.kwargs = {'username': get_attribute_by_name_wrapper('User'),
                      'password': get_decrypted_password_by_attribute_name_wrapper('Password'),
                      'host': get_resource_address}
CONNECTION_MAP[CONNECTION_TYPE_SSH] = ssh_session

CONNECTION_EXPECTED_MAP = OrderedDict({r'[Uu]ser:': lambda session: session.send_line(get_attribute_by_name('User')),
                                       r'[Pp]assword:': lambda session: session.send_line(
                                           get_decrypted_password_by_attribute_name_wrapper('Password')())})

GET_LOGGER_FUNCTION = get_logger_with_thread_id

DEFAULT_PROMPT = r'[>$#]\s*$'
CONFIG_MODE_PROMPT = DEFAULT_PROMPT

ENTER_CONFIG_MODE_PROMPT_COMMAND = ''
EXIT_CONFIG_MODE_PROMPT_COMMAND = ''
ERROR_MAP = OrderedDict(
    {r'[Ee]rror\s+saving\s+configuration': 'Save configuration error',
     r'syntax\s+error': 'Command syntax error',
     r'[Uu]nknown\s+command': 'Unknown command',
     r'[Ee]rror:\s+configuration\s+check-out\s+failed': 'Configuration checkout failed',
     r'ERROR:': 'Error, see logs for more details',
     r'[Ee]rror\s+.+': 'Error, see logs for more details'})

DEFAULT_PROMPT = '[%>#]\s*$|[%>#]\s*\n'
CONFIG_MODE_PROMPT = r'.*#\s*$'

SNMP_ERRORS = [r'No\s+Such\s+Object\s+currently\s+exists']

"""Dictionary used for snmp handler initialization"""
QUALISNMP_INIT_PARAMS = {'ip': get_resource_address,
                         'snmp_version': get_attribute_by_name_wrapper('SNMP Version'),
                         'snmp_user': get_attribute_by_name_wrapper('SNMP V3 User'),
                         'snmp_password': get_attribute_by_name_wrapper('SNMP V3 Password'),
                         'snmp_community': get_attribute_by_name_wrapper('SNMP Read Community'),
                         'snmp_private_key': get_attribute_by_name_wrapper('SNMP V3 Private Key'),
                         'snmp_errors': SNMP_ERRORS}


def create_snmp_handler():
    """
    Factory function which creates CachedSnmpHandler
    :return:
    """
    kwargs = {}
    for key, value in QUALISNMP_INIT_PARAMS.iteritems():
        if callable(value):
from weakref import WeakKeyDictionary
from threading import current_thread
# from cloudshell.cli.session.session_creator import SessionCreator
# from cloudshell.cli.session.session_validation_proxy import SessionValidationProxy
# from cloudshell.cli.session.session_proxy import ReturnToPoolProxy
from cloudshell.cli.session.ssh_session import SSHSession
from cloudshell.cli.session.telnet_session import TelnetSession
# from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_MAP, CONNECTION_TYPE_SSH, \
#     CONNECTION_TYPE_TELNET

from cloudshell.shell.core.context_utils import get_resource_address, get_attribute_by_name_wrapper
from cloudshell.snmp.quali_snmp import QualiSnmp
from cloudshell.snmp.quali_snmp_cached import QualiSnmpCached

QUALISNMP_INIT_PARAMS = {'ip': get_resource_address,
                         'snmp_version': get_attribute_by_name_wrapper('SNMP Version'),
                         'snmp_user': get_attribute_by_name_wrapper('SNMP V3 User'),
                         'snmp_password': get_attribute_by_name_wrapper('SNMP V3 Password'),
                         'snmp_community': get_attribute_by_name_wrapper('SNMP Read Community'),
                         'snmp_private_key': get_attribute_by_name_wrapper('SNMP V3 Private Key')}


# file_path = '/tmp/_juniper_snmp_cache'
# file_path = '/tmp/_junos_SRX_220'
# file_path = ''


class SaveCachedChanges(QualiSnmpCached):
    def __init__(self, *args, **kwargs):
        super(SaveCachedChanges, self).__init__(*args, **kwargs)
        # try:
"""Definition for SSH session"""
from collections import OrderedDict

from cloudshell.cli.session.session_creator import SessionCreator
from cloudshell.cli.session.session_proxy import ReturnToPoolProxy
from cloudshell.cli.session.telnet_session import TelnetSession
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_TYPE_SSH, CONNECTION_TYPE_TELNET
from cloudshell.networking.cisco.aireos.cli.aireos_ssh_session import AireOSSSHSession
from cloudshell.shell.core.context_utils import get_attribute_by_name_wrapper, get_resource_address, \
    get_attribute_by_name
from cloudshell.configuration.cloudshell_cli_configuration import CONNECTION_MAP

ssh_session = SessionCreator(AireOSSSHSession)
ssh_session.proxy = ReturnToPoolProxy
ssh_session.kwargs = {'username': get_attribute_by_name_wrapper('User'),
                      'password': get_attribute_by_name_wrapper('Password'),
                      'host': get_resource_address}
CONNECTION_MAP[CONNECTION_TYPE_SSH] = ssh_session

CONNECTION_EXPECTED_MAP = OrderedDict({r'[Uu]ser:': lambda session: session.send_line(get_attribute_by_name('User')),
                                       r'[Pp]assword:': lambda session: session.send_line(
                                           get_attribute_by_name('Password'))})

"""Definition for Telnet session"""
telnet_session = SessionCreator(TelnetSession)
telnet_session.proxy = ReturnToPoolProxy
telnet_session.kwargs = {'username': get_attribute_by_name_wrapper('User'),
                         # 'password': get_decrypted_password_by_attribute_name_wrapper('Password'),
                         'password': get_attribute_by_name_wrapper('Password'),
                         'host': get_resource_address}
CONNECTION_MAP[CONNECTION_TYPE_TELNET] = telnet_session