From cb233b2aa7901e85a388bcd1a4e58e964ab4dcc7 Mon Sep 17 00:00:00 2001
From: Frederico Sequeira <frederico.sequeira@ext.ec.europa.eu>
Date: Tue, 8 Oct 2024 12:29:16 +0100
Subject: [PATCH 1/4] =?UTF-8?q?=E2=9C=A8=20Add=20Certificate=20Authorities?=
 =?UTF-8?q?=20and=20testing?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../tests/e2e/test_ca_creation.py             | 100 ++++++++++++++++++
 .../tests/e2e/test_certificate_creation.py    |   2 +-
 requirements.txt                              |   2 +-
 3 files changed, 102 insertions(+), 2 deletions(-)
 create mode 100644 plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py

diff --git a/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py b/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py
new file mode 100644
index 0000000..8a34a2e
--- /dev/null
+++ b/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py
@@ -0,0 +1,100 @@
+"""Test case for Certificate creation"""
+
+import time
+import unittest
+import json
+import os
+import requests
+
+
+HOST = os.getenv("HOST", default="localhost")
+PORT = os.getenv("PORT", default="8000")
+API_KEY = os.getenv("API_KEY", "only4testingpurpose")
+
+
+class TestCertificateCreation(unittest.TestCase):
+    """Test case for Mapping creation class"""
+
+    mapping_id = None
+
+    def test_that_certificate_is_created(self) -> None:
+        """Test that certificate is created"""
+
+        response = requests.post(
+            url=f"http://{HOST}:{PORT}/api/plugins/cert/CertificateAuthority/",
+            json={
+                "ca_name": "letsencrypt_test"
+                },
+            headers={"Authorization": f"Token {API_KEY}"},
+            timeout=5,
+        )
+
+        self.assertEqual(response.status_code, 201)
+
+        self.mapping_id = json.loads(response.content)["id"]
+
+    def test_that_default_certificate_properties_is_set(self) -> None:
+        """Test that default certificate properties is set"""
+
+        response = requests.post(
+            url=f"http://{HOST}:{PORT}/api/plugins/cert/CertificateAuthority/",
+            json={
+                "ca_name": "letsencrypt_test", 
+                "acme_url": "www.letsencrypt.com",
+                "key_vault_url":"www.key_vault_url.com"
+                },
+            headers={"Authorization": f"Token {API_KEY}"},
+            timeout=5,
+        )
+
+        self.assertEqual(response.status_code, 201)
+
+        self.mapping_id = json.loads(response.content)["id"]
+
+        content = json.loads(response.content)
+        self.assertEqual(content["ca_name"], "letsencrypt_test")
+        self.assertEqual(content["acme_url"], "www.letsencrypt.com")
+        self.assertEqual(content["key_vault_url"], "www.key_vault_url.com")
+
+    def test_that_cn_is_unique(self) -> None:
+        """Test that CN is unique"""
+
+        response = requests.post(
+            url=f"http://{HOST}:{PORT}/api/plugins/cert/CertificateAuthority/",
+            json={"ca_name": "letsencrypt_test"},
+            headers={"Authorization": f"Token {API_KEY}"},
+            timeout=5,
+        )
+
+        self.assertEqual(response.status_code, 201)
+
+        self.mapping_id = json.loads(response.content)["id"]
+
+        response = requests.post(
+            url=f"http://{HOST}:{PORT}/api/plugins/cert/CertificateAuthority/",
+            json={"ca_name": "letsencrypt_test"},
+            headers={"Authorization": f"Token {API_KEY}"},
+            timeout=5,
+        )
+
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(
+            response.content,
+            b'{"ca_name":["certificate authority with this CA Name already exists."]}',
+        )
+
+    def tearDown(self) -> None:
+        """Teardown function"""
+
+        requests.delete(
+            url=f"http://{HOST}:{PORT}/api/plugins/cert/CertificateAuthority/",
+            json=[{"id": self.mapping_id}],
+            headers={"Authorization": f"Token {API_KEY}"},
+            timeout=5,
+        )
+
+        time.sleep(2)
+
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py b/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
index 525b382..cbd8c21 100644
--- a/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
+++ b/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
@@ -8,7 +8,7 @@ import requests
 
 
 HOST = os.getenv("HOST", default="localhost")
