当前位置: 首页>>代码示例>>Python>>正文


Python transaction.begin函数代码示例

本文整理汇总了Python中transaction.begin函数的典型用法代码示例。如果您正苦于以下问题:Python begin函数的具体用法?Python begin怎么用?Python begin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了begin函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: run_migrations_online

def run_migrations_online():
    if DBSession.bind is None:
        raise ValueError(
            "\nYou must run Kotti's migration using the 'kotti-migrate' script"
            "\nand not through 'alembic' directly."
            )

    transaction.begin()
    connection = DBSession.connection()

    context.configure(
        connection=connection,
        target_metadata=metadata,
        )

    try:
        context.run_migrations()
        mark_changed(DBSession())
    except:
        traceback.print_exc()
        transaction.abort()
    else:
        transaction.commit()
    finally:
        # connection.close()
        pass
开发者ID:5urprise,项目名称:Kotti,代码行数:26,代码来源:env.py

示例2: getPeople

    def getPeople(self, options):
        folder = tempfile.gettempdir()
        #folder = './'  # my /tmp is a tmpfs
        fname = os.path.join(folder, 'performance_data.fs')
        if options.reload:
            try:
                os.remove(fname)
            except:
                pass
        fs = ZODB.FileStorage.FileStorage(fname)
        db = ZODB.DB(fs)
        conn = db.open()

        root = conn.root()

        if options.reload:
            root['people'] = people = PeopleZ()
            transaction.commit()

            # Profile inserts
            transaction.begin()
            t1 = time.time()
            for idx in xrange(options.size):
                klass = (self.personKlass if (MULTIPLE_CLASSES and idx % 2)
                         else self.person2Klass)
                name = 'Mr Number %.5i' % idx
                people[name] = klass(name, random.randint(0, 100))
            transaction.commit()
            t2 = time.time()
            self.printResult('Insert', t1, t2, options.size)
        else:
            people = root['people']

        return people
开发者ID:cyrusv,项目名称:mongopersist,代码行数:34,代码来源:performance.py

示例3: add_fixtures

 def add_fixtures(self):
     from pysite.models import DbSession
     from pprint import pprint
     sess = DbSession()
     transaction.begin()
     try:
         # Add in this sequence
         for g in self.__class__.FIXT_GROUPS:
             data = self.fixtures[g]
             print("***", g)
             for it in data:
                 it['owner'] = UNIT_TESTER_UID
                 pprint(it)
                 if g == 'roles':
                     usrmanager.add_role(it)
                 elif g == 'principals':
                     usrmanager.add_principal(it)
                 elif g == 'vmail_domains':
                     vmailmanager.add_domain(it)
                 elif g == 'vmail_mailboxes':
                     vmailmanager.add_mailbox(it)
                 elif g == 'vmail_aliases':
                     vmailmanager.add_alias(it)
                 else:
                     raise Exception("Unknown fixture group: '{0}'".format(
                         g))
         transaction.commit()
     except Exception as e:
         transaction.abort()
         raise e
开发者ID:dmdm,项目名称:PySite,代码行数:30,代码来源:app.py

示例4: actualizarPrefijosItem

 def actualizarPrefijosItem(self, id_tipo_item, viejo, nuevo):
     '''Actualiza los prefijos de los items al editar el tipo de item
     @param id_tipo_item: id del tipo de item
     @param viejo: prefijo anterior
     @param nuevo:prefijo nuevo
     ''' 
     if nuevo == viejo:
         return 0;
     if nuevo=="":
         ti = DBSession.query(TipoItem).filter(TipoItem.id_tipo_item == id_tipo_item).one()
         nombre = ti.nombre
         n = nombre.split(' ')
         nu = "".join(n)
         nuevo = nu.upper()[0:3]
         ti.prefijo=nuevo
         DBSession.merge(ti)
         transaction.commit()
     transaction.begin()
     items = DBSession.query(Item).filter(Item.id_tipo_item==id_tipo_item).all()
     for i in items:
         cod = i.codigo
         lista = cod.split('-')
         nro = lista[len(lista)-1]
         n = nro.strip(' ')
         i.codigo= nuevo + " - " + n
         self.update(i)
     transaction.commit()
