Search in sources :

Example 1 with RunSid

use of com.epam.pipeline.entity.pipeline.run.parameter.RunSid in project cloud-pipeline by epam.

the class PipelineRunDaoTest method testLoadActiveServicesByUserInGroup.

@Test
public void testLoadActiveServicesByUserInGroup() {
    List<RunSid> runSids = new ArrayList<>();
    RunSid runSid = new RunSid();
    runSid.setName(GROUP_NAME);
    runSid.setIsPrincipal(false);
    runSids.add(runSid);
    Pipeline testPipeline = getPipeline();
    PipelineRun run = createRunWithRunSids(testPipeline.getId(), null, runSids);
    PagingRunFilterVO filterVO = new PagingRunFilterVO();
    filterVO.setPage(1);
    filterVO.setPageSize(TEST_PAGE_SIZE);
    PipelineUser user = new PipelineUser();
    user.setUserName(TEST_USER);
    user.setGroups(Collections.singletonList(GROUP_NAME));
    List<PipelineRun> runs = pipelineRunDao.loadActiveServices(filterVO, user);
    assertEquals(1, runs.size());
    assertEquals(run.getId(), runs.get(0).getId());
    assertEquals(1, runs.size());
}
Also used : PipelineRun(com.epam.pipeline.entity.pipeline.PipelineRun) PipelineUser(com.epam.pipeline.entity.user.PipelineUser) RunSid(com.epam.pipeline.entity.pipeline.run.parameter.RunSid) ArrayList(java.util.ArrayList) PagingRunFilterVO(com.epam.pipeline.controller.vo.PagingRunFilterVO) Pipeline(com.epam.pipeline.entity.pipeline.Pipeline) EnvVarsBuilderTest(com.epam.pipeline.manager.execution.EnvVarsBuilderTest) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Test(org.junit.Test)

Example 2 with RunSid

use of com.epam.pipeline.entity.pipeline.run.parameter.RunSid in project cloud-pipeline by epam.

the class PipelineRunDaoTest method testLoadActiveServicesByUserIsPrincipal.

@Test
public void testLoadActiveServicesByUserIsPrincipal() {
    List<RunSid> runSids = new ArrayList<>();
    RunSid runSid1 = new RunSid();
    runSid1.setName(TEST_USER);
    runSid1.setIsPrincipal(true);
    runSids.add(runSid1);
    Pipeline testPipeline = getPipeline();
    PipelineRun run = createRunWithRunSids(testPipeline.getId(), null, runSids);
    PagingRunFilterVO filterVO = new PagingRunFilterVO();
    filterVO.setPage(1);
    filterVO.setPageSize(TEST_PAGE_SIZE);
    PipelineUser user = new PipelineUser();
    user.setUserName(TEST_USER);
    List<PipelineRun> runs = pipelineRunDao.loadActiveServices(filterVO, user);
    assertEquals(1, runs.size());
    assertEquals(run.getId(), runs.get(0).getId());
    assertEquals(1, runs.size());
    int servicesCount = pipelineRunDao.countActiveServices(user);
    assertEquals(runs.size(), servicesCount);
}
Also used : PipelineRun(com.epam.pipeline.entity.pipeline.PipelineRun) PipelineUser(com.epam.pipeline.entity.user.PipelineUser) RunSid(com.epam.pipeline.entity.pipeline.run.parameter.RunSid) ArrayList(java.util.ArrayList) PagingRunFilterVO(com.epam.pipeline.controller.vo.PagingRunFilterVO) Pipeline(com.epam.pipeline.entity.pipeline.Pipeline) EnvVarsBuilderTest(com.epam.pipeline.manager.execution.EnvVarsBuilderTest) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Test(org.junit.Test)

Example 3 with RunSid

use of com.epam.pipeline.entity.pipeline.run.parameter.RunSid in project cloud-pipeline by epam.

the class PipelineRunDaoTest method runPipelineWithRunSids.

@Test
public void runPipelineWithRunSids() {
    List<RunSid> runSids = new ArrayList<>();
    RunSid runSid1 = new RunSid();
    runSid1.setName(TEST_USER);
    runSid1.setIsPrincipal(true);
    runSids.add(runSid1);
    RunSid runSid2 = new RunSid();
    runSid2.setName(GROUP_NAME);
    runSid2.setIsPrincipal(false);
    runSids.add(runSid2);
    Pipeline testPipeline = getPipeline();
    PipelineRun run = createRunWithRunSids(testPipeline.getId(), null, runSids);
    PipelineRun loadedRun = pipelineRunDao.loadPipelineRun(run.getId());
    assertTrue(runSids.equals(loadedRun.getRunSids()));
}
Also used : PipelineRun(com.epam.pipeline.entity.pipeline.PipelineRun) RunSid(com.epam.pipeline.entity.pipeline.run.parameter.RunSid) ArrayList(java.util.ArrayList) Pipeline(com.epam.pipeline.entity.pipeline.Pipeline) EnvVarsBuilderTest(com.epam.pipeline.manager.execution.EnvVarsBuilderTest) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Test(org.junit.Test)

Example 4 with RunSid