-PORT = os.getenv("PORT", default="8080")
+PORT = os.getenv("PORT", default="8000")
 API_KEY = os.getenv("API_KEY", "only4testingpurpose")
 
 
diff --git a/requirements.txt b/requirements.txt
index 6e68ce3..a9ecfc8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,7 +3,7 @@ netbox-plugin-prometheus-sd
 netbox-docker-plugin == 1.*
 --extra-index-url https://code.europa.eu/api/v4/projects/713/packages/pypi/simple
 --extra-index-url https://code.europa.eu/api/v4/projects/662/packages/pypi/simple
-netbox-cert-plugin == 0.2.*
+netbox-cert-plugin == 0.3.*
 --extra-index-url https://code.europa.eu/api/v4/projects/623/packages/pypi/simple
 netbox-rps-plugin == 0.22.*
 supervisor == 4.2.5
-- 
GitLab


From bd5c17b6674b8728ea8e39230c37a7ca8c5cafed Mon Sep 17 00:00:00 2001
From: Frederico Sequeira <frederico.sequeira@ext.ec.europa.eu>
Date: Tue, 8 Oct 2024 12:46:58 +0100
Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=91=B7=20Check=20left=20behind=20cont?=
 =?UTF-8?q?ainer?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 514483d..8ac6214 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,6 +52,7 @@ run-test-job:
     - chmod 600 $ANSIBLE_PRIVATE_KEY_FILE
     - python3 -m venv "$CI_PROJECT_DIR/plugins/venv"
     - source "$CI_PROJECT_DIR/plugins/venv/bin/activate"
+    - docker ps
     - pip install -r "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests/requirements.e2e.txt"
     - pip install -r "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests/requirements.e2e.txt"
     - pip install -r "$CI_PROJECT_DIR/tests/requirements.e2e.txt"
-- 
GitLab


From 93a801cd02d696e4e2c0c39c853b95f9fc5519d7 Mon Sep 17 00:00:00 2001
From: Frederico Sequeira <frederico.sequeira@ext.ec.europa.eu>
Date: Tue, 8 Oct 2024 14:35:21 +0100
Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=94=87=20Remove=20previously=20added?=
 =?UTF-8?q?=20logs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitlab-ci.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8ac6214..514483d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,7 +52,6 @@ run-test-job:
     - chmod 600 $ANSIBLE_PRIVATE_KEY_FILE
     - python3 -m venv "$CI_PROJECT_DIR/plugins/venv"
     - source "$CI_PROJECT_DIR/plugins/venv/bin/activate"
-    - docker ps
     - pip install -r "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests/requirements.e2e.txt"
     - pip install -r "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests/requirements.e2e.txt"
     - pip install -r "$CI_PROJECT_DIR/tests/requirements.e2e.txt"
-- 
GitLab


From effbb7fc850252e56741a8e10c7b4198cc697513 Mon Sep 17 00:00:00 2001
From: Frederico Sequeira <frederico.sequeira@ext.ec.europa.eu>
Date: Thu, 10 Oct 2024 15:28:44 +0100
Subject: [PATCH 4/4] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Keep=20the=20original?=
 =?UTF-8?q?=20port=20numbers=20for=20testing?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py        | 2 +-
 .../netbox-cert-plugin/tests/e2e/test_certificate_creation.py   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py b/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py
index 8a34a2e..35f95b8 100644
--- a/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py
+++ b/plugins/netbox-cert-plugin/tests/e2e/test_ca_creation.py
@@ -8,7 +8,7 @@ import requests
 
 
 HOST = os.getenv("HOST", default="localhost")
-PORT = os.getenv("PORT", default="8000")
+PORT = os.getenv("PORT", default="8080")
 API_KEY = os.getenv("API_KEY", "only4testingpurpose")
 
 
diff --git a/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py b/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
index cbd8c21..525b382 100644
--- a/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
+++ b/plugins/netbox-cert-plugin/tests/e2e/test_certificate_creation.py
@@ -8,7 +8,7 @@ import requests
 
 
 HOST = os.getenv("HOST", default="localhost")
-PORT = os.getenv("PORT", default="8000")
+PORT = os.getenv("PORT", default="8080")
 API_KEY = os.getenv("API_KEY", "only4testingpurpose")
 
 
-- 
GitLab