Created
November 2, 2017 10:17
-
-
Save jrha/16189ed835be61512d7d695ba3e4eb8b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python2 | |
""" | |
Use VO card XML feed to generate vomses data | |
""" | |
from urllib2 import urlopen | |
from lxml import etree | |
URL = 'http://operations-portal.egi.eu/xml/voIDCard/public/all/true' | |
data = urlopen(URL) | |
tree = etree.parse(data) | |
results = {} | |
# Collect data | |
for card in tree.iterfind('/IDCard'): | |
vo_name = card.get('Name') | |
results[vo_name] = { | |
'servers' : {}, | |
} | |
voms_servers = card.findall('./gLiteConf/VOMSServers/VOMS_Server') | |
for server in voms_servers: | |
server_name = server.find('./hostname').text | |
dn = server.find('./X509Cert/DN') | |
ca_dn = server.find('./X509Cert/CA_DN') | |
if dn is not None: | |
results[vo_name]['servers'][server_name] = { | |
'MembersListUrl' : server.get('MembersListUrl'), | |
'VomsesPort' : server.get('VomsesPort'), | |
'DN' : dn.text, | |
'CA_DN' : ca_dn.text, | |
} | |
# Render vomses | |
for vo_name, vo_info in results.iteritems(): | |
for server_name, server_info in vo_info['servers'].iteritems(): | |
print '# /etc/vomses/%s-%s' % (vo_name, server_name) | |
print '"%s" "%s" "%s" "%s" "%s"' % ( | |
vo_name, | |
server_name, | |
server_info['VomsesPort'], | |
server_info['DN'], | |
vo_name, | |
) | |
# Render lsc | |
for vo_name, vo_info in results.iteritems(): | |
for server_name, server_info in vo_info['servers'].iteritems(): | |
print '# /etc/grid-security/vomsdir/%s/%s.lsc' % (vo_name, server_name) | |
print server_info['DN'] | |
print server_info['CA_DN'] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment