def update_build_configuration(id, **kwargs):
    """
    Update an existing BuildConfiguration with new information

    :param id: ID of BuildConfiguration to update
    :param name: Name of BuildConfiguration to update
    :return:
    """
    to_update_id = id

    bc_to_update = configs_api.get_specific(id=to_update_id).content

    project_id = kwargs.get('project')
    if project_id:
        project_rest = common.get_entity(projects_api, project_id)
        update_project = {'project': project_rest}
        kwargs.update(update_project)

    env_id = kwargs.get('environment')
    if env_id:
        env_rest = common.get_entity(envs_api, env_id)
        update_env = {'environment': env_rest}
        kwargs.update(update_env)

    for key, value in kwargs.items():
        if value is not None:
            setattr(bc_to_update, key, value)

    response = utils.checked_api_call(configs_api,
                                      'update',
                                      id=to_update_id,
                                      body=bc_to_update)
    if response:
        return response.content
Ejemplo n.º 2
0
def add_product_version_to_build_configuration_raw(id=None, name=None, product_version_id=None):
    found_id = common.set_id(pnc_api.build_configs, id, name)

    to_add = common.get_entity(pnc_api.product_versions, product_version_id)
    response = utils.checked_api_call(pnc_api.build_configs, 'add_product_version', id=found_id, body=to_add)
    if response:
        return response.content
Ejemplo n.º 3
0
def create_build_configuration(**kwargs):
    """
    Create a new BuildConfiguration. BuildConfigurations represent the settings and configuration required to run a build of a specific version of the associated Project's source code.
    If a ProductVersion ID is provided, the BuildConfiguration will have access to artifacts which were produced for that version, but may not have been released yet.
    """
    project_id = kwargs.get('project')
    project_rest = common.get_entity(projects_api, project_id)
    kwargs['project'] = project_rest
    env_id = kwargs.get('environment')
    env_rest = common.get_entity(envs_api, env_id)
    kwargs['environment'] = env_rest

    build_configuration = create_build_conf_object(**kwargs)
    response = utils.checked_api_call(
        configs_api, 'create_new', body=build_configuration)
    if response:
        return utils.format_json(response.content)
Ejemplo n.º 4
0
def update_build_configuration_raw(id, **kwargs):
    to_update_id = id

    bc_to_update = pnc_api.build_configs.get_specific(id=to_update_id).content

    project_id = kwargs.get('project')
    if project_id:
        project_rest = common.get_entity(pnc_api.projects, project_id)
        update_project = {'project': project_rest}
        kwargs.update(update_project)

    repository_id = kwargs.get('repository_configuration')
    if repository_id:
        repository_rest = common.get_entity(pnc_api.repositories,
                                            repository_id)
        update_repository = {'repository_configuration': repository_rest}
        kwargs.update(update_repository)

    env_id = kwargs.get('environment')
    if env_id:
        env_rest = common.get_entity(pnc_api.environments, env_id)
        update_env = {'environment': env_rest}
        kwargs.update(update_env)

    if isinstance(kwargs.get("generic_parameters"), str):
        kwargs["generic_parameters"] = ast.literal_eval(
            kwargs.get("generic_parameters"))

    for key, value in kwargs.items():
        if value is not None:
            setattr(bc_to_update, key, value)

    if kwargs.get('get_revision'):
        response = utils.checked_api_call(pnc_api.build_configs,
                                          'update_and_get_audited',
                                          id=to_update_id,
                                          body=bc_to_update)
    else:
        response = utils.checked_api_call(pnc_api.build_configs,
                                          'update',
                                          id=to_update_id,
                                          body=bc_to_update)

    if response:
        return response.content
Ejemplo n.º 5
0
def create_build_configuration_raw(**kwargs):
    project_id = kwargs.get('project')
    project_rest = common.get_entity(pnc_api.projects, project_id)
    kwargs['project'] = project_rest
    repository_id = kwargs.get('repository_configuration')
    repository_rest = common.get_entity(pnc_api.repositories, repository_id)
    kwargs['repository_configuration'] = repository_rest
    env_id = kwargs.get('environment')
    env_rest = common.get_entity(pnc_api.environments, env_id)
    kwargs['environment'] = env_rest

    if kwargs.get("generic_parameters"):
        kwargs["generic_parameters"] = ast.literal_eval(kwargs.get("generic_parameters"))

    build_configuration = create_build_conf_object(**kwargs)
    response = utils.checked_api_call(
        pnc_api.build_configs, 'create_new', body=build_configuration)
    if response:
        return response.content
def add_product_version_to_build_configuration(id=None, name=None, product_version_id=None):
    """
    Associate an existing ProductVersion with a BuildConfiguration
    """
    found_id = common.set_id(configs_api, id, name)

    to_add = common.get_entity(versions_api, product_version_id)
    response = utils.checked_api_call(configs_api, 'add_product_version', id=found_id, body=to_add)
    if response:
        return utils.format_json(response.content)
