Skip to content

Commit

Permalink
Validate the enabled status of the resource's availability measuremen…
Browse files Browse the repository at this point in the history
…t before, during, and after the maintenance window.
  • Loading branch information
pnguyen committed Dec 11, 2009
1 parent 7870fe5 commit 202a704
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 8 deletions.
14 changes: 11 additions & 3 deletions src/org/hyperic/hq/hqapi1/test/HQApiTestBase.java
Expand Up @@ -310,13 +310,19 @@ protected Role generateTestRole() {
return role;
}

protected Metric findAvailabilityMetric(Resource resource)
protected Metric findAvailabilityMetric(Resource resource)
throws IOException {

return findAvailabilityMetric(resource, true);
}

protected Metric findAvailabilityMetric(Resource resource, boolean enabled)
throws IOException {

MetricApi metricApi = getApi().getMetricApi();

// Find availability metric for the resource
MetricsResponse metricsResponse = metricApi.getMetrics(resource, true);
MetricsResponse metricsResponse = metricApi.getMetrics(resource, enabled);
hqAssertSuccess(metricsResponse);
Metric availMetric = null;
for (Metric m : metricsResponse.getMetric()) {
Expand All @@ -326,7 +332,9 @@ protected Metric findAvailabilityMetric(Resource resource)
}
}

assertNotNull("Unable to find Availability metric for " + resource.getName(),
assertNotNull("Unable to find "
+ (enabled ? "an enabled" : "a disabled")
+ " availability metric for " + resource.getName(),
availMetric);

return availMetric;
Expand Down
21 changes: 16 additions & 5 deletions src/org/hyperic/hq/hqapi1/test/MaintenanceSchedule_test.java
Expand Up @@ -37,6 +37,7 @@
import org.hyperic.hq.hqapi1.types.MaintenanceState;
import org.hyperic.hq.hqapi1.types.Group;
import org.hyperic.hq.hqapi1.types.GroupResponse;
import org.hyperic.hq.hqapi1.types.Metric;
import org.hyperic.hq.hqapi1.types.Operation;
import org.hyperic.hq.hqapi1.types.Resource;
import org.hyperic.hq.hqapi1.types.Role;
Expand Down Expand Up @@ -122,22 +123,26 @@ public void testFireAlertsBeforeSchedulingCompatibleGroup()
// create group
Group maintGroup = createGroup(Collections.singletonList(resource));

// create alert definitions
// create classic alert definitions
AlertDefinition alertDefFireOnce =
createAvailabilityAlertDefinition(resource, null, false, true, 1);
AlertDefinition alertDefFireEveryTime =
createAvailabilityAlertDefinition(resource, null, false, false, 1);

// TODO create group alert definitions

// insert a fake 'up' measurement so that
// the alert definitions will fire.
long alertStart = System.currentTimeMillis();
Alert alertFireOnce = fireAvailabilityAlert(alertDefFireOnce, true, 1);
Alert alertFireEveryTime = fireAvailabilityAlert(alertDefFireEveryTime, false, 1);

// TODO check measurement enabled status
// check that availability measurement is enabled before the maintenance
Metric availMetric = findAvailabilityMetric(resource);
assertTrue("Availability measurement is not enabled for " + resource.getName(),
availMetric.isEnabled());

// schedule maintenance
MaintenanceApi mApi = api.getMaintenanceApi();
long maintStart = System.currentTimeMillis() + 5*SECOND;
long maintEnd = maintStart + MINUTE;

Expand All @@ -154,7 +159,10 @@ public void testFireAlertsBeforeSchedulingCompatibleGroup()
alertDefFireEveryTime = getAlertDefinition(alertDefFireEveryTime.getId());
validateAvailabilityAlertDefinition(alertDefFireEveryTime, false, false);

// TODO check measurement enabled status
// check that availability measurement is disabled during the maintenance
availMetric = findAvailabilityMetric(resource, false);
assertFalse("Availability measurement is enabled for " + resource.getName(),
availMetric.isEnabled());

// wait for maintenance to end
waitForMaintenanceStateChange(maintGroup, MaintenanceState.COMPLETE);
Expand All @@ -170,7 +178,10 @@ public void testFireAlertsBeforeSchedulingCompatibleGroup()
alertDefFireEveryTime = getAlertDefinition(alertDefFireEveryTime.getId());
validateAvailabilityAlertDefinition(alertDefFireEveryTime, false, true);

// TODO check measurement enabled status
// check that availability measurement is enabled after the maintenance
availMetric = findAvailabilityMetric(resource);
assertTrue("Availability measurement is not re-enabled for " + resource.getName(),
availMetric.isEnabled());

cleanupGroup(maintGroup, true);
}
Expand Down

0 comments on commit 202a704

Please sign in to comment.