private void modifyCloudWatchAlarm()

in cloudwatch-controller/src/main/java/com/amazonwebservices/blogs/containers/kubernetes/K8sMetricAlarmReconciler.java [120:167]


	private void modifyCloudWatchAlarm (String name, String namespace) {
		try {
			boolean isAdded = false;
			boolean isUpdated = false;
			boolean isDeleted = false;
			
			K8sMetricAlarmCustomObject cloudWatchAlarm = null;
			String objKey = name.concat(namespace);
			if (addedObjects.containsKey(objKey)) {
				isAdded = true;
				cloudWatchAlarm = addedObjects.get(objKey);
				addedObjects.remove(objKey);
			}
			else if (updatedObjects.containsKey(objKey)) {
				isUpdated = true;
				cloudWatchAlarm = updatedObjects.get(objKey);
				updatedObjects.remove(objKey);
			}
			else if (deletedObjects.containsKey(objKey)) {
				isDeleted = true;
				cloudWatchAlarm = deletedObjects.get(objKey);
				deletedObjects.remove(objKey);
			}
			
			JsonObject scaleUpAlarmConfigObject = parseCloudWatchAlarmConfig (cloudWatchAlarm.getSpec().getScaleUpAlarmConfig());
			JsonObject scaleDownAlarmConfigObject = parseCloudWatchAlarmConfig (cloudWatchAlarm.getSpec().getScaleDownAlarmConfig());
			if (scaleUpAlarmConfigObject != null) logger.info(String.format("Scale up alarm configuration:\n %s", scaleUpAlarmConfigObject.encodePrettily()));			
			if (scaleDownAlarmConfigObject != null) logger.info(String.format("Scale down alarm configuration:\n %s", scaleDownAlarmConfigObject.encodePrettily()));
			
			if (isAdded) {
				createCloudWatchAlarm (scaleUpAlarmConfigObject);
				createCloudWatchAlarm (scaleDownAlarmConfigObject);
			}
			else if (isUpdated) {
				deleteCloudWatchAlarm (scaleUpAlarmConfigObject);
				deleteCloudWatchAlarm (scaleDownAlarmConfigObject);

				createCloudWatchAlarm (scaleUpAlarmConfigObject);
				createCloudWatchAlarm (scaleDownAlarmConfigObject);
			}
			else if (isDeleted) {
				deleteCloudWatchAlarm (scaleUpAlarmConfigObject);
				deleteCloudWatchAlarm (scaleDownAlarmConfigObject);
			}
		} catch (Exception e) {
			logger.error(String.format("Exception occured when updating CloudWatchAlarm '%s.%s'; %s", name, namespace, e.getMessage()), e);
		}
	}