示例#1
0
 def setUp(self):
     self.model = AlertGroupsModel()
     self.collection = self.model.mongo.get_collection('alert_groups')
     self.servers_collection = self.model.mongo.get_collection('servers')
     self.history_collection = self.model.mongo.get_collection(
         'alert_groups_history')
     self.alerts_collection = self.model.mongo.get_collection('alerts')
示例#2
0
	def setUp(self):
		self.model = AlertGroupsModel()
		self.collection = self.model.mongo.get_collection('alert_groups')
		self.servers_collection = self.model.mongo.get_collection('servers')
		self.history_collection = self.model.mongo.get_collection('alert_groups_history')
		self.alerts_collection = self.model.mongo.get_collection('alerts')
示例#3
0
class AlertGroupsModelTest(unittest.TestCase):
    def setUp(self):
        self.model = AlertGroupsModel()
        self.collection = self.model.mongo.get_collection('alert_groups')
        self.servers_collection = self.model.mongo.get_collection('servers')
        self.history_collection = self.model.mongo.get_collection(
            'alert_groups_history')
        self.alerts_collection = self.model.mongo.get_collection('alerts')

    def save_test(self):
        self.collection.remove()
        self.model.save({'name': 'group'})
        result = self.collection.find_one()

        eq_(result['name'], 'group')

    def get_alerts_for_group_test(self):
        self.alerts_collection.remove()

        self.alerts_collection.insert({'group': 'test', 'rule_type': 'group'})
        self.alerts_collection.insert({'group': 'test', 'rule_type': 'group'})

        result = self.model.get_alerts_for_group('test')

        eq_(len(result), 2)

    def save_occurence_test(self):
        self.collection.remove()
        self.history_collection.remove()
        self.model.save({'name': 'group'})
        group = self.collection.find_one()
        group_id = str(group['_id'])

        self.servers_collection.remove()
        self.servers_collection.insert({
            'alert_group': group_id,
            'name': 'test'
        })

        server = self.servers_collection.find_one()

        rule = {
            "metric_value": "0.1",
            "metric": "CPU",
            "metric_type": "%",
            "threshold": "1",
            "above_below": "above",
            "rule_type": "group",
            "group": group_id,
        }

        self.alerts_collection.remove()
        self.alerts_collection.insert(rule)

        rule = self.alerts_collection.find_one()
        rule_id = str(rule['_id'])

        alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
        self.model.save_occurence(alerts, server)

        alerts = {'cpu': [{'alert_on': 25, 'rule': rule_id}]}
        self.model.save_occurence(alerts, server)

        result = self.history_collection.find_one()

        eq_(len(result['history']), 2)
        eq_(result['server'], server['_id'])
        eq_(result['alert'], rule['_id'])

    def clear_alert_history_test(self):
        self.collection.remove()
        self.history_collection.remove()
        self.model.save({'name': 'group'})
        group = self.collection.find_one()
        group_id = str(group['_id'])

        self.servers_collection.remove()
        self.servers_collection.insert({
            'alert_group': group_id,
            'name': 'test'
        })

        server = self.servers_collection.find_one()

        rule = {
            "metric_value": "0.1",
            "metric": "CPU",
            "metric_type": "%",
            "threshold": "1",
            "above_below": "above",
            "rule_type": "group",
            "group": group_id,
        }

        self.alerts_collection.remove()
        self.alerts_collection.insert(rule)

        rule = self.alerts_collection.find_one()
        rule_id = str(rule['_id'])

        alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
        self.model.save_occurence(alerts, server)

        result = self.history_collection.find_one()

        eq_(len(result['history']), 1)

        self.model.clear_alert_history(rule['_id'], server['_id'], {})
        result = self.history_collection.find_one()

        eq_(result['history'], [])

    def get_history_test(self):
        self.collection.remove()
        self.history_collection.remove()
        self.model.save({'name': 'group'})
        group = self.collection.find_one()
        group_id = str(group['_id'])

        self.servers_collection.remove()
        self.servers_collection.insert({
            'alert_group': group_id,
            'name': 'test'
        })

        server = self.servers_collection.find_one()

        rule = {
            "metric_value": "0.1",
            "metric": "CPU",
            "metric_type": "%",
            "threshold": "1",
            "above_below": "above",
            "rule_type": "group",
            "group": group_id,
        }

        self.alerts_collection.remove()
        self.alerts_collection.insert(rule)

        rule = self.alerts_collection.find_one()
        rule_id = str(rule['_id'])

        alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
        self.model.save_occurence(alerts, server)

        history = self.model.get_history(rule['_id'], server['_id'])

        eq_(len(history), 1)

    def delete_alerts_for_group_test(self):
        self.alerts_collection.remove()
        self.collection.remove()
        self.history_collection.remove()
        self.model.save({'name': 'group'})
        group = self.collection.find_one()
        group_id = str(group['_id'])

        self.servers_collection.remove()
        self.servers_collection.insert({
            'alert_group': group_id,
            'name': 'test'
        })

        server = self.servers_collection.find_one()

        rule = {
            "metric_value": "0.1",
            "metric": "CPU",
            "metric_type": "%",
            "threshold": "1",
            "above_below": "above",
            "rule_type": "group",
            "group": group_id,
        }

        self.alerts_collection.remove()
        self.alerts_collection.insert(rule)

        result = self.alerts_collection.count()
        eq_(result, 1)

        self.model.delete_alerts_for_group(group_id)

        result = self.alerts_collection.count()
        eq_(result, 0)
