The replacement code is slightly longer, but much more pythonic. Signed-off-by: Brian Foley <bpfo...@google.com> --- lib/watcher/__init__.py | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-)
diff --git a/lib/watcher/__init__.py b/lib/watcher/__init__.py index bcce1ac..c30514e 100644 --- a/lib/watcher/__init__.py +++ b/lib/watcher/__init__.py @@ -42,7 +42,6 @@ import sys import signal import time import logging -import operator import errno from optparse import OptionParser @@ -507,8 +506,7 @@ def _WriteInstanceStatus(filename, data): filename, len(data)) utils.WriteFile(filename, - data="".join(map(compat.partial(operator.mod, "%s %s\n"), - sorted(data)))) + data="\n".join("%s %s" % (n, s) for (n, s) in sorted(data))) def _UpdateInstanceStatus(filename, instances): @@ -754,23 +752,23 @@ def _GetGroupData(qcl, uuid): locked_instances.add(name[prefix_len:]) queries = [ - (constants.QR_INSTANCE, - ["name", "status", "admin_state", "admin_state_source", "disks_active", - "snodes", "pnode.group.uuid", "snodes.group.uuid", "disk_template"], - [qlang.OP_EQUAL, "pnode.group.uuid", uuid]), - (constants.QR_NODE, - ["name", "bootid", "offline"], - [qlang.OP_EQUAL, "group.uuid", uuid]), - ] + (constants.QR_INSTANCE, + ["name", "status", "admin_state", "admin_state_source", "disks_active", + "snodes", "pnode.group.uuid", "snodes.group.uuid", "disk_template"], + [qlang.OP_EQUAL, "pnode.group.uuid", uuid]), + (constants.QR_NODE, + ["name", "bootid", "offline"], + [qlang.OP_EQUAL, "group.uuid", uuid]), + ] - results = [] - for what, fields, qfilter in queries: - results.append(qcl.Query(what, fields, qfilter)) - - results_data = map(operator.attrgetter("data"), results) + results_data = [ + qcl.Query(what, field, qfilter).data + for (what, field, qfilter) in queries + ] # Ensure results are tuples with two values - assert compat.all(map(ht.TListOf(ht.TListOf(ht.TIsLength(2))), results_data)) + assert compat.all( + ht.TListOf(ht.TListOf(ht.TIsLength(2)))(d) for d in results_data) # Extract values ignoring result status (raw_instances, raw_nodes) = [[map(compat.snd, values) @@ -812,7 +810,7 @@ def _LoadKnownGroups(): result = list(line.split(None, 1)[0] for line in groups if line.strip()) - if not compat.all(map(utils.UUID_RE.match, result)): + if not compat.all(utils.UUID_RE.match(r) for r in result): raise errors.GenericError("Ssconf contains invalid group UUID") return result -- 2.8.0.rc3.226.g39d4020