~ubuntu-branches/ubuntu/vivid/ceilometer/vivid

« back to all changes in this revision

Viewing changes to ceilometer/tests/network/statistics/opencontrail/test_driver.py

  • Committer: Package Import Robot
  • Author(s): James Page, Corey Bryant, James Page
  • Date: 2015-02-19 14:59:07 UTC
  • mfrom: (1.2.3)
  • Revision ID: package-import@ubuntu.com-20150219145907-9jojybdsl64zcn14
Tags: 2015.1~b2-0ubuntu1
[ Corey Bryant ]
* New upstream release.
  - d/control: Align requirements with upstream.
  - d/p/skip-test.patch: Rebased.

[ James Page ]
* d/rules,d/p/skip-gabbi.patch: Skip tests that rely on python-gabbi until
  packaging and MIR is complete.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
2
2
#
3
 
# Author: Sylvain Afchain <sylvain.afchain@enovance.com>
4
 
#
5
3
# Licensed under the Apache License, Version 2.0 (the "License"); you may
6
4
# not use this file except in compliance with the License. You may obtain
7
5
# a copy of the License at
31
29
                                   return_value=self.fake_ports())
32
30
        self.nc_ports.start()
33
31
 
34
 
        self.nc_networks = mock.patch('ceilometer.neutron_client'
35
 
                                      '.Client.network_get_all',
36
 
                                      return_value=self.fake_networks())
37
 
        self.nc_networks.start()
38
 
 
39
32
        self.driver = driver.OpencontrailDriver()
40
33
        self.parse_url = urlparse.ParseResult('opencontrail',
41
34
                                              '127.0.0.1:8143',
43
36
        self.params = {'password': ['admin'],
44
37
                       'scheme': ['http'],
45
38
                       'username': ['admin'],
46
 
                       'verify_ssl': ['false']}
 
39
                       'verify_ssl': ['false'],
 
40
                       'resource': ['if_stats_list']}
47
41
 
48
42
    @staticmethod
49
43
    def fake_ports():
59
53
                 'tenant_id': '89271fa581ab4380bf172f868c3615f9'}]
60
54
 
61
55
    @staticmethod
62
 
    def fake_networks():
63
 
        return [{'admin_state_up': True,
64
 
                 'id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
65
 
                 'name': 'public',
66
 
                 'provider:network_type': 'gre',
67
 
                 'provider:physical_network': None,
68
 
                 'provider:segmentation_id': 2,
69
 
                 'router:external': True,
70
 
                 'shared': False,
71
 
                 'status': 'ACTIVE',
72
 
                 'subnets': [u'c4b6f5b8-3508-4896-b238-a441f25fb492'],
73
 
                 'tenant_id': '62d6f08bbd3a44f6ad6f00ca15cce4e5'}]
74
 
 
75
 
    @staticmethod
76
56
    def fake_port_stats():
77
57
        return {"value": [{
78
58
            "name": "c588ebb7-ae52-485a-9f0c-b2791c5da196",
85
65
                        "out_bandwidth_usage": 0,
86
66
                        "out_pkts": 5,
87
67
                        "in_pkts": 6,
88
 
                        "name": ("674e553b-8df9-4321-87d9-93ba05b93558:"
 
68
                        "name": ("default-domain:demo:"
89
69
                                 "96d49cc3-4e01-40ce-9cac-c0e32642a442")
90
 
                    }]}}}]}
91
 
 
92
 
    def _test_meter(self, meter_name, expected):
 
70
                    }],
 
71
                    "fip_stats_list": [{
 
72
                        "in_bytes": 33,
 
73
                        "iface_name": ("default-domain:demo:"
 
74
                                       "96d49cc3-4e01-40ce-9cac-c0e32642a442"),
 
75
                        "out_bytes": 44,
 
76
                        "out_pkts": 10,
 
77
                        "virtual_network": "default-domain:openstack:public",
 
78
                        "in_pkts": 11,
 
79
                        "ip_address": "1.1.1.1"
 
80
                    }]
 
81
                }}}]}
 
82
 
 
83
    @staticmethod
 
84
    def fake_port_stats_with_node():
 
