def test_object_has_stack_invalid_status(self, mock_oscs, mock_retrieve_bay): mock_osc = self._get_heat_stacks_get_mock_obj("INVALID_STATUS") mock_oscs.return_value = mock_osc self.assertTrue(utils.object_has_stack('context', self.get_fake_id())) mock_retrieve_bay.assert_called_with('context', self.get_fake_id())
def rc_delete(self, context, rc_ident, bay_ident): LOG.debug("rc_delete %s", rc_ident) # Since bay identifier is specified verify whether its a UUID # or Name. If name is specified as bay identifier need to extract # the bay uuid since its needed to get the k8s_api object. bay_uuid = conductor_utils.retrieve_bay_uuid(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay_uuid) if utils.is_uuid_like(rc_ident): rc = objects.ReplicationController.get_by_uuid(context, rc_ident, bay_uuid, self.k8s_api) rc_name = rc.name else: rc_name = rc_ident if conductor_utils.object_has_stack(context, bay_uuid): try: self.k8s_api.delete_namespaced_replication_controller( name=str(rc_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def pod_delete(self, context, pod_ident, bay_ident): LOG.debug("pod_delete %s", pod_ident) # Since bay identifier is specified verify whether its a UUID # or Name. If name is specified as bay identifier need to extract # the bay uuid since its needed to get the k8s_api object. if not utils.is_uuid_like(bay_ident): bay = objects.Bay.get_by_name(context, bay_ident) bay_ident = bay.uuid bay_uuid = bay_ident self.k8s_api = k8s.create_k8s_api_pod(context, bay_uuid) if utils.is_uuid_like(pod_ident): pod = objects.Pod.get_by_uuid(context, pod_ident, bay_uuid, self.k8s_api) pod_name = pod.name else: pod_name = pod_ident if conductor_utils.object_has_stack(context, bay_uuid): try: self.k8s_api.delete_namespaced_pod(name=str(pod_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def rc_delete(self, context, rc_ident, bay_ident): LOG.debug("rc_delete %s", rc_ident) # Since bay identifier is specified verify whether its a UUID # or Name. If name is specified as bay identifier need to extract # the bay uuid since its needed to get the k8s_api object. if not utils.is_uuid_like(bay_ident): bay = objects.Bay.get_by_name(context, bay_ident) bay_ident = bay.uuid bay_uuid = bay_ident self.k8s_api = k8s.create_k8s_api_rc(context, bay_uuid) if utils.is_uuid_like(rc_ident): rc = objects.ReplicationController.get_by_uuid(context, rc_ident, bay_uuid, self.k8s_api) rc_name = rc.name else: rc_name = rc_ident if conductor_utils.object_has_stack(context, bay_uuid): try: self.k8s_api.delete_namespaced_replication_controller( name=str(rc_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def test_object_has_stack_delete_in_progress(self, mock_oscs, mock_retrieve_bay): mock_osc = self._get_heat_stacks_get_mock_obj("DELETE_IN_PROGRESS") mock_oscs.return_value = mock_osc self.assertFalse(utils.object_has_stack('context', self.get_fake_id())) mock_retrieve_bay.assert_called_with('context', self.get_fake_id())
def rc_delete(self, context, uuid): LOG.debug("rc_delete %s", uuid) rc = objects.ReplicationController.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, rc) if conductor_utils.object_has_stack(context, rc): try: self.k8s_api.delete_namespaced_replication_controller( name=str(rc.name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err) # call the rc object to persist in db rc.destroy(context)
def service_delete(self, context, uuid): LOG.debug("service_delete %s", uuid) service = objects.Service.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, service) if conductor_utils.object_has_stack(context, service): try: self.k8s_api.delete_namespaced_service(name=str(service.name), namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err) # call the service object to persist in db service.destroy(context)
def pod_delete(self, context, uuid): LOG.debug("pod_delete %s", uuid) pod = objects.Pod.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, pod) if conductor_utils.object_has_stack(context, pod): try: self.k8s_api.delete_namespaced_pod(name=str(pod.name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err) # call the pod object to persist in db pod.destroy(context)
def pod_delete(self, context, uuid): LOG.debug("pod_delete %s", uuid) pod = objects.Pod.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, pod) if conductor_utils.object_has_stack(context, pod): try: self.k8s_api.deletePod(name=pod.name, namespaces='default') except error.HTTPError as err: if err.code == 404: pass else: message = ast.literal_eval(err.read())['message'] raise exception.KubernetesAPIFailed(code=err.code, message=message) # call the pod object to persist in db pod.destroy(context)
def service_delete(self, context, uuid): LOG.debug("service_delete %s", uuid) service = objects.Service.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, service) if conductor_utils.object_has_stack(context, service): try: self.k8s_api.deleteService(name=service.name, namespaces='default') except error.HTTPError as err: if err.code == 404: pass else: message = ast.literal_eval(err.read())['message'] raise exception.KubernetesAPIFailed(code=err.code, message=message) # call the service object to persist in db service.destroy(context)
def rc_delete(self, context, uuid): LOG.debug("rc_delete %s", uuid) rc = objects.ReplicationController.get_by_uuid(context, uuid) self.k8s_api = k8s.create_k8s_api(context, rc) if conductor_utils.object_has_stack(context, rc): try: self.k8s_api.deleteReplicationController(name=rc.name, namespaces='default') except error.HTTPError as err: if err.code == 404: pass else: message = ast.literal_eval(err.read())['message'] raise exception.KubernetesAPIFailed(code=err.code, message=message) # call the rc object to persist in db rc.destroy(context)
def rc_delete(self, context, rc_ident, bay_ident): LOG.debug("rc_delete %s", rc_ident) bay = conductor_utils.retrieve_bay(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay) if utils.is_uuid_like(rc_ident): rc = objects.ReplicationController.get_by_uuid( context, rc_ident, bay.uuid, self.k8s_api) rc_name = rc.name else: rc_name = rc_ident if conductor_utils.object_has_stack(context, bay.uuid): try: self.k8s_api.delete_namespaced_replication_controller( name=str(rc_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def pod_delete(self, context, pod_ident, bay_ident): LOG.debug("pod_delete %s", pod_ident) bay = conductor_utils.retrieve_bay(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay) if utils.is_uuid_like(pod_ident): pod = objects.Pod.get_by_uuid(context, pod_ident, bay.uuid, self.k8s_api) pod_name = pod.name else: pod_name = pod_ident if conductor_utils.object_has_stack(context, bay.uuid): try: self.k8s_api.delete_namespaced_pod(name=str(pod_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def service_delete(self, context, service_ident, bay_ident): LOG.debug("service_delete %s", service_ident) bay = conductor_utils.retrieve_bay(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay) if utils.is_uuid_like(service_ident): service = objects.Service.get_by_uuid(context, service_ident, bay.uuid, self.k8s_api) service_name = service.name else: service_name = service_ident if conductor_utils.object_has_stack(context, bay.uuid): try: self.k8s_api.delete_namespaced_service(name=str(service_name), namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def rc_delete(self, context, rc_ident, bay_ident): LOG.debug("rc_delete %s", rc_ident) bay = conductor_utils.retrieve_bay(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay) if utils.is_uuid_like(rc_ident): rc = objects.ReplicationController.get_by_uuid(context, rc_ident, bay.uuid, self.k8s_api) rc_name = rc.name else: rc_name = rc_ident if conductor_utils.object_has_stack(context, bay.uuid): try: self.k8s_api.delete_namespaced_replication_controller( name=str(rc_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def pod_delete(self, context, pod_ident, bay_ident): LOG.debug("pod_delete %s", pod_ident) # Since bay identifier is specified verify whether its a UUID # or Name. If name is specified as bay identifier need to extract # the bay uuid since its needed to get the k8s_api object. bay_uuid = conductor_utils.retrieve_bay_uuid(context, bay_ident) self.k8s_api = k8s.create_k8s_api(context, bay_uuid) if utils.is_uuid_like(pod_ident): pod = objects.Pod.get_by_uuid(context, pod_ident, bay_uuid, self.k8s_api) pod_name = pod.name else: pod_name = pod_ident if conductor_utils.object_has_stack(context, bay_uuid): try: self.k8s_api.delete_namespaced_pod(name=str(pod_name), body={}, namespace='default') except rest.ApiException as err: if err.status == 404: pass else: raise exception.KubernetesAPIFailed(err=err)
def test_object_has_stack_delete_complete_status(self, mock_oscs, mock_retrieve_bay): mock_osc = self._get_heat_stacks_get_mock_obj("DELETE_COMPLETE") mock_oscs.return_value = mock_osc self.assertFalse(utils.object_has_stack('context', self.get_fake_id())) mock_retrieve_bay.assert_called_with('context', self.get_fake_id())