예제 #1
0
파일: sequence.py 프로젝트: bbcf/pygdv
def add_new_sequence(sequence):
    '''
    Method called when a new sequence is created on GDV.
    It should import fast from JBrowse
    '''
    print 'add new sequence'
    file_url = Assembly(sequence).get_sqlite_url()
    print file_url
    out = os.path.join(filemanager.temporary_directory(), 'Genes.sql')
    fileinfo = filemanager.FileInfo(inputtype='url',
        inpath=file_url, trackname='Genes', extension='sql', outpath=out, admin=True)
    print fileinfo
    user = DBSession.query(User).filter(User.key == constants.admin_user_key()).first()
    user_info = {'id': user.id, 'name': user.name, 'email': user.email}
    sequence_info = {'id': sequence.id, 'name': sequence.name}

    # track
    t = Track()
    t.name = fileinfo.trackname
    t.sequence_id = sequence.id
    t.user_id = user.id
    DBSession.add(t)
    DBSession.flush()
    # send task
    async = tasks.new_input.delay(user_info, fileinfo, sequence_info, t.id)
    t.task_id = async.task_id
    DBSession.add(t)

    sequence.default_tracks.append(t)
    DBSession.add(sequence)
    DBSession.flush()
예제 #2
0
파일: sequence.py 프로젝트: yjarosz/pygdv
def add_new_sequence(sequence):
    '''
    Method called when a new sequence is created on GDV.
    It should import fast from JBrowse
    '''
    print 'add new sequence'
    file_url = Assembly(sequence).get_sqlite_url()
    print file_url
    out = os.path.join(filemanager.temporary_directory(), 'Genes.sql')
    fileinfo = filemanager.FileInfo(inputtype='url',
                                    inpath=file_url,
                                    trackname='Genes',
                                    extension='sql',
                                    outpath=out,
                                    admin=True)
    print fileinfo
    user = DBSession.query(User).filter(
        User.key == constants.admin_user_key()).first()
    user_info = {'id': user.id, 'name': user.name, 'email': user.email}
    sequence_info = {'id': sequence.id, 'name': sequence.name}

    # track
    t = Track()
    t.name = fileinfo.trackname
    t.sequence_id = sequence.id
    t.user_id = user.id
    DBSession.add(t)
    DBSession.flush()
    # send task
    async = tasks.new_input.delay(user_info, fileinfo, sequence_info, t.id)
    t.task_id = async .task_id
    DBSession.add(t)

    sequence.default_tracks.append(t)
    DBSession.add(sequence)
    DBSession.flush()
예제 #3
0
파일: bootstrap.py 프로젝트: yjarosz/pygdv
def bootstrap(command, conf, vars):
    """Place any commands to setup turbotequila here.
    Note that you will have to log in the application one before launching the bootstrap."""
    try:
            print '[pygdv] [DATABASE] Adding default groups and permissions'
            print '[pygdv] [bootstrap] Adding default groups and permissions'
            # ADMIN GROUP
            admins = model.Group()
            admins.name = constants.groups['admin']['name']
            admins.id = constants.groups['admin']['id']
            model.DBSession.add(admins)

            # USER GROUP
            users = model.Group()
            users.name = constants.groups['user']['name']
            users.id = constants.groups['user']['id']
            model.DBSession.add(users)

            # ADMIN PERMISSION
            perm = model.Permission()
            perm.id = constants.permissions['admin']['id']
            perm.name = constants.permissions['admin']['name']
            perm.description = constants.permissions['admin']['desc']
            perm.groups.append(admins)
            model.DBSession.add(perm)

            # READ PERMISSION
            read = model.Permission()
            read.id = constants.permissions['read']['id']
            read.name = constants.permissions['read']['name']
            read.description = constants.permissions['read']['desc']
            read.groups.append(users)
            model.DBSession.add(read)

            # RIGHTS
            write = model.Right()
            write.id = constants.rights['upload']['id']
            write.name = constants.rights['upload']['name']
            write.description = constants.rights['upload']['desc']
            model.DBSession.add(write)

            execute = model.Right()
            execute.id = constants.rights['download']['id']
            execute.name = constants.rights['download']['name']
            execute.description = constants.rights['download']['desc']
            model.DBSession.add(execute)

            read = model.Right()
            read.id = constants.rights['read']['id']
            read.name = constants.rights['read']['name']
            read.description = constants.rights['read']['desc']
            model.DBSession.add(read)

            print '[pygdv] [bootstrap] Adding admin user'
            u = model.User()
            u.id = constants.admin_user['id']
            u.name = constants.admin_user['name']
            u.firstname = constants.admin_user['firstname']
            u.key = constants.admin_user_key()
            u.email = constants.admin_user_email()

            admins.users.append(u)
            users.users.append(u)

            model.DBSession.add(u)
            model.DBSession.add(users)
            model.DBSession.add(admins)

            transaction.commit()

    except IntegrityError:
        print 'Warning, there was a problem adding your auth data, it may have already been added:'
        import traceback
        print traceback.format_exc()
        transaction.abort()
        print 'Ending with bootstrapping...'
예제 #4
0
def bootstrap(command, conf, vars):
    """Place any commands to setup turbotequila here.
    Note that you will have to log in the application one before launching the bootstrap."""
    try:
        print "[pygdv] [DATABASE] Adding default groups and permissions"
        print "[pygdv] [bootstrap] Adding default groups and permissions"
        # ADMIN GROUP
        admins = model.Group()
        admins.name = constants.groups["admin"]["name"]
        admins.id = constants.groups["admin"]["id"]
        model.DBSession.add(admins)

        # USER GROUP
        users = model.Group()
        users.name = constants.groups["user"]["name"]
        users.id = constants.groups["user"]["id"]
        model.DBSession.add(users)

        # ADMIN PERMISSION
        perm = model.Permission()
        perm.id = constants.permissions["admin"]["id"]
        perm.name = constants.permissions["admin"]["name"]
        perm.description = constants.permissions["admin"]["desc"]
        perm.groups.append(admins)
        model.DBSession.add(perm)

        # READ PERMISSION
        read = model.Permission()
        read.id = constants.permissions["read"]["id"]
        read.name = constants.permissions["read"]["name"]
        read.description = constants.permissions["read"]["desc"]
        read.groups.append(users)
        model.DBSession.add(read)

        # RIGHTS
        write = model.Right()
        write.id = constants.rights["upload"]["id"]
        write.name = constants.rights["upload"]["name"]
        write.description = constants.rights["upload"]["desc"]
        model.DBSession.add(write)

        execute = model.Right()
        execute.id = constants.rights["download"]["id"]
        execute.name = constants.rights["download"]["name"]
        execute.description = constants.rights["download"]["desc"]
        model.DBSession.add(execute)

        read = model.Right()
        read.id = constants.rights["read"]["id"]
        read.name = constants.rights["read"]["name"]
        read.description = constants.rights["read"]["desc"]
        model.DBSession.add(read)

        print "[pygdv] [bootstrap] Adding admin user"
        u = model.User()
        u.id = constants.admin_user["id"]
        u.name = constants.admin_user["name"]
        u.firstname = constants.admin_user["firstname"]
        u.key = constants.admin_user_key()
        u.email = constants.admin_user_email()

        admins.users.append(u)
        users.users.append(u)

        model.DBSession.add(u)
        model.DBSession.add(users)
        model.DBSession.add(admins)

        transaction.commit()

    except IntegrityError:
        print "Warning, there was a problem adding your auth data, it may have already been added:"
        import traceback

        print traceback.format_exc()
        transaction.abort()
        print "Ending with bootstrapping..."