2332e312bc
We need to reduce amount of works in our glossary Rally task commands are based on what is in rally/benchmark So it will be better to call this directory properly Change-Id: I7dccdec82c24942517cb2611a8e12218db6118f1
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
# Copyright 2015: Mirantis Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.common.i18n import _
|
|
from rally.common.plugin import plugin
|
|
from rally.task import sla
|
|
|
|
|
|
@plugin.configure(name="max_duration_range")
|
|
class MaxDurationRange(sla.SLA):
|
|
"""Maximum allowed duration range in seconds."""
|
|
|
|
CONFIG_SCHEMA = {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"exclusiveMinimum": True
|
|
}
|
|
|
|
def __init__(self, criterion_value):
|
|
super(MaxDurationRange, self).__init__(criterion_value)
|
|
self._min = 0
|
|
self._max = 0
|
|
|
|
def add_iteration(self, iteration):
|
|
|
|
# Skipping failed iterations (that raised exceptions)
|
|
if iteration.get("error"):
|
|
return self.success # This field is defined in base class
|
|
|
|
# Updating _min and _max values
|
|
self._max = max(self._max, iteration["duration"])
|
|
self._min = min(self._min, iteration["duration"])
|
|
|
|
# Updating successfulness based on new max and min values
|
|
self.success = self._max - self._min <= self.criterion_value
|
|
return self.success
|
|
|
|
def details(self):
|
|
return (_("%s - Maximum allowed duration range: %.2f%% <= %.2f%%") %
|
|
(self.status(), self._max - self._min, self.criterion_value))
|