Configure status tests to not store logs 50/134950/2
authorpawel.denst <pawel.denst@external.t-mobile.pl>
Mon, 19 Jun 2023 11:48:20 +0000 (11:48 +0000)
committerpawel.denst <pawel.denst@external.t-mobile.pl>
Mon, 19 Jun 2023 15:49:51 +0000 (15:49 +0000)
Configure status tests to not store logs

Issue-ID: INT-2251
Signed-off-by: pawel.denst <pawel.denst@external.t-mobile.pl>
Change-Id: Ia395ef033899380cd7e64a6d0e3d9daa067c81bb

src/onaptests/steps/cloud/check_status.py

index 80205b5..0bfce35 100644 (file)
@@ -163,8 +163,7 @@ class CheckNamespaceStatusStep(BaseStep):
 
         """
         super().execute()
-        if settings.STORE_ARTIFACTS:
-            os.makedirs(self.res_dir, exist_ok=True)
+        os.makedirs(self.res_dir, exist_ok=True)
         self.__logger.debug("start test")
         try:
             self.k8s_pods = self.core.list_namespaced_pod(NAMESPACE).items
@@ -243,13 +242,12 @@ class CheckNamespaceStatusStep(BaseStep):
         self.parse_secrets()
         self.parse_ingresses()
         self.parse_versions()
-        if settings.STORE_ARTIFACTS:
-            self.jinja_env.get_template('index.html.j2').stream(
-                ns=self,
-                delta=delta).dump('{}/index.html'.format(self.res_dir))
-            self.jinja_env.get_template('raw_output.txt.j2').stream(
-                ns=self, namespace=NAMESPACE).dump('{}/onap-k8s.log'.format(
-                    self.res_dir))
+        self.jinja_env.get_template('index.html.j2').stream(
+            ns=self,
+            delta=delta).dump('{}/index.html'.format(self.res_dir))
+        self.jinja_env.get_template('raw_output.txt.j2').stream(
+            ns=self, namespace=NAMESPACE).dump('{}/onap-k8s.log'.format(
+                self.res_dir))
 
         if len(self.jobs) > 0:
             self.details['jobs'] = {
@@ -323,13 +321,12 @@ class CheckNamespaceStatusStep(BaseStep):
             pod.events = self.core.list_namespaced_event(
                 NAMESPACE,
                 field_selector="involvedObject.name={}".format(pod.name)).items
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('pod.html.j2').stream(pod=pod).dump(
-                    '{}/pod-{}.html'.format(self.res_dir, pod.name))
-                if any(waiver_elt in pod.name for waiver_elt in WAIVER_LIST):
-                    self.__logger.warn("Waiver pattern found in pod, exclude %s", pod.name)
-                else:
-                    self.pods.append(pod)
+            self.jinja_env.get_template('pod.html.j2').stream(pod=pod).dump(
+                '{}/pod-{}.html'.format(self.res_dir, pod.name))
+            if any(waiver_elt in pod.name for waiver_elt in WAIVER_LIST):
+                self.__logger.warn("Waiver pattern found in pod, exclude %s", pod.name)
+            else:
+                self.pods.append(pod)
 
     def parse_container(self, pod, k8s_container, init=False):
         """Get the logs of a container."""
@@ -352,74 +349,70 @@ class CheckNamespaceStatusStep(BaseStep):
         else:
             if container.restart_count > pod.restart_count:
                 pod.restart_count = container.restart_count
-
-        try:
-            log_files = {}
-            logs = ""
+        if settings.STORE_ARTIFACTS:
             try:
-                logs = self.core.read_namespaced_pod_log(
-                    pod.name,
-                    NAMESPACE,
-                    container=container.name,
-                    limit_bytes=MAX_LOG_BYTES,
-                )
-            except UnicodeDecodeError:
-                logs= "{0} has an unicode decode error...".format(pod.name)
-                self.__logger.error(
-                    "{0} has an unicode decode error in the logs...", pod.name,
-                )
-            if settings.STORE_ARTIFACTS:
+                log_files = {}
+                logs = ""
+                try:
+                    logs = self.core.read_namespaced_pod_log(
+                        pod.name,
+                        NAMESPACE,
+                        container=container.name,
+                        limit_bytes=MAX_LOG_BYTES,
+                    )
+                except UnicodeDecodeError:
+                    logs= "{0} has an unicode decode error...".format(pod.name)
+                    self.__logger.error(
+                        "{0} has an unicode decode error in the logs...", pod.name,
+                    )
                 with open(
                         "{}/pod-{}-{}.log".format(self.res_dir,
                                                 pod.name, container.name),
                         'w') as log_result:
                     log_result.write(logs)
-            if (not container.ready) and container.restart_count > 0:
-                old_logs = self.core.read_namespaced_pod_log(
-                    pod.name,
-                    NAMESPACE,
-                    container=container.name,
-                    previous=True)
-                if settings.STORE_ARTIFACTS:
+                if (not container.ready) and container.restart_count > 0:
+                    old_logs = self.core.read_namespaced_pod_log(
+                        pod.name,
+                        NAMESPACE,
+                        container=container.name,
+                        previous=True)
                     with open(
                             "{}/pod-{}-{}.old.log".format(self.res_dir,
                                                         pod.name,
                                                         container.name),
                             'w') as log_result:
                         log_result.write(old_logs)
-            if (container.name in FULL_LOGS_CONTAINERS):
-                logs = self.core.read_namespaced_pod_log(
-                    pod.name, NAMESPACE, container=container.name)
-                if settings.STORE_ARTIFACTS:
+                if (container.name in FULL_LOGS_CONTAINERS):
+                    logs = self.core.read_namespaced_pod_log(
+                        pod.name, NAMESPACE, container=container.name)
                     with open(
                             "{}/pod-{}-{}.log".format(self.res_dir,
                                                     pod.name, container.name),
                             'w') as log_result:
                         log_result.write(logs)
-            if (container.name in SPECIFIC_LOGS_CONTAINERS):
-                for log_file in SPECIFIC_LOGS_CONTAINERS[container.name]:
-                    exec_command = ['/bin/sh', '-c', "cat {}".format(log_file)]
-                    log_files[log_file] = stream(
-                        self.core.connect_get_namespaced_pod_exec,
-                        pod.name,
-                        NAMESPACE,
-                        container=container.name,
-                        command=exec_command,
-                        stderr=True,
-                        stdin=False,
-                        stdout=True,
-                        tty=False)
-                    log_file_slug = log_file.split('.')[0].split('/')[-1]
-                    with open(
-                            "{}/pod-{}-{}-{}.log".format(
-                                self.res_dir, pod.name,
-                                container.name, log_file_slug),
-                            'w') as log_result:
-                        log_result.write(log_files[log_file])
-        except client.rest.ApiException as exc:
-            self.__logger.warning("%scontainer %s of pod %s has an exception: %s",
-                               prefix, container.name, pod.name, exc.reason)
-        if settings.STORE_ARTIFACTS:
+                if (container.name in SPECIFIC_LOGS_CONTAINERS):
+                    for log_file in SPECIFIC_LOGS_CONTAINERS[container.name]:
+                        exec_command = ['/bin/sh', '-c', "cat {}".format(log_file)]
+                        log_files[log_file] = stream(
+                            self.core.connect_get_namespaced_pod_exec,
+                            pod.name,
+                            NAMESPACE,
+                            container=container.name,
+                            command=exec_command,
+                            stderr=True,
+                            stdin=False,
+                            stdout=True,
+                            tty=False)
+                        log_file_slug = log_file.split('.')[0].split('/')[-1]
+                        with open(
+                                "{}/pod-{}-{}-{}.log".format(
+                                    self.res_dir, pod.name,
+                                    container.name, log_file_slug),
+                                'w') as log_result:
+                            log_result.write(log_files[log_file])
+            except client.rest.ApiException as exc:
+                self.__logger.warning("%scontainer %s of pod %s has an exception: %s",
+                                prefix, container.name, pod.name, exc.reason)
             self.jinja_env.get_template('container_log.html.j2').stream(
                 container=container,
                 pod_name=pod.name,
@@ -445,11 +438,10 @@ class CheckNamespaceStatusStep(BaseStep):
             (service.pods,
              service.failed_pods) = self._find_child_pods(k8s.spec.selector)
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('service.html.j2').stream(
-                    service=service).dump('{}/service-{}.html'.format(
-                        self.res_dir, service.name))
-                self.services.append(service)
+            self.jinja_env.get_template('service.html.j2').stream(
+                service=service).dump('{}/service-{}.html'.format(
+                    self.res_dir, service.name))
+            self.services.append(service)
 
     def parse_jobs(self):
         """Parse the jobs.
