Search in sources :

Example 1 with AmazonWebServicesCredentials

use of com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials in project pipeline-aws-plugin by jenkinsci.

the class WithAWSStepTest method testStepWithBasicAndAwsGlobalCredentials.

@Test
public void testStepWithBasicAndAwsGlobalCredentials() throws Exception {
    String globalBaseCreds = "global-basic-creds";
    String globalAwsCreds = "global-aws-creds";
    List<String> credentialIds = new ArrayList<>();
    credentialIds.add(globalBaseCreds);
    StandardUsernamePasswordCredentials key = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL, globalBaseCreds, "test-global-creds", "global-aws-access-key-id", "global-aws-secret-access-key");
    AmazonWebServicesCredentials amazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, globalAwsCreds, "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    SystemCredentialsProvider.getInstance().getCredentials().add(amazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().getCredentials().add(key);
    SystemCredentialsProvider.getInstance().save();
    WorkflowJob job = jenkinsRule.jenkins.createProject(WorkflowJob.class, "testStepWithBasicAndAwsGlobalCredentials");
    job.setDefinition(new CpsFlowDefinition("" + "node {\n" + "  withAWS (credentials: '" + globalBaseCreds + "') {\n" + "    echo 'It works!'\n" + "  }\n" + "}\n", true));
    jenkinsRule.assertBuildStatusSuccess(job.scheduleBuild2(0));
}
Also used : StandardUsernamePasswordCredentials(com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials) AWSCredentialsImpl(com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl) CpsFlowDefinition(org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition) ArrayList(java.util.ArrayList) UsernamePasswordCredentialsImpl(com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl) AmazonWebServicesCredentials(com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials) WorkflowJob(org.jenkinsci.plugins.workflow.job.WorkflowJob) Test(org.junit.Test)

Example 2 with AmazonWebServicesCredentials

use of com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials in project pipeline-aws-plugin by jenkinsci.

the class WithAWSStepTest method testStepWithGlobalAWSCredentials.

@Test
public void testStepWithGlobalAWSCredentials() throws Exception {
    String globalCredentialsId = "global-aws-creds";
    List<String> credentialIds = new ArrayList<>();
    credentialIds.add(globalCredentialsId);
    AmazonWebServicesCredentials amazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, globalCredentialsId, "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    SystemCredentialsProvider.getInstance().getCredentials().add(amazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().save();
    WorkflowJob job = jenkinsRule.jenkins.createProject(WorkflowJob.class, "testStepWithGlobalAWSCredentials");
    job.setDefinition(new CpsFlowDefinition("" + "node {\n" + "  withAWS (credentials: '" + globalCredentialsId + "') {\n" + "    echo 'It works!'\n" + "  }\n" + "}\n", true));
    WorkflowRun workflowRun = job.scheduleBuild2(0).get();
    jenkinsRule.waitForCompletion(workflowRun);
    jenkinsRule.assertBuildStatus(Result.FAILURE, workflowRun);
    jenkinsRule.assertLogContains("The security token included in the request is invalid.", workflowRun);
}
Also used : AWSCredentialsImpl(com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl) CpsFlowDefinition(org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition) ArrayList(java.util.ArrayList) AmazonWebServicesCredentials(com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials) WorkflowJob(org.jenkinsci.plugins.workflow.job.WorkflowJob) WorkflowRun(org.jenkinsci.plugins.workflow.job.WorkflowRun) Test(org.junit.Test)

Example 3 with AmazonWebServicesCredentials

use of com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials in project pipeline-aws-plugin by jenkinsci.

the class WithAWSStepTest method testListAWSCredentials.

