def upgrade(active_plugins=None, options=None):

    bind = op.get_bind()
    validator = NameType()

    projects = list(
        bind.execute(
            sa.select(columns=['*'], from_obj=sa.Table('projects',
                                                       MetaData()))))

    projects_table = table(
        'projects',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('name', sa.String(), nullable=False),
        sa.Column('description', sa.UnicodeText(), nullable=True),
    )

    last_idx = 0

    for project in projects:
        project_name = project["name"]
        project_id = project["id"]
        need_rename = False

        try:
            validator.validate(project_name)
        except Exception:
            need_rename = True

        if need_rename:
            # This project needs renaming
            temp_name = "Project-%d" % last_idx
            last_idx += 1
            updated_description = "%s This project was renamed to fit new " \
                                  "naming validation. Original name was: %s" \
                                  % (project["description"], project_name)

            bind.execute(projects_table.update().where(
                projects_table.c.id == project_id).values(
                    name=temp_name, description=updated_description))
def upgrade(active_plugins=None, options=None):

    bind = op.get_bind()
    validator = NameType()

    projects = list(bind.execute(
        sa.select(columns=['*'], from_obj=sa.Table('projects', MetaData()))))

    projects_table = table(
        'projects',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('name', sa.String(), nullable=False),
        sa.Column('description', sa.UnicodeText(), nullable=True),
    )

    last_idx = 0

    for project in projects:
        project_name = project["name"]
        project_id = project["id"]
        need_rename = False

        try:
            validator.validate(project_name)
        except Exception:
            need_rename = True

        if need_rename:
            # This project needs renaming
            temp_name = "Project-%d" % last_idx
            last_idx += 1
            updated_description = "%s This project was renamed to fit new " \
                                  "naming validation. Original name was: %s" \
                                  % (project["description"], project_name)

            bind.execute(projects_table.update()
                         .where(projects_table.c.id == project_id)
                         .values(name=temp_name,
                                 description=updated_description))
示例#3
0
def _get_project(project, session):
    validator = NameType()
    name = six.text_type(project['project'])
    if 'description' in project:
        description = six.text_type(project['description'])
    else:
        description = ''

    try:
        validator.validate(name)
    except Exception:
        # Skipping invalid project names
        LOG.warn(_LW("Project %s was not loaded. Validation failed.")
                 % [name, ])
        return None

    db_project = session.query(Project) \
        .filter_by(name=name).first()
    if not db_project:
        db_project = Project()
        db_project.name = name
        db_project.description = description
        db_project.groups = []

    session.add(db_project)
    session.flush()

    master_branch = session.query(Branch).\
        filter_by(name='master', project_id=db_project.id).first()

    if not master_branch:
        master_branch = Branch()
        master_branch.update(MasterBranchHelper(db_project.id).as_dict())
        session.add(master_branch)

    return db_project
示例#4
0
def _get_project(project, session):
    validator = NameType()
    name = six.text_type(project['project'])
    if 'description' in project:
        description = six.text_type(project['description'])
    else:
        description = ''

    try:
        validator.validate(name)
    except Exception:
        # Skipping invalid project names
        LOG.warning(_LW("Project %s was not loaded. Validation failed.")
                 % [name, ])
        return None

    db_project = session.query(Project) \
        .filter_by(name=name).first()
    if not db_project:
        db_project = Project()
        db_project.name = name
        db_project.description = description
        db_project.groups = []

    session.add(db_project)
    session.flush()

    master_branch = session.query(Branch).\
        filter_by(name='master', project_id=db_project.id).first()

    if not master_branch:
        master_branch = Branch()
        master_branch.update(MasterBranchHelper(db_project.id).as_dict())
        session.add(master_branch)

    return db_project