aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick
AgeCommit message (Collapse)AuthorFilesLines
2018-03-01vFW scale-up template.Mytnyk, Volodymyr4-16/+142
Added topology and traffic profile templates Added support for using JinJa2 templates in topology definition Added support for static pipeline configs for SampleVNFs JIRA: YARDSTICK-1043 Change-Id: Iab99fd5b5ad69ca32ee70b9fe47779387ad27e7f Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com> Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
2018-03-01Add arguments to the traffic profile renderRodolfo Alonso Hernandez8-91/+242
In order to render configurable traffic profiles in NSB test cases, a new variable is introduced: "extra_arg". The content of this variable is added to the VNFD render data, under a key called "extra_args". This will allow the user to define Jinja templates for traffic profiles. E.g.: $ cat test_case_definition.yml scenarios: - type: NSPerf traffic_profile: traffic_profile.yml extra_args: vports: 10 $ cat traffic_profile.yml {% set vports = get(extra_args, 'vports', '0') or 4 %} {% for vport in range(vports|int) %} uplink_{{vport}}: data... {% endfor %} JIRA: YARDSTICK-946 Change-Id: Ib3c1f2d89efa012772edf2156e97d5f4742a6b80 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-03-01Import "traffic_profile" modules only onceRodolfo Alonso Hernandez15-174/+232
"traffic_profile" modules should be imported only once. Every time TrafficProfile.get is called, the modules under "yardstick.network_services.traffic_profiles" are loaded [1]. Instead of this, the modules should be registered only once the first time "yardstick.network_services.traffic_profiles.base" is loaded. This will reduce the execution time and will avoid unnecessary calls. [1] https://github.com/opnfv/yardstick/blob/d2c7cc4e9768ed003257a95c92cdb278d516761b/yardstick/network_services/traffic_profile/base.py#L36-L37 JIRA: YARDSTICK-951 Change-Id: Ia3565378ba3a1377fcb0aea8bda50ef8189414fd Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-28NSB: Rename traffic_profile to trex_traffic_profileRoss Brattain3-2/+2
Make it more clear that traffic_profile is not a generic class. Eventually we can refactor a more generic traffic profile. Change-Id: I1bf44a8cafcdeb8d74efb9e85a34f6d7b526d036 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-28Merge "Add Flags class to base.Context"Emma Foley2-1/+67
2018-02-28Merge "Mock TRex STL libraries globally"Abhijit Sinha3-37/+21
2018-02-28Merge "Deprecate authentication variable OS_TENANT_NAME"Ross Brattain2-43/+24
2018-02-28Mock TRex STL libraries globallyRodolfo Alonso Hernandez3-37/+21
TRex Python libraries are not going to be available during unit testing execution. Those modules calling TRex libraries should be mocked individually. This patch will remove the need of mocking those libraries per module. JIRA: YARDSTICK-1010 Change-Id: I4aa11d43ecf32a3dad78f869541b4afea4ec1d28 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-28Merge "Improve SampleVNF hugepages setup"Abhijit Sinha3-19/+56
2018-02-28Merge "Addition of storage of extra counters for Grafana"Abhijit Sinha3-21/+98
2018-02-28Addition of storage of extra counters for GrafanaDanielMartinBuckley3-21/+98
JIRA: YARDSTICK-1036 This stores a number of extra counters in influxdb for Prox test cases. It also stores existing counters with a "succcess_" tag. Previously throughput where stored without success or failure indication. Also "Result_" counters are also stored. These can now be used by Grafana to graph output. Change-Id: Ie5636c14ecbab1b53a988bdfbd47ddd1fcdbd695 Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
2018-02-28Deprecate authentication variable OS_TENANT_NAMERodolfo Alonso Hernandez2-43/+24
OS_TENANT_NAME was deprecated as authentication variable in Keystone when moved from v2 to v3, in Icehouse (2014). Because this project doesn't support oldest versions, by default the only identification API version supported is v3. JIRA: YARDSTICK-902 Change-Id: I273fb0151ba583f7c8a5a809e5e8864e92c27d31 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-28Merge "Yardstick real-time influxdb KPI reporting regressions"Emma Foley5-26/+79
2018-02-28Add Flags class to base.ContextEmma Foley2-1/+67
This patch adds a Flags class to represent the flags passed to the context. Flags will contain a set of attributes (for example no_setup and no_teardown). Those attributes will modify the behaviour of the context. The attributes added initially are: * 'no_setup' (default: False) * 'no_teardown' (default: False) In future patches, they will be used by the context to: * Change the name of the context. * Skip the deploy() and undeploy() methods to keep the VNFs active after the testcases are run. JIRA: YARDSTICK-886 Change-Id: I734b082aa101649eea8991304a8b753ae96aa9de Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-02-28Merge "add egress security rules"Ross Brattain1-1/+30
2018-02-27add egress security rulesmting1-1/+30
JIRA: YARDSTICK-1034 Change-Id: I613b8bff669fceeb0c7c59dec2b6f1ab22b09247 Signed-off-by: mting <dianfeng.du@ericsson.com>
2018-02-24Merge "Bug Fix: Move heat_timeout variable higher"Jing Lu1-2/+2
2018-02-23Bug Fix: Move heat_timeout variable higherDimitrios Markou1-2/+2
If a heat_template was used by a testcase the heat_timeout variable was not getting initialized and that caused errors in the Shade python module. JIRA: YARDSTICK-1027 Change-Id: Ic0bf15b13cc00595964a97f8150dc5e6f2b7e1d7 Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
2018-02-23Yardstick real-time influxdb KPI reporting regressionschenjiankun5-26/+79
JIRA: YARDSTICK-989 We used to have real-time influxdb reporting of test KPIs. The user could monitor using grafana and see the real-time output. The record format was changed to now only report KPIs at the end of the test. This is a problem for test cases which run for a long duration, we need to wait until the end of the test execution to get any results from influxdb. If the test fails in between or doesn't exit cleanly for some reason, we are left with no results stored in influxdb which gives the user no information. This is also a regression from the previous behaviour. Change-Id: I0f476dff9162a359f0286fb421f2e9c4befaa5cc Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2018-02-23Add 'ANSIBLE_ROLES_PATH' in ansible_envJingLu52-2/+4
JIRA: YARDSTICK-1024 This work adds the 'ANSIBLE_ROLES_PATH' as one of the Ansible environment variables. This 'ANSIBLE_ROLES_PATH' is set to the roles directory in Yardstick repo. By adding this variable, Ansible will first searches the local project for a role, then searches the roles_path. It will let the users of the plugin projects to able to use a relative role path for any of their own roles in ansible playbook. Change-Id: I0926ab0c0fa5c6cc37c4fe560db5b2aec3fe6eb1 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2018-02-22Merge "Fix error in address input format in "_ip_range_action_partial""Rodolfo Alonso Hernandez2-42/+47
2018-02-22Merge "Make files pep8 compliant"Emma Foley3-79/+61
2018-02-22Merge "Refactor benchmark.core.test_plugin.PluginTestCase"Rodolfo Alonso Hernandez2-82/+169
2018-02-20Make files pep8 compliantEmma Foley3-79/+61
This change makes files pep8 compliant before adding the reuse context feature JIRA: YARDSTICK-886 Change-Id: Iae7daaa159a9ddbb5809a9a7ac74f8a53683089a Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-02-19Merge "Replace neutron network deletion with shade."Emma Foley4-50/+94
2018-02-19Replace neutron network deletion with shade.Shobhi Jain4-50/+94
Function delete_neutron_net now uses shade client instead of neutron client. JIRA: YARDSTICK-890 Change-Id: I99b6f3ecd37d6e3b783f7eb3da9f971398fc3bdd Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-02-17Fix error in address input format in "_ip_range_action_partial"Rodolfo Alonso Hernandez2-42/+47
IP address format introduced in [1] should be unicode instead of string. "ipaddress.IPv4Address(min_value)" doesn't parse correctly the input parameter unless the parameter is in unicode format; this is valid both for Python version 2 and 3. Execution error if the parameter is a string: >>> int(ipaddress.IPv4Address('10.0.3.2')) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/ipaddress.py", line 1391, in __init__ self._check_packed_address(address, 4) File "/usr/local/lib/python2.7/dist-packages/ipaddress.py", line 554, in _check_packed_address expected_len, self._version)) ipaddress.AddressValueError: '10.0.3.2' (len 8 != 4) is not permitted as an IPv4 address. Did you pass in a bytes (str in Python 2) instead of a unic [1]https://github.com/opnfv/yardstick/blob/e5775e7efbc55f116b4d4ac11ff87b8d8553247e/yardstick/network_services/traffic_profile/traffic_profile.py#L87-L88 JIRA: YARDSTICK-996 Change-Id: Ic727a79044834b181c99789f0f5efc21c68f0ff2 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-17Merge "Workaround to fix Heat stack deletion bug in Shade"Rodolfo Alonso Hernandez2-1/+20
2018-02-16Merge "Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdk"Rodolfo Alonso Hernandez2-13/+9
2018-02-16Refactor benchmark.core.test_plugin.PluginTestCaseRodolfo Alonso Hernandez2-82/+169
Tests in benchmark.core.test_plugin.PluginTestCase are not covering correctly the functionality of the tested class. YARDSTICK-851 Change-Id: I0b4cda7dbf109776a202167abfde8c9eb268db12 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-15NSB: Ixia remove unused traffic_generator argRoss Brattain2-15/+14
also fix pylint unittest warnings JIRA: YARDSTICK-1014 Change-Id: I4ff9769fdca89c6fc1fb9ca62e9f8ea6b174681e Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-15Workaround to fix Heat stack deletion bug in ShadeRodolfo Alonso Hernandez2-1/+20
There is a bug in Shade, in the function "event_utils.poll_for_events". While Shade is waiting for the Heat stack to be deleted, retrieves periodically the status of this Heat stack. When the stack is deleted, the function "get_stack" [1] returns None; then L90 tries to access to a key of this None object. [1]https://github.com/openstack-infra/shade/blob/e5bcb705c5b32334cdc1dd9807126298c87b0622/shade/_heat/event_utils.py#L89-L90 Shade function JIRA: YARDSTICK-1015 Change-Id: I56ea853be41bfd7f63e094d7a3696d97ba078ba4 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-14NSB traffic_profile: fix pylint warnings and return partialRoss Brattain1-0/+6
also fix unittests Change-Id: Ie3026f5a0df8e690271afb71fe36ac531cbae2a0 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-14constants: fix pylint warnings for OSErrorRoss Brattain1-6/+4
IOError and OSError are the same in Python 3? Anyway we want to ignore ENOENT, not EEXIST JIRA: YARDSTICK-1012 Change-Id: Ia75e41fecce505685745e0099669e45f3e82a1be Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-12Move tests: unit/benchmarkEmma Foley145-0/+13893
* Fix pylint errors * Add TODOs Some errors are ignored locally, as they were a symptom of other problems. These issues have been flagged with a TODO, and should be fixed later. Change-Id: I30eb4b0aafe0575d0cddbc946108291f21a98ed8 Jira: YARDSTICK-837 Signed-off-by: Emma Foley <emma.l.foley@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-12Merge "Heatstack create: fix str/bytes error in NamedTemporaryFile.write()"Emma Foley2-2/+2
2018-02-12Merge "Replace neutron get network id with shade."Emma Foley3-99/+102
2018-02-12Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdkRodolfo Alonso Hernandez2-13/+9
Both "uio" and "igb_uio" drivers are present in the VM image generated using "./nsb_setup.sh" script. "igb_uio" driver is compiled along with the DPDK library compilation. Tool "nsb_setup.sh" provisioning and execution should be removed from this function because there is not needed anymore. In case "igb_uio" driver is not loaded, an exception should be raised. JIRA: YARDSTICK-999 Change-Id: I89174f84ac36d8231587402c96751746cb18e290 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-12Heatstack create: fix str/bytes error in NamedTemporaryFile.write()Ross Brattain2-2/+2
we need to use jsonutils.dump_as_bytes for NamedTemporaryFile.write() 2018-02-11 19:15:01,366 [INFO] yardstick.orchestrator.heat heat.py:563 Creating stack 'yardstick-4359f33e' START 2018-02-11 19:15:01,935 [ERROR] yardstick.benchmark.contexts.heat heat.py:317 stack failed Traceback (most recent call last): File "/home/rbbratta/yardstick-upstream/yardstick/yardstick/benchmark/contexts/heat.py", line 313, in deploy timeout=self.heat_timeout) File "/home/rbbratta/yardstick-upstream/yardstick/yardstick/orchestrator/heat.py", line 567, in create stack.create(self._template, self.heat_parameters, block, timeout) File "/home/rbbratta/yardstick-upstream/yardstick/yardstick/orchestrator/heat.py", line 56, in create template_file.write(jsonutils.dumps(template)) File "/home/rbbratta/yardstick_venv3/lib/python3.5/tempfile.py", line 622, in func_wrapper return func(*args, **kwargs) TypeError: a bytes-like object is required, not 'str' JIRA: YARDSTICK-1005 Change-Id: I504f23b86119b62f3aea5b83a445b97bf810220c Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-12Merge "vpe: convert DPKD_PORT to LINK ID"Emma Foley1-10/+29
2018-02-11Merge "Remove references to "dpdk_nic_bind" utility"Emma Foley4-34/+32
2018-02-11Merge "Replace "python-heatclient" with "shade" client"Rodolfo Alonso Hernandez3-544/+245
2018-02-09Replace neutron get network id with shade.Shobhi Jain3-99/+102
Function get_network_id now uses shade client instead of shade client. Removed redundant function: get_port_id. JIRA: YARDSTICK-890 Change-Id: I6081477fee39fa78131187e65daf3d7d3a9e439f Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-02-09Merge "Make 'Scenario' classes plugable"Emma Foley1-13/+23
2018-02-09Replace "python-heatclient" with "shade" clientRodolfo Alonso Hernandez3-544/+245
Replaced "python-heatclient" with "shade" client. The "python-heatclient" library is removed from requirements file. "shade" client version 1.22.2 is the required one for OpenStack Pike release. shade is the recommended client to interact with OpenStack clouds [1] [1] https://github.com/openstack-infra/shade JIRA: YARDSTICK-880 Change-Id: Ibbdfc42a543d2d9ed4cf70d78de3de8cbecd0076 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-07Merge "Improve ovs_deploy.bash script"Ross Brattain1-16/+7
2018-02-06vpe: convert DPKD_PORT to LINK IDRoss Brattain1-10/+29
http://dpdk.org/doc/guides/sample_app_ug/ip_pipeline.html#application-resources-present-in-the-configuration-file LINK instances are created implicitly based on the PORT_MASK application startup argument. LINK0 is the first port enabled in the PORT_MASK, port 1 is the next one, etc. The LINK ID is different than the DPDK PMD-level NIC port ID, which is the actual position in the bitmask mentioned above. For example, if bit 5 is the first bit set in the bitmask, then LINK0 is having the PMD ID of 5. This mechanism creates a contiguous LINK ID space and isolates the configuration file against changes in the board PCIe slots where NICs are plugged in. Change-Id: I6e449272cfcfb2b2a75c246f7f569e3f923da245 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-06Improve SampleVNF hugepages setupRodolfo Alonso Hernandez3-19/+56
The goal of this function is to: - Read the default hugepage size. - Set 16GB of hugepages. - Check if the status of the last action. According to [1], the default hugepage size could be read in "/proc/meminfo", always in kB. Then "/proc/sys/vm/nr_hugepages" could be used to set the number of default hugepages. [1] https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt JIRA: YARDSTICK-997 Change-Id: I762d1b16294ba1c1c2feee56610819ac358c7410 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-05Remove references to "dpdk_nic_bind" utilityRodolfo Alonso Hernandez4-34/+32
In DPDK 16.07 [1], "dpdk_nic_bind" utility was renamed to "dpdk-devbind". This patch removes all references to this previous naming to avoid confusions. [1] https://dpdk-guide.gitlab.io/dpdk-guide/setup/binding.html JIRA: YARDSTICK-995 Change-Id: I827c4c11c9e9e519f33f21b80459e7d65e51545e Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-01-30Make 'Scenario' classes plugableRodolfo Alonso Hernandez1-13/+23
This patch makes yardstick.benchmark.scenario.base:Scenario classes plugable. A new entry point is added to the setup. This entry point could be extended in other plugin projects to add new Scenario classes. E.g.: take a look at [1]. This is a Yardstick plugin example project. Clone the project and execute, from the project directory: $ sudo -EH python setup.py install This will add a new module to python ('yardstick-new-plugin') and a new Scenario class. Now list the scenarios in Yardstick: $ yardstick scenario list ... | SpecCPU2006_for_VM | Spec CPU2006 benchmark for Virtual Machine | | SpecCPU2006 | Spec CPU2006 benchmark | | Dummy2 | Execute Dummy (v2!) echo | +-----------------------+--------------------------------------------+ [1] https://github.com/ralonsoh/yardstick_new_plugin JIRA: YARDSTICK-910 Change-Id: Ib70ee9bf4dc7ff91d1dd6377317b313288e36bff Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>