@And("^I expect the response error message to include:$") public void and_I_expect_the_response_error_message_include(String expected) { assertNotNull(exception); assertTrue(exception instanceof AmazonServiceException); String actual = exception.getErrorMessage().toLowerCase(); assertTrue( "Error message doesn't match. Expected : " + expected + ". Actual :" + actual, actual.contains(expected.toLowerCase())); }
/** * Update the tags stored in EC2 with the specified information. Re-try 5 times if instances isn't * up by catchErrorCode - e.g. InvalidSpotInstanceRequestID.NotFound or * InvalidInstanceRequestID.NotFound * * @param ec2 * @param instTags * @param catchErrorCode * @param params * @throws InterruptedException */ private void updateRemoteTags( AmazonEC2 ec2, Collection<Tag> instTags, String catchErrorCode, String... params) throws InterruptedException { for (int i = 0; i < 5; i++) { try { CreateTagsRequest tagRequest = new CreateTagsRequest(); tagRequest.withResources(params).setTags(instTags); ec2.createTags(tagRequest); break; } catch (AmazonServiceException e) { if (e.getErrorCode().equals(catchErrorCode)) { Thread.sleep(5000); continue; } LOGGER.log(Level.SEVERE, e.getErrorMessage(), e); } } }