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 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 post(self, request, server_key): status = settings.API_RESULTS['not-found'] data = request.data server = server_model.get_server_by_key(server_key) valid_keys = ['ip_address', 'processor', 'distro', 'uptime'] if server: if set(data.keys()).issubset(valid_keys): server_model.update(data, server['_id']) status = settings.API_RESULTS['ok'] return Response({'status': status})
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 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 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 allow_request(self, request, view): request.server = None allow = True view_name = view.get_view_name() allowed_views = [u'System Data', u'Collectd Data', u'Legacy System Data'] if view_name in allowed_views: server_key = view.kwargs.get('server_key') server = server_model.get_server_by_key(server_key) if server: request.server = server # Needed in the Models server_status = throttle_status(server=server) if server_status.allow == False: allow = False return allow
def allow_request(self, request, view): request.server = None allow = True view_name = view.get_view_name() allowed_views = [ u'System Data', u'Collectd Data', u'Legacy System Data' ] if view_name in allowed_views: server_key = view.kwargs.get('server_key') server = server_model.get_server_by_key(server_key) if server: request.server = server # Needed in the Models server_status = throttle_status(server=server) if server_status.allow == False: allow = False return allow
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 post(self, request, server_key): server = server_model.get_server_by_key(server_key) response_status = status.HTTP_200_OK if server else status.HTTP_403_FORBIDDEN return Response(status=response_status)