Пример #1
0
def get_acls(env, provider, token):
    """ Method used to get all ACLs for given provider """

    logger = util.get_logger(env)
    logger.debug('TEA configuraton ACL')
    cmr_url = util.get_env(env)
    headers = util.standard_headers({
        'Authorization': token,
        'Content-Type': 'application/json'
    })
    url = (f'{cmr_url}/access-control/acls'
           f'?provider={provider}'
           f'&identity_type=catalog_item'
           f'&page_size=2000')
    try:
        response = requests.get(url, headers=headers)
        json_data = response.json()
        logging.debug('get_acls: response=%s', json_data)
        if response.status_code == 200:
            if 'items' in json_data:
                items = json_data['items']
                return items
    except requests.exceptions.RequestException as error:
        logging.error('Error occurred in get_acl: %s', error)
    return []
Пример #2
0
    def test_standard_headers(self):
        """
        Test that the standard header function always returns the correct user agent
        """
        test = lambda e, p, m: self.assertEqual(e, p['User-Agent'], m)

        expected = 'ESDIS TEA Config Generator'

        test(expected, util.standard_headers(), 'dictionary not provided')
        test(expected, util.standard_headers(None), 'none dictionary')
        test(expected, util.standard_headers({'u': 'you'}),
             'dictionary provided')
        test(expected, util.standard_headers({'User-Agent': 'Wrong'}),
             'overwrite check')

        actual = util.standard_headers({'Other-Header': 'Keep'})
        self.assertEqual('Keep', actual['Other-Header'], 'other values')
Пример #3
0
def get_collection(env:dict, token, concept_id):
    """ Method returns collection for given concept_id """
    logger = util.get_logger(env)
    headers = util.standard_headers({'Authorization': token, 'Content-Type': 'application/json'})
    cmr_base = util.get_env(env)
    url = f'{cmr_base}/search/concepts/{concept_id}.umm_json'
    try:
        response = requests.get(env, url, headers=headers)
        json_data = response.json()
        logger.debug('get_collection: response=%s', json_data)
        if response.status_code == 200:
            return json_data
    except requests.exceptions.RequestException as error:
        logger.error('Error occurred in get_collection: %s', error)
    return {}
Пример #4
0
def get_acl(env, acl_url, token):
    """ Method retrieves ACL for given ACL URL """
    logger = util.get_logger(env)
    headers = util.standard_headers({
        'Authorization': token,
        'Content-Type': 'application/json'
    })
    try:
        response = requests.get(acl_url, headers=headers)
        json_data = response.json()
        logger.debug("get_acl: response=%s", json_data)
        if response.status_code == 200:
            return json_data
    except requests.exceptions.RequestException as error:
        logging.error('Error occurred in get_acl: %s', error)
    return {}
Пример #5
0
def get_group(env: dict, group_id, token):
    """ Method used to get group for given group ID """
    logger = util.get_logger({})
    cmr_base = util.get_env(env)
    url = f'{cmr_base}/access-control/groups/{group_id}'
    headers = util.standard_headers({
        'Authorization': token,
        'Content-Type': 'application/json'
    })
    try:
        response = requests.get(url, headers=headers)
        json_data = response.json()
        logger.debug('get_group: response=%s', json_data)
        if response.status_code == 200:
            return json_data
    except requests.exceptions.RequestException as error:
        logger.error('Error occurred in get_group: %s', error)
    return {}
Пример #6
0
def get_groups(env: dict, acl_url, token):
    """ Method gets groups for given ACL URL """
    logger = util.get_logger(env)
    headers = util.standard_headers({
        'Authorization': token,
        'Content-Type': 'application/json'
    })
    try:
        response = requests.get(acl_url, headers=headers)
        json_data = response.json()
        logger.debug('get_groups: response=%s', json_data)
        if response.status_code == 200:
            if 'group_permissions' in json_data:
                items = json_data['group_permissions']
                return items
    except requests.exceptions.RequestException as error:
        logger.error('Error occurred in get_groups: %s', error)
    return []
Пример #7
0
def get_collections(env:dict, token, provider, page_num, page_size):
    """ Method returns collections for given provider """
    logger = util.get_logger(env)
    headers = util.standard_headers({'Authorization': token})
    cmr_base = util.get_env(env)
    url = (f'{cmr_base}/search/collections.umm-json'
        f'?provider={provider}'
        f'&sort_key=entry_title'
        f'&page_num={page_num}'
        f'&page_size={page_size}')
    try:
        logger.debug('request url: %s', url)
        response = requests.get(url, headers=headers)
        json_data = response.json()
        logger.debug('get_collections: response=%s', json_data)
        if response.status_code == 200:
            return json_data
    except requests.exceptions.RequestException as error:
        logger.error('Error occurred in get_collections from calling %s:\n%s', url, error)
    return {}