Add Gnocchi status scenario

This patch is based on [1] and adds 'Gnocchi.get_status' scenario.

[1] https://review.openstack.org/#/c/453861/

Change-Id: I3f5a7d13dbc24840a4cc811f84d063d30339cef4
Signed-off-by: Juha Kosonen <juha.kosonen@nokia.com>
This commit is contained in:
Juha Kosonen 2018-02-05 15:47:23 +02:00
parent 2480e5da0e
commit ed58dd4866
4 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# Copyright 2017 Red Hat, Inc. <http://www.redhat.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from rally import consts
from rally.plugins.openstack import scenario
from rally.plugins.openstack.scenarios.gnocchi import utils as gnocchiutils
from rally.task import validation
"""Scenarios for Gnocchi status."""
@validation.add("required_services",
services=[consts.Service.GNOCCHI])
@validation.add("required_platform", platform="openstack", admin=True)
@scenario.configure(name="Gnocchi.get_status")
class GetStatus(gnocchiutils.GnocchiBase):
def run(self, detailed=False):
"""Get the status of measurements processing.
:param detailed: get detailed output
"""
self.admin_gnocchi.get_status(detailed)

View File

@ -0,0 +1,19 @@
{
"Gnocchi.get_status": [
{
"args": {
"detailed": false
},
"runner": {
"type": "constant",
"times": 10,
"concurrency": 2
},
"sla": {
"failure_rate": {
"max": 0
}
}
}
]
}

View File

@ -0,0 +1,12 @@
---
Gnocchi.get_status:
-
args:
detailed: false
runner:
type: constant
times: 10
concurrency: 2
sla:
failure_rate:
max: 0

View File

@ -0,0 +1,43 @@
# Copyright 2017 Red Hat, Inc. <http://www.redhat.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import mock
from rally.plugins.openstack.scenarios.gnocchi import status
from tests.unit import test
class GnocchiStatusTestCase(test.ScenarioTestCase):
def get_test_context(self):
context = super(GnocchiStatusTestCase, self).get_test_context()
context.update({
"admin": {
"user_id": "fake",
"credential": mock.MagicMock()
}
})
return context
def setUp(self):
super(GnocchiStatusTestCase, self).setUp()
patch = mock.patch(
"rally.plugins.openstack.services.gnocchi.metric.GnocchiService")
self.addCleanup(patch.stop)
self.mock_metric = patch.start()
def test_get_status(self):
metric_service = self.mock_metric.return_value
status.GetStatus(self.context).run(False)
metric_service.get_status.assert_called_once_with(False)