931 Commits

Author SHA1 Message Date
uppi
047b255fdf Asynchronous result yielding for scenario runners
Benchmark engine spawns a consumer thread, which asynchronously handles results
for each scenario run. Current consumer implementation just collects all
results and stores them as 'raw' to save integrity.

Scenario runners have to call _send_result method for every single result
instead of collecting a list of results.

Change-Id: Icbff8b2470af3b3ced6bb55573b5842726177b70
2014-07-09 17:57:10 +04:00
Kumar Rishabh
d4a8ed80f8 Patched version of hacking library
updated version of hacking library for tests

Change-Id: I90dbded90f7bae03b9087c910ce542c2b3642da4
2014-07-09 10:06:45 +00:00
Jenkins
22695df19f Merge "Check if required services are available before starting the scenario" 2014-07-08 21:45:09 +00:00
Duncan Thomas
56fb2ba32a Add json results to the logs bundle, as well as html
The json file of the raw results is useful if you want to pull
the results into an external system, e.g. to plot the performance
of the gate over time.

Change-Id: I03d6b6f6ab5c5aee3a0f5de0c87eaf393f041d14
2014-07-08 18:29:35 +01:00
Jenkins
30b03c8d3b Merge "Add tempest unit test cases" 2014-07-08 09:39:28 +00:00
Alexander Maretskiy
52bd8076b6 Check if required services are available before starting the scenario
In this patch:
   * validation function benchmark.validation.required_services()
   * a piece of refactoring in scenarios.base and runners.base modules
   * new decorator benchmark.validation.validator(),
     which transforms validation function into scenario validator
   * constants for OpenStack services names and types
   * refactoring in rally.osclients
   * method osclients.Clients.services() to obtain available services
   * services validation is added to scenarios

blueprint check-service-availability-before-start-scenario

Change-Id: Id6126efb1bda73dd9ff92346ddf690329765f43f
2014-07-08 12:07:59 +03:00
Swapnil Kulkarni
73b0fb1211 Add tempest unit test cases
Added missing tempest test cases
as part of unit test coverage.

test_single_test_negative
test_set_smoke
test_set_full
test_set_from_list
test_set_selective
test_specific_regex

Change-Id: I89d96ce4142dd72c79fdd21b100addd56ae03188
Implements: blueprint improve-unit-test-coverage-rally
2014-07-08 04:07:15 +00:00
OpenStack Proposal Bot
a9854b2ccb Updated from global requirements
Change-Id: I8f6fd8efdb90b3c122312ff1b261da882c51b674
2014-07-07 13:34:00 +00:00
Tzanetos Balitsaris
b71e389a51 Change the default value of use_public_urls
Change the default value of the use_public_urls configuration option of
the ExistingCloud deployment engine to True.

Change-Id: I8ccb19fdef7911c2e27145758014e942086bf954
2014-07-04 18:24:31 +03:00
Jenkins
b5028c07d2 Merge "Add nova floating ip management in VM scenario" 2014-07-04 13:49:46 +00:00
Jenkins
45bee5e2c7 Merge "Ensure temporary results_dir is created" 2014-07-04 13:27:42 +00:00
Bruno Semperlotti
3d8b423db3 Add nova floating ip management in VM scenario
This patch allows VM runcommand scenario attach a floating ip
to the instance to perform ssh connection.

Blueprint: benchmark-scenarios-vm-floating-ip

Change-Id: I2e77d6be34a64d5feb9d3ecc5e35c8a712b10bed
2014-07-03 16:39:59 +00:00
Jenkins
e0675e7ef8 Merge "Add abstract layer for benchmark context semantic validation" 2014-07-03 15:20:06 +00:00
Rohan Kanade
1b85f65b3c Ensure temporary results_dir is created
* The results_dir is created to save log files during tempest run
* Ensure it is created correctly

Change-Id: I440e42ca6f8a8858773a09b0a756a0d05235ba3e
Closes-Bug: #1335122
2014-07-03 17:17:47 +02:00
kong
bd9c4fdd2a Add abstract layer for benchmark context semantic validation
This patch add abstract layer support for context semantic validation.

Partially Implements: blueprint benchmark-context-semantic-validation

Change-Id: Ib481e4a1019157f5339742b40681a35c76de7080
2014-07-03 22:26:49 +08:00
Jenkins
a9a741651d Merge "Check python>=2.7 before running tempest" 2014-07-03 14:13:46 +00:00
Rohan Kanade
5c4c55a970 Check python>=2.7 before running tempest
* Tempest requires python>=2.7
* Check python version >=2.7 before installing virtualenv for tempest

Change-Id: I89048652d879fd3907f1628887dd6cc1e6e3ba3e
Closes-Bug: #1336209
2014-07-03 06:51:41 +02:00
OpenStack Proposal Bot
e350996878 Updated from global requirements
Change-Id: I2ed6046288eb7e91d9e1b0f2e6ad0d703f6e6ddb
2014-07-03 00:00:19 +00:00
Tzanetos Balitsaris
044abcbd8f Change the default value of scenario_output
Change the default value of the scenario_output variable of the
_run_scenario_once function of the rally/benchmark/runners/base.py
module because there was no errors key in this variable when a scenario
failed with timeout.

