Exemplo n.º 1
0
    def test_statnode(self, mock_dt, mock_requests, mock_Popen):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        # predictable Popen().communicate
        mock_Popen(['ifconfig', 'lo']).communicate.return_value = ('', '')
        # No psutil -> just don't exception out
        node = StatNode(log_type='stats_log', api=self.watcher.api)
        stats = node._gather()
        expected_stats = {
            'cpu_times_percent': [{
                'idle': 90.49773755656109,
                'nice': 0.0,
                'system': 9.049773755656108,
                'user': 0.45248868778280543
            }],
            'virtual_memory': {
                'free': 4,
                'percent': 80.0,
                'total': 20,
                'used': 18
            },
            'disk_usage': [{
                'total': 150,
                'path': '/',
                'used': 40,
                'percent': 88.3,
                'free': 110
            }],
            'net_io_counters': [{
                'nic': 'lo',
                'B_recv': 30,
                'B_sent': 30,
                'p_recv': 18,
                'p_sent': 18
            }],
            'starttime':
            now.isoformat(),
            'runtime':
            '0:00:00',
        }
        self.assertEqual(stats, expected_stats)

        def fetch_request(*args, **kwargs):
            data = kwargs['data'].read()
            data_dict = loads(data)
            # verify the data we're sending matches our expectation
            self.assertEqual(expected_stats, data_dict)
            return Mock()

        mock_requests.request.side_effect = fetch_request

        # now check the stuff we'll send (trigger the 1 minute interval)
        with patch('ona_service.log_watcher.utcnow') as mock_now:
            mock_now.side_effect = lambda: now + timedelta(seconds=61)
            node.check_data()
Exemplo n.º 2
0
    def test_statnode_nic_new(self, mock_Popen):
        # predictable Popen().communicate
        out = (
            'lo\tLink encap:Ethernet  HWaddr ff:ff:ff:ff:ff:3f\n'
            'inet6 addr: ffff::fff:ffff:ffff:fff/64 Scope:Link\n'
            'UP BROADCAST RUNNING PROMISC MULTICAST\n'
            'MTU:1500  Metric:1\n'
            'RX packets:19738210 errors:f dropped:8 overruns:1 frame 5\n'
            'RX bytes:2131412\n'
        )
        mock_Popen(['ifconfig', 'lo']).communicate.return_value = (out, '')

        node = StatNode(log_type='stats_log', api=self.watcher.api)
        stats = node._net_io_counters()
        expected_stats = [
            {'nic': 'lo', 'B_recv': 31, 'B_sent': 31, 'p_recv': 19,
             'p_sent': 19, 'dropped': 8, 'overruns': 1}
        ]
        self.assertEqual(stats, expected_stats)
Exemplo n.º 3
0
    def test_statnode_nic(self, mock_Popen):
        # predictable Popen().communicate
        out = (
            'lo\tLink encap:Ethernet  HWaddr ff:ff:ff:ff:ff:3f\n'
            'inet6 addr: ffff::fff:ffff:ffff:fff/64 Scope:Link\n'
            'UP BROADCAST RUNNING PROMISC MULTICAST\n'
            'MTU:1500  Metric:1\n'
            'RX packets:19738210 errors:f dropped:8 overruns:1 frame 5\n'
            'RX bytes:2131412\n'
        )
        mock_Popen(['ifconfig', 'lo']).communicate.return_value = (out, '')

        node = StatNode(log_type='stats_log', api=self.watcher.api)
        stats = node._net_io_counters()
        expected_stats = [
            {'nic': 'lo', 'B_recv': 30, 'B_sent': 30, 'p_recv': 18,
             'p_sent': 18, 'dropped': 8, 'overruns': 1}
        ]
        self.assertEqual(stats, expected_stats)
Exemplo n.º 4
0
    def test_statnode(self, mock_dt, mock_requests, mock_Popen):
        now = datetime.utcnow()
        mock_dt.utcnow.return_value = now
        # predictable Popen().communicate
        mock_Popen(['ifconfig', 'lo']).communicate.return_value = ('', '')
        # No psutil -> just don't exception out
        node = StatNode(log_type='stats_log', api=self.watcher.api)
        stats = node._gather()
        expected_stats = {
            'cpu_times_percent': [
                {'idle': 90.49773755656109, 'nice': 0.0,
                 'system': 9.049773755656108, 'user': 0.45248868778280543}
            ],
            'virtual_memory': {
                'free': 4, 'percent': 80.0, 'total': 20, 'used': 18
            },
            'disk_usage': [
                {'total': 150, 'path': '/', 'used': 40,
                 'percent': 88.3, 'free': 110}
            ],
            'net_io_counters': [
                {'nic': 'lo', 'B_recv': 30, 'B_sent': 30,
                 'p_recv': 18, 'p_sent': 18}
            ],
            'starttime': now.isoformat(),
            'runtime': '0:00:00',
        }
        self.assertEqual(stats, expected_stats)

        def fetch_request(*args, **kwargs):
            data = kwargs['data'].read()
            data_dict = loads(data)
            # verify the data we're sending matches our expectation
            self.assertEqual(expected_stats, data_dict)
            return Mock()
        mock_requests.request.side_effect = fetch_request

        # now check the stuff we'll send (trigger the 1 minute interval)
        with patch('ona_service.log_watcher.utcnow') as mock_now:
            mock_now.side_effect = lambda: now + timedelta(seconds=61)
            node.check_data()
Exemplo n.º 5
0
 def test_statnode_virtual_memory_new(self):
     node = StatNode(log_type='stats_log', api=self.watcher.api)
     actual = node._virtual_memory()
     expected = {'free': 5, 'percent': 81.0, 'total': 21, 'used': 19}
     self.assertEqual(actual, expected)
Exemplo n.º 6
0
 def test_statnode_nopsutil(self):
     # No psutil -> just don't exception out
     node = StatNode(log_type='stats_log', api=self.watcher.api)
     node.check_data()
     stats = node._gather()
     self.assertEqual(stats, {})
Exemplo n.º 7
0
 def test_statnode_nopsutil(self):
     # No psutil -> just don't exception out
     node = StatNode(log_type='stats_log', api=self.watcher.api)
     node.check_data()
     stats = node._gather()
     self.assertEqual(stats, {})