def expire(self, session=None, attrs=None): """Expire this object ().""" if not session: session = Session.object_session(self) if not session: session = get_session() session.expire(self, attrs)
def refresh(self, session=None, attrs=None): """Refresh this object.""" if not session: session = Session.object_session(self) if not session: session = get_session() session.refresh(self, attrs)
def delete(self, session=None): """Delete this object.""" if not session: session = Session.object_session(self) if not session: session = get_session() session.delete(self) session.flush()
def update_and_save(self, values, session=None): if not session: session = Session.object_session(self) if not session: session = get_session() session.begin() for k, v in values.iteritems(): setattr(self, k, v) session.commit()
def save(self, session=None): """Save this object.""" if not session: session = Session.object_session(self) if not session: session = get_session() session.add(self) try: session.flush() except IntegrityError as e: if str(e).endswith('is not unique'): raise exception.Duplicate(str(e)) else: raise
def _session(context): return (context and context.session) or get_session()