85
        return {"value": [{
 
86
            "name": "c588ebb7-ae52-485a-9f0c-b2791c5da196",
 
87
            "value": {
 
88
                "UveVirtualMachineAgent": {
 
89
                    "if_stats_list": [
 
90
                        [[{
 
91
                            "out_bytes": 22,
 
92
                            "in_bandwidth_usage": 0,
 
93
                            "in_bytes": 23,
 
94
                            "out_bandwidth_usage": 0,
 
95
                            "out_pkts": 5,
 
96
                            "in_pkts": 6,
 
97
                            "name": ("default-domain:demo:"
 
98
                                     "96d49cc3-4e01-40ce-9cac-c0e32642a442")
 
99
                        }], 'node1'],
 
100
                        [[{
 
101
                            "out_bytes": 22,
 
102
                            "in_bandwidth_usage": 0,
 
103
                            "in_bytes": 23,
 
104
                            "out_bandwidth_usage": 0,
 
105
                            "out_pkts": 4,
 
106
                            "in_pkts": 13,
 
107
                            "name": ("default-domain:demo:"
 
108
                                     "96d49cc3-4e01-40ce-9cac-c0e32642a442")}],
 
109
                            'node2']
 
110
                    ]
 
111
                }}}]}
 
112
 
 
113
    def _test_meter(self, meter_name, expected, fake_port_stats=None):
 
114
        if not fake_port_stats:
 
115
            fake_port_stats = self.fake_port_stats()
93
116
        with mock.patch('ceilometer.network.'
94
117
                        'statistics.opencontrail.'
95
118
                        'client.NetworksAPIClient.'
96
 
                        'get_port_statistics',
97
 
                        return_value=self.fake_port_stats()) as port_stats:
 
119
                        'get_vm_statistics',
 
120
                        return_value=fake_port_stats) as port_stats:
98
121
 
99
122
            samples = self.driver.get_sample_data(meter_name, self.parse_url,
100
123
                                                  self.params, {})
101
124
 
102
125
            self.assertEqual(expected, [s for s in samples])
103
126
 
104
 
            net_id = '298a3088-a446-4d5a-bad8-f92ecacd786b'
105
 
            port_stats.assert_called_with(net_id)
 
127
            port_stats.assert_called_with('*')
 
128
 
 
129
    def test_switch_port_receive_packets_with_node(self):
 
130
        expected = [(6,
 
131
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
132
                     {'device_owner_id':
 
133
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
134
                      'domain': 'default-domain',
 
135
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
136
                      'project': 'demo',
 
137
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
138
                      'resource': 'if_stats_list'},
 
139
                     mock.ANY),
 
140
                    (13,
 
141
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
142
                     {'device_owner_id':
 
143
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
144
                      'domain': 'default-domain',
 
145
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
146
                      'project': 'demo',
 
147
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
148
                      'resource': 'if_stats_list'},
 
149
                     mock.ANY)]
 
150
        self._test_meter('switch.port.receive.packets', expected,
 
151
                         self.fake_port_stats_with_node())
106
152
 
107
153
    def test_switch_port_receive_packets(self):
108
 
        expected = [
109
 
            (6,
110
 
             '96d49cc3-4e01-40ce-9cac-c0e32642a442',
111
 
             {'device_owner_id': '674e553b-8df9-4321-87d9-93ba05b93558',
112
 
              'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
113
 
              'tenant_id': '89271fa581ab4380bf172f868c3615f9'},
114
 
             mock.ANY)]
 
154
        expected = [(6,
 
155
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
156
                     {'device_owner_id':
 
157
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
158
                      'domain': 'default-domain',
 
159
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
160
                      'project': 'demo',
 
161
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
162
                      'resource': 'if_stats_list'},
 
163
                     mock.ANY)]
115
164
        self._test_meter('switch.port.receive.packets', expected)
116
165
 
117
166
    def test_switch_port_transmit_packets(self):
118
 
        expected = [
119
 
            (5,
120
 
             '96d49cc3-4e01-40ce-9cac-c0e32642a442',
121
 
             {'device_owner_id': '674e553b-8df9-4321-87d9-93ba05b93558',
122
 
              'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
123
 
              'tenant_id': '89271fa581ab4380bf172f868c3615f9'},
124
 
             mock.ANY)]
 
167
        expected = [(5,
 
168
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
169
                     {'device_owner_id':
 
170
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
171
                      'domain': 'default-domain',
 
172
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
173
                      'project': 'demo',
 
174
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
175
                      'resource': 'if_stats_list'},
 
176
                     mock.ANY)]
