Beispiel #1
0
 def get_action_plan_by_id(self, context, action_plan_id):
     query = model_query(models.ActionPlan)
     query = query.filter_by(id=action_plan_id)
     try:
         action_plan = query.one()
         if not context.show_deleted:
             if action_plan.state == 'DELETED':
                 raise exception.ActionPlanNotFound(
                     action_plan=action_plan_id)
         return action_plan
     except exc.NoResultFound:
         raise exception.ActionPlanNotFound(action_plan=action_plan_id)
Beispiel #2
0
 def _get_action_plan(self, context, fieldname, value, eager):
     try:
         return self._get(context,
                          model=models.ActionPlan,
                          fieldname=fieldname,
                          value=value,
                          eager=eager)
     except exception.ResourceNotFound:
         raise exception.ActionPlanNotFound(action_plan=value)
Beispiel #3
0
    def soft_delete_action_plan(self, action_plan_id):
        session = get_session()
        with session.begin():
            query = model_query(models.ActionPlan, session=session)
            query = add_identity_filter(query, action_plan_id)

            try:
                query.one()
            except exc.NoResultFound:
                raise exception.ActionPlanNotFound(node=action_plan_id)

            query.soft_delete()
Beispiel #4
0
    def _do_update_action_plan(self, action_plan_id, values):
        session = get_session()
        with session.begin():
            query = model_query(models.ActionPlan, session=session)
            query = add_identity_filter(query, action_plan_id)
            try:
                ref = query.with_lockmode('update').one()
            except exc.NoResultFound:
                raise exception.ActionPlanNotFound(action_plan=action_plan_id)

            ref.update(values)
        return ref
Beispiel #5
0
    def destroy_action_plan(self, action_plan_id):
        def is_action_plan_referenced(session, action_plan_id):
            """Checks whether the action_plan is referenced by action(s)."""
            query = model_query(models.Action, session=session)
            query = self._add_actions_filters(
                query, {'action_plan_id': action_plan_id})
            return query.count() != 0

        session = get_session()
        with session.begin():
            query = model_query(models.ActionPlan, session=session)
            query = add_identity_filter(query, action_plan_id)

            try:
                action_plan_ref = query.one()
            except exc.NoResultFound:
                raise exception.ActionPlanNotFound(action_plan=action_plan_id)

            if is_action_plan_referenced(session, action_plan_ref['id']):
                raise exception.ActionPlanReferenced(
                    action_plan=action_plan_id)

            query.delete()
Beispiel #6
0
 def soft_delete_action_plan(self, action_plan_id):
     try:
         return self._soft_delete(models.ActionPlan, action_plan_id)
     except exception.ResourceNotFound:
         raise exception.ActionPlanNotFound(action_plan=action_plan_id)