From 8d246f5d3b63d374fed871d4520028cf3662c4d3 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Mon, 29 Jun 2009 18:29:36 +0000 Subject: Metadata: implement get_clients/get_groups interface Add method to get list of all group names, change all client interface to match. git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5302 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Metadata.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/Server/Plugins/Metadata.py b/src/lib/Server/Plugins/Metadata.py index 906a16fac..dc3052015 100644 --- a/src/lib/Server/Plugins/Metadata.py +++ b/src/lib/Server/Plugins/Metadata.py @@ -36,12 +36,13 @@ class ClientMetadata(object): return group in self.groups class MetadataQuery(object): - def __init__(self, get_clients, by_groups, by_profiles): + def __init__(self, get_clients, by_groups, by_profiles, all_groups): # resolver is set later self.by_name = None self.names_by_groups = by_groups self.names_by_profiles = by_profiles - self.all_names = get_clients + self.all_clients = get_clients + self.all_groups = all_groups def by_groups(self, groups): return [self.by_name(name) for name in self.names_by_groups(groups)] @@ -95,7 +96,8 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, self.password = core.password self.query = MetadataQuery(lambda:self.clients.keys(), self.get_client_names_by_groups, - self.get_client_names_by_profiles) + self.get_client_names_by_profiles, + self.get_all_group_names) def get_groups(self): '''return groups xml tree''' @@ -413,6 +415,9 @@ class Metadata(Bcfg2.Server.Plugin.Plugin, newcategories.update(ncategories) return ClientMetadata(client, profile, newgroups, newbundles, addresses, newcategories, uuid, password, self.query) + + def get_all_group_names(self): + return self.groups.keys() def get_client_names_by_profiles(self, profiles): return [client for client, profile in self.clients.iteritems() \ -- cgit v1.2.3-1-g7c22