Browse Source

Add script to terminate instances

pull/4/head
Svitlana 4 years ago
parent
commit
47232c37f4
3 changed files with 39 additions and 3 deletions
  1. +29
    -0
      bin/delete_test_instances.sh
  2. +9
    -3
      bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java
  3. +1
    -0
      bubble-server/src/main/java/bubble/model/cloud/BubbleNode.java

+ 29
- 0
bin/delete_test_instances.sh View File

@@ -0,0 +1,29 @@
#!/bin/bash
#
# Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
#
#
# Delete test compute cloud instances
#
# Usage: new_bubble.sh config-file
#
# Environment variables
#
#

SCRIPT="${0}"
SCRIPT_DIR=$(cd $(dirname ${SCRIPT}) && pwd)
BUBBLE_ENV="/home/bubble/current/bubble-test.env"

INSTANCES=aws ec2 describe-instances --filters "Name=tag:Test_instance,Values=${TEST_TAG_CLOUD}" --query "Reservations[].Instances[].InstanceId"

INSTANCES_COUNT="${#INSTANCES[@]}"

if [[ ${INSTANCES_COUNT} -gt 0 ]] ; then

echo "Deleting ${INSTANCES_COUNT} test instances..."
aws ec2 terminate-instances --instance-ids "$INSTANCES"

else
echo "No instances contains tag \"${TEST_TAG_CLOUD}\" to delete"
fi

+ 9
- 3
bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java View File

@@ -25,8 +25,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;


import static bubble.model.cloud.BubbleNode.TAG_INSTANCE_ID;
import static bubble.model.cloud.BubbleNode.TAG_SSH_KEY_ID;
import static bubble.model.cloud.BubbleNode.*;
import static org.cobbzilla.util.daemon.ZillaRuntime.die; import static org.cobbzilla.util.daemon.ZillaRuntime.die;
import static org.cobbzilla.util.http.HttpStatusCodes.OK; import static org.cobbzilla.util.http.HttpStatusCodes.OK;
import static org.cobbzilla.util.security.RsaKeyPair.newRsaKeyPair; import static org.cobbzilla.util.security.RsaKeyPair.newRsaKeyPair;
@@ -39,7 +38,7 @@ public class AmazonEC2Driver extends ComputeServiceDriverBase {
public static final String TAG_NODE_UUID = "nodeUUID"; public static final String TAG_NODE_UUID = "nodeUUID";
public static final String KEY_NAME_PREFIX = "KeyName_"; public static final String KEY_NAME_PREFIX = "KeyName_";
public static final int MIN_COUNT = 1; public static final int MIN_COUNT = 1;
public static final int MAX_COUNT = 5;
public static final int MAX_COUNT = 1;


@Getter(lazy = true) private final AWSCredentialsProvider ec2credentials = new BubbleAwsCredentialsProvider(cloud, getCredentials()); @Getter(lazy = true) private final AWSCredentialsProvider ec2credentials = new BubbleAwsCredentialsProvider(cloud, getCredentials());


@@ -164,6 +163,13 @@ public class AmazonEC2Driver extends ComputeServiceDriverBase {
.withTags(new Tag(TAG_NODE_UUID, node.getUuid()), .withTags(new Tag(TAG_NODE_UUID, node.getUuid()),
new Tag(TAG_CLOUD_UUID, cloud.getUuid())); new Tag(TAG_CLOUD_UUID, cloud.getUuid()));


// Setting up the tag for the test instance
if (configuration.getEnvironment().containsKey("TEST_TAG_CLOUD")){
CreateTagsRequest createTestTagRequest = new CreateTagsRequest()
.withResources(instanceId)
.withTags(new Tag(TAG_TEST, configuration.getEnvironment().get("TEST_TAG_CLOUD")));
}

return node; return node;
} }




+ 1
- 0
bubble-server/src/main/java/bubble/model/cloud/BubbleNode.java View File

@@ -55,6 +55,7 @@ public class BubbleNode extends IdentifiableBase implements HasNetwork, HasBubbl
public static final String TAG_INSTANCE_ID = "instance_id"; public static final String TAG_INSTANCE_ID = "instance_id";
public static final String TAG_SSH_KEY_ID = "ssh_key_id"; public static final String TAG_SSH_KEY_ID = "ssh_key_id";
public static final String TAG_ERROR = "X-Bubble-Error"; public static final String TAG_ERROR = "X-Bubble-Error";
public static final String TAG_TEST = "Test_instance";


private static final List<String> TAG_NAMES = Arrays.asList(TAG_INSTANCE_ID, TAG_SSH_KEY_ID, TAG_ERROR); private static final List<String> TAG_NAMES = Arrays.asList(TAG_INSTANCE_ID, TAG_SSH_KEY_ID, TAG_ERROR);




Loading…
Cancel
Save