=== modified file 'fedora/tg/client.py'
--- fedora/tg/client.py 2007-09-08 08:00:35 +0000
+++ fedora/tg/client.py 2007-10-07 23:44:56 +0000
@@ -30,13 +30,9 @@
import cPickle as pickle
import re
import inspect
+import simplejson
from os import path
-try:
- import simplejson
-except ImportError:
- import json
-
log = logging.getLogger(__name__)
SESSION_FILE = path.join(path.expanduser('~'), '.fedora_session')
@@ -51,11 +47,24 @@
'''
A command-line client to interact with Fedora TurboGears Apps.
'''
- def __init__(self, baseURL, username=None, password=None):
+ def __init__(self, baseURL, username=None, password=None, debug=False):
self.baseURL = baseURL
self.username = username
self.password = password
self._sessionCookie = None
+
+ # Setup our logger
+ sh = logging.StreamHandler()
+ if debug:
+ log.setLevel(logging.DEBUG)
+ sh.setLevel(logging.DEBUG)
+ else:
+ log.setLevel(logging.INFO)
+ sh.setLevel(logging.INFO)
+ format = logging.Formatter("%(message)s")
+ sh.setFormatter(format)
+ log.addHandler(sh)
+
self._load_session()
if username and password:
self._authenticate()
@@ -87,10 +96,7 @@
else:
raise
- try:
- loginData = simplejson.load(loginPage)
- except NameError:
- loginData = json.read(loginPage.read())
+ loginData = simplejson.load(loginPage)
if 'message' in loginData:
raise AuthError, 'Unable to login to server: %s' % loginData['message']
@@ -124,15 +130,13 @@
sessionFile = file(SESSION_FILE, 'r')
try:
savedSession = pickle.load(sessionFile)
-
+ self._sessionCookie = savedSession[self.username]
log.debug('Loaded session %s' % self._sessionCookie)
except EOFError:
log.error('Unable to load session from %s' % SESSION_FILE)
+ except KeyError:
+ log.debug('Session is for a different user')
sessionFile.close()
- try:
- self._sessionCookie = savedSession[self.username]
- except KeyError:
- log.debug('Session is for a different user')
def send_request(self, method, auth=False, input=None):
'''
@@ -143,7 +147,7 @@
url = self.baseURL + method + '/?tg_format=json'
response = None # the JSON that we get back from the server
- data = None # decoded JSON via json.read()
+ data = None # decoded JSON via simplejson.load()
log.debug('Creating request %s' % url)
req = urllib2.Request(url)
@@ -162,16 +166,13 @@
try:
data = simplejson.load(response)
except NameError:
- try:
- data = json.read(response.read())
- except json.ReadException, e:
- regex = re.compile('(.*)')
- match = regex.search(e.message)
- if match and len(match.groups()):
- log.error(match.groups()[0])
- else:
- log.error('Unexpected ReadException during request:' + e)
- raise ServerError, e.message
+ regex = re.compile('(.*)')
+ match = regex.search(e.message)
+ if match and len(match.groups()):
+ log.error(match.groups()[0])
+ else:
+ log.error('Unexpected ReadException during request:' + e)
+ raise ServerError, e.message
except Exception, e:
log.error('Error while parsing JSON data from server:', e)
raise ServerError, str(e)