Ejemplo n.º 7
0
def add_build_configuration_to_set_raw(
        set_id=None, set_name=None, config_id=None, config_name=None):
    config_set_id = common.set_id(sets_api, set_id, set_name)
    bc_id = common.set_id(configs_api, config_id, config_name)
    bc = common.get_entity(configs_api, bc_id)
    response = utils.checked_api_call(
        sets_api,
        'add_configuration',
        id=config_set_id,
        body=bc)
    if response:
        return response.content
Ejemplo n.º 8
0
def create_build_configuration_raw(**kwargs):
    project_id = kwargs.get('project')
    project_rest = common.get_entity(pnc_api.projects, project_id)
    kwargs['project'] = project_rest
    repository_id = kwargs.get('repository_configuration')
    repository_rest = common.get_entity(pnc_api.repositories, repository_id)
    kwargs['repository_configuration'] = repository_rest
    env_id = kwargs.get('environment')
    env_rest = common.get_entity(pnc_api.environments, env_id)
    kwargs['environment'] = env_rest

    if kwargs.get("generic_parameters"):
        kwargs["generic_parameters"] = ast.literal_eval(
            kwargs.get("generic_parameters"))

    build_configuration = create_build_conf_object(**kwargs)
    response = utils.checked_api_call(pnc_api.build_configs,
                                      'create_new',
                                      body=build_configuration)
    if response:
        return response.content
Ejemplo n.º 9
0
def add_product_version_to_build_configuration_raw(id=None,
                                                   name=None,
                                                   product_version_id=None):
    found_id = common.set_id(pnc_api.build_configs, id, name)

    to_add = common.get_entity(pnc_api.product_versions, product_version_id)
    response = utils.checked_api_call(pnc_api.build_configs,
                                      'add_product_version',
                                      id=found_id,
                                      body=to_add)
    if response:
        return response.content
Ejemplo n.º 10
0
def add_build_configuration_to_set_raw(
        set_id=None, set_name=None, config_id=None, config_name=None):
    config_set_id = common.set_id(pnc_api.build_group_configs, set_id, set_name)
    bc_id = common.set_id(pnc_api.build_configs, config_id, config_name)
    bc = common.get_entity(pnc_api.build_configs, bc_id)
    response = utils.checked_api_call(
        pnc_api.build_group_configs,
        'add_configuration',
        id=config_set_id,
        body=bc)
    if response:
        return response.content
Ejemplo n.º 11
0
def update_build_configuration_raw(id, **kwargs):
    to_update_id = id

    bc_to_update = pnc_api.build_configs.get_specific(id=to_update_id).content

    project_id = kwargs.get('project')
    if project_id:
        project_rest = common.get_entity(pnc_api.projects, project_id)
        update_project = {'project': project_rest}
        kwargs.update(update_project)

    repository_id = kwargs.get('repository_configuration')
    if repository_id:
        repository_rest = common.get_entity(pnc_api.repositories, repository_id)
        update_repository = {'repository_configuration': repository_rest}
        kwargs.update(update_repository)

    env_id = kwargs.get('environment')
    if env_id:
        env_rest = common.get_entity(pnc_api.environments, env_id)
        update_env = {'environment': env_rest}
        kwargs.update(update_env)

    if isinstance(kwargs.get("generic_parameters"), str):
        kwargs["generic_parameters"] = ast.literal_eval(kwargs.get("generic_parameters"))

    for key, value in kwargs.items():
        if value is not None:
            setattr(bc_to_update, key, value)

    if kwargs.get('get_revision'):
        response = utils.checked_api_call(pnc_api.build_configs, 'update_and_get_audited', id=to_update_id,
                                          body=bc_to_update)
    else:
        response = utils.checked_api_call(pnc_api.build_configs, 'update', id=to_update_id, body=bc_to_update)

    if response:
        return response.content
Ejemplo n.º 12
0
def update_build_configuration_raw(id, **kwargs):
    to_update_id = id

    bc_to_update = configs_api.get_specific(id=to_update_id).content

    project_id = kwargs.get('project')
    if project_id:
        project_rest = common.get_entity(projects_api, project_id)
        update_project = {'project': project_rest}
        kwargs.update(update_project)

    repository_id = kwargs.get('repository_configuration')
    if repository_id:
        repository_rest = common.get_entity(repos_api, repository_id)
        update_repository = {'repository_configuration': repository_rest}
        kwargs.update(update_repository)

    env_id = kwargs.get('environment')
    if env_id:
        env_rest = common.get_entity(envs_api, env_id)
        update_env = {'environment': env_rest}
        kwargs.update(update_env)

    if kwargs.get("generic_parameters"):
        kwargs["generic_parameters"] = ast.literal_eval(
            kwargs.get("generic_parameters"))

    for key, value in kwargs.items():
        if value is not None:
            setattr(bc_to_update, key, value)

    response = utils.checked_api_call(configs_api,
                                      'update',
                                      id=to_update_id,
                                      body=bc_to_update)
    if response:
        return response.content
