Merge "Add validate monasca service to authenticate.py"
This commit is contained in:
commit
d0e2847946
@ -104,6 +104,7 @@ class _Service(utils.ImmutableMixin, utils.EnumMixin):
|
||||
NEUTRON = "neutron"
|
||||
DESIGNATE = "designate"
|
||||
CEILOMETER = "ceilometer"
|
||||
MONASCA = "monasca"
|
||||
S3 = "s3"
|
||||
TROVE = "trove"
|
||||
SAHARA = "sahara"
|
||||
@ -130,6 +131,7 @@ class _ServiceType(utils.ImmutableMixin, utils.EnumMixin):
|
||||
NETWORK = "network"
|
||||
DNS = "dns"
|
||||
METERING = "metering"
|
||||
MONITORING = "monitoring"
|
||||
S3 = "s3"
|
||||
DATABASE = "database"
|
||||
DATA_PROCESSING = "data-processing"
|
||||
@ -154,6 +156,7 @@ class _ServiceType(utils.ImmutableMixin, utils.EnumMixin):
|
||||
self.NETWORK: _Service.NEUTRON,
|
||||
self.DNS: _Service.DESIGNATE,
|
||||
self.METERING: _Service.CEILOMETER,
|
||||
self.MONITORING: _Service.MONASCA,
|
||||
self.S3: _Service.S3,
|
||||
self.DATABASE: _Service.TROVE,
|
||||
self.DATA_PROCESSING: _Service.SAHARA,
|
||||
|
@ -12,6 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from rally import consts
|
||||
from rally.plugins.openstack import scenario
|
||||
from rally.task import atomic
|
||||
from rally.task import validation
|
||||
@ -111,3 +112,20 @@ class Authenticate(scenario.OpenStackScenario):
|
||||
for i in range(repetitions):
|
||||
with atomic.ActionTimer(self, "authenticate.validate_heat"):
|
||||
list(heat_client.stacks.list(limit=0))
|
||||
|
||||
@validation.number("repetitions", minval=1)
|
||||
@validation.required_openstack(users=True)
|
||||
@validation.required_services(consts.Service.MONASCA)
|
||||
@scenario.configure()
|
||||
def validate_monasca(self, repetitions):
|
||||
"""Check Monasca Client to ensure validation of token.
|
||||
|
||||
Creation of the client does not ensure validation of the token.
|
||||
We have to do some minimal operation to make sure token gets validated.
|
||||
|
||||
:param repetitions: number of times to validate
|
||||
"""
|
||||
monasca_client = self.clients("monasca")
|
||||
for i in range(repetitions):
|
||||
with atomic.ActionTimer(self, "authenticate.validate_monasca"):
|
||||
list(monasca_client.metrics.list(limit=0))
|
||||
|
@ -768,6 +768,12 @@ class FakeMeterManager(FakeManager):
|
||||
return ["fake-meter"]
|
||||
|
||||
|
||||
class FakeMetricsManager(FakeManager):
|
||||
|
||||
def list(self):
|
||||
return ["fake-metric"]
|
||||
|
||||
|
||||
class FakeCeilometerResourceManager(FakeManager):
|
||||
|
||||
def get(self, resource_id):
|
||||
@ -916,7 +922,8 @@ class FakeObjectManager(FakeManager):
|
||||
class FakeServiceCatalog(object):
|
||||
def get_endpoints(self):
|
||||
return {"image": [{"publicURL": "http://fake.to"}],
|
||||
"metering": [{"publicURL": "http://fake.to"}]}
|
||||
"metering": [{"publicURL": "http://fake.to"}],
|
||||
"monitoring": [{"publicURL": "http://fake.to"}]}
|
||||
|
||||
def url_for(self, **kwargs):
|
||||
return "http://fake.to"
|
||||
@ -1027,6 +1034,12 @@ class FakeCeilometerClient(object):
|
||||
self.query_alarm_history = FakeQueryManager()
|
||||
|
||||
|
||||
class FakeMonascaClient(object):
|
||||
|
||||
def __init__(self):
|
||||
self.metrics = FakeMetricsManager()
|
||||
|
||||
|
||||
class FakeNeutronClient(object):
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
@ -1453,6 +1466,7 @@ class FakeClients(object):
|
||||
self._mistral = None
|
||||
self._swift = None
|
||||
self._murano = None
|
||||
self._monasca = None
|
||||
self._ec2 = None
|
||||
self._endpoint = endpoint_ or objects.Endpoint(
|
||||
"http://fake.example.org:5000/v2.0/",
|
||||
@ -1508,6 +1522,11 @@ class FakeClients(object):
|
||||
self._ceilometer = FakeCeilometerClient()
|
||||
return self._ceilometer
|
||||
|
||||
def monasca(self):
|
||||
if not self._monasca:
|
||||
self._monasca = FakeMonascaClient()
|
||||
return self._monasca
|
||||
|
||||
def zaqar(self):
|
||||
if not self._zaqar:
|
||||
self._zaqar = FakeZaqarClient()
|
||||
|
@ -67,3 +67,11 @@ class AuthenticateTestCase(test.ScenarioTestCase):
|
||||
scenario_inst.validate_heat(5)
|
||||
self.clients("heat").stacks.list.assert_called_with(limit=0)
|
||||
self.assertEqual(self.clients("heat").stacks.list.call_count, 5)
|
||||
|
||||
def test_validate_monasca(self):
|
||||
scenario_inst = authenticate.Authenticate()
|
||||
with atomic.ActionTimer(scenario_inst,
|
||||
"authenticate.validate_monasca"):
|
||||
scenario_inst.validate_monasca(5)
|
||||
self.clients("monasca").metrics.list.assert_called_with(limit=0)
|
||||
self.assertEqual(self.clients("monasca").metrics.list.call_count, 5)
|
||||
|
Loading…
x
Reference in New Issue
Block a user