Skip to content

Commit 5542351

Browse files
committed
Revert "Update nf-codecommit to AWS SDK v2 (#6263)" [ci fast]
This reverts commit 9e9476f. Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
1 parent 1446e54 commit 5542351

File tree

4 files changed

+54
-57
lines changed

4 files changed

+54
-57
lines changed

plugins/nf-codecommit/build.gradle

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ dependencies {
3838
compileOnly 'org.pf4j:pf4j:3.12.0'
3939

4040
api ('javax.xml.bind:jaxb-api:2.4.0-b180830.0359')
41-
api ('software.amazon.awssdk:codecommit:2.31.64')
42-
api ('software.amazon.awssdk:sso:2.31.64')
43-
api ('software.amazon.awssdk:ssooidc:2.31.64')
41+
api ('com.amazonaws:aws-java-sdk-codecommit:1.12.777')
4442

4543
testImplementation(testFixtures(project(":nextflow")))
4644
testImplementation project(':nextflow')

plugins/nf-codecommit/src/main/nextflow/cloud/aws/codecommit/AwsCodeCommitCredentialProvider.groovy

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package nextflow.cloud.aws.codecommit
1818

19-
import software.amazon.awssdk.auth.credentials.AwsCredentials
20-
2119
import javax.crypto.Mac
2220

2321
/*
@@ -42,11 +40,12 @@ import java.security.MessageDigest
4240
import java.security.NoSuchAlgorithmException
4341
import java.text.SimpleDateFormat
4442

45-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider
46-
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
47-
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
48-
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
49-
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials
43+
import com.amazonaws.auth.AWSCredentials
44+
import com.amazonaws.auth.AWSCredentialsProvider
45+
import com.amazonaws.auth.AWSSessionCredentials
46+
import com.amazonaws.auth.AWSStaticCredentialsProvider
47+
import com.amazonaws.auth.BasicAWSCredentials
48+
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
5049
import groovy.transform.CompileStatic
5150
import groovy.util.logging.Slf4j
5251
import nextflow.exception.AbortOperationException
@@ -202,23 +201,23 @@ final class AwsCodeCommitCredentialProvider extends CredentialsProvider {
202201
}
203202

204203
/**
205-
* Get the AWSCredentials. If an AwsCredentialProvider was specified, use that,
206-
* otherwise, create a new AwsCredentialsProvider. If the username and password are
207-
* provided, use those directly as AwsCredentials. Otherwise, use the
208-
* {@link DefaultCredentialsProvider} as is standard with AWS applications.
204+
* Get the AWSCredentials. If an AWSCredentialProvider was specified, use that,
205+
* otherwise, create a new AWSCredentialsProvider. If the username and password are
206+
* provided, use those directly as AWSCredentials. Otherwise, use the
207+
* {@link DefaultAWSCredentialsProviderChain} as is standard with AWS applications.
209208
* @return the AWS credentials.
210209
*/
211-
private AwsCredentials retrieveAwsCredentials() {
212-
AwsCredentialsProvider credsProvider
210+
private AWSCredentials retrieveAwsCredentials() {
211+
AWSCredentialsProvider credsProvider
213212
if ( username && password ) {
214213
log.debug "Creating a static AWS credentials provider"
215-
credsProvider = StaticCredentialsProvider.create( AwsBasicCredentials.create(username,password) )
214+
credsProvider = new AWSStaticCredentialsProvider( new BasicAWSCredentials( username, password ))
216215
}
217216
else {
218217
log.debug "Creating a default AWS credentials provider chain"
219-
credsProvider = DefaultCredentialsProvider.builder().build()
218+
credsProvider = new DefaultAWSCredentialsProviderChain()
220219
}
221-
return credsProvider.resolveCredentials()
220+
return credsProvider.getCredentials()
222221
}
223222

224223
/**
@@ -261,14 +260,14 @@ final class AwsCodeCommitCredentialProvider extends CredentialsProvider {
261260
String awsSecretKey
262261

263262
try {
264-
AwsCredentials awsCredentials = retrieveAwsCredentials()
263+
AWSCredentials awsCredentials = retrieveAwsCredentials()
265264
StringBuilder awsKey = new StringBuilder();
266-
awsKey.append(awsCredentials.accessKeyId());
267-
awsSecretKey = awsCredentials.secretAccessKey();
268-
if (awsCredentials instanceof AwsSessionCredentials) {
269-
AwsSessionCredentials sessionCreds = (AwsSessionCredentials) awsCredentials;
270-
if ( sessionCreds.sessionToken() ) {
271-
awsKey.append('%').append(sessionCreds.sessionToken())
265+
awsKey.append(awsCredentials.getAWSAccessKeyId());
266+
awsSecretKey = awsCredentials.getAWSSecretKey();
267+
if (awsCredentials instanceof AWSSessionCredentials) {
268+
AWSSessionCredentials sessionCreds = (AWSSessionCredentials) awsCredentials;
269+
if ( sessionCreds.getSessionToken() ) {
270+
awsKey.append('%').append(sessionCreds.getSessionToken())
272271
}
273272
}
274273
awsAccessKey = awsKey.toString()
@@ -323,7 +322,7 @@ final class AwsCodeCommitCredentialProvider extends CredentialsProvider {
323322
/**
324323
* @param awsCredentialProvider the awsCredentialProvider to set
325324
*/
326-
void setAwsCredentialsProvider(AwsCredentialsProvider awsCredentialsProvider) {
325+
void setAwsCredentialsProvider(AWSCredentialsProvider awsCredentialsProvider) {
327326
this.awsCredentialsProvider = awsCredentialsProvider
328327
}
329328

plugins/nf-codecommit/src/main/nextflow/cloud/aws/codecommit/AwsCodeCommitRepositoryProvider.groovy

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616

1717
package nextflow.cloud.aws.codecommit
1818

19-
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
20-
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
21-
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
22-
import software.amazon.awssdk.core.exception.SdkException
23-
import software.amazon.awssdk.regions.Region
24-
import software.amazon.awssdk.services.codecommit.CodeCommitClient
25-
import software.amazon.awssdk.services.codecommit.model.CodeCommitException
26-
import software.amazon.awssdk.services.codecommit.model.GetFileRequest
27-
import software.amazon.awssdk.services.codecommit.model.GetRepositoryRequest
28-
import software.amazon.awssdk.services.codecommit.model.RepositoryMetadata
19+
import com.amazonaws.SdkClientException
20+
import com.amazonaws.auth.AWSStaticCredentialsProvider
21+
import com.amazonaws.auth.BasicAWSCredentials
22+
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
23+
import com.amazonaws.services.codecommit.AWSCodeCommit
24+
import com.amazonaws.services.codecommit.AWSCodeCommitClientBuilder
25+
import com.amazonaws.services.codecommit.model.AWSCodeCommitException
26+
import com.amazonaws.services.codecommit.model.GetFileRequest
27+
import com.amazonaws.services.codecommit.model.GetRepositoryRequest
28+
import com.amazonaws.services.codecommit.model.RepositoryMetadata
2929
import groovy.transform.CompileStatic
3030
import groovy.transform.Memoized
3131
import groovy.util.logging.Slf4j
@@ -56,21 +56,22 @@ class AwsCodeCommitRepositoryProvider extends RepositoryProvider {
5656
}
5757

5858
private String region
59-
private CodeCommitClient client
59+
private AWSCodeCommit client
6060
private String repositoryName
6161

6262

63-
protected CodeCommitClient createClient(AwsCodeCommitProviderConfig config) {
64-
final builder = CodeCommitClient.builder()
65-
.region(Region.of(region))
63+
protected AWSCodeCommit createClient(AwsCodeCommitProviderConfig config) {
64+
final builder = AWSCodeCommitClientBuilder
65+
.standard()
66+
.withRegion(region)
6667
if( config.user && config.password ) {
67-
final creds = AwsBasicCredentials.create(config.user, config.password)
68+
final creds = new BasicAWSCredentials(config.user, config.password)
6869
log.debug "AWS CodeCommit using username=$config.user; password=${StringUtils.redact(config.password)}"
69-
builder.credentialsProvider( StaticCredentialsProvider.create(creds) )
70+
builder.withCredentials( new AWSStaticCredentialsProvider(creds) )
7071
}
7172
else {
7273
log.debug "AWS CodeCommit using default credentials chain"
73-
builder.credentialsProvider( DefaultCredentialsProvider.builder().build() )
74+
builder.withCredentials( new DefaultAWSCredentialsProviderChain() )
7475
}
7576
builder.build()
7677
}
@@ -83,13 +84,12 @@ class AwsCodeCommitRepositoryProvider extends RepositoryProvider {
8384
}
8485

8586
private RepositoryMetadata getRepositoryMetadata() {
86-
final request = GetRepositoryRequest.builder()
87-
.repositoryName(repositoryName)
88-
.build()
87+
final request = new GetRepositoryRequest()
88+
.withRepositoryName(repositoryName)
8989

9090
return client
9191
.getRepository(request)
92-
.repositoryMetadata()
92+
.getRepositoryMetadata()
9393
}
9494

9595
/** {@inheritDoc} **/
@@ -136,16 +136,16 @@ class AwsCodeCommitRepositoryProvider extends RepositoryProvider {
136136
@Override
137137
byte[] readBytes( String path ) {
138138

139-
final builder = GetFileRequest.builder()
140-
.repositoryName(repositoryName)
141-
.filePath(path)
139+
final request = new GetFileRequest()
140+
.withRepositoryName(repositoryName)
141+
.withFilePath(path)
142142
if( revision )
143-
builder.commitSpecifier(revision)
143+
request.withCommitSpecifier(revision)
144144

145145
try {
146146
return client
147-
.getFile( builder.build() )
148-
.fileContent()?.asByteArray()
147+
.getFile( request )
148+
.getFileContent()?.array()
149149
}
150150
catch (Exception e) {
151151
checkMissingCredsException(e)
@@ -160,9 +160,9 @@ class AwsCodeCommitRepositoryProvider extends RepositoryProvider {
160160
"Unable to load AWS credentials",
161161
"The security token included in the request is invalid",
162162
"The request signature we calculated does not match the signature you provided"]
163-
if( e !instanceof SdkException )
163+
if( e !instanceof SdkClientException )
164164
return
165-
if( e instanceof CodeCommitException && e.message?.startsWith("Could not find path") ) {
165+
if( e instanceof AWSCodeCommitException && e.message?.startsWith("Could not find path") ) {
166166
// it cannot find the request file
167167
return
168168
}

plugins/nf-codecommit/src/test/nextflow/cloud/aws/codecommit/AwsCodeCommitRepositoryProviderTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import spock.lang.Specification
2626
* @author Paolo Di Tommaso <paolo.ditommaso@gmail.com>
2727
*/
2828
@IgnoreIf({System.getenv('NXF_SMOKE')})
29-
//@Requires({System.getenv('AWS_ACCESS_KEY_ID') && System.getenv('AWS_SECRET_ACCESS_KEY')})
29+
@Requires({System.getenv('AWS_ACCESS_KEY_ID') && System.getenv('AWS_SECRET_ACCESS_KEY')})
3030
class AwsCodeCommitRepositoryProviderTest extends Specification {
3131

3232
def 'should get repo url' () {

0 commit comments

Comments
 (0)