Remove Grafana charm
[osm/devops.git] / installers / charm / grafana / tests / test_pod_spec.py
diff --git a/installers/charm/grafana/tests/test_pod_spec.py b/installers/charm/grafana/tests/test_pod_spec.py
deleted file mode 100644 (file)
index 88c85d3..0000000
+++ /dev/null
@@ -1,636 +0,0 @@
-# #!/usr/bin/env python3
-# # Copyright 2021 Canonical Ltd.
-# #
-# # Licensed under the Apache License, Version 2.0 (the "License"); you may
-# # not use this file except in compliance with the License. You may obtain
-# # a copy of the License at
-# #
-# #         http://www.apache.org/licenses/LICENSE-2.0
-# #
-# # Unless required by applicable law or agreed to in writing, software
-# # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# # License for the specific language governing permissions and limitations
-# # under the License.
-# #
-# # For those usages not covered by the Apache License, Version 2.0 please
-# # contact: legal@canonical.com
-# #
-# # To get in touch with the maintainers, please contact:
-# # osm-charmers@lists.launchpad.net
-# ##
-
-# from typing import NoReturn
-# import unittest
-
-# import pod_spec
-
-
-# class TestPodSpec(unittest.TestCase):
-#     """Pod spec unit tests."""
-
-#     def test_make_pod_ports(self) -> NoReturn:
-#         """Testing make pod ports."""
-#         port = 3000
-
-#         expected_result = [
-#             {
-#                 "name": "grafana",
-#                 "containerPort": port,
-#                 "protocol": "TCP",
-#             }
-#         ]
-
-#         pod_ports = pod_spec._make_pod_ports(port)
-
-#         self.assertListEqual(expected_result, pod_ports)
-
-#     def test_make_pod_envconfig(self) -> NoReturn:
-#         """Teting make pod envconfig."""
-#         config = {}
-#         relation_state = {
-#             "prometheus_hostname": "prometheus",
-#             "prometheus_port": "9090",
-#         }
-
-#         expected_result = {}
-
-#         pod_envconfig = pod_spec._make_pod_envconfig(config, relation_state)
-
-#         self.assertDictEqual(expected_result, pod_envconfig)
-
-#     def test_make_pod_ingress_resources_without_site_url(self) -> NoReturn:
-#         """Testing make pod ingress resources without site_url."""
-#         config = {"site_url": ""}
-#         app_name = "grafana"
-#         port = 3000
-
-#         pod_ingress_resources = pod_spec._make_pod_ingress_resources(
-#             config, app_name, port
-#         )
-
-#         self.assertIsNone(pod_ingress_resources)
-
-#     def test_make_pod_ingress_resources(self) -> NoReturn:
-#         """Testing make pod ingress resources."""
-#         config = {
-#             "site_url": "http://grafana",
-#             "max_file_size": 0,
-#             "ingress_whitelist_source_range": "",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = [
-#             {
-#                 "name": f"{app_name}-ingress",
-#                 "annotations": {
-#                     "nginx.ingress.kubernetes.io/proxy-body-size": f"{config['max_file_size']}",
-#                     "nginx.ingress.kubernetes.io/ssl-redirect": "false",
-#                 },
-#                 "spec": {
-#                     "rules": [
-#                         {
-#                             "host": app_name,
-#                             "http": {
-#                                 "paths": [
-#                                     {
-#                                         "path": "/",
-#                                         "backend": {
-#                                             "serviceName": app_name,
-#                                             "servicePort": port,
-#                                         },
-#                                     }
-#                                 ]
-#                             },
-#                         }
-#                     ]
-#                 },
-#             }
-#         ]
-
-#         pod_ingress_resources = pod_spec._make_pod_ingress_resources(
-#             config, app_name, port
-#         )
-
-#         self.assertListEqual(expected_result, pod_ingress_resources)
-
-#     def test_make_pod_ingress_resources_with_whitelist_source_range(self) -> NoReturn:
-#         """Testing make pod ingress resources with whitelist_source_range."""
-#         config = {
-#             "site_url": "http://grafana",
-#             "max_file_size": 0,
-#             "ingress_whitelist_source_range": "0.0.0.0/0",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = [
-#             {
-#                 "name": f"{app_name}-ingress",
-#                 "annotations": {
-#                     "nginx.ingress.kubernetes.io/proxy-body-size": f"{config['max_file_size']}",
-#                     "nginx.ingress.kubernetes.io/ssl-redirect": "false",
-#                     "nginx.ingress.kubernetes.io/whitelist-source-range": config[
-#                         "ingress_whitelist_source_range"
-#                     ],
-#                 },
-#                 "spec": {
-#                     "rules": [
-#                         {
-#                             "host": app_name,
-#                             "http": {
-#                                 "paths": [
-#                                     {
-#                                         "path": "/",
-#                                         "backend": {
-#                                             "serviceName": app_name,
-#                                             "servicePort": port,
-#                                         },
-#                                     }
-#                                 ]
-#                             },
-#                         }
-#                     ]
-#                 },
-#             }
-#         ]
-
-#         pod_ingress_resources = pod_spec._make_pod_ingress_resources(
-#             config, app_name, port
-#         )
-
-#         self.assertListEqual(expected_result, pod_ingress_resources)
-
-#     def test_make_pod_ingress_resources_with_https(self) -> NoReturn:
-#         """Testing make pod ingress resources with HTTPs."""
-#         config = {
-#             "site_url": "https://grafana",
-#             "max_file_size": 0,
-#             "ingress_whitelist_source_range": "",
-#             "tls_secret_name": "",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = [
-#             {
-#                 "name": f"{app_name}-ingress",
-#                 "annotations": {
-#                     "nginx.ingress.kubernetes.io/proxy-body-size": f"{config['max_file_size']}",
-#                 },
-#                 "spec": {
-#                     "rules": [
-#                         {
-#                             "host": app_name,
-#                             "http": {
-#                                 "paths": [
-#                                     {
-#                                         "path": "/",
-#                                         "backend": {
-#                                             "serviceName": app_name,
-#                                             "servicePort": port,
-#                                         },
-#                                     }
-#                                 ]
-#                             },
-#                         }
-#                     ],
-#                     "tls": [{"hosts": [app_name]}],
-#                 },
-#             }
-#         ]
-
-#         pod_ingress_resources = pod_spec._make_pod_ingress_resources(
-#             config, app_name, port
-#         )
-
-#         self.assertListEqual(expected_result, pod_ingress_resources)
-
-#     def test_make_pod_ingress_resources_with_https_tls_secret_name(self) -> NoReturn:
-#         """Testing make pod ingress resources with HTTPs and TLS secret name."""
-#         config = {
-#             "site_url": "https://grafana",
-#             "max_file_size": 0,
-#             "ingress_whitelist_source_range": "",
-#             "tls_secret_name": "secret_name",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = [
-#             {
-#                 "name": f"{app_name}-ingress",
-#                 "annotations": {
-#                     "nginx.ingress.kubernetes.io/proxy-body-size": f"{config['max_file_size']}",
-#                 },
-#                 "spec": {
-#                     "rules": [
-#                         {
-#                             "host": app_name,
-#                             "http": {
-#                                 "paths": [
-#                                     {
-#                                         "path": "/",
-#                                         "backend": {
-#                                             "serviceName": app_name,
-#                                             "servicePort": port,
-#                                         },
-#                                     }
-#                                 ]
-#                             },
-#                         }
-#                     ],
-#                     "tls": [
-#                         {"hosts": [app_name], "secretName": config["tls_secret_name"]}
-#                     ],
-#                 },
-#             }
-#         ]
-
-#         pod_ingress_resources = pod_spec._make_pod_ingress_resources(
-#             config, app_name, port
-#         )
-
-#         self.assertListEqual(expected_result, pod_ingress_resources)
-
-#     def test_make_pod_files(self) -> NoReturn:
-#         """Testing make pod files."""
-#         config = {"osm_dashboards": False}
-#         relation_state = {
-#             "prometheus_hostname": "prometheus",
-#             "prometheus_port": "9090",
-#         }
-
-#         expected_result = [
-#             {
-#                 "name": "dashboards",
-#                 "mountPath": "/etc/grafana/provisioning/dashboards/",
-#                 "files": [
-#                     {
-#                         "path": "dashboard-osm.yml",
-#                         "content": (
-#                             "apiVersion: 1\n"
-#                             "providers:\n"
-#                             "  - name: 'osm'\n"
-#                             "    orgId: 1\n"
-#                             "    folder: ''\n"
-#                             "    type: file\n"
-#                             "    options:\n"
-#                             "      path: /etc/grafana/provisioning/dashboards/\n"
-#                         ),
-#                     }
-#                 ],
-#             },
-#             {
-#                 "name": "datasources",
-#                 "mountPath": "/etc/grafana/provisioning/datasources/",
-#                 "files": [
-#                     {
-#                         "path": "datasource-prometheus.yml",
-#                         "content": (
-#                             "datasources:\n"
-#                             "  - access: proxy\n"
-#                             "    editable: true\n"
-#                             "    is_default: true\n"
-#                             "    name: osm_prometheus\n"
-#                             "    orgId: 1\n"
-#                             "    type: prometheus\n"
-#                             "    version: 1\n"
-#                             "    url: http://{}:{}\n".format(
-#                                 relation_state.get("prometheus_hostname"),
-#                                 relation_state.get("prometheus_port"),
-#                             )
-#                         ),
-#                     }
-#                 ],
-#             },
-#         ]
-
-#         pod_envconfig = pod_spec._make_pod_files(config, relation_state)
-#         self.assertListEqual(expected_result, pod_envconfig)
-
-#     def test_make_readiness_probe(self) -> NoReturn:
-#         """Testing make readiness probe."""
-#         port = 3000
-
-#         expected_result = {
-#             "httpGet": {
-#                 "path": "/api/health",
-#                 "port": port,
-#             },
-#             "initialDelaySeconds": 10,
-#             "periodSeconds": 10,
-#             "timeoutSeconds": 5,
-#             "successThreshold": 1,
-#             "failureThreshold": 3,
-#         }
-
-#         readiness_probe = pod_spec._make_readiness_probe(port)
-
-#         self.assertDictEqual(expected_result, readiness_probe)
-
-#     def test_make_liveness_probe(self) -> NoReturn:
-#         """Testing make liveness probe."""
-#         port = 3000
-
-#         expected_result = {
-#             "httpGet": {
-#                 "path": "/api/health",
-#                 "port": port,
-#             },
-#             "initialDelaySeconds": 60,
-#             "timeoutSeconds": 30,
-#             "failureThreshold": 10,
-#         }
-
-#         liveness_probe = pod_spec._make_liveness_probe(port)
-
-#         self.assertDictEqual(expected_result, liveness_probe)
-
-#     def test_make_pod_spec(self) -> NoReturn:
-#         """Testing make pod spec."""
-#         image_info = {"upstream-source": "ubuntu/grafana:latest"}
-#         config = {
-#             "site_url": "",
-#         }
-#         relation_state = {
-#             "prometheus_hostname": "prometheus",
-#             "prometheus_port": "9090",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = {
-#             "version": 3,
-#             "containers": [
-#                 {
-#                     "name": app_name,
-#                     "imageDetails": image_info,
-#                     "imagePullPolicy": "Always",
-#                     "ports": [
-#                         {
-#                             "name": app_name,
-#                             "containerPort": port,
-#                             "protocol": "TCP",
-#                         }
-#                     ],
-#                     "envConfig": {},
-#                     "volumeConfig": [
-#                         {
-#                             "name": "dashboards",
-#                             "mountPath": "/etc/grafana/provisioning/dashboards/",
-#                             "files": [
-#                                 {
-#                                     "path": "dashboard-osm.yml",
-#                                     "content": (
-#                                         "apiVersion: 1\n"
-#                                         "providers:\n"
-#                                         "  - name: 'osm'\n"
-#                                         "    orgId: 1\n"
-#                                         "    folder: ''\n"
-#                                         "    type: file\n"
-#                                         "    options:\n"
-#                                         "      path: /etc/grafana/provisioning/dashboards/\n"
-#                                     ),
-#                                 }
-#                             ],
-#                         },
-#                         {
-#                             "name": "datasources",
-#                             "mountPath": "/etc/grafana/provisioning/datasources/",
-#                             "files": [
-#                                 {
-#                                     "path": "datasource-prometheus.yml",
-#                                     "content": (
-#                                         "datasources:\n"
-#                                         "  - access: proxy\n"
-#                                         "    editable: true\n"
-#                                         "    is_default: true\n"
-#                                         "    name: osm_prometheus\n"
-#                                         "    orgId: 1\n"
-#                                         "    type: prometheus\n"
-#                                         "    version: 1\n"
-#                                         "    url: http://{}:{}\n".format(
-#                                             relation_state.get("prometheus_hostname"),
-#                                             relation_state.get("prometheus_port"),
-#                                         )
-#                                     ),
-#                                 }
-#                             ],
-#                         },
-#                     ],
-#                     "kubernetes": {
-#                         "readinessProbe": {
-#                             "httpGet": {
-#                                 "path": "/api/health",
-#                                 "port": port,
-#                             },
-#                             "initialDelaySeconds": 10,
-#                             "periodSeconds": 10,
-#                             "timeoutSeconds": 5,
-#                             "successThreshold": 1,
-#                             "failureThreshold": 3,
-#                         },
-#                         "livenessProbe": {
-#                             "httpGet": {
-#                                 "path": "/api/health",
-#                                 "port": port,
-#                             },
-#                             "initialDelaySeconds": 60,
-#                             "timeoutSeconds": 30,
-#                             "failureThreshold": 10,
-#                         },
-#                     },
-#                 }
-#             ],
-#             "kubernetesResources": {"ingressResources": []},
-#         }
-
-#         spec = pod_spec.make_pod_spec(
-#             image_info, config, relation_state, app_name, port
-#         )
-
-#         self.assertDictEqual(expected_result, spec)
-
-#     def test_make_pod_spec_with_ingress(self) -> NoReturn:
-#         """Testing make pod spec."""
-#         image_info = {"upstream-source": "ubuntu/grafana:latest"}
-#         config = {
-#             "site_url": "https://grafana",
-#             "tls_secret_name": "grafana",
-#             "max_file_size": 0,
-#             "ingress_whitelist_source_range": "0.0.0.0/0",
-#         }
-#         relation_state = {
-#             "prometheus_hostname": "prometheus",
-#             "prometheus_port": "9090",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         expected_result = {
-#             "version": 3,
-#             "containers": [
-#                 {
-#                     "name": app_name,
-#                     "imageDetails": image_info,
-#                     "imagePullPolicy": "Always",
-#                     "ports": [
-#                         {
-#                             "name": app_name,
-#                             "containerPort": port,
-#                             "protocol": "TCP",
-#                         }
-#                     ],
-#                     "envConfig": {},
-#                     "volumeConfig": [
-#                         {
-#                             "name": "dashboards",
-#                             "mountPath": "/etc/grafana/provisioning/dashboards/",
-#                             "files": [
-#                                 {
-#                                     "path": "dashboard-osm.yml",
-#                                     "content": (
-#                                         "apiVersion: 1\n"
-#                                         "providers:\n"
-#                                         "  - name: 'osm'\n"
-#                                         "    orgId: 1\n"
-#                                         "    folder: ''\n"
-#                                         "    type: file\n"
-#                                         "    options:\n"
-#                                         "      path: /etc/grafana/provisioning/dashboards/\n"
-#                                     ),
-#                                 }
-#                             ],
-#                         },
-#                         {
-#                             "name": "datasources",
-#                             "mountPath": "/etc/grafana/provisioning/datasources/",
-#                             "files": [
-#                                 {
-#                                     "path": "datasource-prometheus.yml",
-#                                     "content": (
-#                                         "datasources:\n"
-#                                         "  - access: proxy\n"
-#                                         "    editable: true\n"
-#                                         "    is_default: true\n"
-#                                         "    name: osm_prometheus\n"
-#                                         "    orgId: 1\n"
-#                                         "    type: prometheus\n"
-#                                         "    version: 1\n"
-#                                         "    url: http://{}:{}\n".format(
-#                                             relation_state.get("prometheus_hostname"),
-#                                             relation_state.get("prometheus_port"),
-#                                         )
-#                                     ),
-#                                 }
-#                             ],
-#                         },
-#                     ],
-#                     "kubernetes": {
-#                         "readinessProbe": {
-#                             "httpGet": {
-#                                 "path": "/api/health",
-#                                 "port": port,
-#                             },
-#                             "initialDelaySeconds": 10,
-#                             "periodSeconds": 10,
-#                             "timeoutSeconds": 5,
-#                             "successThreshold": 1,
-#                             "failureThreshold": 3,
-#                         },
-#                         "livenessProbe": {
-#                             "httpGet": {
-#                                 "path": "/api/health",
-#                                 "port": port,
-#                             },
-#                             "initialDelaySeconds": 60,
-#                             "timeoutSeconds": 30,
-#                             "failureThreshold": 10,
-#                         },
-#                     },
-#                 }
-#             ],
-#             "kubernetesResources": {
-#                 "ingressResources": [
-#                     {
-#                         "name": "{}-ingress".format(app_name),
-#                         "annotations": {
-#                             "nginx.ingress.kubernetes.io/proxy-body-size": str(
-#                                 config.get("max_file_size")
-#                             ),
-#                             "nginx.ingress.kubernetes.io/whitelist-source-range": config.get(
-#                                 "ingress_whitelist_source_range"
-#                             ),
-#                         },
-#                         "spec": {
-#                             "rules": [
-#                                 {
-#                                     "host": app_name,
-#                                     "http": {
-#                                         "paths": [
-#                                             {
-#                                                 "path": "/",
-#                                                 "backend": {
-#                                                     "serviceName": app_name,
-#                                                     "servicePort": port,
-#                                                 },
-#                                             }
-#                                         ]
-#                                     },
-#                                 }
-#                             ],
-#                             "tls": [
-#                                 {
-#                                     "hosts": [app_name],
-#                                     "secretName": config.get("tls_secret_name"),
-#                                 }
-#                             ],
-#                         },
-#                     }
-#                 ],
-#             },
-#         }
-
-#         spec = pod_spec.make_pod_spec(
-#             image_info, config, relation_state, app_name, port
-#         )
-
-#         self.assertDictEqual(expected_result, spec)
-
-#     def test_make_pod_spec_without_image_info(self) -> NoReturn:
-#         """Testing make pod spec without image_info."""
-#         image_info = None
-#         config = {
-#             "site_url": "",
-#         }
-#         relation_state = {
-#             "prometheus_hostname": "prometheus",
-#             "prometheus_port": "9090",
-#         }
-#         app_name = "grafana"
-#         port = 3000
-
-#         spec = pod_spec.make_pod_spec(
-#             image_info, config, relation_state, app_name, port
-#         )
-
-#         self.assertIsNone(spec)
-
-#     def test_make_pod_spec_without_relation_state(self) -> NoReturn:
-#         """Testing make pod spec without relation_state."""
-#         image_info = {"upstream-source": "ubuntu/grafana:latest"}
-#         config = {
-#             "site_url": "",
-#         }
-#         relation_state = {}
-#         app_name = "grafana"
-#         port = 3000
-
-#         with self.assertRaises(ValueError):
-#             pod_spec.make_pod_spec(image_info, config, relation_state, app_name, port)
-
-
-# if __name__ == "__main__":
-#     unittest.main()