开发者ID:vanecan,项目名称:SGP14,代码行数:27,代码来源:ItemMan.py

示例5: setUp

 def setUp(self):
     transaction.begin()
     self._policy = PermissiveSecurityPolicy()
     self._oldPolicy = setSecurityPolicy(self._policy)
     self.connection = Zope2.DB.open()
     self.root =  self.connection.root()[ 'Application' ]
     newSecurityManager( None, AnonymousUser().__of__( self.root ) )
开发者ID:goschtl,项目名称:zope,代码行数:7,代码来源:testcase.py

示例6: open

    def open(self):
        import ZODB
        from ZODB.FileStorage import FileStorage
        from zc.lockfile import LockError
        self.path = self.conf['rdf.store_conf']
        openstr = os.path.abspath(self.path)

        try:
            fs = FileStorage(openstr)
        except IOError:
            L.exception("Failed to create a FileStorage")
            raise ZODBSourceOpenFailError(openstr)
        except LockError:
            L.exception('Found database "{}" is locked when trying to open it. '
                    'The PID of this process: {}'.format(openstr, os.getpid()), exc_info=True)
            raise DatabaseConflict('Database ' + openstr + ' locked')

        self.zdb = ZODB.DB(fs, cache_size=1600)
        self.conn = self.zdb.open()
        root = self.conn.root()
        if 'rdflib' not in root:
            root['rdflib'] = ConjunctiveGraph('ZODB')
        self.graph = root['rdflib']
        try:
            transaction.commit()
        except Exception:
            # catch commit exception and close db.
            # otherwise db would stay open and follow up tests
            # will detect the db in error state
            L.exception('Forced to abort transaction on ZODB store opening', exc_info=True)
            transaction.abort()
        transaction.begin()
        self.graph.open(self.path)
开发者ID:openworm,项目名称:PyOpenWorm,代码行数:33,代码来源:data.py

示例7: setUp

    def setUp(self):
        self._trap_warning_output()
        transaction.begin()

        app = self.app = makerequest(Zope2.app())
        # Log in as a god :-)
        newSecurityManager( None, UnrestrictedUser('god', 'god', ['Manager'], '') )

        app.manage_addProduct['CMFDefault'].manage_addCMFSite('CalendarTest')

        self.Site = app.CalendarTest

        manage_addExternalMethod(app.CalendarTest,
                                 id='install_events',
                                 title="Install Events",
                                 module="CMFCalendar.Install",
                                 function="install")

        ExMethod = app.restrictedTraverse('/CalendarTest/install_events')
        ExMethod()
        self.Tool = app.CalendarTest.portal_calendar

        self.Site.clearCurrentSkin()
        self.Site.setupCurrentSkin(app.REQUEST)

        # sessioning setup
        if getattr(app, 'temp_folder', None) is None:
            temp_folder = MountedTemporaryFolder('temp_folder')
            app._setObject('temp_folder', temp_folder)
        if getattr(app.temp_folder, 'session_data', None) is None:
            session_data = TransientObjectContainer('session_data')
            app.temp_folder._setObject('session_data', session_data)
        app.REQUEST.set_lazy( 'SESSION',
                              app.session_data_manager.getSessionData )
开发者ID:goschtl,项目名称:zope,代码行数:34,代码来源:test_Calendar.py

示例8: testDeepCopyCanInvalidate

    def testDeepCopyCanInvalidate(self):
        """
        Tests regression for invalidation problems related to missing
        readers and writers values in cloned objects (see
        http://mail.zope.org/pipermail/zodb-dev/2008-August/012054.html)
        """
        import ZODB.MappingStorage
        database = DB(ZODB.blob.BlobStorage(
            'blobs', ZODB.MappingStorage.MappingStorage()))
        connection = database.open()
        root = connection.root()
        transaction.begin()
        root['blob'] = Blob()
        transaction.commit()

        stream = StringIO()
        p = Pickler(stream, 1)
        p.dump(root['blob'])
        u = Unpickler(stream)
        stream.seek(0)
        clone = u.load()
        clone._p_invalidate()

        # it should also be possible to open the cloned blob
        # (even though it won't contain the original data)
        clone.open()

        # tearDown
        database.close()
