You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rh...@apache.org on 2020/08/12 16:58:25 UTC

[geode-benchmarks] branch develop updated: allow AMI picking with arbitrary username accounts (#132)

This is an automated email from the ASF dual-hosted git repository.

rhoughton pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


The following commit(s) were added to refs/heads/develop by this push:
     new 3e3bdd3  allow AMI picking with arbitrary username accounts (#132)
3e3bdd3 is described below

commit 3e3bdd3a371e400db0ce2ce2d736ab06f9244ed1
Author: Robert Houghton <rh...@pivotal.io>
AuthorDate: Wed Aug 12 09:58:16 2020 -0700

    allow AMI picking with arbitrary username accounts (#132)
    
    * allow AMI picking with arbitrary username accounts
    * improved run directory settings
---
 infrastructure/build.gradle                        |  2 +-
 infrastructure/scripts/aws/destroy_cluster.sh      | 11 +++++++++-
 infrastructure/scripts/aws/launch_cluster.sh       | 24 ++++++++++++++++++++--
 .../infrastructure/aws/AwsBenchmarkMetadata.java   |  7 ++++++-
 .../geode/infrastructure/aws/LaunchCluster.java    |  1 +
 5 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/infrastructure/build.gradle b/infrastructure/build.gradle
index 41f3a71..6b23c3b 100644
--- a/infrastructure/build.gradle
+++ b/infrastructure/build.gradle
@@ -43,7 +43,7 @@ task(launchCluster, dependsOn: 'classes', type: JavaExec) {
 
   systemProperty 'TEST_CI', project.findProperty('ci')
   systemProperty 'PURPOSE', project.findProperty('purpose')
-
+  systemProperty 'USER', project.findProperty('user')
 }
 
 task(destroyCluster, dependsOn: 'classes', type: JavaExec) {
diff --git a/infrastructure/scripts/aws/destroy_cluster.sh b/infrastructure/scripts/aws/destroy_cluster.sh
index a56d8e2..5bab232 100755
--- a/infrastructure/scripts/aws/destroy_cluster.sh
+++ b/infrastructure/scripts/aws/destroy_cluster.sh
@@ -17,6 +17,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+  SOURCE="$(readlink "$SOURCE")"
+  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
 TAG=
 CI=
 
@@ -63,6 +72,6 @@ if [ -z "${CI}" ]; then
   CI=0
 fi
 
-pushd ../../../
+pushd "${SCRIPTDIR}/../../../"
 ./gradlew destroyCluster -Pci=${CI} --args "${TAG}"
 popd
diff --git a/infrastructure/scripts/aws/launch_cluster.sh b/infrastructure/scripts/aws/launch_cluster.sh
index 600f0d9..c7d164a 100755
--- a/infrastructure/scripts/aws/launch_cluster.sh
+++ b/infrastructure/scripts/aws/launch_cluster.sh
@@ -19,6 +19,14 @@
 
 set -e
 
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+  SOURCE="$(readlink "$SOURCE")"
+  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
 TAG=
 COUNT=
 CI=
@@ -55,6 +63,15 @@ while (( "$#" )); do
         exit 1
       fi
       ;;
+    -u|--user )
+      if [ "${2}" ]; then
+        USER="${2}"
+        shift
+    else
+      echo 'ERROR: "--user" requires a non-empty argument.'
+      exit 1
+    fi
+    ;;
     -h|--help|-\? )
       echo "Usage: $(basename "$0") -t tag -c 4 [options ...] [-- arguments ...]"
       echo "Options:"
@@ -84,7 +101,10 @@ fi
 
 CI=${CI:-0}
 PURPOSE=${PURPOSE:-"geode-benchmarks"}
+if [[ ! -z "${USER}" ]]; then
+  USER_ARG="-Puser=${USER}"
+fi
 
-pushd ../../../
-./gradlew launchCluster -Pci=${CI} -Ppurpose=${PURPOSE} --args "${TAG} ${COUNT}"
+pushd "${SCRIPTDIR}/../../../"
+./gradlew launchCluster "${USER_ARG}" -Pci=${CI} -Ppurpose=${PURPOSE} --args "${TAG} ${COUNT}"
 popd
diff --git a/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/AwsBenchmarkMetadata.java b/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/AwsBenchmarkMetadata.java
index ed99626..8ae430b 100644
--- a/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/AwsBenchmarkMetadata.java
+++ b/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/AwsBenchmarkMetadata.java
@@ -26,11 +26,16 @@ import org.apache.geode.infrastructure.BenchmarkMetadata;
  * Static methods to generate common strings used for AWS infrastructure.
  */
 class AwsBenchmarkMetadata extends BenchmarkMetadata {
-  public static final String USER = "geode";
+  public static String USER = "geode";
   public static final int POLL_INTERVAL = 15000;
   public static InstanceType INSTANCE_TYPE = InstanceType.C5_18_XLARGE;
   public static Tenancy TENANCY = Tenancy.DEDICATED;
 
+  public static String setUserName(String user) {
+    USER = user;
+    return USER;
+  }
+
   public static String securityGroup(String tag) {
     return BenchmarkMetadata.benchmarkString(tag, "securityGroup");
   }
diff --git a/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/LaunchCluster.java b/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/LaunchCluster.java
index 5068f92..ff2d96b 100644
--- a/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/LaunchCluster.java
+++ b/infrastructure/src/main/java/org/apache/geode/infrastructure/aws/LaunchCluster.java
@@ -92,6 +92,7 @@ public class LaunchCluster {
       usage("Usage: LaunchCluster <tag> <count>");
     }
 
+    AwsBenchmarkMetadata.setUserName(System.getProperty("USER", AwsBenchmarkMetadata.USER));
     List<Tag> tags = getTags(benchmarkTag);
     createKeyPair(benchmarkTag);
     Image newestImage = getNewestImage();