|
4 |
import subprocess |
4 |
import subprocess |
5 |
import json |
5 |
import json |
6 |
import re |
6 |
import re |
|
|
7 |
from ldif import LDIFParser |
7 |
from univention.config_registry import ConfigRegistry |
8 |
from univention.config_registry import ConfigRegistry |
8 |
|
9 |
|
|
|
10 |
class LicenseLDIF(LDIFParser): |
11 |
def __init__(self, input, ucr): |
12 |
LDIFParser.__init__(self, input) |
13 |
self.ucr = ucr |
14 |
self.uuid = None |
15 |
|
16 |
@property |
17 |
def uuid(self): |
18 |
return self.uuid |
19 |
|
20 |
def handle(self, dn, entry): |
21 |
if dn == 'cn=admin,cn=license,cn=univention,%s' % self.ucr.get('ldap/base'): |
22 |
if 'univentionLicenseKeyID' in entry and len(entry['univentionLicenseKeyID']) > 0: |
23 |
self.uuid = entry['univentionLicenseKeyID'][0] |
24 |
|
25 |
|
9 |
ucr = ConfigRegistry() |
26 |
ucr = ConfigRegistry() |
10 |
ucr.load() |
27 |
ucr.load() |
11 |
|
28 |
|
|
97 |
'message': exc.output |
114 |
'message': exc.output |
98 |
}) |
115 |
}) |
99 |
|
116 |
|
|
|
117 |
ucr.load() |
118 |
|
119 |
# get uuid from ldif file, ucr['uuid/license'] is not yet up-to-date at this point |
120 |
license_ldif = LicenseLDIF(open(LICENSE_UPLOAD_PATH, 'rb'), ucr) |
121 |
license_ldif.parse() |
122 |
|
100 |
# disable system activation service (stop is executed with a small delay) |
123 |
# disable system activation service (stop is executed with a small delay) |
101 |
# and answer request |
124 |
# and answer request |
102 |
ucr.load() |
|
|
103 |
apps = get_installed_apps() |
125 |
apps = get_installed_apps() |
104 |
subprocess.Popen(['/usr/bin/sudo', '/usr/sbin/univention-system-activation', 'stop'], stderr=subprocess.STDOUT) |
126 |
subprocess.Popen(['/usr/bin/sudo', '/usr/sbin/univention-system-activation', 'stop'], stderr=subprocess.STDOUT) |
105 |
return _finish('200 OK', { |
127 |
return _finish('200 OK', { |
106 |
'success': True, |
128 |
'success': True, |
107 |
'uuid': ucr.get('uuid/license', ''), |
129 |
'uuid': license_ldif.uuid, |
108 |
'apps': apps, |
130 |
'apps': apps, |
109 |
}) |
131 |
}) |
110 |
|
132 |
|