@@ -472,9 +464,8 @@ class CheckNamespaceStatusStep(BaseStep):
                 NAMESPACE,
                 field_selector=field_selector).items
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('job.html.j2').stream(job=job).dump(
-                    '{}/job-{}.html'.format(self.res_dir, job.name))
+            self.jinja_env.get_template('job.html.j2').stream(job=job).dump(
+                '{}/job-{}.html'.format(self.res_dir, job.name))
 
             # timemout job
             if not k8s.status.completion_time:
@@ -507,10 +498,9 @@ class CheckNamespaceStatusStep(BaseStep):
                 NAMESPACE,
                 field_selector=field_selector).items
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('deployment.html.j2').stream(
-                    deployment=deployment).dump('{}/deployment-{}.html'.format(
-                        self.res_dir, deployment.name))
+            self.jinja_env.get_template('deployment.html.j2').stream(
+                deployment=deployment).dump('{}/deployment-{}.html'.format(
+                    self.res_dir, deployment.name))
 
             if k8s.status.unavailable_replicas:
                 self.__logger.warning("a Deployment is in error: {}".format(deployment.name))
@@ -537,10 +527,9 @@ class CheckNamespaceStatusStep(BaseStep):
                 NAMESPACE,
                 field_selector=field_selector).items
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('replicaset.html.j2').stream(
-                    replicaset=replicaset).dump('{}/replicaset-{}.html'.format(
-                        self.res_dir, replicaset.name))
+            self.jinja_env.get_template('replicaset.html.j2').stream(
+                replicaset=replicaset).dump('{}/replicaset-{}.html'.format(
+                    self.res_dir, replicaset.name))
 
             if (not k8s.status.ready_replicas 
                 or (k8s.status.ready_replicas < k8s.status.replicas)):
