From c591d6fe4bfedb89d59a06f6a05f557201339e26 Mon Sep 17 00:00:00 2001 From: John Van de Meulebrouck Brendgard Date: Tue, 12 Feb 2019 16:20:54 +0100 Subject: [PATCH] Changed from re.search to re.match in db.py because re.search would match on broken regex, nodes that have a part of the name in common with other nodes etc. --- fabfile/db.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fabfile/db.py b/fabfile/db.py index 129aa50..67b6645 100644 --- a/fabfile/db.py +++ b/fabfile/db.py @@ -17,7 +17,7 @@ def _load_db(): members = dict() for node_name in all_hosts: for reg,cls in rules.iteritems(): - if re.search(reg,node_name): + if re.match(reg,node_name): for cls_name in cls.keys(): h = members.get(cls_name,[]) h.append(node_name) @@ -28,10 +28,14 @@ def _load_db(): for node_name in all_hosts: node_classes = dict() for reg,cls in rules.iteritems(): - if re.search(reg,node_name): + if re.match(reg,node_name): node_classes.update(cls) classes[node_name] = node_classes + # Sort member lists for a more easy to read diff + for cls in members.keys(): + members[cls].sort() + return dict(classes=classes,members=members) _db = None