@Override public FixResult executeFix(Map<String, String> issue, Map<String, Object> clientMap, Map<String, String> ruleParams) { String resourceId=issue.get(PacmanSdkConstants.RESOURCE_ID); try{ DeleteVolumeRequest deleteVolumeRequest = new DeleteVolumeRequest(); deleteVolumeRequest.setVolumeId(resourceId); AmazonEC2 ec2Client = (AmazonEC2) clientMap.get("client"); ec2Client.deleteVolume(deleteVolumeRequest); return new FixResult(PacmanSdkConstants.STATUS_SUCCESS_CODE,"Volume " +issue.get(PacmanSdkConstants.RESOURCE_ID)+" is deleted."); }catch(Exception e){ LOGGER.error(String.format("unable to delete volume %s", issue.get(PacmanSdkConstants.RESOURCE_ID))); return new FixResult(PacmanSdkConstants.STATUS_FAILURE_CODE, "unable to delete volume"); } }
/** * * @param volumeId * @param ec2Client */ public void deleteEbsVolume(String volumeId, AmazonEC2 ec2Client) { try { log.info("Deleting EBS Volume (" + volumeId + ")"); DeleteVolumeRequest request = new DeleteVolumeRequest() .withVolumeId(volumeId); ec2Client.deleteVolume(request); } catch (AmazonServiceException e) { log.error("Failed to delete Ebs Volume", e); if (!"InvalidVolume.NotFound".equalsIgnoreCase(e.getErrorCode())) { throw e; } } }
@Override public String deleteVolume(String volumeId) { checkNotBlank(volumeId, "volumeId"); DeleteVolumeRequest dvr = new DeleteVolumeRequest(); dvr.setVolumeId(volumeId); // Don't bother with checking that the volume got deleted // Unless an exception is thrown, Amazon assures us that the volume will get nuked client.deleteVolume(dvr); return volumeId; }