From 8bc23e6ed36a435cfbab927c64487115efa33bf2 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Fri, 4 May 2012 10:56:29 -0400 Subject: better support for re-reading packages.conf (and SimpleConfigs in general) --- src/lib/Server/Plugin.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/lib/Server/Plugin.py') diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py index d882c475f..9b3c5814f 100644 --- a/src/lib/Server/Plugin.py +++ b/src/lib/Server/Plugin.py @@ -5,7 +5,6 @@ import copy import logging import lxml.etree import os -import os.path import pickle import posixpath import re @@ -1190,6 +1189,7 @@ class SimpleConfig(FileBacked, filename = os.path.join(plugin.data, plugin.name.lower() + ".conf") self.plugin = plugin self.fam = self.plugin.core.fam + self.read_files = set() Bcfg2.Server.Plugin.FileBacked.__init__(self, filename) ConfigParser.SafeConfigParser.__init__(self) @@ -1201,7 +1201,7 @@ class SimpleConfig(FileBacked, """ Build local data structures """ for section in self.sections(): self.remove_section(section) - self.read(self.name) + self.read_files.update(self.read(self.name)) def get(self, section, option, **kwargs): """ convenience method for getting config items """ @@ -1233,3 +1233,11 @@ class SimpleConfig(FileBacked, return default else: raise + + @property + def loaded(self): + if os.path.exists(self.name): + return self.name in self.read_files + else: + return True + -- cgit v1.2.3-1-g7c22