@Test
public void testListAWSCredentials() throws Exception {
    Folder folder = jenkinsRule.jenkins.createProject(Folder.class, "folder" + jenkinsRule.jenkins.getItems().size());
    CredentialsStore folderStore = this.getFolderStore(folder);
    AmazonWebServicesCredentials amazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, "test-aws-creds", "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    AmazonWebServicesCredentials globalAmazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, "global-test-aws-creds", "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    folderStore.addCredentials(Domain.global(), amazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().getCredentials().add(globalAmazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().save();
    WorkflowJob job = folder.createProject(WorkflowJob.class, "testStepWithFolderCredentials");
    final WithAWSStep.DescriptorImpl descriptor = jenkinsRule.jenkins.getDescriptorByType(WithAWSStep.DescriptorImpl.class);
    // 3 options: Root credentials, folder credentials and "none"
    ListBoxModel list = descriptor.doFillCredentialsItems(job);
    Assert.assertEquals(3, list.size());
    StandardUsernamePasswordCredentials systemCredentials = new UsernamePasswordCredentialsImpl(CredentialsScope.SYSTEM, "system-creds", "test-creds", "aws-access-key-id", "aws-secret-access-key");
    SystemCredentialsProvider.getInstance().getCredentials().add(systemCredentials);
    // Still 3 options: Root credentials, folder credentials and "none"
    list = descriptor.doFillCredentialsItems(job);
    Assert.assertEquals(3, list.size());
}
Also used : StandardUsernamePasswordCredentials(com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials) AWSCredentialsImpl(com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl) CredentialsStore(com.cloudbees.plugins.credentials.CredentialsStore) Folder(com.cloudbees.hudson.plugins.folder.Folder) AbstractFolder(com.cloudbees.hudson.plugins.folder.AbstractFolder) AmazonWebServicesCredentials(com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials) WorkflowJob(org.jenkinsci.plugins.workflow.job.WorkflowJob) UsernamePasswordCredentialsImpl(com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl) ListBoxModel(hudson.util.ListBoxModel) Test(org.junit.Test)

Example 4 with AmazonWebServicesCredentials

use of com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials in project pipeline-aws-plugin by jenkinsci.

the class WithAWSStepTest method testStepWithAWSIamMFAFolderCredentials.

@Test
public void testStepWithAWSIamMFAFolderCredentials() throws Exception {
    String folderCredentialsId = "folders-aws-creds";
    // Create a folder with credentials in its store
    Folder folder = jenkinsRule.jenkins.createProject(Folder.class, "folder" + jenkinsRule.jenkins.getItems().size());
    CredentialsStore folderStore = this.getFolderStore(folder);
    AmazonWebServicesCredentials amazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, folderCredentialsId, "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    folderStore.addCredentials(Domain.global(), amazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().save();
    List<String> credentialIds = new ArrayList<>();
    credentialIds.add(folderCredentialsId);
    WorkflowJob job = folder.createProject(WorkflowJob.class, "testStepWithAWSIamMFAFolderCredentials");
    job.setDefinition(new CpsFlowDefinition("" + "node {\n" + "  withAWS (credentials: '" + folderCredentialsId + "', iamMfaToken: '1234567') {\n" + "    echo 'It works!'\n" + "  }\n" + "}\n", true));
    WorkflowRun workflowRun = job.scheduleBuild2(0).get();
    jenkinsRule.waitForCompletion(workflowRun);
    jenkinsRule.assertBuildStatus(Result.FAILURE, workflowRun);
    jenkinsRule.assertLogContains("The security token included in the request is invalid.", workflowRun);
    jenkinsRule.assertLogContains("Constructing AWS Credentials", workflowRun);
    jenkinsRule.assertLogContains("utilizing MFA Token", workflowRun);
}
Also used : AWSCredentialsImpl(com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl) CpsFlowDefinition(org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition) CredentialsStore(com.cloudbees.plugins.credentials.CredentialsStore) ArrayList(java.util.ArrayList) Folder(com.cloudbees.hudson.plugins.folder.Folder) AbstractFolder(com.cloudbees.hudson.plugins.folder.AbstractFolder) AmazonWebServicesCredentials(com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials) WorkflowJob(org.jenkinsci.plugins.workflow.job.WorkflowJob) WorkflowRun(org.jenkinsci.plugins.workflow.job.WorkflowRun) Test(org.junit.Test)

Example 5 with AmazonWebServicesCredentials

use of com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials in project pipeline-aws-plugin by jenkinsci.

the class WithAWSStepTest method testStepWithAWSFolderCredentials.

@Test
public void testStepWithAWSFolderCredentials() throws Exception {
    String folderCredentialsId = "folders-aws-creds";
    // Create a folder with credentials in its store
    Folder folder = jenkinsRule.jenkins.createProject(Folder.class, "folder" + jenkinsRule.jenkins.getItems().size());
    CredentialsStore folderStore = this.getFolderStore(folder);
    AmazonWebServicesCredentials amazonWebServicesCredentials = new AWSCredentialsImpl(CredentialsScope.GLOBAL, folderCredentialsId, "global-aws-access-key-id", "global-aws-secret-access-key", "Aws-Description", "Arn::Something:or:Other", "12345678");
    folderStore.addCredentials(Domain.global(), amazonWebServicesCredentials);
    SystemCredentialsProvider.getInstance().save();
    List<String> credentialIds = new ArrayList<>();
    credentialIds.add(folderCredentialsId);
    WorkflowJob job = folder.createProject(WorkflowJob.class, "testStepWithAWSFolderCredentials");
    job.setDefinition(new CpsFlowDefinition("" + "node {\n" + "  withAWS (credentials: '" + folderCredentialsId + "') {\n" + "    echo 'It works!'\n" + "  }\n" + "}\n", true));
    WorkflowRun workflowRun = job.scheduleBuild2(0).get();
    jenkinsRule.waitForCompletion(workflowRun);
    jenkinsRule.assertBuildStatus(Result.FAILURE, workflowRun);
    jenkinsRule.assertLogContains("The security token included in the request is invalid.", workflowRun);
    jenkinsRule.assertLogContains("Constructing AWS Credentials", workflowRun);
}
Also used : AWSCredentialsImpl(com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl) CpsFlowDefinition(org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition) CredentialsStore(com.cloudbees.plugins.credentials.CredentialsStore) ArrayList(java.util.ArrayList) Folder(com.cloudbees.hudson.plugins.folder.Folder) AbstractFolder(com.cloudbees.hudson.plugins.folder.AbstractFolder) AmazonWebServicesCredentials(com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials) WorkflowJob(org.jenkinsci.plugins.workflow.job.WorkflowJob) WorkflowRun(org.jenkinsci.plugins.workflow.job.WorkflowRun) Test(org.junit.Test)

Aggregations

AWSCredentialsImpl (com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl)5 AmazonWebServicesCredentials (com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials)5 WorkflowJob (org.jenkinsci.plugins.workflow.job.WorkflowJob)5 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)4 CpsFlowDefinition (org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition)4 AbstractFolder (com.cloudbees.hudson.plugins.folder.AbstractFolder)3 Folder (com.cloudbees.hudson.plugins.folder.Folder)3 CredentialsStore (com.cloudbees.plugins.credentials.CredentialsStore)3 WorkflowRun (org.jenkinsci.plugins.workflow.job.WorkflowRun)3 StandardUsernamePasswordCredentials (com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials)2 UsernamePasswordCredentialsImpl (com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl)2 ListBoxModel (hudson.util.ListBoxModel)1