Example #1
0
def test_metadata_admin_pems(agave, credentials):
    # first, lets add a new metadata using the normal user's client
    name = 'python-sdk-test-metadata-admin-pems'
    value = 'test value'
    d = {'name': name, 'value': value}
    md = agave.meta.addMetadata(body=json.dumps(d))
    uuid = md.uuid
    # let's make sure it is there
    md2 = agave.meta.listMetadata(q=json.dumps({'name': name}))
    assert uuid in [md.uuid for md in md2]
    # now, create a new client representing the admin
    ag = a.Agave(username=credentials.get('admin_username'),
                 password=credentials.get('admin_password'),
                 api_server=credentials.get('apiserver'),
                 api_key=credentials.get('apikey'),
                 api_secret=credentials.get('apisecret'),
                 token=credentials.get('token'),
                 refresh_token=credentials.get('refresh_token'),
                 verify=credentials.get('verify_certs', True))
    # let's check that the admin can see our metadata
    md2 = ag.meta.listMetadata(q=json.dumps({'name': name}))
    assert uuid in [md.uuid for md in md2]
    # now, explicitly turn off 'implicit' permissions
    md3 = ag.meta.listMetadata(q=json.dumps({'name': name}), privileged=False)
    assert uuid not in [md.uuid for md in md3]
    # finally, delete the original metadata
    agave.meta.deleteMetadata(uuid=uuid)
Example #2
0
def agave(credentials):
    aga = a.Agave(username=credentials.get('username'),
                  password=credentials.get('password'),
                  api_server=credentials.get('apiserver'),
                  api_key=credentials.get('apikey'),
                  api_secret=credentials.get('apisecret'),
                  token=credentials.get('token'),
                  refresh_token=credentials.get('refresh_token'),
                  verify=credentials.get('verify_certs', True))
    return aga
Example #3
0
def test_token_access(credentials):
    # create a fresh client
    ag = a.Agave(username=credentials.get('username'),
                 password=credentials.get('password'),
                 api_server=credentials.get('apiserver'),
                 api_key=credentials.get('apikey'),
                 api_secret=credentials.get('apisecret'),
                 token=credentials.get('token'),
                 refresh_token=credentials.get('refresh_token'),
                 verify=credentials.get('verify_certs', True))
    # force a token refresh
    token = ag.token.refresh()
    # now, create a new client using just the token
    token_client = a.Agave(api_server=credentials['apiserver'],
                           token=token,
                           verify=credentials.get('verify_certs', True))
    # make sure the new client works
    apps = token_client.apps.list()
    for app in apps:
        validate_app(app)
Example #4
0
def agave(credentials):
    '''Return a functional Agave client'''
    aga = a.Agave(username=credentials.get('username'),
                  password=credentials.get('password'),
                  api_server=credentials.get('apiserver'),
                  api_key=credentials.get('apikey'),
                  api_secret=credentials.get('apisecret'),
                  token=credentials.get('token'),
                  refresh_token=credentials.get('refresh_token'),
                  verify=True)
    return aga
Example #5
0
def test_token_callback(agave, credentials):
    def sample_token_callback(**kwargs):
        global token_callback_calls
        token_callback_calls += 1
        assert kwargs['access_token']
        assert kwargs['refresh_token']
        assert kwargs['created_at']
        assert kwargs['expires_at']

    # create a client with a token callback:
    ag = a.Agave(username=credentials.get('username'),
                 password=credentials.get('password'),
                 api_server=credentials.get('apiserver'),
                 api_key=credentials.get('apikey'),
                 api_secret=credentials.get('apisecret'),
                 verify=credentials.get('verify_certs', True),
                 token_callback=sample_token_callback)
    # once created, let's force a refresh
    ag.token.refresh()
    global token_callback_calls
    assert token_callback_calls >= 1