Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 1 | # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| 2 | # not use this file except in compliance with the License. You may obtain |
| 3 | # a copy of the License at |
| 4 | # |
| 5 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 6 | # |
| 7 | # Unless required by applicable law or agreed to in writing, software |
| 8 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| 9 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| 10 | # License for the specific language governing permissions and limitations |
| 11 | # under the License. |
| 12 | |
Matthew Treinish | 990f484 | 2015-07-31 19:09:34 -0400 | [diff] [blame] | 13 | from tempest_lib import decorators |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 14 | import testtools |
| 15 | |
| 16 | from tempest.api.telemetry import base |
| 17 | from tempest import config |
| 18 | from tempest import test |
| 19 | |
| 20 | CONF = config.CONF |
| 21 | |
| 22 | |
| 23 | class TelemetryNotificationAPITestJSON(base.BaseTelemetryTest): |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 24 | |
| 25 | @classmethod |
Rohan Kanade | d114a13 | 2015-02-07 11:11:16 +0530 | [diff] [blame] | 26 | def skip_checks(cls): |
| 27 | super(TelemetryNotificationAPITestJSON, cls).skip_checks() |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 28 | if CONF.telemetry.too_slow_to_test: |
| 29 | raise cls.skipException("Ceilometer feature for fast work mysql " |
| 30 | "is disabled") |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 31 | |
Chris Hoge | 7579c1a | 2015-02-26 14:12:15 -0800 | [diff] [blame] | 32 | @test.idempotent_id('d7f8c1c8-d470-4731-8604-315d3956caad') |
gordon chung | 852446e | 2015-06-29 16:35:02 -0400 | [diff] [blame] | 33 | @test.services('compute') |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 34 | def test_check_nova_notification(self): |
| 35 | |
David Kranz | 0fb1429 | 2015-02-11 15:55:20 -0500 | [diff] [blame] | 36 | body = self.create_server() |
Vadim Rovachev | 7bcea35 | 2013-12-26 15:56:17 +0400 | [diff] [blame] | 37 | |
| 38 | query = ('resource', 'eq', body['id']) |
| 39 | |
| 40 | for metric in self.nova_notifications: |
| 41 | self.await_samples(metric, query) |
| 42 | |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 43 | @test.attr(type="smoke") |
Chris Hoge | 7579c1a | 2015-02-26 14:12:15 -0800 | [diff] [blame] | 44 | @test.idempotent_id('04b10bfe-a5dc-47af-b22f-0460426bf498') |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 45 | @test.services("image") |
| 46 | @testtools.skipIf(not CONF.image_feature_enabled.api_v1, |
| 47 | "Glance api v1 is disabled") |
| 48 | def test_check_glance_v1_notifications(self): |
David Kranz | a5299eb | 2015-01-15 17:24:05 -0500 | [diff] [blame] | 49 | body = self.create_image(self.image_client) |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 50 | self.image_client.update_image(body['id'], data='data') |
| 51 | |
| 52 | query = 'resource', 'eq', body['id'] |
| 53 | |
| 54 | self.image_client.delete_image(body['id']) |
| 55 | |
| 56 | for metric in self.glance_notifications: |
| 57 | self.await_samples(metric, query) |
| 58 | |
| 59 | @test.attr(type="smoke") |
Chris Hoge | 7579c1a | 2015-02-26 14:12:15 -0800 | [diff] [blame] | 60 | @test.idempotent_id('c240457d-d943-439b-8aea-85e26d64fe8e') |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 61 | @test.services("image") |
| 62 | @testtools.skipIf(not CONF.image_feature_enabled.api_v2, |
| 63 | "Glance api v2 is disabled") |
| 64 | def test_check_glance_v2_notifications(self): |
David Kranz | a5299eb | 2015-01-15 17:24:05 -0500 | [diff] [blame] | 65 | body = self.create_image(self.image_client_v2) |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 66 | |
Ken'ichi Ohmichi | 66494e9 | 2015-06-08 04:28:10 +0000 | [diff] [blame] | 67 | self.image_client_v2.store_image_file(body['id'], "file") |
| 68 | self.image_client_v2.load_image_file(body['id']) |
Vadim Rovachev | 80ee4e1 | 2014-02-05 16:59:07 +0400 | [diff] [blame] | 69 | |
| 70 | query = 'resource', 'eq', body['id'] |
| 71 | |
| 72 | for metric in self.glance_v2_notifications: |
| 73 | self.await_samples(metric, query) |
gordon chung | ee23ddb | 2015-02-11 20:05:07 -0500 | [diff] [blame] | 74 | |
| 75 | |
| 76 | class TelemetryNotificationAdminAPITestJSON(base.BaseTelemetryAdminTest): |
| 77 | |
| 78 | @classmethod |
| 79 | def skip_checks(cls): |
| 80 | super(TelemetryNotificationAdminAPITestJSON, cls).skip_checks() |
| 81 | if CONF.telemetry.too_slow_to_test: |
| 82 | raise cls.skipException("Ceilometer feature for fast work mysql " |
| 83 | "is disabled") |
| 84 | |
| 85 | @test.idempotent_id('29604198-8b45-4fc0-8af8-1cae4f94ebe9') |
| 86 | @test.services('compute') |
Matthew Treinish | 990f484 | 2015-07-31 19:09:34 -0400 | [diff] [blame] | 87 | @decorators.skip_because(bug='1480490') |
gordon chung | ee23ddb | 2015-02-11 20:05:07 -0500 | [diff] [blame] | 88 | def test_check_nova_notification_event_and_meter(self): |
| 89 | |
| 90 | body = self.create_server() |
| 91 | |
| 92 | if CONF.telemetry_feature_enabled.events: |
| 93 | query = ('instance_id', 'eq', body['id']) |
| 94 | self.await_events(query) |
| 95 | |
| 96 | query = ('resource', 'eq', body['id']) |
| 97 | for metric in self.nova_notifications: |
| 98 | self.await_samples(metric, query) |