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)
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)
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()
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
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()
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)