diff --git a/browbeat-config.yaml b/browbeat-config.yaml index cafbfe73d..450bd0ced 100644 --- a/browbeat-config.yaml +++ b/browbeat-config.yaml @@ -99,6 +99,7 @@ rally: - subnet-router-create: rally/rally-plugins/subnet-router-create - glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete - nova-create-pbench-uperf: rally/rally-plugins/nova-create-pbench-uperf + - neutron-securitygroup-port: rally/rally-plugins/neutron-securitygroup-port benchmarks: - name: authenticate enabled: true @@ -251,6 +252,9 @@ rally: image_location: /home/stack/cirros flavor_name: m1.tiny file: rally/rally-plugins/glance-create-boot-delete/glance_create_boot_delete.yml + - name: neutron-securitygroup-port + enabled: false + file: rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.yml - name: nova-create-pbench-uperf enabled: true hypervisor_server: "nova:overcloud-compute-1.localdomain" diff --git a/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.py b/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.py new file mode 100644 index 000000000..4f54fe302 --- /dev/null +++ b/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.py @@ -0,0 +1,32 @@ +# 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.neutron import utils as neutron_utils +from rally.task import validation + + +class BrowbeatPlugin(neutron_utils.NeutronScenario, + scenario.Scenario): + + @validation.required_openstack(users=True) + @scenario.configure(context={"cleanup": ["neutron"]}) + def neutron_securitygroup_port(self, network_create_args=None, + security_group_create_args={}, port_create_args={}, **kwargs): + net = self._create_network(network_create_args or {}) + sec_grp = self._create_security_group(**security_group_create_args) + sec_grp_list = [] + sec_grp_list.append(sec_grp['security_group']['id']) + port_create_args['security_groups'] = sec_grp_list + port = self._create_port(net, port_create_args) + self._delete_port(port) + self._delete_security_group(sec_grp) diff --git a/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.yml b/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.yml new file mode 100644 index 000000000..7a897a69b --- /dev/null +++ b/rally/rally-plugins/neutron-securitygroup-port/neutron-securitygroup-port.yml @@ -0,0 +1,26 @@ +{% 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.neutron_securitygroup_port: + - + args: + network_create_args: {} + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + context: + users: + tenants: 1 + users_per_tenant: 8 + quotas: + neutron: + network: -1 + port: -1 + security_group: -1 + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}}