Closes-Bug: 1336762
Change-Id: Ieebc2064bcfee3f2bd23ee40394f8117e9096f01
2014-07-02 21:24:16 +03:00
Jenkins
8e03a98837 Merge "Fix creation of ICMP security group rule when using Neutron" 2014-07-02 16:31:03 +00:00
Bruno Semperlotti
7ea1ba4e81 Fix creation of ICMP security group rule when using Neutron
Update ICMP allow rule to use the value -1 for to_port and
from_port parameters as ICMP protocol does not have port.

Change-Id: Idc76e156f07b99574b6b77dba803d5a4f823380b
Closes-bug: #1336704
2014-07-02 13:45:21 +00:00
Jenkins
5b7b9b343f Merge "Fix wrong attribute name used for http status" 2014-07-02 13:30:38 +00:00
Rohan Kanade
d84c854174 Fix wrong attribute name used for http status
* Use status_code instead of incorrect http_status

Change-Id: I464f28dcdf96542b8d5420133f13d4150da37aaa
Closes-Bug: #1335154
2014-07-02 14:09:31 +02:00
Sergey Skripnick
6dbd51ac8d Add sla checking
SLA (Service-level agreement) is set of details for determining
compliance with contracted values such as maximum error rate or
minimum response time.

Add two criteria:
 maximum time per iteration
 maximum error rate

Change-Id: I1212bd684831461a7d7e33636d45a6d346e3b574
Blueprint: task-success-criteria
2014-06-30 18:23:10 +03:00
Jenkins
39ea59fe37 Merge "A test to verify that scenarios in rally-scenarios are correct" 2014-06-29 10:17:35 +00:00
uppi
0b81230a80 A test to verify that scenarios in rally-scenarios are correct
Implemented a unit test that takes all the scenarios from rally-scenarios and
tests their correctness after loading plugins from rally-scenarios/plugins

Change-Id: I2af0b67216bdee65a413c8037130cab8e65ac826
2014-06-29 13:36:23 +04:00
Jenkins
35d4f985ee Merge "Use wget instead of curl in install script" 2014-06-28 14:21:52 +00:00
Jenkins
b297cf0075 Merge "Improve doc/source" 2014-06-27 21:02:31 +00:00
Sergey Skripnick
eb4104188d Use wget instead of curl in install script
Some linux distributions have buggy curl versions, which
incorrect hande redirects.

Change-Id: Ice79958096240446955eb92517dfd41ce9432a5f
Closes-Bug: #1335117
2014-06-27 16:13:27 +03:00
OpenStack Proposal Bot
1551822c0d Updated from global requirements
Change-Id: Ic0d8ce65791def4f03e421ad7e1aabe47d7335a2
2014-06-27 06:38:07 +00:00
Olga Kopylova
b16c73c9b7 Restructure doc/samples/tasks directory
Spread the content of doc/samples/tasks directory to separate folders
for context, scenarios and runners.
Add documentation and samples for runners.

Change-Id: I4394e73060c6c97fae7bcf7039674041d43917e8
2014-06-26 20:19:06 +03:00
Jenkins
6d96b98e0d Merge "Sync necessary modules from oslo incubator for worker service" 2014-06-26 13:19:56 +00:00
Jenkins
0470fab0d4 Merge "Added a test to check json<->yaml configs equality" 2014-06-26 12:05:49 +00:00
uppi
31a93a80cc Added a test to check json<->yaml configs equality
Implemented a unit test that takes all the config pairs from doc/samples/tasks/
with identical names (e.g. nova/boot-and-delete.json and
nova/boot-and-delete.yaml) and checks that their contents are identical as
well. Also it tests that every config should have a pair (if there is *.json,
there also has to be *.yaml, and vice versa)

Change-Id: I4c0d185439e2a2c48a801fa8c62c7ed2e80a6031
2014-06-26 15:23:21 +04:00
Jenkins
ec6cd401e0 Merge "Adding Image Context Class" 2014-06-25 19:54:42 +00:00
Jenkins
5fc762cf70 Merge "Add Neutron benchmarks scenario for creating and listing ports" 2014-06-25 14:21:04 +00:00
Jenkins
4ad3b3a73a Merge "small fixes on rest/base.py" 2014-06-25 12:38:04 +00:00
Kumar Rishabh
255d62f707 Adding Image Context Class
This Context Class implements Image Context Subclass
to Benchmarking Mechanism. This also adds a simple list_image benchmark
scenario which tests glance image-list command

bp benchmark-context-image

