def run(self, context): error_text = None # heat throws HTTPNotFound if the stack is not found try: stack = self.get_orchestration_client(context).stacks.get( self.container, resolve_outputs=False) except heatexceptions.HTTPNotFound: pass else: if stack is not None: raise exception.StackInUseError(name=self.container) try: swift = self.get_object_client(context) swiftutils.delete_container(swift, self.container) swiftutils.delete_container(swift, "%s-swift-rings" % self.container) swiftutils.delete_container(swift, "%s-messages" % self.container) except swiftexceptions.ClientException as ce: LOG.exception("Swift error deleting plan.") error_text = ce.msg except Exception as err: LOG.exception("Error deleting plan.") error_text = six.text_type(err) if error_text: return actions.Result(error=error_text)
def run(self): error_text = None # heat throws HTTPNotFound if the stack is not found try: stack = self.get_orchestration_client().stacks.get(self.container) except heatexceptions.HTTPNotFound: pass else: if stack is not None: raise exception.StackInUseError(name=self.container) try: swift = self.get_object_client() swiftutils.delete_container(swift, self.container) # if mistral environment exists, delete it too mistral = self.get_workflow_client() if self.container in [ env.name for env in mistral.environments.list() ]: # deletes environment mistral.environments.delete(self.container) except swiftexceptions.ClientException as ce: LOG.exception("Swift error deleting plan.") error_text = ce.msg except Exception as err: LOG.exception("Error deleting plan.") error_text = six.text_type(err) if error_text: return mistral_workflow_utils.Result(error=error_text)