Ejemplo n.º 13
0
def build_set_raw(id=None,
                  name=None,
                  tempbuild=False,
                  timestamp_alignment=False,
                  force=False,
                  rebuild_mode=common.REBUILD_MODES_DEFAULT,
                  **kwargs):
    """
    Start a build of the given BuildConfigurationSet
    """
    logging.debug("temp_build: " + str(tempbuild))
    logging.debug("timestamp_alignment: " + str(timestamp_alignment))
    logging.debug("force: " + str(force))
    if tempbuild is False and timestamp_alignment is True:
        logging.error(
            "You can only activate timestamp alignment with the temporary build flag!"
        )
        sys.exit(1)

    found_id = common.set_id(pnc_api.build_group_configs, id, name)

    revisions = kwargs.get("id_revisions")
    if revisions:
        id_revs = map(__parse_revision, revisions)

        bcsRest = common.get_entity(pnc_api.build_group_configs, found_id)
        body = swagger_client.BuildConfigurationSetWithAuditedBCsRest()
        body = __fill_BCSWithAuditedBCs_body(body, bcsRest, id_revs)

        response = utils.checked_api_call(
            pnc_api.build_group_configs,
            'build_versioned',
            id=found_id,
            temporary_build=tempbuild,
            timestamp_alignment=timestamp_alignment,
            force_rebuild=force,
            rebuild_mode=rebuild_mode,
            body=body)
    else:
        response = utils.checked_api_call(
            pnc_api.build_group_configs,
            'build',
            id=found_id,
            temporary_build=tempbuild,
            timestamp_alignment=timestamp_alignment,
            force_rebuild=force,
            rebuild_mode=rebuild_mode)
    if response:
        return response.content
Ejemplo n.º 14
0
def add_build_configuration_to_set(
        set_id=None, set_name=None, config_id=None, config_name=None):
    """
    Add a build configuration to an existing BuildConfigurationSet
    """
    config_set_id = common.set_id(sets_api, set_id, set_name)
    bc_id = common.set_id(configs_api, config_id, config_name)
    bc = common.get_entity(configs_api, bc_id)
    response = utils.checked_api_call(
        sets_api,
        'add_configuration',
        id=config_set_id,
        body=bc)
    if response:
        return utils.format_json(response.content)
Ejemplo n.º 15
0
def build_set_raw(id=None, name=None,
                  tempbuild=False, timestamp_alignment=False,
                  force=False, rebuild_mode=common.REBUILD_MODES_DEFAULT,
                  **kwargs):
    """
    Start a build of the given BuildConfigurationSet
    """
    logging.debug("temp_build: " + str(tempbuild))
    logging.debug("timestamp_alignment: " + str(timestamp_alignment))
    logging.debug("force: " + str(force))
    if tempbuild is False and timestamp_alignment is True:
        logging.error("You can only activate timestamp alignment with the temporary build flag!")
        sys.exit(1)

    found_id = common.set_id(pnc_api.build_group_configs, id, name)

    revisions = kwargs.get("id_revisions")
    if revisions:
        id_revs = map(__parse_revision, revisions)

        bcsRest = common.get_entity(pnc_api.build_group_configs, found_id)
        body = swagger_client.BuildConfigurationSetWithAuditedBCsRest()
        body = __fill_BCSWithAuditedBCs_body(body, bcsRest, id_revs)

        response = utils.checked_api_call(pnc_api.build_group_configs, 'build_versioned', id=found_id,
                                          temporary_build=tempbuild,
                                          timestamp_alignment=timestamp_alignment,
                                          force_rebuild=force,
                                          rebuild_mode=rebuild_mode,
                                          body=body)
    else:
        response = utils.checked_api_call(pnc_api.build_group_configs, 'build', id=found_id,
                                      temporary_build=tempbuild,
                                      timestamp_alignment=timestamp_alignment,
                                      force_rebuild=force,
                                      rebuild_mode=rebuild_mode)
    if response:
        return response.content
Ejemplo n.º 16
0
def test_get_entity():
    mock_api = create_autospec(BuildconfigurationsApi)
    mock_api.get_specific.return_value = MagicMock(content='specific')
    result = common.get_entity(mock_api, 1)
    assert result == 'specific'
Ejemplo n.º 17
0
def test_get_entity():
    mock_api = create_autospec(BuildconfigurationsApi)
    mock_api.get_specific.return_value = None
    result = common.get_entity(mock_api, 1)
    assert not result