def test_get_metric_data(self, mock_get_metric_data, mock_list_secrets, mock_list_servers, *args):
        server_id_1 = utils.generate_id('server')
        server_id_2 = utils.generate_id('server')
        end = datetime.utcnow()
        start = end - timedelta(days=1)
        start_ts = int(time.mktime(start.timetuple()))

        mock_get_metric_data.return_value = {
            'labels': [start_ts, start_ts + 3600, start_ts + (3600 * 2), start_ts + (3600 * 3),
                       start_ts + (3600 * 4)],
            'values': [1, 2, 3, 4, 5]
        }

        mock_list_secrets.return_value = {
            'results': [{
                'secret_id': utils.generate_id('secret')
            }],
            'total_count': 1
        }

        mock_list_servers.return_value = {
            'results': [{
                'server_id': server_id_1,
                'reference': {'resource_id': 'arn:aws:ec2:ap-northeast-2:123456789012:instance/i-1234'},
                'collection_info': {'secrets': [utils.generate_id('secret')]}
            }, {
                'server_id': server_id_2,
                'reference': {'resource_id': 'arn:aws:ec2:ap-northeast-2:123456789012:instance/i-4567'},
                'collection_info': {'secrets': [utils.generate_id('secret')]}
            }],
            'total_count': 2
        }

        new_data_source_vo = DataSourceFactory(domain_id=self.domain_id)
        params = {
            'data_source_id': new_data_source_vo.data_source_id,
            'resource_type': 'inventory.Server',
            'resources': [server_id_1, server_id_2],
            'metric': 'cpu',
            'start': start.isoformat(),
            'end': end.isoformat(),
            'domain_id': self.domain_id
        }

        self.transaction.method = 'get_data'
        metric_svc = MetricService(transaction=self.transaction)
        metrics_data_info = metric_svc.get_data(params.copy())

        print_data(metrics_data_info, 'test_get_metric_data')
        MetricDataInfo(metrics_data_info)

        self.assertEqual(params['domain_id'], metrics_data_info['domain_id'])
Esempio n. 2
0
    def test_get_metric_data(self, mock_get_metric_data, *args):
        end = datetime.utcnow()
        start = end - timedelta(days=1)
        mock_get_metric_data.return_value = {
            'labels': [{
                'seconds': 1586988300
            }, {
                'seconds': 1586988000
            }, {
                'seconds': 1586987700
            }, {
                'seconds': 1586987400
            }, {
                'seconds': 1586987100
            }, {
                'seconds': 1586986800
            }, {
                'seconds': 1586986500
            }, {
                'seconds': 1586986200
            }, {
                'seconds': 1586985900
            }, {
                'seconds': 1586985600
            }, {
                'seconds': 1586985300
            }, {
                'seconds': 1586985000
            }],
            'values':
            [4.0, 4.0, 4.0, 4.0, 4.4, 4.4, 4.0, 4.0, 6.0, 4.0, 4.0, 4.4]
        }

        params = {
            'options': {},
            'secret_data': {},
            'resource':
            'arn:aws:ec2:ap-northeast-2:072548720675:instance/i-0547704161b1aa823',
            'metric': 'CPUUtilization',
            'start': start.isoformat(),
            'end': end.isoformat()
        }

        self.transaction.method = 'get_data'
        metric_svc = MetricService(transaction=self.transaction)
        for response in metric_svc.get_data(params.copy()):
            print_data(response, 'test_get_metric_data')
            MetricDataInfo(response)
    def test_get_metric_data(self, mock_get_metric_data, *args):
        end = datetime.utcnow()
        start = end - timedelta(days=1)
        mock_get_metric_data.return_value = {
            'labels': [{
                'seconds': 1586988300
            }, {
                'seconds': 1586988000
            }, {
                'seconds': 1586987700
            }, {
                'seconds': 1586987400
            }, {
                'seconds': 1586987100
            }, {
                'seconds': 1586986800
            }, {
                'seconds': 1586986500
            }, {
                'seconds': 1586986200
            }, {
                'seconds': 1586985900
            }, {
                'seconds': 1586985600
            }, {
                'seconds': 1586985300
            }, {
                'seconds': 1586985000
            }],
            'values':
            [4.0, 4.0, 4.0, 4.0, 4.4, 4.4, 4.0, 4.0, 6.0, 4.0, 4.0, 4.4]
        }

        params = {
            'options': {},
            'secret_data': {},
            'resource':
            'subscriptions/xxx/resourceGroups/cloudone/providers/Microsoft.Compute/virtualMachines/cloud-vm',
            'metric': 'CPUUtilization',
            'start': start.isoformat(),
            'end': end.isoformat()
        }

        self.transaction.method = 'get_data'
        metric_svc = MetricService(transaction=self.transaction)
        response = metric_svc.get_data(params.copy())
        print_data(response, 'test_get_metric_data')
        PluginMetricDataResponse(response)
    def test_get_metric_data(self, mock_get_metric_data, *args):
        end = datetime.utcnow()
        start = end - timedelta(days=1)
        mock_get_metric_data.return_value = {
            'labels': [
                {'seconds': 1586988300},
                {'seconds': 1586988000},
                {'seconds': 1586987700},
                {'seconds': 1586987400},
                {'seconds': 1586987100},
                {'seconds': 1586986800},
                {'seconds': 1586986500},
                {'seconds': 1586986200},
                {'seconds': 1586985900},
                {'seconds': 1586985600},
                {'seconds': 1586985300},
                {'seconds': 1586985000}
            ],
            'values': [4.0, 4.0, 4.0, 4.0, 4.4, 4.4, 4.0, 4.0, 6.0, 4.0, 4.0, 4.4]
        }

        params = {
            'options': {},
            'secret_data': {},
            'resource': {
                "namespace": "AWS/EC2",
                "dimensions": [
                    {
                        "Name": "InstanceId",
                        "Value": "i-011e8d755568b446b"
                    }
                ],
                "region_name": "ap-northeast-2"
            },
            'metric': 'CPUUtilization',
            'start': start.isoformat(),
            'end': end.isoformat()
        }

        self.transaction.method = 'get_data'
        metric_svc = MetricService(transaction=self.transaction)
        response = metric_svc.get_data(params.copy())
        print_data(response, 'test_get_metric_data')
        MetricDataInfo(response)