From 202a70437b57e068c77e95522b75eaf2e77180c5 Mon Sep 17 00:00:00 2001 From: pnguyen Date: Fri, 11 Dec 2009 11:55:22 -0800 Subject: [PATCH] Validate the enabled status of the resource's availability measurement before, during, and after the maintenance window. --- .../hyperic/hq/hqapi1/test/HQApiTestBase.java | 14 ++++++++++--- .../hqapi1/test/MaintenanceSchedule_test.java | 21 ++++++++++++++----- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/org/hyperic/hq/hqapi1/test/HQApiTestBase.java b/src/org/hyperic/hq/hqapi1/test/HQApiTestBase.java index d0f25efc..b98e54a8 100644 --- a/src/org/hyperic/hq/hqapi1/test/HQApiTestBase.java +++ b/src/org/hyperic/hq/hqapi1/test/HQApiTestBase.java @@ -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()) { @@ -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; diff --git a/src/org/hyperic/hq/hqapi1/test/MaintenanceSchedule_test.java b/src/org/hyperic/hq/hqapi1/test/MaintenanceSchedule_test.java index cc057a45..2f97fabd 100644 --- a/src/org/hyperic/hq/hqapi1/test/MaintenanceSchedule_test.java +++ b/src/org/hyperic/hq/hqapi1/test/MaintenanceSchedule_test.java @@ -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; @@ -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; @@ -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); @@ -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); }