#!/usr/bin/python import urllib, json, os, subprocess, sys url = "http://vpnapi.charite.de/vpn/user/status/activevpn" response = urllib.urlopen(url); data = json.loads(response.read()) for userentry in data: if userentry.get('active'): username = userentry.get('username') if os.path.isfile( "/opt/openvpn/ca/keys/" + username + ".crt"): # print "Cert for " + username + " exists" a=1 else: # get user details detailsurl = "http://vpnapi.charite.de/vpn/user/details/" + username response = urllib.urlopen(detailsurl); detaildata = json.loads(response.read()) useremail = detaildata.get('mail') if not useremail: print "User " + username + " has no Email address in LDAP" # Import smtplib for the actual sending function import smtplib # Import the email modules we'll need from email.mime.text import MIMEText # Create a text/plain message msg = MIMEText("User " + username + " has no Email address in LDAP") [...] msg['Subject'] = 'User %s has no Email address in LDAP' % username msg['From'] = 'vpn@charite.de' msg['To'] = 'vpn@charite.de' [...] s = smtplib.SMTP('localhost') s.sendmail('vpn@charite.de', 'vpn@charite.de', msg.as_string()) s.quit() break # end get user details print "Need to generate cert for " + username p = subprocess.Popen("/opt/openvpn/ca/build-key-auto " + username, bufsize=1, cwd="/opt/openvpn/ca", stdout=subprocess.PIPE, close_fds=False, universal_newlines=True, shell=True) if p.wait: ret = p.wait() else: ret = p.returncode if (ret != 0): # if not OK if p.stdout: print "Output was:" print p.stdout.readlines() else: # if OK print "Send Certificate!" p = subprocess.Popen("/opt/openvpn/scripts/send_certs_and_config.py " + username, bufsize=1, cwd="/opt/openvpn/ca", stdout=subprocess.PIPE, close_fds=False, universal_newlines=True, shell=True) if p.wait: ret = p.wait() else: ret = p.returncode if (ret != 0): if p.stdout: print "Output was:" print p.stdout.readlines() # if not OK