def throttle_check_period_test(self): self._cleanup() buffer_period = 15 # For collectd # No data - first check server_key = server_model.add('test_name', account_id=1, check_every=60) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True self._cleanup() now = unix_utc_now() server_key = server_model.add('test_name', account_id=1, check_every=60) server = server_model.get_server_by_key(server_key) data = {'last_check': now-61} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True last_check_plus_buffer = now-54+buffer_period data = {'last_check': last_check_plus_buffer} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == False self._cleanup() server_key = server_model.add('test_name', account_id=1, check_every=300) server = server_model.get_server_by_key(server_key) data = {'last_check': now-301} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True self._cleanup()
def throttle_check_period_test(self): self._cleanup() buffer_period = 15 # For collectd # No data - first check server_key = server_model.add('test_name', account_id=1, check_every=60) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True self._cleanup() now = unix_utc_now() server_key = server_model.add('test_name', account_id=1, check_every=60) server = server_model.get_server_by_key(server_key) data = {'last_check': now - 61} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True last_check_plus_buffer = now - 54 + buffer_period data = {'last_check': last_check_plus_buffer} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == False self._cleanup() server_key = server_model.add('test_name', account_id=1, check_every=300) server = server_model.get_server_by_key(server_key) data = {'last_check': now - 301} server_model.update(data, server['_id']) server = server_model.get_server_by_key(server_key) result = throttle_status(server=server) assert result.allow == True self._cleanup()
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_model.add('testserver', account_id=self.account_id) self.server = server_model.collection.find_one()
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_model.add('testserver', account_id=self.account_id) self.server = server_model.collection.find_one() url = reverse('ajax_get_data_after') self.base_ajax_url = "{0}?server_id={1}".format(url, self.server['_id'])
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_model.add('testserver', account_id=self.account_id) self.server = server_model.collection.find_one() url = reverse('ajax_get_data_after') self.base_ajax_url = "{0}?server_id={1}".format( url, self.server['_id'])
def setUp(self): User.objects.all().delete() self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_model.add('testserver', account_id=self.account_id) self.server = server_model.collection.find_one() self.server_id = self.server['_id'] process_model.insert({'name': 'test', 'server': self.server['_id']}) self.process = process_model.collection.find_one()
def test_list_servers(self): self._cleanup() url = reverse('api_servers_list') response = self.c.get(url) response = json.loads(response.content.decode('utf-8')) assert len(response['servers']) == 0 for i in range(0, 10): server_model.add('test') response = self.c.get(url) response = json.loads(response.content.decode('utf-8')) assert len(response['servers']) == 10
def setUp(self): self.account_id = 1 server_key = server_model.add('testserver', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id'] self.process = process_model.get_or_create(server_id=self.server_id, name='testprocess') self.process_id = self.process['_id']
def setUp(self): self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 server_model.collection.remove() server_key = server_model.add('testserver', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id']
def setUp(self): self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 server_model.collection.remove() server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id']
def delete_server_alerts_test(self): server_model.collection.remove() self.collection.remove() server_id = server_model.add('testserver') self.collection.insert({"rule_type" : "process",}) self.collection.insert({"rule_type" : "system",}) self.collection.insert({"rule_type" : "log", "server": server_id}) self.collection.insert({"rule_type" : "dummy", "server":server_id}) self.collection.insert({"rule_type" : "dummy", "server": server_id}) self.model.delete_server_alerts(server_id) eq_(self.collection.count(), 2) self.collection.remove()
def _create_server(self, name=None, key=None, tags=None): response = {} create_server = False if key: valid_key_format = bool(re.match('[a-z0-9]{32}$', key)) if valid_key_format: create_server = True else: response['status'] = settings.API_RESULTS['unprocessable'] response[ 'error'] = 'Invalid server key. A random 32 character long, lowercase alpha numeric string is required.' else: create_server = True # Default if create_server: tag_ids = tags_model.create_and_return_ids(tags=tags) # Check if a server with this key already exists - provisioning tool, update agent: server = server_model.get_server_by_key(key) if server == None: server_key = server_model.add(name=name, account_id=settings.ACCOUNT_ID, key=key, tags=tag_ids) else: server_key = key data = {'name': name} # New tags sent throught the API if len(tag_ids) > 0: data['tags'] = tag_ids server_model.update(data, server['_id']) name = server.get('name') response = { 'status': settings.API_RESULTS['created'], 'name': name, 'server_key': server_key } return response
def setUp(self): User.objects.all().delete() self.alerter = server_alerter self.user = User.objects.create_user(password='******' , email='*****@*****.**') self.account_id = 1 self.server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(self.server_key) self.server_id = self.server['_id'] self.process = process_model.get_or_create(server_id=self.server_id, name='test') self.process_id = self.process['_id'] self.plugin = plugin_model.get_or_create(server_id=self.server_id, name='testplugin') self.plugin_id = self.plugin['_id'] self.gauge = plugin_model.get_or_create_gauge_by_name(plugin=self.plugin, name='gauge') self.gauge_id = self.gauge['_id']
def _create_server(self, name=None, key=None, tags=None): response = {} create_server = False if key: valid_key_format = bool(re.match('[a-z0-9]{32}$', key)) if valid_key_format: create_server = True else: response['status'] = settings.API_RESULTS['unprocessable'] response['error'] = 'Invalid server key. A random 32 character long, lowercase alpha numeric string is required.' else: create_server = True # Default if create_server: tag_ids = tags_model.create_and_return_ids(tags=tags) # Check if a server with this key already exists - provisioning tool, update agent: server = server_model.get_server_by_key(key) if server == None: server_key = server_model.add(name=name, account_id=settings.ACCOUNT_ID, key=key, tags=tag_ids) else: server_key = key data = {'name': name} # New tags sent throught the API if len(tag_ids) > 0: data['tags'] = tag_ids server_model.update(data, server['_id']) name = server.get('name') response = { 'status': settings.API_RESULTS['created'], 'name': name, 'server_key': server_key } return response
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id'] notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] self.emails = [x['email'] for x in notifications] self.process = process_model.get_or_create(server_id=self.server_id, name='testprocess') self.process_id = self.process['_id']
def save(self): data = self.cleaned_data tags = data.get('tags', []) if len(tags) > 0: data['tags'] = tags_model.get_tags_ids(tags_string=tags) # Update if self.server: server_model.update(data, self.server['_id']) # Create else: server_key = server_model.add(data.get('name'), account_id=settings.ACCOUNT_ID, keep_data=data.get('keep_data'), check_every=data.get('check_every'), tags=data['tags']) server = server_model.get_server_by_key(server_key) return server
def setUp(self): User.objects.all().delete() self.alerter = server_alerter self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(self.server_key) self.server_id = self.server['_id'] self.process = process_model.get_or_create(server_id=self.server_id, name='test') self.process_id = self.process['_id'] self.plugin = plugin_model.get_or_create(server_id=self.server_id, name='testplugin') self.plugin_id = self.plugin['_id'] self.gauge = plugin_model.get_or_create_gauge_by_name( plugin=self.plugin, name='gauge') self.gauge_id = self.gauge['_id']
def get_by_id_test(self): self.collection.remove() server_model.collection.remove() plugin_model.collection.remove() server_id = server_model.add('testserver') plugin = plugin_model.get_or_create(name='testplugin', server_id=server_id) self.collection.insert({ "rule_type" : "process", "server": server_id, "plugin": plugin['_id'], 'sms_recepients': [], 'email_recepients': [], 'webhooks': []} ) alert = self.collection.find_one() alert_from_model = self.model.get_by_id(alert['_id']) assert alert_from_model['plugin'] == plugin['_id']
def setUp(self): self.c = Client() self.user = User.objects.create_user(password='******', email='*****@*****.**') self.account_id = 1 self.c.login(username='******', password='******') server_key = server_model.add('test', account_id=self.account_id) self.server = server_model.get_server_by_key(server_key) self.server_id = self.server['_id'] email_model.insert({'sent_from': '*****@*****.**'}) notifications_model.save(data={"email": "*****@*****.**"}, provider_id="email") notifications = notifications_model.get_all_formated() self.notifications_list = [x['formated_id'] for x in notifications] self.emails = [x['email'] for x in notifications] self.process = process_model.get_or_create(server_id=self.server_id, name='testprocess') self.process_id = self.process['_id']
def save(self): data = self.cleaned_data tags = data.get('tags', []) if len(tags) > 0: data['tags'] = tags_model.get_tags_ids(tags_string=tags) # Update if self.server: server_model.update(data, self.server['_id']) # Create else: server_key = server_model.add( data.get('name'), account_id=settings.ACCOUNT_ID, keep_data=data.get('keep_data'), check_every=data.get('check_every'), tags=data['tags'] ) server = server_model.get_server_by_key(server_key) return server
def test_check_if_server_is_muted(self): self._cleanup() tags_model.get_or_create_by_name('test_tag') tag = tags_model.collection.find_one() server_model.add('name', account_id=1, tags=[tag['_id']]) server = server_model.collection.find_one() # First check, plain server_id data = { 'server': server['_id'], 'period': 0 } alert_mute_servers_model.save(data) result = alert_mute_servers_model.check_if_server_is_muted(server=server) assert result == True # Second check, all servers, no tags alert_mute_servers_model.collection.remove() data = { 'server': 'all', 'period': 0 } alert_mute_servers_model.save(data) result = alert_mute_servers_model.check_if_server_is_muted(server=server) assert result == True # Third check, all servers, different tag alert_mute_servers_model.collection.remove() tags_model.get_or_create_by_name('global_tag') global_tag = tags_model.collection.find_one({'name': 'global_tag'}) data = { 'server': 'all', 'tags': [global_tag['_id']], 'period': 0 } alert_mute_servers_model.save(data) result = alert_mute_servers_model.check_if_server_is_muted(server=server) assert result == False # Check all servers with server_tag included alert_mute_servers_model.collection.remove() data = { 'server': 'all', 'tags': [tag['_id']], 'period': 0 } alert_mute_servers_model.save(data) result = alert_mute_servers_model.check_if_server_is_muted(server=server) assert result == True