summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Metadata.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-15 14:47:57 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-15 14:47:57 -0400
commit35498c8b849c15632d720656d5736c4c85f76b53 (patch)
treee3b5939a99bcc22de4228d6ff0ed90cbef2ec297 /src/lib/Bcfg2/Server/Plugins/Metadata.py
parent037659f30a5205568df0dd2eee015bb754dd2abd (diff)
downloadbcfg2-35498c8b849c15632d720656d5736c4c85f76b53.tar.gz
bcfg2-35498c8b849c15632d720656d5736c4c85f76b53.tar.bz2
bcfg2-35498c8b849c15632d720656d5736c4c85f76b53.zip
Metadata: group_in_category fixes
Moved ClientMetadata.group_in_category to MetadataQuery.group_in_category, with a deprecation warning for the old place. Also changed the null answer (i.e., this client isn't in a group in that category) to None from ''.
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Metadata.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Metadata.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py
index 12ece1f19..3a470b8de 100644
--- a/src/lib/Bcfg2/Server/Plugins/Metadata.py
+++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py
@@ -10,6 +10,7 @@ import errno
import fcntl
import socket
import logging
+import warnings
import lxml.etree
import Bcfg2.Server
import Bcfg2.Options
@@ -333,13 +334,14 @@ class ClientMetadata(object):
def group_in_category(self, category):
""" Return the group in the given category that the client is
- a member of, or an empty string.
+ a member of, or an empty string. Deprecated in favor of
+ :func:`Bcfg2.Server.Plugins.Metadata.MetadataQuery.group_in_category`
:returns: string """
- for grp in self.query.all_groups_in_category(category):
- if grp in self.groups:
- return grp
- return ''
+ warnings.warn("metadata.group_in_category() is deprecated; "
+ "use metadata.query.group_in_category() instead",
+ DeprecationWarning)
+ return self.query.group_in_category(category) or ''
def __repr__(self):
return "%s(%s, profile=%s, groups=%s)" % (self.__class__.__name__,
@@ -423,6 +425,17 @@ class MetadataQuery(object):
return inner
+ def group_in_category(self, category):
+ """ Return the group in the given category that the client is
+ a member of, or None, if the client is not a member of any
+ group in the category.
+
+ :returns: string or None """
+ for grp in self.query.all_groups_in_category(category):
+ if grp in self.groups:
+ return grp
+ return None
+
def by_groups(self, groups):
""" Get a list of
:class:`Bcfg2.Server.Plugins.Metadata.ClientMetadata` objects