diff --git a/.gitignore b/.gitignore
index 5fb81ac..26a1bca 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*.swp
*.iml
+.DS_Store
.cache
.classpath
.idea
diff --git a/pom.xml b/pom.xml
index 1a47dbf..e70cd62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
1.0.0
${versionNumber}-SNAPSHOT
1.0.0.280
- 1.0.0.108
+ 1.0.0.134
0.6.1
true
diff --git a/src/main/java/com/hpcloud/maas/infrastructure/persistence/AlarmDAOImpl.java b/src/main/java/com/hpcloud/maas/infrastructure/persistence/AlarmDAOImpl.java
index 41a7a4f..9dd9309 100644
--- a/src/main/java/com/hpcloud/maas/infrastructure/persistence/AlarmDAOImpl.java
+++ b/src/main/java/com/hpcloud/maas/infrastructure/persistence/AlarmDAOImpl.java
@@ -13,7 +13,6 @@ import com.hpcloud.maas.common.model.alarm.AggregateFunction;
import com.hpcloud.maas.common.model.alarm.AlarmOperator;
import com.hpcloud.maas.common.model.alarm.AlarmState;
import com.hpcloud.maas.common.model.alarm.AlarmSubExpression;
-import com.hpcloud.maas.common.model.metric.CollectdMetrics;
import com.hpcloud.maas.common.model.metric.MetricDefinition;
import com.hpcloud.maas.domain.model.Alarm;
import com.hpcloud.maas.domain.model.SubAlarm;
@@ -50,10 +49,9 @@ public class AlarmDAOImpl implements AlarmDAO {
String subAlarmId = (String) row.get("id");
Map dimensions = findDimensionsById(handle, subAlarmId);
AggregateFunction function = AggregateFunction.valueOf((String) row.get("function"));
- MetricDefinition metricDef = new MetricDefinition((String) row.get("namespace"),
- (String) row.get("metric_type"), (String) row.get("metric_subject"), dimensions);
+ MetricDefinition metricDef = new MetricDefinition((String) row.get("namespace"), dimensions);
// TODO remove later when collectd supports all dimensions
- CollectdMetrics.removeUnsupportedDimensions(metricDef);
+ // CollectdMetrics.removeUnsupportedDimensions(metricDef);
AlarmOperator operator = AlarmOperator.valueOf((String) row.get("operator"));
AlarmSubExpression subExpression = new AlarmSubExpression(function, metricDef, operator,
(Double) row.get("threshold"), (Integer) row.get("period"), (Integer) row.get("periods"));
diff --git a/src/main/java/com/hpcloud/maas/infrastructure/persistence/MetricDefinitionDAOImpl.java b/src/main/java/com/hpcloud/maas/infrastructure/persistence/MetricDefinitionDAOImpl.java
index b8ae88b..f3a7dda 100644
--- a/src/main/java/com/hpcloud/maas/infrastructure/persistence/MetricDefinitionDAOImpl.java
+++ b/src/main/java/com/hpcloud/maas/infrastructure/persistence/MetricDefinitionDAOImpl.java
@@ -20,7 +20,7 @@ import com.hpcloud.maas.domain.service.MetricDefinitionDAO;
* @author Jonathan Halterman
*/
public class MetricDefinitionDAOImpl implements MetricDefinitionDAO {
- private static final String METRIC_DEF_SQL = "select sa.namespace, sa.metric_type, sa.metric_subject, sad.dimensions from sub_alarm as sa "
+ private static final String METRIC_DEF_SQL = "select sa.namespace, sad.dimensions from sub_alarm as sa "
+ "left join (select sub_alarm_id, group_concat(dimension_name, '=', value) as dimensions from sub_alarm_dimension group by sub_alarm_id) as sad on sa.id = sad.sub_alarm_id";
private final DBI db;
@@ -40,8 +40,6 @@ public class MetricDefinitionDAOImpl implements MetricDefinitionDAO {
List metricDefs = new ArrayList(rows.size());
for (Map row : rows) {
String namespace = (String) row.get("namespace");
- String type = (String) row.get("metric_type");
- String subject = (String) row.get("metric_subject");
String dimensionSet = (String) row.get("dimensions");
Map dimensions = null;
@@ -57,7 +55,7 @@ public class MetricDefinitionDAOImpl implements MetricDefinitionDAO {
}
}
- metricDefs.add(new MetricDefinition(namespace, type, subject, dimensions));
+ metricDefs.add(new MetricDefinition(namespace, dimensions));
}
return metricDefs;
diff --git a/src/main/java/com/hpcloud/maas/infrastructure/persistence/SubAlarmDAOImpl.java b/src/main/java/com/hpcloud/maas/infrastructure/persistence/SubAlarmDAOImpl.java
index e53ee41..854cda4 100644
--- a/src/main/java/com/hpcloud/maas/infrastructure/persistence/SubAlarmDAOImpl.java
+++ b/src/main/java/com/hpcloud/maas/infrastructure/persistence/SubAlarmDAOImpl.java
@@ -31,10 +31,10 @@ public class SubAlarmDAOImpl implements SubAlarmDAO {
*/
private static final String FIND_BY_METRIC_DEF_SQL = "select sa.* from sub_alarm sa, sub_alarm_dimension d "
+ "join (%s) v on d.dimension_name = v.dimension_name and d.value = v.value "
- + "where sa.id = d.sub_alarm_id and sa.namespace = :namespace and sa.metric_type = :metricType and sa.metric_subject %s "
+ + "where sa.id = d.sub_alarm_id and sa.namespace = :namespace "
+ "group by d.sub_alarm_id having count(d.sub_alarm_id) = %s";
private static final String FIND_BY_METRIC_DEF_NO_DIMS_SQL = "select * from sub_alarm sa where sa.namespace = :namespace "
- + "and sa.metric_type = :metricType and sa.metric_subject %s and (select count(*) from sub_alarm_dimension where sub_alarm_id = sa.id) = 0";
+ + "and (select count(*) from sub_alarm_dimension where sub_alarm_id = sa.id) = 0";
private final DBI db;
@@ -49,21 +49,17 @@ public class SubAlarmDAOImpl implements SubAlarmDAO {
try {
String sql = null;
- String subjectSql = metricDefinition.subject == null ? "is null" : "= :metricSubject";
if (metricDefinition.dimensions == null || metricDefinition.dimensions.isEmpty())
- sql = String.format(FIND_BY_METRIC_DEF_NO_DIMS_SQL, subjectSql);
+ sql = FIND_BY_METRIC_DEF_NO_DIMS_SQL;
else {
String unionAllStatement = SqlStatements.unionAllStatementFor(metricDefinition.dimensions,
"dimension_name", "value");
- sql = String.format(FIND_BY_METRIC_DEF_SQL, unionAllStatement, subjectSql,
+ sql = String.format(FIND_BY_METRIC_DEF_SQL, unionAllStatement,
metricDefinition.dimensions.size());
}
- Query