From 35498c8b849c15632d720656d5736c4c85f76b53 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Thu, 15 Aug 2013 14:47:57 -0400 Subject: 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 ''. --- src/lib/Bcfg2/Server/Plugins/Metadata.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/lib/Bcfg2/Server/Plugins') 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 -- cgit v1.2.3-1-g7c22