@Override public void postStartupSetup(NodeMetadata node) { String host = node.getPublicAddresses().iterator().next(); try (Ssh ssh = new Ssh(host)) { authenticator().authenticate(ssh.getConnection()); ssh.getConnection().exec(String.format("pkill -u $(id -u %s)", config.getUser()), System.out); //set instance initiated shutdown behavior to terminate. This means any shutdown will result in to instance // termination EC2Api client = contextBuilder.buildApi(EC2Api.class); client.getInstanceApi().get().setInstanceInitiatedShutdownBehaviorForInstanceInRegion(config.getRegion(), node.getProviderId(), Volume.InstanceInitiatedShutdownBehavior.TERMINATE); copyAutoterminateScript(host); } catch (IOException | InterruptedException e) { logger.error(e.getMessage()); throw new RuntimeException(e); } }
private void setInstanceInitiatedShutdownBehaviorForInstanceInRegion() { try { client.getInstanceApi().get().setInstanceInitiatedShutdownBehaviorForInstanceInRegion(null, instanceId, InstanceInitiatedShutdownBehavior.STOP); fail("shouldn't be allowed, as instance needs to be ebs based-ami"); } catch (AWSResponseException e) { assertEquals("UnsupportedInstanceAttribute", e.getError().getCode()); } }
private void setInstanceInitiatedShutdownBehaviorForInstanceInRegion() { try { client.getInstanceApi().get().setInstanceInitiatedShutdownBehaviorForInstanceInRegion(null, ebsInstance.getId(), InstanceInitiatedShutdownBehavior.STOP); assertEquals(InstanceInitiatedShutdownBehavior.STOP, client.getInstanceApi().get() .getInstanceInitiatedShutdownBehaviorForInstanceInRegion(null, ebsInstance.getId())); client.getInstanceApi().get().setInstanceInitiatedShutdownBehaviorForInstanceInRegion(null, ebsInstance.getId(), InstanceInitiatedShutdownBehavior.TERMINATE); assertEquals(InstanceInitiatedShutdownBehavior.TERMINATE, client.getInstanceApi().get() .getInstanceInitiatedShutdownBehaviorForInstanceInRegion(null, ebsInstance.getId())); System.out.println("OK: setInstanceInitiatedShutdownBehaviorForInstanceInRegion"); } catch (Exception e) { System.err.println("setInstanceInitiatedShutdownBehaviorForInstanceInRegion"); e.printStackTrace(); } }