开发者ID:grodniewicz,项目名称:oship,代码行数:29,代码来源:testblob.py

示例9: deleteById

    def deleteById(self, id):
        ''' Elimina un Proyecto de la base de datos
        @param: id del proyecto'''
        roles = DBSession.query(RolUsuario).filter(RolUsuario.id_proyecto==id)
        if roles.count()>0:
            return False
        transaction.begin()
        u = self.getById(id)
        if u.fases != []:
            for i in u.fases:
                transaction.begin()
                recurso = DBSession.query(Recurso).filter(Recurso.id_fase==i.id_fase).one()
                DBSession.delete(recurso)
                transaction.commit()
                transaction.begin()
                fase = DBSession.query(Fase).filter(Fase.id_fase==i.id_fase).one()
                DBSession.delete(fase)
                transaction.commit()
        transaction.begin()
        recurso = DBSession.query(Recurso).filter(id == Recurso.id_proyecto).one()
        DBSession.delete(recurso)
        transaction.commit()
        transaction.begin()
        u = self.getById(id)

        DBSession.delete(u)
        transaction.commit()
        transaction.commit()
        return True
开发者ID:vanecan,项目名称:SGP14,代码行数:29,代码来源:ProyectoMan.py

示例10: group_del

    def group_del(self, group_id, delete_cascade=True):
        """Remove a group from the vault. Only if no services are associated
        with it anymore.

        :force_delete deletes a group even if it has services associated

        """
        transaction.begin()
        grp = query(Group).options(eagerload('services_assoc')).filter_by(id=int(group_id)).first()

        if grp is None:
            return vaultMsg(False, "Group not found: %s" % (group_id,))

        if len(grp.services_assoc):
            if not delete_cascade:
                return vaultMsg(False, "Group not empty, cannot delete")
            else:
                for service in grp.services_assoc:
                    self.service_del(service.id)
                    

        # Delete UserGroup elements...
        q1 = usergroups_table.delete(UserGroup.group_id==grp.id)
        meta.Session.execute(q1)

        name = grp.name
        # Delete Group and commit..
        meta.Session.delete(grp)
        transaction.commit()

        retval = {'name': name,
                  'group_id': group_id}
        return vaultMsg(True, 'Removed group "%s" successfully' % name, retval)
开发者ID:hfeeki,项目名称:sflvault,代码行数:33,代码来源:vault.py

示例11: group_del_service

    def group_del_service(self, group_id, service_id):
        """Remove the association between a group and a service, simply."""
        transaction.begin()
        grp = query(Group).filter_by(id=group_id).first()

        if not grp:
            return vaultMsg(False, "Group not found: %s" % str(e))

        # TODO: DRY out this place, much copy from del_user and stuff
        sgs = query(ServiceGroup).filter_by(service_id=service_id).all()

        if grp.id not in [sg.group_id for sg in sgs]:
            return vaultMsg(False, "Service is not in group: %s" % str(e))

        sg = [sg for sg in sgs if grp.id == sg.group_id][0]

        # Make sure we don't lose all of the service's crypted information.
        if len(sgs) < 2:
            return vaultMsg(False, "This is the last group this service is in. Either delete the service, or add it to another group first")

        # Remove the GroupService from the Group object.
        meta.Session.delete(sg)
        transaction.commit()

        return vaultMsg(True, "Removed service from group successfully")
开发者ID:hfeeki,项目名称:sflvault,代码行数:25,代码来源:vault.py

示例12: group_put

 def group_put(self, group_id, data):
     """Put a single group's data back to the Vault"""
     transaction.begin()
     try:
         grp = query(Group).filter_by(id=group_id).one()
     except InvalidReq, e:
         return vaultMsg(False, "Group not found: %s" % str(e))
开发者ID:hfeeki,项目名称:sflvault,代码行数:7,代码来源:vault.py

