diff --git a/CHANGELOG.md b/CHANGELOG.md index 15a259f6..dfbcf0a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,9 @@ Dropping a requirement of a major version of a dependency is a new contract. ## [2.21.4] - 2020-07-10 [2.21.4]: https://github.com/atlassian/aws-infrastructure/compare/release-2.21.3...release-2.21.4 +### Changed +- Upgraded AWS SDK to 1.11.817 with support for ARM-based instances + ### Fixed - Upgrade to Ubuntu 20.04 Focal in `StackVirtualUsersFormula`. diff --git a/build.gradle.kts b/build.gradle.kts index 581aed8d..60fb2648 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ configurations.all { "com.fasterxml.jackson.core:jackson-core" -> useVersion("2.9.4") "org.slf4j:slf4j-api" -> useVersion("1.8.0-alpha2") "org.apache.httpcomponents:httpcore" -> useVersion("4.4.9") + "commons-codec:commons-codec" -> useVersion("1.11") "commons-logging:commons-logging" -> useVersion("1.2") "org.codehaus.plexus:plexus-utils" -> useVersion("3.1.0") "com.google.code.gson:gson" -> useVersion("2.8.2") @@ -46,7 +47,7 @@ dependencies { api("com.atlassian.performance.tools:jira-actions:[2.0.0,4.0.0)") api("com.atlassian.performance.tools:ssh:[2.0.0,3.0.0)") api("com.atlassian.performance.tools:virtual-users:[3.3.0,4.0.0)") - api("com.amazonaws:aws-java-sdk-ec2:1.11.424") + api("com.amazonaws:aws-java-sdk-ec2:1.11.817") implementation("com.atlassian.performance.tools:jvm-tasks:[1.0.0,2.0.0)") implementation("com.atlassian.performance.tools:workspace:[2.0.0,3.0.0)") diff --git a/gradle/dependency-locks/apiDependenciesMetadata.lockfile b/gradle/dependency-locks/apiDependenciesMetadata.lockfile index 13f08f05..85a0884b 100644 --- a/gradle/dependency-locks/apiDependenciesMetadata.lockfile +++ b/gradle/dependency-locks/apiDependenciesMetadata.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -23,7 +23,7 @@ com.atlassian.performance.tools:ssh:2.3.0 com.atlassian.performance.tools:virtual-users:3.6.4 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.github.stephenc.jcip:jcip-annotations:1.0-1 com.google.code.findbugs:jsr305:1.3.9 @@ -39,7 +39,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/gradle/dependency-locks/compileClasspath.lockfile b/gradle/dependency-locks/compileClasspath.lockfile index e5a3d082..87f95420 100644 --- a/gradle/dependency-locks/compileClasspath.lockfile +++ b/gradle/dependency-locks/compileClasspath.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -23,7 +23,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -35,7 +35,7 @@ com.hierynomus:sshj:0.23.0 com.jcraft:jzlib:1.1.3 com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-logging:commons-logging:1.2 javax.activation:activation:1.1.1 javax.xml.bind:jaxb-api:2.3.0 diff --git a/gradle/dependency-locks/default.lockfile b/gradle/dependency-locks/default.lockfile index 8d2f78e4..d88bd4ab 100644 --- a/gradle/dependency-locks/default.lockfile +++ b/gradle/dependency-locks/default.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -24,7 +24,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -43,7 +43,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/gradle/dependency-locks/implementationDependenciesMetadata.lockfile b/gradle/dependency-locks/implementationDependenciesMetadata.lockfile index 8d2f78e4..d88bd4ab 100644 --- a/gradle/dependency-locks/implementationDependenciesMetadata.lockfile +++ b/gradle/dependency-locks/implementationDependenciesMetadata.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -24,7 +24,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -43,7 +43,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/gradle/dependency-locks/runtimeClasspath.lockfile b/gradle/dependency-locks/runtimeClasspath.lockfile index 8d2f78e4..d88bd4ab 100644 --- a/gradle/dependency-locks/runtimeClasspath.lockfile +++ b/gradle/dependency-locks/runtimeClasspath.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -24,7 +24,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -43,7 +43,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/gradle/dependency-locks/testCompileClasspath.lockfile b/gradle/dependency-locks/testCompileClasspath.lockfile index 45fdac33..aeb9211a 100644 --- a/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/gradle/dependency-locks/testCompileClasspath.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -23,7 +23,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -35,7 +35,7 @@ com.hierynomus:sshj:0.23.0 com.jcraft:jzlib:1.1.3 com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-logging:commons-logging:1.2 javax.activation:activation:1.1.1 javax.xml.bind:jaxb-api:2.3.0 diff --git a/gradle/dependency-locks/testImplementationDependenciesMetadata.lockfile b/gradle/dependency-locks/testImplementationDependenciesMetadata.lockfile index f04985ca..8fa697e4 100644 --- a/gradle/dependency-locks/testImplementationDependenciesMetadata.lockfile +++ b/gradle/dependency-locks/testImplementationDependenciesMetadata.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -24,7 +24,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -43,7 +43,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/gradle/dependency-locks/testRuntimeClasspath.lockfile b/gradle/dependency-locks/testRuntimeClasspath.lockfile index f04985ca..8fa697e4 100644 --- a/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -1,18 +1,18 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.amazonaws:aws-java-sdk-cloudformation:1.11.424 -com.amazonaws:aws-java-sdk-core:1.11.424 -com.amazonaws:aws-java-sdk-ec2:1.11.424 -com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.424 -com.amazonaws:aws-java-sdk-iam:1.11.424 -com.amazonaws:aws-java-sdk-kms:1.11.424 -com.amazonaws:aws-java-sdk-rds:1.11.424 -com.amazonaws:aws-java-sdk-s3:1.11.424 -com.amazonaws:aws-java-sdk-sts:1.11.424 -com.amazonaws:aws-java-sdk-support:1.11.424 -com.amazonaws:jmespath-java:1.11.424 -com.atlassian.performance.tools:aws-resources:1.4.0 +com.amazonaws:aws-java-sdk-cloudformation:1.11.817 +com.amazonaws:aws-java-sdk-core:1.11.817 +com.amazonaws:aws-java-sdk-ec2:1.11.817 +com.amazonaws:aws-java-sdk-elasticloadbalancing:1.11.817 +com.amazonaws:aws-java-sdk-iam:1.11.817 +com.amazonaws:aws-java-sdk-kms:1.11.817 +com.amazonaws:aws-java-sdk-rds:1.11.817 +com.amazonaws:aws-java-sdk-s3:1.11.817 +com.amazonaws:aws-java-sdk-sts:1.11.817 +com.amazonaws:aws-java-sdk-support:1.11.817 +com.amazonaws:jmespath-java:1.11.817 +com.atlassian.performance.tools:aws-resources:1.6.1 com.atlassian.performance.tools:concurrency:1.0.0 com.atlassian.performance.tools:infrastructure:4.13.0 com.atlassian.performance.tools:io:1.2.0 @@ -24,7 +24,7 @@ com.atlassian.performance.tools:virtual-users:3.6.4 com.atlassian.performance.tools:workspace:2.0.0 com.fasterxml.jackson.core:jackson-annotations:2.6.0 com.fasterxml.jackson.core:jackson-core:2.9.4 -com.fasterxml.jackson.core:jackson-databind:2.6.7.1 +com.fasterxml.jackson.core:jackson-databind:2.6.7.3 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7 com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4 com.github.stephenc.jcip:jcip-annotations:1.0-1 @@ -43,7 +43,7 @@ com.sun.istack:istack-commons-runtime:3.0.5 com.sun.xml.fastinfoset:FastInfoset:1.2.13 com.typesafe:config:1.2.1 commons-cli:commons-cli:1.4 -commons-codec:commons-codec:1.10 +commons-codec:commons-codec:1.11 commons-io:commons-io:2.5 commons-logging:commons-logging:1.2 io.github.bonigarcia:webdrivermanager:1.7.1 diff --git a/src/main/kotlin/com/atlassian/performance/tools/awsinfrastructure/AmiNameResolver.kt b/src/main/kotlin/com/atlassian/performance/tools/awsinfrastructure/AmiNameResolver.kt index c8ae908b..00495b2b 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/awsinfrastructure/AmiNameResolver.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/awsinfrastructure/AmiNameResolver.kt @@ -1,23 +1,42 @@ package com.atlassian.performance.tools.awsinfrastructure +import com.amazonaws.services.ec2.model.ArchitectureType import com.amazonaws.services.ec2.model.DescribeImagesRequest +import com.amazonaws.services.ec2.model.DescribeInstanceTypesRequest import com.amazonaws.services.ec2.model.Filter +import com.amazonaws.services.ec2.model.InstanceType import com.atlassian.performance.tools.aws.api.Aws import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentMap internal class AmiNameResolver { companion object { - private const val vuAmiName = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200701" + private val instanceType2Architecture: ConcurrentMap = ConcurrentHashMap() + private val name2amiId: ConcurrentMap = ConcurrentHashMap() - private val name2amiId: ConcurrentMap = ConcurrentHashMap() + fun vuAmi(aws: Aws, instanceType: InstanceType = InstanceType.C59xlarge): String { + val architecture = instanceType2Architecture.computeIfAbsent(AwsAndInstanceType(aws, instanceType), Companion::resolveArchitecture) - fun vuAmi(aws: Aws): String { - return name2amiId.computeIfAbsent(AwsAndAmi(aws, vuAmiName), Companion::resolveAmiName) + val vuAmiName = getVuAmiName(architecture) + + return name2amiId.computeIfAbsent(AwsAndAmiName(aws, vuAmiName), Companion::resolveAmiName) + } + + private fun resolveArchitecture(awsAndInstanceType: AwsAndInstanceType) : ArchitectureType { + val instanceType = awsAndInstanceType.data + + val describeInstanceTypes = awsAndInstanceType.aws.ec2 + .describeInstanceTypes(DescribeInstanceTypesRequest().withInstanceTypes(instanceType)) + + val architectureString = describeInstanceTypes.instanceTypes.single().processorInfo.supportedArchitectures.single() + return ArchitectureType.fromValue(architectureString) } - private fun resolveAmiName(awsAndAmi: AwsAndAmi) : String { - return awsAndAmi.aws.ec2 + private fun resolveAmiName(awsAndAmiName: AwsAndAmiName) : String { + val ec2 = awsAndAmiName.aws.ec2 + val vuAmiName = awsAndAmiName.data + + return ec2 .describeImages( DescribeImagesRequest().withFilters( Filter("name", listOf(vuAmiName)) @@ -26,24 +45,39 @@ internal class AmiNameResolver { .images .map { it.imageId } .singleOrNull() - ?: throw Exception("Failed to find image $vuAmiName in ${awsAndAmi.aws.region}") + ?: throw Exception("Failed to find image $vuAmiName in ${awsAndAmiName.aws.region}") } - } - data class AwsAndAmi constructor(val aws: Aws, val ami: String) { + private fun getVuAmiName(architecture: ArchitectureType): String { + val imgArchitecture = when (architecture) { + ArchitectureType.Arm64 -> "arm64" + ArchitectureType.X86_64 -> "amd64" + else -> { + throw IllegalArgumentException("Unsupported architecture: ${architecture}") + } + } + + return "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-${imgArchitecture}-server-20200701" + } + } + open class AwsHolder(val aws: Aws, val data : T) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other !is AwsAndAmi) return false + if (other !is AwsAndAmiName) return false if (aws.region != other.aws.region) return false - if (ami != other.ami) return false + if (data != other.data) return false return true } override fun hashCode(): Int { - return ami.hashCode() + return data!!.hashCode() } } + + class AwsAndInstanceType(aws: Aws, instanceType: InstanceType) : AwsHolder(aws, instanceType) + + class AwsAndAmiName(aws: Aws, amiName: String) : AwsHolder(aws, amiName) }