Merge "Adding new test case for prox Standalone L3FWD."
[yardstick.git] / yardstick / benchmark / contexts / kubernetes.py
index 4ce7cbc..e1553c7 100644 (file)
@@ -110,14 +110,14 @@ class KubernetesContext(ctx_base.Context):
             self._delete_rc(rc)
 
     def _delete_rc(self, rc):
-        k8s_utils.delete_replication_controller(rc)
+        k8s_utils.delete_replication_controller(rc, skip_codes=[404])
 
     def _delete_pods(self):
         for pod in self.template.pods:
             self._delete_pod(pod)
 
     def _delete_pod(self, pod):
-        k8s_utils.delete_pod(pod)
+        k8s_utils.delete_pod(pod, skip_codes=[404])
 
     def _create_crd(self):
         LOG.info('Create Custom Resource Definition elements')
@@ -159,19 +159,15 @@ class KubernetesContext(ctx_base.Context):
         k8s_utils.create_config_map(self.ssh_key, {'authorized_keys': key})
 
     def _delete_ssh_key(self):
-        k8s_utils.delete_config_map(self.ssh_key)
+        k8s_utils.delete_config_map(self.ssh_key, skip_codes=[404])
         utils.remove_file(self.key_path)
         utils.remove_file(self.public_key_path)
 
     def _get_server(self, name):
-        service_name = '{}-service'.format(name)
-        service = k8s_utils.get_service_by_name(service_name)
-        if not service:
-            raise exceptions.KubernetesServiceObjectNotDefined()
-
-        for sn_port in (sn_port for sn_port in service.ports
-                        if sn_port.port == constants.SSH_PORT):
-            node_port = sn_port.node_port
+        node_ports = self._get_service_ports(name)
+        for sn_port in (sn_port for sn_port in node_ports
+                        if sn_port['port'] == constants.SSH_PORT):
+            node_port = sn_port['node_port']
             break
         else:
             raise exceptions.KubernetesSSHPortNotDefined()
@@ -183,7 +179,8 @@ class KubernetesContext(ctx_base.Context):
             'ssh_port': node_port,
             'user': 'root',
             'key_filename': self.key_path,
-            'interfaces': self._get_interfaces(name)
+            'interfaces': self._get_interfaces(name),
+            'service_ports': node_ports
         }
 
     def _get_network(self, net_name):
@@ -221,3 +218,17 @@ class KubernetesContext(ctx_base.Context):
 
     def _get_physical_node_for_server(self, server_name):
         return None
+
+    def _get_service_ports(self, name):
+        service_name = '{}-service'.format(name)
+        service = k8s_utils.get_service_by_name(service_name)
+        if not service:
+            raise exceptions.KubernetesServiceObjectNotDefined()
+        ports = []
+        for port in service.ports:
+            ports.append({'name': port.name,
+                          'node_port': port.node_port,
+                          'port': port.port,
+                          'protocol': port.protocol,
+                          'target_port': port.target_port})
+        return ports