aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorMichal (inc0) Jastrzebski <inc007@gmail.com>2016-04-22 14:44:54 +0000
committerMichal (inc0) Jastrzebski <inc007@gmail.com>2016-04-22 16:49:00 +0000
commit22a07075d278d592bccfe9ca3fc1b670248d706d (patch)
tree29b4d12b8e8043000712026ed9d1392253be8b16 /docker
parent39aec9498347e0dfae68f2e1b170a986a21b15b7 (diff)
downloadkolla-22a07075d278d592bccfe9ca3fc1b670248d706d.tar.gz
kolla-22a07075d278d592bccfe9ca3fc1b670248d706d.zip
Robustify of rabbitmq upgrade
String parsing for gospel node detection was overly complex and not robust. Hopefully this will make it better. Closes-bug: #1573684 Change-Id: I12e869eff274d286d239c4f55cc4b4ddca389bbd
Diffstat (limited to 'docker')
-rw-r--r--docker/rabbitmq/rabbitmq_get_gospel_node.py23
1 files changed, 7 insertions, 16 deletions
diff --git a/docker/rabbitmq/rabbitmq_get_gospel_node.py b/docker/rabbitmq/rabbitmq_get_gospel_node.py
index 3925f00dd..4ab7dee9f 100644
--- a/docker/rabbitmq/rabbitmq_get_gospel_node.py
+++ b/docker/rabbitmq/rabbitmq_get_gospel_node.py
@@ -13,17 +13,12 @@
# limitations under the License.
import json
-import re
import subprocess
import traceback
-def convert_erlang_to_json(term):
- term = re.sub('[\s+]', '', term)
- term = re.sub('([<>].*?)}', r'"\1"}', term)
- term = re.sub('{([a-z].*?),', r'{"\1":', term)
- term = re.sub(':([a-z].*?)}', r':"\1"}', term)
- return json.loads(term)
+def extract_gospel_node(term):
+ return term.split("@")[1].translate(None, "\'\"{},")
def main():
@@ -34,15 +29,11 @@ def main():
)
if "Rabbit is running in cluster configuration" not in raw_status:
raise AttributeError
- status = convert_erlang_to_json(
- '\n'.join(raw_status.split('\n')[1:-3])
- )
-
- gospel_node = None
- for msg in status:
- if 'gospel' in msg:
- gospel_node = msg['gospel']['node'].split('@')[1]
- if gospel_node is None:
+ gospel_line = [
+ line for line in raw_status.split('\n') if 'gospel' in line
+ ][0]
+ gospel_node = extract_gospel_node(gospel_line)
+ if not gospel_node:
raise AttributeError
except AttributeError:
result = {