@@ -568,10 +557,9 @@ class CheckNamespaceStatusStep(BaseStep):
                 NAMESPACE,
                 field_selector=field_selector).items
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('statefulset.html.j2').stream(
-                    statefulset=statefulset).dump('{}/statefulset-{}.html'.format(
-                        self.res_dir, statefulset.name))
+            self.jinja_env.get_template('statefulset.html.j2').stream(
+                statefulset=statefulset).dump('{}/statefulset-{}.html'.format(
+                    self.res_dir, statefulset.name))
 
             if ((not k8s.status.ready_replicas)
                     or (k8s.status.ready_replicas < k8s.status.replicas)):
@@ -598,10 +586,9 @@ class CheckNamespaceStatusStep(BaseStep):
                 NAMESPACE,
                 field_selector=field_selector).items
 
-            if settings.STORE_ARTIFACTS:
-                self.jinja_env.get_template('daemonset.html.j2').stream(
-                    daemonset=daemonset).dump('{}/daemonset-{}.html'.format(
-                        self.res_dir, daemonset.name))
+            self.jinja_env.get_template('daemonset.html.j2').stream(
+                daemonset=daemonset).dump('{}/daemonset-{}.html'.format(
+                    self.res_dir, daemonset.name))
 
             if (k8s.status.number_ready < k8s.status.desired_number_scheduled):
                 self.__logger.warning("a DaemonSet is in error: {}".format(daemonset.name))
@@ -732,13 +719,12 @@ class CheckNamespaceStatusStep(BaseStep):
                         'number_components': 1
                     }
 
-        if settings.STORE_ARTIFACTS:
-            self.jinja_env.get_template('version.html.j2').stream(
-                pod_versions=pod_versions).dump('{}/versions.html'.format(
-                    self.res_dir))
-            self.jinja_env.get_template('container_versions.html.j2').stream(
-                containers=containers).dump('{}/container_versions.html'.format(
-                    self.res_dir))
+        self.jinja_env.get_template('version.html.j2').stream(
+            pod_versions=pod_versions).dump('{}/versions.html'.format(
+                self.res_dir))
+        self.jinja_env.get_template('container_versions.html.j2').stream(
+            containers=containers).dump('{}/container_versions.html'.format(
+                self.res_dir))
         # create a json file for version tracking
         with open(self.res_dir + "/onap_versions.json", "w") as write_file:
             json.dump(pod_versions, write_file)