Change-Id: I272a36cebb568e8d599ebd65beb53b6a2c628b6e
2014-06-25 09:24:47 +00:00
Mikhail Dubov
24272bbe95 Improve doc/source
Here we enhance the rst docs (used for readthedocs):
* Simplify its index structure by reducing it to only 5 points:
  1. Deploy (engines & server providers)
  2. Verify
  3. Benchmark (scenarios, engine, contexts, plugins)
  4. Command Line Interface
  5. Implementation (all source docs moved here)
* Extend the 'Benchmark' page with info from the "Main concepts" page from Wiki
* Add some introductory text on Deploy & Verify parts based on that from Wiki
* Simplify headings by removing "The" and "Layer"

Change-Id: I04bb553aba04009634272a88a757baa8f2c8c359
2014-06-25 07:41:16 +04:00
liyingjun
3995f1fcd0 use oslo.db module
* Use oslo.db module instead of rally.openstack.common.db
* Remove rally/openstack/common/db

Change-Id: I78e29810f4bf6cc624417744dd74f15ef2281edf
2014-06-25 06:05:15 +08:00
Kun Huang
1f9077486d small fixes on rest/base.py
- rename a base class from FunctionalTest to PecanControllerTest which
makes this naming more accurate
- remove some print statement for debug uses
- use _request_json in delete method
- use requests module instead of six.moves.urllib

Change-Id: I4463466bab91ad538295668b9e8133a1a1f99caa
2014-06-25 00:53:13 +08:00
Alexander Maretskiy
af3239d5d4 Add Neutron benchmarks scenario for creating and listing ports
Scenario NeutronNetworks.create_and_list_ports is added, which does the following:
  - creates network
  - creates a given number of ports
  - lists ports

blueprint benchmark-scenarios-for-neutron

Change-Id: I029f220dd70beb0c248877bd4bd718dfa63aba40
2014-06-24 17:48:00 +03:00
Jenkins
4b8381da78 Merge "Benchmark to validate a keystone token N times at service endpoint" 2014-06-24 12:19:43 +00:00
Neependra Khare
3bbeeefcdc Benchmark to validate a keystone token N times at service endpoint
With PKI, tokens can be validated at the service endpoint. There might
be some caching policies which might affect the validation process.
This benchmark can be used to check effect of caching related to tokens.

Change-Id: I6277d8514bbdb1e5dca5032f44ac3d5ff9618cc2
2014-06-24 16:13:44 +05:30
liyingjun
be17a13505 Sync necessary modules from oslo incubator for worker service
Sync modelus: service, periodic_task and related dependencies
from oslo-incubator. Using the following command in oslo-incubator:

python update.py --base rally --dest-dir ../rally --modules \
periodic_task,service

Change-Id: I0b8278404d53a91add7a8cf3876121aad1e497c2
2014-06-24 17:43:16 +08:00
Jenkins
3a885ce5e4 Merge "Add unit tests for rest" 2014-06-24 08:26:02 +00:00
OpenStack Proposal Bot
ad71a6a8f6 Updated from global requirements
Change-Id: I1db47c96cf465e6378e783ce5240bb0b46b6c534
2014-06-24 07:26:59 +00:00
liyingjun
9e189b9228 Add unit tests for rest
* add unit tests for rest.types
* add unit tests for rest.controllers.root
* add unit tests for rest.controllers.v1.root

Change-Id: Icb7d243643a6a0a57d2b1f01879774008491ea0a
2014-06-23 19:16:05 +08:00
Andrey Kurilin
b9a1fab7a0 Refactor tempest config generator
Use `requests` library instead of `urllib2` & `httplib`
Main profit from `requests` library:
- `requests` is HTTP for Humans;
- `requests` is well documented[1];
- `requests` can save downloaded files by parts, so usage of memory
is less(useful when downloading big data, for example - some images)
- `requests` has same name as in Python 2x and Python 3x

Use `inspect.getmembers`[2][3] for discovery of each function for section
generator. Profit : decrease lines of code

Add checks for existence of subnet in 'network' section.

Move function `_write_config`[4] from class `Tempest`[5] to `TempestConf`.
Reason: this function not related to verifier for Tempest.

Fix message for exception when user doesn't have admin role.

Move name of section into kwargs to each section function.
Profit: less string objects with section names

[1] - http://docs.python-requests.org/en/latest/
[2] - https://docs.python.org/2/library/inspect.html#types-and-members
[3] - https://docs.python.org/3.3/library/inspect.html#types-and-members
[4] - http://git.io/E1zPOQ
[5] - http://git.io/8Ru-Yw

Change-Id: I8307ec33dd93ef055450f58d7cd55bf6b200f249
2014-06-20 17:01:19 +03:00
Rohan Kanade
3ed98ecec0 Changes tempest subunit log handling
* Remove subunit2junitxml dependency and code from rally
* Convert raw subunit stream from tempest tests to json and store only
  json in DB
* Run tempest scenario (smoke) in rally gate

Change-Id: I6628375d83da9af3984819dfc5815ae0c06ec1aa
Implements: blueprint tempest-subunit-to-json
2014-06-20 09:11:42 +02:00