Revision 24d16f76 lib/query.py
b/lib/query.py | ||
---|---|---|
42 | 42 |
IQ_LIVE, |
43 | 43 |
IQ_DISKUSAGE) = range(100, 103) |
44 | 44 |
|
45 |
(LQ_MODE, |
|
46 |
LQ_OWNER, |
|
47 |
LQ_PENDING) = range(10, 13) |
|
45 | 48 |
|
46 | 49 |
FIELD_NAME_RE = re.compile(r"^[a-z0-9/._]+$") |
47 | 50 |
TITLE_RE = re.compile(r"^[^\s]+$") |
... | ... | |
1003 | 1006 |
return _PrepareFieldList(fields) |
1004 | 1007 |
|
1005 | 1008 |
|
1009 |
class LockQueryData: |
|
1010 |
"""Data container for lock data queries. |
|
1011 |
|
|
1012 |
""" |
|
1013 |
def __init__(self, lockdata): |
|
1014 |
"""Initializes this class. |
|
1015 |
|
|
1016 |
""" |
|
1017 |
self.lockdata = lockdata |
|
1018 |
|
|
1019 |
def __iter__(self): |
|
1020 |
"""Iterate over all locks. |
|
1021 |
|
|
1022 |
""" |
|
1023 |
return iter(self.lockdata) |
|
1024 |
|
|
1025 |
|
|
1026 |
def _GetLockOwners(_, data): |
|
1027 |
"""Returns a sorted list of a lock's current owners. |
|
1028 |
|
|
1029 |
""" |
|
1030 |
(_, _, owners, _) = data |
|
1031 |
|
|
1032 |
if owners: |
|
1033 |
owners = utils.NiceSort(owners) |
|
1034 |
|
|
1035 |
return (constants.QRFS_NORMAL, owners) |
|
1036 |
|
|
1037 |
|
|
1038 |
def _GetLockPending(_, data): |
|
1039 |
"""Returns a sorted list of a lock's pending acquires. |
|
1040 |
|
|
1041 |
""" |
|
1042 |
(_, _, _, pending) = data |
|
1043 |
|
|
1044 |
if pending: |
|
1045 |
pending = [(mode, utils.NiceSort(names)) |
|
1046 |
for (mode, names) in pending] |
|
1047 |
|
|
1048 |
return (constants.QRFS_NORMAL, pending) |
|
1049 |
|
|
1050 |
|
|
1051 |
def _BuildLockFields(): |
|
1052 |
"""Builds list of fields for lock queries. |
|
1053 |
|
|
1054 |
""" |
|
1055 |
return _PrepareFieldList([ |
|
1056 |
(_MakeField("name", "Name", constants.QFT_TEXT), None, |
|
1057 |
lambda ctx, (name, mode, owners, pending): (constants.QRFS_NORMAL, name)), |
|
1058 |
(_MakeField("mode", "Mode", constants.QFT_OTHER), LQ_MODE, |
|
1059 |
lambda ctx, (name, mode, owners, pending): (constants.QRFS_NORMAL, mode)), |
|
1060 |
(_MakeField("owner", "Owner", constants.QFT_OTHER), LQ_OWNER, |
|
1061 |
_GetLockOwners), |
|
1062 |
(_MakeField("pending", "Pending", constants.QFT_OTHER), LQ_PENDING, |
|
1063 |
_GetLockPending), |
|
1064 |
]) |
|
1065 |
|
|
1066 |
|
|
1006 | 1067 |
#: Fields available for node queries |
1007 | 1068 |
NODE_FIELDS = _BuildNodeFields() |
1008 | 1069 |
|
1009 | 1070 |
#: Fields available for instance queries |
1010 | 1071 |
INSTANCE_FIELDS = _BuildInstanceFields() |
1072 |
|
|
1073 |
#: Fields available for lock queries |
|
1074 |
LOCK_FIELDS = _BuildLockFields() |
Also available in: Unified diff