use of com.epam.pipeline.entity.pipeline.run.parameter.RunSid in project cloud-pipeline by epam.

the class PipelineLauncher method matchSystemParams.

public Map<SystemParams, String> matchSystemParams(PipelineRun run, String apiHost, String kubeNamespace, boolean enableAutoscaling, PipelineConfiguration configuration, GitCredentials gitCredentials) {
    EnumMap<SystemParams, String> systemParamsWithValue = matchCommonParams(run, apiHost, gitCredentials);
    systemParamsWithValue.put(SystemParams.NAMESPACE, kubeNamespace);
    AWSCredentials awsCredentials = S3Helper.getDefaultAWSCredentials();
    String awsRegion = S3Helper.getDefaultAWSRegion();
    systemParamsWithValue.put(SystemParams.AWS_ACCESS_KEY_ID, awsCredentials.getAWSAccessKeyId());
    systemParamsWithValue.put(SystemParams.AWS_SECRET_ACCESS_KEY, awsCredentials.getAWSSecretKey());
    systemParamsWithValue.put(SystemParams.AWS_DEFAULT_REGION, awsRegion);
    systemParamsWithValue.put(SystemParams.CLUSTER_NAME, DEFAULT_CLUSTER_NAME);
    systemParamsWithValue.put(SystemParams.SSH_PASS, run.getSshPassword());
    putIfStringValuePresent(systemParamsWithValue, SystemParams.RUN_CONFIG_NAME, run.getConfigName());
    if (enableAutoscaling) {
        systemParamsWithValue.put(SystemParams.AUTOSCALING_ENABLED, "");
    }
    putIfStringValuePresent(systemParamsWithValue, SystemParams.BUCKETS, configuration.getBuckets());
    putIfStringValuePresent(systemParamsWithValue, SystemParams.MOUNT_OPTIONS, configuration.getNfsMountOptions());
    putIfStringValuePresent(systemParamsWithValue, SystemParams.MOUNT_POINTS, configuration.getMountPoints());
    if (CollectionUtils.isNotEmpty(run.getRunSids())) {
        Predicate<RunSid> principalFilter = RunSid::getIsPrincipal;
        collectSids(systemParamsWithValue, SystemParams.ALLOWED_USERS, run.getRunSids(), principalFilter);
        collectSids(systemParamsWithValue, SystemParams.ALLOWED_GROUPS, run.getRunSids(), principalFilter.negate());
    }
    String securedEnvVars = Arrays.stream(SystemParams.values()).filter(SystemParams::isSecure).map(SystemParams::getEnvName).collect(Collectors.joining(ENV_DELIMITER));
    systemParamsWithValue.put(SystemParams.SECURE_ENV_VARS, securedEnvVars);
    return systemParamsWithValue;
}
Also used : RunSid(com.epam.pipeline.entity.pipeline.run.parameter.RunSid) AWSCredentials(com.amazonaws.auth.AWSCredentials)

Example 5 with RunSid

use of com.epam.pipeline.entity.pipeline.run.parameter.RunSid in project cloud-pipeline by epam.

the class PipelineRunDao method loadPipelineRun.

@Transactional(propagation = Propagation.REQUIRED)
public PipelineRun loadPipelineRun(Long id) {
    List<PipelineRun> items = getJdbcTemplate().query(loadRunByIdQuery, PipelineRunParameters.getExtendedRowMapper(), initTaskStatus.ordinal(), initTaskName, id);
    if (!items.isEmpty()) {
        PipelineRun pipelineRun = items.get(0);
        List<RunSid> runSids = getJdbcTemplate().query(loadRunSidsQuery, PipelineRunParameters.getRunSidsRowMapper(), id);
        pipelineRun.setRunSids(runSids);
        List<Map<String, String>> envVars = getJdbcTemplate().query(loadEnvVarsQuery, PipelineRunParameters.getEnvVarsRowMapper(), pipelineRun.getId());
        pipelineRun.setEnvVars(CollectionUtils.isEmpty(envVars) ? null : envVars.get(0));
        return pipelineRun;
    } else {
        return null;
    }
}
Also used : PipelineRun(com.epam.pipeline.entity.pipeline.PipelineRun) RunSid(com.epam.pipeline.entity.pipeline.run.parameter.RunSid) HashMap(java.util.HashMap) Map(java.util.Map) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

RunSid (com.epam.pipeline.entity.pipeline.run.parameter.RunSid)6 PipelineRun (com.epam.pipeline.entity.pipeline.PipelineRun)5 AbstractSpringTest (com.epam.pipeline.AbstractSpringTest)4 Pipeline (com.epam.pipeline.entity.pipeline.Pipeline)4 EnvVarsBuilderTest (com.epam.pipeline.manager.execution.EnvVarsBuilderTest)4 ArrayList (java.util.ArrayList)4 Test (org.junit.Test)4 PagingRunFilterVO (com.epam.pipeline.controller.vo.PagingRunFilterVO)2 PipelineUser (com.epam.pipeline.entity.user.PipelineUser)2 AWSCredentials (com.amazonaws.auth.AWSCredentials)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Transactional (org.springframework.transaction.annotation.Transactional)1