Exemplo n.º 1
0
    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']
Exemplo n.º 2
0
    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']
Exemplo n.º 3
0
    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']
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
Arquivo: core.py Projeto: zeus911/amon
    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})
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
    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']
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
    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']
Exemplo n.º 11
0
    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']
Exemplo n.º 12
0
    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
Exemplo n.º 13
0
    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
Exemplo n.º 14
0
    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
Exemplo n.º 15
0
    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']
Exemplo n.º 16
0
    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
Exemplo n.º 17
0
Arquivo: core.py Projeto: zeus911/amon
    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)