"string.lowercase" and "string.uppercase" were removed in Python 3,
we can use only "string.ascii_lowercase" and "string.ascii_uppercase".
Change-Id: I97ddac01af7070129ad8baf5960c841482c346a2
Closes-Bug: #1405918
In Python 3, module "xrange" doesn't exist any more.
To support both Python 2 and Python 3, "six.moves.range"
should be used instead.
Change-Id: I9dcf79011a4b2672e4ba55298aa22cab5e2292ff
Closes-Bug: #1403447
In Python 3, module "itertools" doesn't contain "imap" object.
To support both Python 2 and Python 3, "six.moves.map"
should be used instead.
Change-Id: I5b82020d0721a91aa6d6090a42073a3285b80ff9
Closes-Bug: #1403434
In Python 3, urlparse module is gone.
To support both Python 2 and Python 3, "six.moves.urllib.parse"
should be used instead.
Change-Id: I0adddbdea5a80606907a1b78ca1a04d15f61452b
Closes-Bug: #1403433
* Remove semantic validation mechanism for context. We will use same
approach as for current scenarios (via decorators)
* Pass "deployment" instead of "tasks" to validators. This allow us to
remove access to DB from validators + we can call validation without
creating tasks
* Add hacking rule to force using construction "from rally import objects"
* Fix unit tests
Change-Id: Ibf08183b28479cc49ab6adfd12298612f6b4397f
In python 3, the raise syntax no longer accepts comma-separated
arguments, instead working with exception instances.
Also, python 3 is more strict, tuple must be created explicit.
Change-Id: Ib56b6bdf9266c0a2ed410729dc1f33ca08921005
Closes-bug:#1405145
In Python 3, StringIO module is gone.
Class StringIO.StringIO is not available from io module.
To support both Python 2 and Python 3, "six.moves.StringIO" should be used instead.
Change-Id: I17e79d8625c75d6903f024c648d3ef62e21d0c51
Closes-bug:#1403076
There is no global variable "basestring" in Python 3.
"six.string_types" should be used to support both Python 2 and Python 3
Change-Id: I556fef0e98d00ab819e3dea961666b403b927b06
Closes-bug:#1403077
Rally should have detailed docstrings for:
* Benchmark scenario classes
* Benchmark scenarios
* Deploy engines
* Server providers
* SLA
Here we add such docstrings and also add a test suite that checks
that Rally is 100% covered with docstrings and that these docstrings
are correctly formed.
We also change the interface of the following benchmark scenarios
(for the sake of unification):
* CinderVolumes.create_and_attach_volume
* CinderVolumes.create_snapshot_and_attach_volume
* CinderVolumes.create_nested_snapshots_and_attach_volume
Finally, we refactor a bit NovaServers.boot_and_bounce_server.
Change-Id: Ia38c8fc2d692a09719d3e068d332647d4b0da47f
Since in Python 3 there's no longer dict.iteritems()
and to keep the compatibility with Python 2, instead of call
dict.iteritems(), we must call six.iteritems(dict).
This patch is to avoid broken this compatibility in the future
adding a validation for iteritems.
Change-Id: I7c5e312801db886483b0ff5c45a80cba6848c95e
The auto_security_group is now enabled by default for all Node Groups in all
Clusters. This is required for setting up a security group with a list
of TCP port for Hadoop operations.
Sahara does both creating and removig security groups automatically.
Change-Id: Ie862b541f468286bf4380f6e8d19014229beef91
This patch replaces code that creates networking resources in
NovaSecGroup.boot_and_delete_server_with_secgroups
with usage of our new Network Context.
Change-Id: I9e63256d409978763ee3bb9bf0d896313ba6dec9
Context for networking resources.
Note:
using this context in security_groups related scenarios
will be added in another patch.
Main changes:
* the network context class
* rally.benchmark.utils.RAMInt class that represents integer value in RAM,
so we can make process safe sync of cluster-unique stuff (like CIDRs)
* rally.benchmark.wrappers.network module, that unifies network service
implementation, for usage both in context and scenarios
* optimization in NovaScenario._boot_server
Co-Authored-By: Lingxian Kong <anlin.kong@gmail.com>
Co-Authored-By: Timur Nurlygayanov <tnurlygayanov@mirantis.com>
Co-Authored-By: Sergey Skripnick <sskripnick@mirantis.com>
Co-Authored-By: Vadim Rovachev <vrovachev@mirantis.com>
Co-Authored-By: Aleksandr Maretskiy <amaretskiy@mirantis.com>
Implements: blueprint benchmark-context-network
Change-Id: Ia2c461ba3421dc9650c4bb7949c115fee08c6b7b
Current Rally provides "boot_and_list_server" scenario, but doesn't provide
"list_servers" scenario. User can specify number of servers which will be
created in context.
Change-Id: I1a4f0b30dcfba08f8830448c99e687014282e094
dict.iteritems() was removed in Python 3. This patch
replace dict.iteritems() with six.iteritems() to support
both Python 2 and Python 3
Closes-Bug: #1403071
Change-Id: I5bcee5db2d7188633d45e6161e0c956449ad2197
This scenario for Zaqar benchmarks a serial consumer-producer
use case: creates a queue, sends messages to it, retrieves
messages from it and deletes the queue.
Some changes have been added to the fakes to test this
scenario properly.
Change-Id: I49d5956bbf571840829b3e9b1411a907748cf1ed
Optimize tenants and their resources in context.
Implement tenant related resources tree with tenant
as root.
Change-Id: I974f3a02eeade3de6f6208642fa593832f7c62d9
Due to some security reasons, this patch changes default user assignment
from "same as name" to uuid.
Also, named parameter "password" is removed from method signature.
If there is a need for a new user to be created with preselected
that can be done thru kwargs by seting value with the "password" key.
Change-Id: Iccd085a8e67b204d4f9a985d5628128f4299ff83
In Rally, we have functional tests that run different CLI
commands and check that the CLI output contains all the expected
data.
We need to ensure that every single subcommand of “rally task”,
“rally deployment” etc. (for example, “rally task start”, “rally
task report”) is covered in these functional test with all possible
parameters usage (e.g. the “--deployment” parameter in “rally task
start --deployment <name>” didn’t get tested, which has lead to
errors recently).
Change-Id: I654ad4317b2d061dd899f5fdfb028cda50af9b8b
Recently, we added new job "gate-rally-dsvm-verify" for Rally[1].
This job implied functional testing integration Rally with Tempest[2].
This patch adds tests/ci/rally-verify.sh script, which is used by new job.
rally-verify.sh does:
- tempest installation
- run "rally verify start" twice and print results
- compare results of two verifications
- list verifications
- generate html page based on results
To implement gate-rally-dsvm-verify some changes were requered to
existing Rally code:
- Added ability for rally/ui/utils.py to accept arguments to render html-pages
- Fixed logging debug-messages in tempest verifier
- Fixed check "is debug mode turned on or not"(also, added hacking rule for it)
TODO for future patches:
- add launch of rally task for Tempest
- add launch of random test set
- add check for successful tests
[1] https://review.openstack.org/#/c/137232
[2] https://www.mirantis.com/blog/rally-openstack-tempest-testing-made-simpler
Closes-Bug: #1400465
Closes-Bug: #1400518
Change-Id: I8e1fbab22c2da109bbc442f040fe259e5d22a62a
In some common cases (like detecting absense of requested object),
CLI shows exception traceback instead of just a simple message
that "<something> is not found".
This traceback is redundant and confusing users - they think that
rally went into trouble, but all that actually happened is wrong
uuid specified.
The traceback must be shown only with `--debug' option explicitly
specified.
The unit test and functional test are both provided.
Change-Id: I32811974d88f414c4508dfed19a7c5dc5e80fd98
Closes-Bug: #1392354
This scenario creates volumes and snapshots chain with custom nested
level:
1. Create volume
2. Create snapshot
3. Create volume from snapshot
... and so on
Change-Id: I4be5bb9435f0df5e02dfa3eca6f3e764c0786c55
If you type 'rally info find <query>' rally will suggest us docs that
will be match by query. Even if you have one typo. otherwise it sugest
you list of docs that you are possibly looking for. But if you type
'rally info find failure_rate' there output would be: "Failed to find
any docs for query: 'failure_rate'". Instead there must be information
about SLA(failure_rate): "Failure rate minimum and maximum in percents.".
Change-Id: Ie6c59e4091cddd8f5e81e2123cad1367b397a9b6
Closes-bug: 1399675