示例13: service_passwd

    def service_passwd(self, service_id, newsecret):
        """Change the passwd for a given service"""
        transaction.begin()
        # number please
        service_id = int(service_id)

        serv = query(Service).get(service_id)
        groups = serv.groups

        (seckey, ciphertext) = encrypt_secret(newsecret)
        serv.secret = ciphertext
        serv.secret_last_modified = datetime.now()

        # TODO absolutely:  verify this requesting user has access to the
        # password first.  YES, he can add a new password, but not modify
        # something he doesn't have access to, first.

        # TODO: for traceability, mark the date we changed the password.
        #

        for sg in serv.groups_assoc:
            eg = [g for g in groups if g.id == sg.group_id][0].elgamal()
            sg.cryptsymkey = encrypt_longmsg(eg, seckey)

        grouplist = [g.name for g in groups]
        transaction.commit()


        return vaultMsg(True, "Password updated for service.", {'service_id': service_id,
                                                 'encrypted_for': grouplist})
开发者ID:hfeeki,项目名称:sflvault,代码行数:30,代码来源:vault.py

示例14: machine_del

    def machine_del(self, machine_id):
        """Delete a machine from database, bringing on all child services."""
        transaction.begin()
        # Get machine
        machine = query(model.Machine).get(int(machine_id))

        if not machine:
            return vaultMsg(True, "No such machine: m#%s" % machine_id)

        # Get all the services that will be deleted
        servs = query(model.Service).join('machine') \
                     .filter(model.Machine.id == machine_id).all()
        servs_ids = [s.id for s in servs]

        # Make sure no service is child of this one
        if servs_ids:
            childs = query(model.Service) \
                .filter(model.Service.parent_service_id.in_(servs_ids))\
                .all()
        else:
            childs = []

        # Don't bother for parents/childs if we're going to delete it anyway.
        remnants = list(set(childs).difference(set(servs)))

        if len(remnants):
            # There are still some childs left, we can't delete this one.
            retval = []
            for x in remnants:
                retval.append({'id': x.id, 'url': x.url})

            return vaultMsg(False, "Services still child of this machine's services",
                            {'childs': retval})

        if servs_ids:
            query(model.ServiceGroup)\
                .filter(model.ServiceGroup.service_id.in_(servs_ids))\
                .delete(synchronize_session=False)
            query(model.Service)\
                .filter(model.Service.id.in_(servs_ids))\
                .delete(synchronize_session=False)
        query(model.Machine).filter(model.Machine.id==machine_id).delete(synchronize_session=False)
        # Delete all related groupciphers
#        raise Exception
#        d = sql.delete(model.servicegroups_table) \
#               .where(model.servicegroups_table.c.service_id.in_(servs_ids))
#        # Delete the services related to machine_id
#        d2 = sql.delete(model.services_table) \
#                .where(model.services_table.c.id.in_(servs_ids))
#        # Delete the machine
#        d3 = sql.delete(model.machines_table) \
#                .where(model.machines_table.c.id == machine_id)

 #       meta.Session.execute(d)
 #       meta.Session.execute(d2)
 #       meta.Session.execute(d3)

        transaction.commit()

        return vaultMsg(True, 'Deleted machine m#%s successfully' % machine_id)
开发者ID:hfeeki,项目名称:sflvault,代码行数:60,代码来源:vault.py

示例15: setUp

    def setUp(self):
        super(ZPTMacros, self).setUp()
        zope.component.provideAdapter(DefaultTraversable, (None,))

        transaction.begin()
        self.app = makerequest(Zope2.app())
        f = self.app.manage_addProduct['PageTemplates'].manage_addPageTemplate
        self._addPT = f
        self.title = 'title of page template'
        self.text = """
<metal:block use-macro="template/macros/themacro">
  <p metal:fill-slot="theslot">
    This is in the slot
  </p>
</metal:block>
<tal:block condition="nothing">
<div metal:define-macro="themacro">
  <h1>This is the header</h1>
  <p metal:define-slot="theslot">
    This will be replaced
  </p>
</div>
</tal:block>
"""
        self.result = """<div>
开发者ID:Goldmund-Wyldebeast-Wunderliebe,项目名称:Zope,代码行数:25,代码来源:testZopePageTemplate.py


注:本文中的transaction.begin函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。