Ejemplo n.º 1
0
def license_stats():
    listener.setuid(0)
    lo = ul.getMachineConnection()
    users = lo.search('univentionOpenvpnAccount=1')
    myname = listener.baseConfig['hostname']
    me = lo.search('cn=%s' % myname)
    try:
        key = me[0][1]['univentionOpenvpnLicense'][0]
    except:
        key = ""
    listener.unsetuid()
    connected_users = userlist()

    c_connected_users = len(connected_users)
    c_users = len(users)
    c_licenced = univention_openvpn_common.maxvpnusers(0, key)
    try:
        l = univention_openvpn_common.license(0, key)
        valid = str(date.fromordinal(l['vdate']))
    except:
        valid = "No valid license on this host"

    info = {"expiration": valid, "connected": c_connected_users, "total": c_users, "licenced": c_licenced}

    count = str(len(connected_users))

    query = web.ctx.query
    if query:
        # jsonp
        queries = query.split('&')
        callback = queries[0].split('=')[1]
        return '%s({"draw": 1, "recordsTotal": %s, "recordsFiltered": %s, "info": %s});' % (callback, count, count, json.dumps(info))
    else:
        return '{"info": %s}' % json.dumps(info)
Ejemplo n.º 2
0
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


from os import system
import univention.uldap as ul
from univention_openvpn_common import maxvpnusers


lo = ul.getMachineConnection()

maxu = 5
lobs = lo.search("(univentionOpenvpnLicense=*)")
for lob in lobs:
    key = lob[1].get("univentionOpenvpnLicense", [None])[0]
    mu = maxvpnusers(0, key)
    if mu > maxu:
        maxu = mu

vpnusers = lo.search("(univentionOpenvpnAccount=1)")
if len(vpnusers) > maxu:
    exit()

vpnservers = lo.search("(&(objectClass=univentionOpenvpn)(univentionOpenvpnActive=1))")

for (tmp, server) in vpnservers:
    name = server.get("cn", [None])[0]
    port = server.get("univentionOpenvpnPort", [None])[0]
    addr = server.get("univentionOpenvpnAddress", [None])[0]
    if not name or not port or not addr:
        continue