125
177
        self._test_meter('switch.port.transmit.packets', expected)
126
178
 
127
179
    def test_switch_port_receive_bytes(self):
128
 
        expected = [
129
 
            (23,
130
 
             '96d49cc3-4e01-40ce-9cac-c0e32642a442',
131
 
             {'device_owner_id': '674e553b-8df9-4321-87d9-93ba05b93558',
132
 
              'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
133
 
              'tenant_id': '89271fa581ab4380bf172f868c3615f9'},
134
 
             mock.ANY)]
 
180
        expected = [(23,
 
181
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
182
                     {'device_owner_id':
 
183
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
184
                      'domain': 'default-domain',
 
185
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
186
                      'project': 'demo',
 
187
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
188
                      'resource': 'if_stats_list'},
 
189
                     mock.ANY)]
135
190
        self._test_meter('switch.port.receive.bytes', expected)
136
191
 
137
192
    def test_switch_port_transmit_bytes(self):
138
 
        expected = [
139
 
            (22,
140
 
             '96d49cc3-4e01-40ce-9cac-c0e32642a442',
141
 
             {'device_owner_id': '674e553b-8df9-4321-87d9-93ba05b93558',
142
 
              'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
143
 
              'tenant_id': '89271fa581ab4380bf172f868c3615f9'},
144
 
             mock.ANY)]
145
 
        self._test_meter('switch.port.transmit.bytes', expected)
 
193
        expected = [(22,
 
194
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
195
                     {'device_owner_id':
 
196
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
197
                      'domain': 'default-domain',
 
198
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
199
                      'project': 'demo',
 
200
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
201
                      'resource': 'if_stats_list'},
 
202
                     mock.ANY)]
 
203
        self._test_meter('switch.port.transmit.bytes', expected)
 
204
 
 
205
    def test_switch_port_receive_packets_fip(self):
 
206
        self.params['resource'] = ['fip_stats_list']
 
207
        expected = [(11,
 
208
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
209
                     {'device_owner_id':
 
210
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
211
                      'domain': 'default-domain',
 
212
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
213
                      'project': 'demo',
 
214
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
215
                      'resource': 'fip_stats_list'},
 
216
                     mock.ANY)]
 
217
        self._test_meter('switch.port.receive.packets', expected)
 
218
 
 
219
    def test_switch_port_transmit_packets_fip(self):
 
220
        self.params['resource'] = ['fip_stats_list']
 
221
        expected = [(10,
 
222
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
223
                     {'device_owner_id':
 
224
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
225
                      'domain': 'default-domain',
 
226
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
227
                      'project': 'demo',
 
228
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
229
                      'resource': 'fip_stats_list'},
 
230
                     mock.ANY)]
 
231
        self._test_meter('switch.port.transmit.packets', expected)
 
232
 
 
233
    def test_switch_port_receive_bytes_fip(self):
 
234
        self.params['resource'] = ['fip_stats_list']
 
235
        expected = [(33,
 
236
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
237
                     {'device_owner_id':
 
238
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
239
                      'domain': 'default-domain',
 
240
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
241
                      'project': 'demo',
 
242
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
243
                      'resource': 'fip_stats_list'},
 
244
                     mock.ANY)]
 
245
        self._test_meter('switch.port.receive.bytes', expected)
 
246
 
 
247
    def test_switch_port_transmit_bytes_fip(self):
 
248
        self.params['resource'] = ['fip_stats_list']
 
249
        expected = [(44,
 
250
                     '96d49cc3-4e01-40ce-9cac-c0e32642a442',
 
251
                     {'device_owner_id':
 
252
                      '674e553b-8df9-4321-87d9-93ba05b93558',
 
253
                      'domain': 'default-domain',
 
254
                      'network_id': '298a3088-a446-4d5a-bad8-f92ecacd786b',
 
255
                      'project': 'demo',
 
256
                      'project_id': '89271fa581ab4380bf172f868c3615f9',
 
257
                      'resource': 'fip_stats_list'},
 
258
                     mock.ANY)]
 
259
        self._test_meter('switch.port.transmit.bytes', expected)
 
260
 
 
261
    def test_switch_port_transmit_bytes_non_existing_network(self):
 
262
        self.params['virtual_network'] = ['aaa']
 
263
        self.params['resource'] = ['fip_stats_list']
 
264
        self._test_meter('switch.port.transmit.bytes', [])