Skip to content
Snippets Groups Projects
Commit c23c4010 authored by Davide Vaghetti's avatar Davide Vaghetti
Browse files

Added entity_search.py script

parent b6e93eca
No related branches found
No related tags found
1 merge request!7Master
......@@ -21,6 +21,10 @@ adm_contact = ''
parser = argparse.ArgumentParser(description='Show detailed information about an eduGAIN entity.',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog='''
Output format CSV:
entity_id,fed_name,fed_email,reg_auth,org_name,tec_email,sup_email,adm_email
Examples
- Retrieve details about a single entity using eduGAIN metadata:\n
......@@ -42,10 +46,11 @@ args = parser.parse_args()
feds_request = requests.get("https://technical.edugain.org/api.php?action=list_feds&format")
feds = feds_request.json()
def get_fed_name(registration_authority):
def get_fed_attr(registration_authority, attr):
for key in feds:
if feds[key]['reg_auth'] == registration_authority:
return feds[key]['name']
if attr in feds[key].keys():
return feds[key][attr]
return None
# MAIN
......@@ -79,7 +84,7 @@ ns = {
'mdrpi': 'urn:oasis:names:tc:SAML:metadata:rpi',
}
print('entityID,FederationName,RegistrationAuthority,OrganizationName,TechnicalContact,SupportContact,AdministrativeContact')
print('entity_id,fed_name,fed_email,reg_auth,org_name,tec_email,sup_email,adm_email')
for entity_id in entities:
......@@ -92,7 +97,8 @@ for entity_id in entities:
if registration_info:
registration_authority = registration_info.attrib['registrationAuthority'].strip()
fed_name = get_fed_name(registration_authority)
fed_name = get_fed_attr(registration_authority, 'name')
fed_contact = get_fed_attr(registration_authority, 'email')
orgname = entity.find('./md:Organization/md:OrganizationDisplayName', ns).text.strip()
......@@ -106,7 +112,7 @@ for entity_id in entities:
if adm_contact_el is not None:
adm_contact = adm_contact_el.text.replace('mailto:', '')
print('{},{},{},{},{},{}'.format(entity_id, fed_name, registration_authority, orgname, tec_contact, sup_contact, adm_contact))
print('{},{},{},{},{},{},{},{}'.format(entity_id, fed_name, fed_contact, registration_authority, orgname, tec_contact, sup_contact, adm_contact))
else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment