[libvirt-jenkins-ci PATCH v3 5/5] guests: lcitool: Enable the new 'gitlab' flavor in the lcitool script

Erik Skultety posted 5 patches 5 years, 10 months ago
[libvirt-jenkins-ci PATCH v3 5/5] guests: lcitool: Enable the new 'gitlab' flavor in the lcitool script
Posted by Erik Skultety 5 years, 10 months ago
Signed-off-by: Erik Skultety <eskultet@redhat.com>
---
 guests/lcitool | 46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/guests/lcitool b/guests/lcitool
index 689a8cf..975a811 100755
--- a/guests/lcitool
+++ b/guests/lcitool
@@ -175,7 +175,7 @@ class Config:
                     )
                 )
 
-        if flavor not in ["test", "jenkins"]:
+        if flavor not in ["test", "jenkins", "gitlab"]:
             raise Exception("Invalid flavor '{}'".format(flavor))
 
         return flavor
@@ -185,7 +185,7 @@ class Config:
 
         # The vault password is only needed for the jenkins flavor, but in
         # that case we want to make sure there's *something* in there
-        if self.get_flavor() != "test":
+        if self.get_flavor() == "jenkins":
             vault_pass_file = self._get_config_file("vault-password")
 
             try:
@@ -217,6 +217,44 @@ class Config:
 
         return root_pass_file
 
+    def get_gitlab_runner_token_file(self):
+        if self.get_flavor() != "gitlab":
+            return None
+
+        gitlab_runner_token_file = self._get_config_file("gitlab-runner-token")
+
+        try:
+            with open(gitlab_runner_token_file, "r") as infile:
+                if not infile.readline().strip():
+                    raise ValueError
+        except Exception as ex:
+            raise Exception(
+                "Missing or invalid GitLab runner token file ({}): {}".format(
+                    gitlab_runner_token_file, ex
+                )
+            )
+
+        return gitlab_runner_token_file
+
+    def get_gitlab_url_file(self):
+        if self.get_flavor() != "gitlab":
+            return None
+
+        gitlab_url_file = self._get_config_file("gitlab-url")
+
+        try:
+            with open(gitlab_url_file, "r") as infile:
+                if not infile.readline().strip():
+                    raise ValueError
+        except Exception as ex:
+            raise Exception(
+                "Missing or invalid GitLab url file ({}): {}".format(
+                    gitlab_url_file, ex
+                )
+            )
+
+        return gitlab_url_file
+
 
 class Inventory:
 
@@ -449,6 +487,8 @@ class Application:
         flavor = self._config.get_flavor()
         vault_pass_file = self._config.get_vault_password_file()
         root_pass_file = self._config.get_root_password_file()
+        gitlab_url_file = self._config.get_gitlab_url_file()
+        gitlab_runner_token_file = self._config.get_gitlab_runner_token_file()
 
         ansible_hosts = ",".join(self._inventory.expand_pattern(hosts))
         selected_projects = self._projects.expand_pattern(projects)
@@ -477,6 +517,8 @@ class Application:
             "selected_projects": selected_projects,
             "git_remote": git_remote,
             "git_branch": git_branch,
+            "gitlab_url_file": gitlab_url_file,
+            "gitlab_runner_token_file": gitlab_runner_token_file
         })
 
         ansible_playbook = distutils.spawn.find_executable("ansible-playbook")
-- 
2.25.1

Re: [libvirt-jenkins-ci PATCH v3 5/5] guests: lcitool: Enable the new 'gitlab' flavor in the lcitool script
Posted by Andrea Bolognani 5 years, 10 months ago
On Thu, 2020-04-09 at 06:23 +0200, Erik Skultety wrote:
> +++ b/guests/lcitool
> @@ -477,6 +517,8 @@ class Application:
>              "selected_projects": selected_projects,
>              "git_remote": git_remote,
>              "git_branch": git_branch,
> +            "gitlab_url_file": gitlab_url_file,
> +            "gitlab_runner_token_file": gitlab_runner_token_file

Missing comma at the end of the last line.

With that fixed,

  Reviewed-by: Andrea Bolognani <abologna@redhat.com>

-- 
Andrea Bolognani / Red Hat / Virtualization