#!/usr/bin/python3.6

import urllib.request
from lxml import etree
import sys
import re

#download vosummary (for oasis enabled)
response = urllib.request.urlopen("https://topology.opensciencegrid.org/vosummary/xml?summary_attrs_showoasis=on&all_vos=on&active=on&active_value=1&oasis=on&oasis_value=1&sort_key=name", timeout=30)
xml = response.read()
doc = etree.XML(xml)

#parse out the VO names
for vo in doc.xpath("//VO"):

        #create good unixname
        voname = vo.xpath("Name")[0].text
        voname = re.sub(r'[^/a-z0-9]+', '', voname.lower())

        username = "ouser."+voname
        stagedir="/stage/oasis/"+voname

        print("id -u",username,"&>/dev/null || (/usr/sbin/useradd",username,"-d","/home/login/"+username,"-p","`pwgen 24 -y -n -s` && ([ -d",stagedir,"] || (mkdir",stagedir,"&& chown",username,stagedir,"&& chgrp",username,stagedir,"&& chmod 755",stagedir,")))")
