diff options
author | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | 2022-01-22 17:33:30 +0100 |
---|---|---|
committer | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | 2022-01-30 05:03:59 +0100 |
commit | bb832783332f17cd78e7a79f8dc7dfcd839c5615 (patch) | |
tree | 55267fbb0c577dde42726bdc378bcebf22184d3d /src/lib/Bcfg2/Server | |
parent | 134ebc875dd810dd6d1ef069365dea49af7a7bf9 (diff) | |
download | bcfg2-bb832783332f17cd78e7a79f8dc7dfcd839c5615.tar.gz bcfg2-bb832783332f17cd78e7a79f8dc7dfcd839c5615.tar.bz2 bcfg2-bb832783332f17cd78e7a79f8dc7dfcd839c5615.zip |
Cfg: Block for FAM events after creating files
After a CfgCreator wrote a file, it should block until the fam events are
processed. The newly created files might be required by another Cfg plugin
(like CfgPrivateKeyCreator and CfgPublicKeyCreator) and the fam events should
be processed before the other plugin is invoked.
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Cfg/CfgPublicKeyCreator.py | 4 | ||||
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgPublicKeyCreator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgPublicKeyCreator.py index 3f2d1030b..a6cb19cff 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgPublicKeyCreator.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgPublicKeyCreator.py @@ -8,7 +8,7 @@ import tempfile import lxml.etree from Bcfg2.Utils import Executor from Bcfg2.Server.Plugin import StructFile, PluginExecutionError -from Bcfg2.Server.Plugins.Cfg import CfgCreator, CfgCreationError, get_cfg +from Bcfg2.Server.Plugins.Cfg import CfgCreator, CfgCreationError class CfgPublicKeyCreator(CfgCreator, StructFile): @@ -33,8 +33,6 @@ class CfgPublicKeyCreator(CfgCreator, StructFile): def __init__(self, fname): CfgCreator.__init__(self, fname) StructFile.__init__(self, fname) - self.cfg = get_cfg() - self.core = self.cfg.core self.cmd = Executor() def create_data(self, entry, metadata): diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py index dae03144a..44d980967 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py @@ -306,6 +306,8 @@ class CfgCreator(CfgBaseFileMatcher): .. autoattribute:: Bcfg2.Server.Plugins.Cfg.CfgInfo.__specific__ """ CfgBaseFileMatcher.__init__(self, fname, None) + self.cfg = get_cfg() + self.core = self.cfg.core def create_data(self, entry, metadata): """ Create new data for the given entry and write it to disk @@ -391,6 +393,7 @@ class CfgCreator(CfgBaseFileMatcher): try: open(fileloc, 'wb').write(data) + self.core.block_for_fam_events() except IOError: err = sys.exc_info()[1] raise CfgCreationError("Could not write %s: %s" % (fileloc, err)) |