summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/mirrormanager/frontend2/files/xmlrpc.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/roles/mirrormanager/frontend2/files/xmlrpc.py b/roles/mirrormanager/frontend2/files/xmlrpc.py
index 804f43afc..e75d479e7 100644
--- a/roles/mirrormanager/frontend2/files/xmlrpc.py
+++ b/roles/mirrormanager/frontend2/files/xmlrpc.py
@@ -41,7 +41,11 @@ XMLRPC.connect(APP, '/xmlrpc')
@XMLRPC.register
def checkin(pickledata):
- config = pickle.loads(bz2.decompress(base64.urlsafe_b64decode(pickledata)))
+ uncompressed = bz2.decompress(base64.urlsafe_b64decode(pickledata))
+ try:
+ config = json.loads(uncompressed)
+ except ValueError:
+ config = pickle.loads(uncompressed)
r, message = read_host_config(SESSION, config)
if r is not None:
return message + 'checked in successful'