示例#4
0
class AlertGroupsModelTest(unittest.TestCase):

	def setUp(self):
		self.model = AlertGroupsModel()
		self.collection = self.model.mongo.get_collection('alert_groups')
		self.servers_collection = self.model.mongo.get_collection('servers')
		self.history_collection = self.model.mongo.get_collection('alert_groups_history')
		self.alerts_collection = self.model.mongo.get_collection('alerts')


	def save_test(self):
		self.collection.remove()
		self.model.save({'name': 'group'})
		result = self.collection.find_one()

		eq_(result['name'], 'group')
		

	def get_alerts_for_group_test(self):
		self.alerts_collection.remove()

		self.alerts_collection.insert({'group': 'test', 'rule_type': 'group'})
		self.alerts_collection.insert({'group': 'test', 'rule_type': 'group'})
		
		result = self.model.get_alerts_for_group('test')

		eq_(len(result), 2)


	def save_occurence_test(self):
		self.collection.remove()
		self.history_collection.remove()
		self.model.save({'name': 'group'})
		group = self.collection.find_one()
		group_id = str(group['_id'])

		self.servers_collection.remove()
		self.servers_collection.insert({'alert_group': group_id, 'name': 'test'})

		server = self.servers_collection.find_one()

		rule = {
			"metric_value": "0.1",
			"metric": "CPU",
			"metric_type": "%",
			"threshold": "1",
			"above_below": "above",
			"rule_type": "group",
			"group": group_id,
		}

		self.alerts_collection.remove()
		self.alerts_collection.insert(rule)

		rule = self.alerts_collection.find_one()
		rule_id = str(rule['_id'])

		alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
		self.model.save_occurence(alerts, server)

		alerts = {'cpu': [{'alert_on': 25, 'rule': rule_id}]}
		self.model.save_occurence(alerts, server)

		result = self.history_collection.find_one()
		
		eq_(len(result['history']), 2)
		eq_(result['server'], server['_id'])
		eq_(result['alert'], rule['_id'])


	def clear_alert_history_test(self):
		self.collection.remove()
		self.history_collection.remove()
		self.model.save({'name': 'group'})
		group = self.collection.find_one()
		group_id = str(group['_id'])

		self.servers_collection.remove()
		self.servers_collection.insert({'alert_group': group_id, 'name': 'test'})

		server = self.servers_collection.find_one()

		rule = {
			"metric_value": "0.1",
			"metric": "CPU",
			"metric_type": "%",
			"threshold": "1",
			"above_below": "above",
			"rule_type": "group",
			"group": group_id,
		}

		self.alerts_collection.remove()
		self.alerts_collection.insert(rule)

		rule = self.alerts_collection.find_one()
		rule_id = str(rule['_id'])

		alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
		self.model.save_occurence(alerts, server)

		result = self.history_collection.find_one()
		
		eq_(len(result['history']), 1)


		self.model.clear_alert_history(rule['_id'], server['_id'], {})
		result = self.history_collection.find_one()
		
		eq_(result['history'], [])


	def get_history_test(self):
		self.collection.remove()
		self.history_collection.remove()
		self.model.save({'name': 'group'})
		group = self.collection.find_one()
		group_id = str(group['_id'])

		self.servers_collection.remove()
		self.servers_collection.insert({'alert_group': group_id, 'name': 'test'})

		server = self.servers_collection.find_one()

		rule = {
			"metric_value": "0.1",
			"metric": "CPU",
			"metric_type": "%",
			"threshold": "1",
			"above_below": "above",
			"rule_type": "group",
			"group": group_id,
		}

		self.alerts_collection.remove()
		self.alerts_collection.insert(rule)

		rule = self.alerts_collection.find_one()
		rule_id = str(rule['_id'])

		alerts = {'cpu': [{'alert_on': 14, 'rule': rule_id}]}
		self.model.save_occurence(alerts, server)

		history = self.model.get_history(rule['_id'], server['_id'])

		eq_(len(history), 1)


	def delete_alerts_for_group_test(self):
		self.alerts_collection.remove()
		self.collection.remove()
		self.history_collection.remove()
		self.model.save({'name': 'group'})
		group = self.collection.find_one()
		group_id = str(group['_id'])

		self.servers_collection.remove()
		self.servers_collection.insert({'alert_group': group_id, 'name': 'test'})

		server = self.servers_collection.find_one()

		rule = {
			"metric_value": "0.1",
			"metric": "CPU",
			"metric_type": "%",
			"threshold": "1",
			"above_below": "above",
			"rule_type": "group",
			"group": group_id,
		}

		self.alerts_collection.remove()
		self.alerts_collection.insert(rule)

		result = self.alerts_collection.count()
		eq_(result, 1)

		self.model.delete_alerts_for_group(group_id)

		result = self.alerts_collection.count()
		eq_(result, 0)