Scripts/openchange_cleanup.py:
use plistlib to read sogo defaults instead of ugly hack Monotone-Parent: 1fbe308ad552ffa7e4c43a1a33f14a64aacf1f62 Monotone-Revision: 97e02e31cb9e8ce215a0d0d092e79db5cc210a3c Monotone-Author: jraby@inverse.ca Monotone-Date: 2012-09-10T20:43:58 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
24f9f4ef84
commit
74cc3b79b7
|
@ -3,6 +3,7 @@
|
||||||
import getopt
|
import getopt
|
||||||
import imaplib
|
import imaplib
|
||||||
import ldb
|
import ldb
|
||||||
|
import plistlib
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
|
@ -13,6 +14,7 @@ imaphost = '127.0.0.1'
|
||||||
imapport = 143
|
imapport = 143
|
||||||
sambaprivate = '/var/lib/samba/private'
|
sambaprivate = '/var/lib/samba/private'
|
||||||
mapistorefolder = "%s/mapistore" % (sambaprivate)
|
mapistorefolder = "%s/mapistore" % (sambaprivate)
|
||||||
|
sogoDefaultsFile = "/home/sogo/GNUstep/Defaults/.GNUstepDefaults"
|
||||||
|
|
||||||
# - takes a username and optionally its password
|
# - takes a username and optionally its password
|
||||||
# - removes the entry in samba's ldap tree via ldbedit (NOTYET)
|
# - removes the entry in samba's ldap tree via ldbedit (NOTYET)
|
||||||
|
@ -182,19 +184,19 @@ def postgresqlCleanup(dbhost, dbport, dbuser, dbpass, dbname, username):
|
||||||
print "table '%s' emptied" % tablename
|
print "table '%s' emptied" % tablename
|
||||||
|
|
||||||
def getOCSFolderInfoURL():
|
def getOCSFolderInfoURL():
|
||||||
# hack
|
global sogoDefaultsFile
|
||||||
# this doesn't work in py2.6 ...
|
sogoDefaults = plistlib.readPlist(sogoDefaultsFile)
|
||||||
#defaultsout = subprocess.check_output(["defaults", "read", "sogod", "OCSFolderInfoURL"])
|
try:
|
||||||
defaultsout = subprocess.Popen(["defaults", "read", "sogod", "OCSFolderInfoURL"], stdout=subprocess.PIPE).communicate()[0]
|
OCSFolderInfoURL = sogoDefaults['sogod']['OCSFolderInfoURL']
|
||||||
|
except KeyError:
|
||||||
|
OCSFolderInfoURL = ""
|
||||||
|
|
||||||
OCSFolderInfoURL = defaultsout.split()[-1]
|
return OCSFolderInfoURL
|
||||||
return OCSFolderInfoURL
|
|
||||||
|
|
||||||
def sqlCleanup(username):
|
def sqlCleanup(username):
|
||||||
try:
|
OCSFolderInfoURL = getOCSFolderInfoURL()
|
||||||
OCSFolderInfoURL = getOCSFolderInfoURL()
|
if (OCSFolderInfoURL is None):
|
||||||
except subprocess.CalledProcessError:
|
raise Exception("Couldn't fetch OCSFolderInfoURL or it is not set. the socfs_%s table should be truncated manually" % (username))
|
||||||
"Couldn't fetch OCSFolderInfoURL, the socfs_%s table should be truncated manually" % (username)
|
|
||||||
|
|
||||||
# postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_folder_info
|
# postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_folder_info
|
||||||
m = re.search("(.+)://(.+):(.+)@(.+):(\d+)/(.+)/(.+)", OCSFolderInfoURL)
|
m = re.search("(.+)://(.+):(.+)@(.+):(\d+)/(.+)/(.+)", OCSFolderInfoURL)
|
||||||
|
|
Loading…
Reference in New Issue