Add the kuryr plugin for rally
1. Following Rally plugin structure, create the kuryr plugin. 2. Add one scenario of listing the networks. 3. Add the task file to trigger the scenario. Currently, users can try this task (with rally installed) by running: rally --plugin-paths rally-jobs/plugins/ task start rally-jobs/tasks/scenarios/list_networks.json 4. Merge gal's update on the gate task yaml. implements blueprint: fullstack-testing Change-Id: Ie68c4f4f70a81cfeafe2b13e2a896570576a6892
This commit is contained in:
parent
79a47e4c86
commit
cf2853a36d
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
NeutronNetworks.create_and_list_networks:
|
||||
Kuryr.list_networks:
|
||||
-
|
||||
runner:
|
||||
type: "constant"
|
||||
|
@ -7,8 +7,8 @@
|
|||
concurrency: 20
|
||||
context:
|
||||
users:
|
||||
tenants: 1
|
||||
users_per_tenant: 1
|
||||
tenants: 2
|
||||
users_per_tenant: 2
|
||||
quotas:
|
||||
neutron:
|
||||
network: -1
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
# Copyright 2016: IBM 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.
|
||||
|
||||
import utils
|
||||
|
||||
from rally.plugins.openstack import scenario
|
||||
from rally.task import validation
|
||||
|
||||
|
||||
class Kuryr(utils.KuryrScenario):
|
||||
"""Benchmark scenarios for Kuryr."""
|
||||
|
||||
@validation.required_openstack(users=True)
|
||||
@scenario.configure(context={"cleanup": ["kuryr"]})
|
||||
def list_networks(self, network_list_args=None):
|
||||
"""List the networks.
|
||||
|
||||
Measure the "docker network ls" command performance under kuryr.
|
||||
|
||||
This will call the docker client API to list networks
|
||||
|
||||
TODO (baohua):
|
||||
1. may support tenant/user in future.
|
||||
2. validation.required_services add KURYR support
|
||||
|
||||
:param network_list_args: dict: names, ids
|
||||
"""
|
||||
self._list_networks(network_list_args or {})
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright 2016: IBM 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.
|
||||
|
||||
import docker
|
||||
|
||||
from rally.common import logging
|
||||
from rally.plugins.openstack import scenario
|
||||
from rally.task import atomic
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class KuryrScenario(scenario.OpenStackScenario):
|
||||
"""Base class for Kuryr scenarios with basic atomic actions."""
|
||||
|
||||
def __init__(self, context=None, admin_clients=None, clients=None):
|
||||
super(KuryrScenario, self).__init__(context, admin_clients, clients)
|
||||
self.docker_client = docker.Client(base_url='tcp://0.0.0.0:2375')
|
||||
|
||||
@atomic.action_timer("kuryr.list_networks")
|
||||
def _list_networks(self, network_list_args):
|
||||
"""Return user networks list.
|
||||
|
||||
:param network_list_args: network list options
|
||||
"""
|
||||
LOG.debug("Running the list_networks scenario")
|
||||
names = network_list_args.get('names')
|
||||
ids = network_list_args.get('ids')
|
||||
return self.docker_client.networks(names, ids)
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"Kuryr.list_networks": [
|
||||
{
|
||||
"runner": {
|
||||
"type": "constant",
|
||||
"concurrency": 10,
|
||||
"times": 100
|
||||
},
|
||||
"args": {
|
||||
"network_list_args": {}
|
||||
},
|
||||
"context": {
|
||||
"users": {
|
||||
"project_domain": "default",
|
||||
"users_per_tenant": 3,
|
||||
"tenants": 3,
|
||||
"resource_management_workers": 10,
|
||||
"user_domain": "default"
|
||||
},
|
||||
"quotas": {
|
||||
"neutron": {
|
||||
"network": -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue