]> Frank Brehm's Git Trees - pixelpark/puppetmaster-webhooks.git/commitdiff
Better handling of failing env directory.
authorFrank Brehm <frank.brehm@pixelpark.com>
Tue, 17 Jan 2023 14:00:30 +0000 (15:00 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Tue, 17 Jan 2023 14:00:30 +0000 (15:00 +0100)
lib/webhooks/r10k.py

index 00fde48020157d24500ee06ecb2bd950f516a58e..baf559af2cc5821b9145a17219fe74472f7d3402 100644 (file)
@@ -221,14 +221,25 @@ class R10kHookApp(BaseHookApp):
         try:
             lock.autoremove = True
 
+            if self.env_dir is None:
+                raise RuntimeError(_("No environment defined."))
+
             if not self.exec_r10k():
                 LOG.warn(_("Executing {!r} was not successful.").format(str(self.r10k_bin)))
 
-            self.del_env_cache()
+            LOG.debug("Searching for environment directory {!r} ...".format(str(self.env_dir)))
+            if self.env_dir.is_dir():
+
+                self.del_env_cache()
+
+                if not self.generate_puppet_types():
+                    what = '{c} generate types --environment {e}'.format(
+                        c=self.puppet_bin, e=self.ref)
+                    LOG.warn(_("{!r} was not successful.").format(what))
 
-            if not self.generate_puppet_types():
-                what = '{c} generate types --environment {e}'.format(c=self.puppet_bin, e=self.ref)
-                LOG.warn(_("{!r} was not successful.").format(what))
+            else:
+                LOG.info(_("Environment directory {!r} does not exists.").format(
+                    str(self.env_dir)))
 
             return
 
@@ -310,6 +321,14 @@ class R10kHookApp(BaseHookApp):
         """Generates definitions for custom resource types using Puppet code
             for the given environment."""
 
+        if self.env_dir is None:
+            raise RuntimeError(_("No environment defined."))
+
+        LOG.debug("Searching for environment directory {!r} ...".format(str(self.env_dir)))
+        if not self.env_dir.is_dir():
+            LOG.info(_("Environment directory {!r} does not exists.").format(str(self.env_dir)))
+            return
+
         LOG.info(_("Generating Puppet types for environment {e!r} on {h!r}.").format(
             e=self.ref, h=self.puppetmaster_host))