diff --git a/entity_details.py b/entity_details.py index 76bb783826885b6f748f171b7917bfa4721e5bfd..ec5bd47ac751af563fe420e0e3d092678cf1ff53 100755 --- a/entity_details.py +++ b/entity_details.py @@ -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: