class RackspaceTests(unittest.TestCase): def setUp(self): RackspaceMonitoringDriver.connectionCls.conn_classes = ( RackspaceMockHttp, RackspaceMockHttp) RackspaceMonitoringDriver.connectionCls.auth_url = \ 'https://auth.api.example.com/v1.1/' RackspaceMockHttp.type = None self.driver = RackspaceMonitoringDriver( *RACKSPACE_PARAMS, ex_force_base_url='http://www.todo.com') def test_list_monitoring_zones(self): result = list(self.driver.list_monitoring_zones()) self.assertEqual(len(result), 1) self.assertEqual(result[0].id, 'mzxJ4L2IU') def test_list_entities(self): result = list(self.driver.list_entities()) self.assertEqual(len(result), 6) self.assertEqual(result[0].id, 'en8B9YwUn6') self.assertEqual(result[0].label, 'bar') def test_list_checks(self): en = self.driver.list_entities()[0] result = list(self.driver.list_checks(entity=en)) self.assertEqual(len(result), 1) self.assertEqual(result[0].label, 'bar') self.assertEqual(result[0].details['url'], 'http://www.foo.com') self.assertEqual(result[0].details['method'], 'GET') def test_list_alarms(self): en = self.driver.list_entities()[0] result = list(self.driver.list_alarms(entity=en)) self.assertEqual(len(result), 1) self.assertEqual(result[0].type, 'remote.http') self.assertEqual(result[0].notification_plan_id, 'npIXxOAn5') def test_list_check_types(self): result = list(self.driver.list_check_types()) self.assertEqual(len(result), 2) self.assertEqual(result[0].id, 'remote.dns') self.assertTrue(result[0].is_remote) def test_list_notification_types(self): result = list(self.driver.list_notification_types()) self.assertEqual(len(result), 1) self.assertEqual(result[0].id, 'webhook') def test_list_notifications(self): result = list(self.driver.list_notifications()) self.assertEqual(len(result), 2) self.assertEqual(result[0].type, 'webhook') self.assertEqual(result[0].details['url'], 'http://www.postbin.org/lulz') def test_list_notification_plans(self): result = list(self.driver.list_notification_plans()) self.assertEqual(len(result), 8) self.assertEqual(result[0].label, 'test-notification-plan') def test_ex_list_alarm_history_checks(self): entity = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=entity)[0] result = self.driver.ex_list_alarm_history_checks(entity=entity, alarm=alarm) self.assertEqual(len(result['check_ids']), 2) def test_ex_list_alarm_history(self): entity = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=entity)[0] check = self.driver.list_checks(entity=entity)[0] result = self.driver.ex_list_alarm_history(entity=entity, alarm=alarm, check=check) self.assertEqual(len(result), 1) self.assertTrue('timestamp' in result[0]) self.assertTrue('notification_plan_id' in result[0]) self.assertTrue('computed_state' in result[0]) self.assertTrue('transaction_id' in result[0]) self.assertTrue('notification_results' in result[0]) def test_test_alarm(self): entity = self.driver.list_entities()[0] criteria = ( 'if (metric[\"code\"] == \"404\") { return CRITICAL, \"not', 'found\" } return OK') check_data = [] result = self.driver.test_alarm(entity=entity, criteria=criteria, check_data=check_data) self.assertTrue('timestamp' in result[0]) self.assertTrue('computed_state' in result[0]) self.assertTrue('status' in result[0]) def test_check(self): entity = self.driver.list_entities()[0] check_data = { 'label': 'test', 'monitoring_zones': ['mzA'], 'target_alias': 'default', 'details': { 'url': 'http://www.google.com' }, 'type': 'remote.http' } result = self.driver.test_check(entity=entity) self.assertTrue('available' in result[0]) self.assertTrue('monitoring_zone_id' in result[0]) self.assertTrue('available' in result[0]) self.assertTrue('metrics' in result[0]) def test_delete_entity_success(self): entity = self.driver.list_entities()[0] result = self.driver.delete_entity(entity=entity, ex_delete_children=False) self.assertTrue(result) def test_delete_entity_children_exist(self): entity = self.driver.list_entities()[1] RackspaceMockHttp.type = 'CHILDREN_EXIST' try: self.driver.delete_entity(entity=entity, ex_delete_children=False) except RackspaceMonitoringValidationError: pass else: self.fail('Exception was not thrown') def test_delete_check_success(self): en = self.driver.list_entities()[0] check = self.driver.list_checks(entity=en)[0] check.delete() def test_delete_alarm(self): en = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=en)[0] alarm.delete() def test_delete_notification(self): notification = self.driver.list_notifications()[0] notification.delete() def test_delete_notification_plan(self): notification_plan = self.driver.list_notification_plans()[0] notification_plan.delete()
class RackspaceTests(unittest.TestCase): def setUp(self): RackspaceMonitoringDriver.connectionCls.conn_classes = (RackspaceMockHttp, RackspaceMockHttp) RackspaceMonitoringDriver.connectionCls.auth_url = "https://auth.api.example.com/v1.1/" RackspaceMockHttp.type = None self.driver = RackspaceMonitoringDriver(*RACKSPACE_PARAMS, ex_force_base_url="http://www.todo.com") def test_list_monitoring_zones(self): result = list(self.driver.list_monitoring_zones()) self.assertEqual(len(result), 1) self.assertEqual(result[0].id, "mzxJ4L2IU") def test_list_entities(self): result = list(self.driver.list_entities()) self.assertEqual(len(result), 6) self.assertEqual(result[0].id, "en8B9YwUn6") self.assertEqual(result[0].label, "bar") def test_list_checks(self): en = self.driver.list_entities()[0] result = list(self.driver.list_checks(entity=en)) self.assertEqual(len(result), 1) self.assertEqual(result[0].label, "bar") self.assertEqual(result[0].details["url"], "http://www.foo.com") self.assertEqual(result[0].details["method"], "GET") def test_list_alarms(self): en = self.driver.list_entities()[0] result = list(self.driver.list_alarms(entity=en)) self.assertEqual(len(result), 1) self.assertEqual(result[0].type, "remote.http") self.assertEqual(result[0].notification_plan_id, "npIXxOAn5") def test_list_check_types(self): result = list(self.driver.list_check_types()) self.assertEqual(len(result), 2) self.assertEqual(result[0].id, "remote.dns") self.assertTrue(result[0].is_remote) def test_list_notification_types(self): result = list(self.driver.list_notification_types()) self.assertEqual(len(result), 1) self.assertEqual(result[0].id, "webhook") def test_list_notifications(self): result = list(self.driver.list_notifications()) self.assertEqual(len(result), 2) self.assertEqual(result[0].type, "webhook") self.assertEqual(result[0].details["url"], "http://www.postbin.org/lulz") def test_list_notification_plans(self): result = list(self.driver.list_notification_plans()) self.assertEqual(len(result), 8) self.assertEqual(result[0].label, "test-notification-plan") def test_ex_list_alarm_history_checks(self): entity = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=entity)[0] result = self.driver.ex_list_alarm_history_checks(entity=entity, alarm=alarm) self.assertEqual(len(result["check_ids"]), 2) def test_ex_list_alarm_history(self): entity = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=entity)[0] check = self.driver.list_checks(entity=entity)[0] result = self.driver.ex_list_alarm_history(entity=entity, alarm=alarm, check=check) self.assertEqual(len(result), 1) self.assertTrue("timestamp" in result[0]) self.assertTrue("notification_plan_id" in result[0]) self.assertTrue("computed_state" in result[0]) self.assertTrue("transaction_id" in result[0]) self.assertTrue("notification_results" in result[0]) def test_test_alarm(self): entity = self.driver.list_entities()[0] criteria = ('if (metric["code"] == "404") { return CRITICAL, "not', 'found" } return OK') check_data = [] result = self.driver.test_alarm(entity=entity, criteria=criteria, check_data=check_data) self.assertTrue("timestamp" in result[0]) self.assertTrue("computed_state" in result[0]) self.assertTrue("status" in result[0]) def test_check(self): entity = self.driver.list_entities()[0] check_data = { "label": "test", "monitoring_zones": ["mzA"], "target_alias": "default", "details": {"url": "http://www.google.com"}, "type": "remote.http", } result = self.driver.test_check(entity=entity) self.assertTrue("available" in result[0]) self.assertTrue("monitoring_zone_id" in result[0]) self.assertTrue("available" in result[0]) self.assertTrue("metrics" in result[0]) def test_delete_entity_success(self): entity = self.driver.list_entities()[0] result = self.driver.delete_entity(entity=entity, ex_delete_children=False) self.assertTrue(result) def test_delete_entity_children_exist(self): entity = self.driver.list_entities()[1] RackspaceMockHttp.type = "CHILDREN_EXIST" try: self.driver.delete_entity(entity=entity, ex_delete_children=False) except RackspaceMonitoringValidationError: pass else: self.fail("Exception was not thrown") def test_delete_check_success(self): en = self.driver.list_entities()[0] check = self.driver.list_checks(entity=en)[0] check.delete() def test_delete_alarm(self): en = self.driver.list_entities()[0] alarm = self.driver.list_alarms(entity=en)[0] alarm.delete() def test_delete_notification(self): notification = self.driver.list_notifications()[0] notification.delete() def test_delete_notification_plan(self): notification_plan = self.driver.list_notification_plans()[0] notification_plan.delete()