57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
|
From 7fb95cc638b1c9b7f2e9a67dba859ef8126f2c5f Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Kelley <ckelley@redhat.com>
|
||
|
Date: Tue, 27 Jul 2021 21:57:26 +0100
|
||
|
Subject: [PATCH] Parse getStatus as JSON not XML
|
||
|
|
||
|
On dogtagpki/pki master XML is being replaced by JSON, getStatus will
|
||
|
return JSON in PKI 11.0+
|
||
|
|
||
|
The PR for dogtagpki/pki that makes this change necessary is:
|
||
|
https://github.com/dogtagpki/pki/pull/3674
|
||
|
|
||
|
Reviewed-By: Francois Cami <fcami@redhat.com>
|
||
|
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
|
||
|
---
|
||
|
install/tools/ipa-pki-wait-running.in | 18 ++++++++++++++----
|
||
|
1 file changed, 14 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/install/tools/ipa-pki-wait-running.in b/install/tools/ipa-pki-wait-running.in
|
||
|
index 4f0f2f34a7b0a43210676e7fd50e7029e798f301..9ca6e974e55a4d68afd06e1d9c7b67c5f926e48c 100644
|
||
|
--- a/install/tools/ipa-pki-wait-running.in
|
||
|
+++ b/install/tools/ipa-pki-wait-running.in
|
||
|
@@ -13,6 +13,7 @@ import logging
|
||
|
import sys
|
||
|
import time
|
||
|
from xml.etree import ElementTree
|
||
|
+import json
|
||
|
|
||
|
from ipalib import api
|
||
|
from ipaplatform.paths import paths
|
||
|
@@ -74,10 +75,19 @@ def get_status(conn, timeout):
|
||
|
"""
|
||
|
client = SystemStatusClient(conn)
|
||
|
response = client.get_status(timeout=timeout)
|
||
|
- root = ElementTree.fromstring(response)
|
||
|
- status = root.findtext("Status")
|
||
|
- error = root.findtext("Error")
|
||
|
- logging.debug("Got status '%s', error '%s'", status, error)
|
||
|
+ status = None
|
||
|
+ error = None
|
||
|
+ try:
|
||
|
+ json_response = json.loads(response)
|
||
|
+ status = json_response['Response']['Status']
|
||
|
+ except KeyError as e:
|
||
|
+ error = repr(e)
|
||
|
+ except json.JSONDecodeError:
|
||
|
+ logger.debug("Response is not valid JSON, try XML")
|
||
|
+ root = ElementTree.fromstring(response)
|
||
|
+ status = root.findtext("Status")
|
||
|
+ error = root.findtext("Error")
|
||
|
+ logger.debug("Got status '%s', error '%s'", status, error)
|
||
|
return status, error
|
||
|
|
||
|
|
||
|
--
|
||
|
2.31.1
|
||
|
|