diff --git a/browbeat-complete.yaml b/browbeat-complete.yaml index 4baea42b2..7c0c9879f 100644 --- a/browbeat-complete.yaml +++ b/browbeat-complete.yaml @@ -60,6 +60,8 @@ rally: - netcreate-boot: rally/rally-plugins/netcreate-boot - netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping - subnet-router-create: rally/rally-plugins/subnet-router-create + - glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete + benchmarks: - name: authenticate enabled: true @@ -242,6 +244,11 @@ rally: enabled: true num_networks: 50 file: rally/rally-plugins/subnet-router-create/subnet-router-create.yml + - name: glance-create-boot-delete + enabled: true + flavor_name: m1.tiny + image_location: /home/stack/cirros + file: rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml #shaker scenarios require atleast 2 compute nodes shaker: enabled: true diff --git a/browbeat-config.yaml b/browbeat-config.yaml index 19b0100c6..d3a729ece 100644 --- a/browbeat-config.yaml +++ b/browbeat-config.yaml @@ -91,6 +91,7 @@ rally: plugins: - netcreate-boot: rally/rally-plugins/netcreate-boot - subnet-router-create: rally/rally-plugins/subnet-router-create + - glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete benchmarks: - name: authenticate enabled: true @@ -217,3 +218,9 @@ rally: enabled: true num_networks: 10 file: rally/rally-plugins/subnet-router-create/subnet-router-create.yml + - name: glance-create-boot-delete + enabled: true + image_location: /home/stack/cirros + flavor_name: m1.tiny + file: rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml + diff --git a/rally/rally-plugins/README.rst b/rally/rally-plugins/README.rst index a6337d170..db3388af4 100644 --- a/rally/rally-plugins/README.rst +++ b/rally/rally-plugins/README.rst @@ -7,3 +7,4 @@ Current plugins - netcreate-boot-ping ( not complete ) - netcreate-boot - subnet-router-create +- glance-create-boot-delete diff --git a/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.py b/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.py new file mode 100644 index 000000000..251f83ebb --- /dev/null +++ b/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.py @@ -0,0 +1,39 @@ +# 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.task import scenario +from rally.plugins.openstack.scenarios.nova import utils as nova_utils +from rally.plugins.openstack.scenarios.neutron import utils as neutron_utils +from rally.plugins.openstack.scenarios.glance import utils as glance_utils +from rally.task import types +from rally.task import validation + + +class BrowbeatPlugin(neutron_utils.NeutronScenario, + glance_utils.GlanceScenario, + nova_utils.NovaScenario, + scenario.Scenario): + @types.convert(flavor={"type": "nova_flavor"}) + @validation.flavor_exists("flavor") + @validation.required_openstack(users=True) + @scenario.configure(context={"cleanup": ["nova", "neutron", "glance"]}) + def glance_create_boot_delete(self, container_format, image_location, disk_format, flavor, + network_create_args=None, subnet_create_args=None, **kwargs): + image = self._create_image(container_format, image_location, disk_format, **kwargs) + image_id = image.id + net = self._create_network(network_create_args or {}) + self._create_subnet(net, subnet_create_args or {}) + kwargs['nics'] = [{'net-id': net['network']['id']}] + server = self._boot_server(image_id, flavor, **kwargs) + self._delete_server(server) + self._delete_image(image) diff --git a/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml b/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml new file mode 100644 index 000000000..7564db2eb --- /dev/null +++ b/rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml @@ -0,0 +1,38 @@ +{% set image_location = image_location or "/home/stack/cirros" %} +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- +BrowbeatPlugin.glance_create_boot_delete: + - + args: + flavor: + name: '{{flavor_name}}' + image_location: "{{image_location}}" + container_format: "bare" + disk_format: "qcow2" + network_create_args: {} + subnet_create_args: {} + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + context: + users: + tenants: 1 + users_per_tenant: 8 + quotas: + neutron: + network: -1 + port: -1 + router: -1 + subnet: -1 + nova: + instances: -1 + cores: -1 + ram: -1 + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}}