def _get_session():
    '''
    Get a connection to the XenServer host
    '''
    api_version = '1.0'
    originator = 'salt_cloud_{}_driver'.format(__virtualname__)
    url = config.get_cloud_config_value(
        'url',
        get_configured_provider(),
        __opts__,
        search_global=False
    )
    user = config.get_cloud_config_value(
        'user',
        get_configured_provider(),
        __opts__,
        search_global=False
    )
    password = config.get_cloud_config_value(
        'password',
        get_configured_provider(),
        __opts__,
        search_global=False
    )
    ignore_ssl = config.get_cloud_config_value(
        'ignore_ssl',
        get_configured_provider(),
        __opts__,
        default=False,
        search_global=False
    )
    try:
        session = XenAPI.Session(url, ignore_ssl=ignore_ssl)
        log.debug(
            'url: %s user: %s password: %s, originator: %s',
            url, user, 'XXX-pw-redacted-XXX', originator
        )
        session.xenapi.login_with_password(
            user, password, api_version, originator)
    except XenAPI.Failure as ex:
        pool_master_addr = six.text_type(ex.__dict__['details'][1])
        slash_parts = url.split('/')
        new_url = '/'.join(slash_parts[:2]) + '/' + pool_master_addr
        session = XenAPI.Session(new_url)
        log.debug(
            'session is -> url: %s user: %s password: %s, originator:%s',
            new_url, user, 'XXX-pw-redacted-XXX', originator
        )
        session.xenapi.login_with_password(
            user, password, api_version, originator)
    return session
def _get_session ( ) : api_version = '1.0' originator = 'salt_cloud_{}_driver' . format ( __virtualname__ ) url = config . get_cloud_config_value ( 'url' , get_configured_provider ( ) , __opts__ , search_global = False ) user = config . get_cloud_config_value ( 'user' , get_configured_provider ( ) , __opts__ , search_global = False ) password = config . get_cloud_config_value ( 'password' , get_configured_provider ( ) , __opts__ , search_global = False ) ignore_ssl = config . get_cloud_config_value ( 'ignore_ssl' , get_configured_provider ( ) , __opts__ , default = False , search_global = False ) try : session = XenAPI . Session ( url , ignore_ssl = ignore_ssl ) log . debug ( 'url: %s user: %s password: %s, originator: %s' , url , user , 'XXX-pw-redacted-XXX' , originator ) session . xenapi . login_with_password ( user , password , api_version , originator ) except XenAPI . Failure as ex : pool_master_addr = six . text_type ( ex . __dict__ [ 'details' ] [ 1 ] ) slash_parts = url . split ( '/' ) new_url = '/' . join ( slash_parts [ : 2 ] ) + '/' + pool_master_addr session = XenAPI . Session ( new_url ) log . debug ( 'session is -> url: %s user: %s password: %s, originator:%s' , new_url , user , 'XXX-pw-redacted-XXX' , originator ) session . xenapi . login_with_password ( user , password , api_version , originator ) return session
Get a connection to the XenServer host