Search in sources :

Example 11 with Folder

use of com.cloudbees.hudson.plugins.folder.Folder 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 12 with Folder

use of com.cloudbees.hudson.plugins.folder.Folder 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

Folder (com.cloudbees.hudson.plugins.folder.Folder)12 Test (org.junit.Test)10 AbstractFolder (com.cloudbees.hudson.plugins.folder.AbstractFolder)5 CredentialsStore (com.cloudbees.plugins.credentials.CredentialsStore)5 WorkflowJob (org.jenkinsci.plugins.workflow.job.WorkflowJob)5 FreeStyleProject (hudson.model.FreeStyleProject)4 ArrayList (java.util.ArrayList)4 AWSCredentialsImpl (com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl)3 AmazonWebServicesCredentials (com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentials)3 StandardUsernamePasswordCredentials (com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials)3 UsernamePasswordCredentialsImpl (com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl)3 CpsFlowDefinition (org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition)3 Role (com.michelin.cio.hudson.plugins.rolestrategy.Role)2 RoleBasedAuthorizationStrategy (com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy)2 Computer (hudson.model.Computer)2 Job (hudson.model.Job)2 User (hudson.model.User)2 AuthorizationStrategy (hudson.security.AuthorizationStrategy)2 ListBoxModel (hudson.util.ListBoxModel)2 Set (java.util.Set)2