Commit Graph

222 Commits

Author SHA1 Message Date
Andrey Kurilin e5d9fc8e63 Add support for SQLAlchemy 2.0
In addition:
* remove usage of LegacyEngineFacade
* extend migrations tests to check that we actually for something rather
  that relying only on 'for' loop
* fix `_pickle.PicklingError: Can't pickle ...` error that occures only
  on mac m1
* update u-c file

Change-Id: I6030dcc93439ad5f4786cc94707d3f0d49cf3adb
2024-04-23 15:38:52 -04:00
Andrey Kurilin b08ea0e937 Update requirements and upper-constraints.txt
In addition, this commit includes soome fixes to make migrations work
with sqlalchemy 1.4.0

Change-Id: I933d3ffdbb48f6393d0d0665ad83ff166824250d
2023-05-22 23:02:21 +02:00
yatinkarel 14d449b2f1 Pin SQLAlchemy to <2.0.0
Rally code is not compatible with SQLAlchemy-2.0.0,
until it's compatible let's pin it.

CI jobs are broken with multiple errors, so to get
this in also need following fixes:-
- Remove python-dev from bindep to fix announce-release
  and docs jobs
- Update upper-constraints for testtools to 2.5.0 to fix
  issues with python3.10+
- Update tox.ini for tox4 compatibility
- Ignore warnings introdueced with oslo.db-12.1.0,
  SQLAlchemy-1.4.46
- Make tox-cover job non-voting as to get it passing
  coverage report need to succeed for previous commit,
  which will not succeed without the required changes
  in this patch. It will be made voting again in follow
  up patch.

Related-Bug: #2004022
Change-Id: Ifcffd11e300e1485fdbfa54b23bcdcaa6ad61011
2023-01-30 17:24:02 +05:30
Andrey Kurilin 8481235950 Update requirements
* fix discovering os distro

Change-Id: I96666afc1ad9a5c64ca5b98647cb0ba185389524
2021-06-16 09:24:39 +00:00
Andrey Kurilin ee09cab546 Get rid of decorator lib
This lib is used only in two places and the latest release fails now.

Change-Id: Ia79008c6ac7dc3be92afdea5f8ffabcd697e7599
2021-04-12 17:15:09 +03:00
Andrey Kurilin 9227f95d02 Update requirements
Change-Id: I2487d3f5e7bab9dc01981c43f6e81b1055fe2991
2020-10-29 17:56:07 +02:00
Andrey Kurilin ec160421d7 Update requirements
* rtd can use only one requirements file
* remove redundant requirements from tests-requirements.txt
* update upper-constraints

Change-Id: I9fa049abbe1fd95b4a3adbc8994225d46571db27
2020-05-08 18:24:52 +03:00
Andrey Kurilin 1821656002 Remove six usage
six library helped a lot for Py2/Py3 compatibility. Thanks the authors
for the great library.

Since we do not support Python 2, there is no need in six anymore

Change-Id: If5213c088964aa137e6ff5ac2c376a02a980aa72
2020-02-21 16:15:31 +02:00
Andrey Kurilin 1e501a6e21 Stop supporting python <3.6
+ remove sseveral unused ci files
+ ignore some warnings during pytest execution to make the output clean

Change-Id: Ic94ab503ea77c8a1582292becad872670034d49c
2020-02-10 16:08:14 +02:00
Andrey Kurilin cebecc512e Release rally 2.1.0
* update changelog
* remove direct netaddr requirement
* fix several warnings

Change-Id: I96514e763e4e85474f414beb1148fd466e0e9464
2019-11-19 10:33:06 +00:00
Rodolfo Alonso Hernandez 60d39f3a37 Upgrade jsonschema upper version
In [1], requirements.upper-constraints.txt, jsonschema library upper
version was bumped to 3.0.1. To avoid CI problems like [2], we should
remove the version limitation in this project.

[1]https://review.opendev.org/#/c/649789/
[2]https://d4b9765f6ab6e1413c28-81a8be848ef91b58aa974b4cb791a408.ssl.cf5.rackcdn.com/680427/2/check/neutron-rally-task/01b2c1c/controller/logs/devstacklog.txt.gz

Closes-Bug: #1843282
Change-Id: I0ac00de6987de8835d9cac8f73fdae00d2f212d6
2019-09-09 15:41:06 +00:00
Andrey Kurilin 78f43cd992 Remove morph dependency
morph library is distributed under GPLv3 dependency which means that we
need to distribute under package as well under GPLv3 license or stop
using this library.

Since we do not use too much from morph, so let's just let's write a
simple replacement for what we actually need.

Change-Id: I00df4e66a2365cbaa948707289b14262dc016454
2019-02-04 16:59:29 +00:00
Andrey Kurilin 158c1ffe8f Update our requirements.txt and u-c files
The new versions of our dependencies support py37, so we need to do
this.

Change-Id: Id201cef2ad3e702d15b338e7834ec14ac2e5ad56
2018-08-07 13:09:46 +03:00
Andrey Kurilin 7addc521c1 [evil] Remove OpenStack related plugins
NOTE: the existing legacy jobs should continue working due to several
applied hacks.

The new home for OpenStack plugins:
  https://git.openstack.org/cgit/openstack/rally-openstack
  https://github.com/openstack/rally-openstack
  https://pypi.org/project/rally-openstack/

Change-Id: I36e56759f02fe9560b454b7a396e0493da0be0ab
2018-06-20 19:01:47 +03:00
Andrey Kurilin 97722b179e Remove several test dependencies
* oslotest

  We are using just one fixture class(with only one useful code-line) from
  oslotest library. To reduce inheritors and simplify readability of the
  code, let's remove oslotest dependency.

  NOTE: coverage job will fail at master change with trying to import
        oslotest. To fix this issue oslotest is temporary added to `cover`
        tox env and will be removed in follow-up change

* testscenarios

  We do not use this dependency now (or even ever?!)

* coverage

  This library was used before we switched to pytest. Now, all we need
  is pytest-cov

Change-Id: Id0d52f928e067ced5bf4613c291019529b43fbbf
2018-04-17 19:30:05 +03:00
Andrey Kurilin 57200e0fa6 get rid of oslo.utils
we are using just several simple methods from oslo.utils which requires
a lot of other dependecies.

To make rally a lightweight framework, we need to abandon usage of such
things

Change-Id: I6e6170c7dabc97a089d030ee6b05fc07993e8c32
2018-03-22 10:34:53 +00:00
Andrey Kurilin fbc648ac36 Fix support for k8s-client 4.0
The new release of kubernetes python client improved the validation,
so we need to ediot our test to create the right fake objects.
As well, kubernetes.client.ConnectionObject was renamed to just `Connection`
and we should handle this.

Change-Id: I1a3275a8a5a3d729ce507689ab38e3c3d54d3c77
2018-02-19 19:14:12 +02:00
Andrey Kurilin 1ecab3d295 Update requirements
Sync our requirements with global openstack requirements.
Also, include uc for not direct rally dependencies

Change-Id: Ia1f0bf2cfbef75214ec66a8551bdfb5e84f90542
2018-02-12 22:53:49 +02:00
Zuul f1ba9c40a1 Merge "Add correct version for pyOpenSSL" 2017-11-25 11:54:58 +00:00
Sergey Galkin 162d2130aa Add correct version for pyOpenSSL
Issue: https://bugs.launchpad.net/rally/+bug/1734296
Change-Id: If458bb7603e9855d7fe791e7b6317e0fdbc4badb
2017-11-24 17:48:26 +04:00
Andrey Kurilin 4772d8c410 Do not use latest k8s client
kubernetes 4.0.0 inlcudes some backward incompatible changes. Fixing
them requires some time and we need to unblock gates for now.

Change-Id: If54966f65e5083a8fc41ef910f7fa031903d9878
2017-11-24 15:44:20 +02:00
Andrey Kurilin d39eed2be7 [requirements] Stop using upper limits for all cases
Using upper limits for all requirements adds a lot of pain for operators
and packaging teams. Sometimes it is very hard to find a list of
compatible packages which will feet rally and some other libs.
This patch stops setting upper limits for all packages in our
requirements list and moves to our personal upper-constraints file.

PS: It doesn't mean that we cannot limit packages in case of failures
and known compatibility issues

Change-Id: Id5d84fd1b605811ecbf7f88a4af8c2c607b9dd72
2017-11-06 17:28:31 +02:00
Amy Ge ee2f469d8f Add ElasticSearch exporter plugin
This elastic search exporter plugin allows user to export
results directly to the elasticsearch or dump to the ifle.
The implementation of this plugin is similar to other
exporters that user can call simply from command line, like:

   rally task export --type elasticsearch --to ./results_dump.txt

  or

   rally task export --type elasticsearch --to https://user:pass@xxx.com

Co-Authored-By: Andrey Kurilin <andr.kurilin@gmail.com>

Change-Id: I59e8eeaaf666708923df98018c01ebfed4a0cc39
2017-10-19 22:59:28 -07:00
Andrey Kurilin ba72f6379d Remove oslo.serialization dependency
This library is not used by Rally code itself for a long time.

Change-Id: I37238af50d01cf17716ebb8d316140da1a93a65c
2017-10-06 17:44:13 +03:00
Andrey Kurilin 0e20fe0eb8 Remove the direct dependency to oslo.i18n
We do not use this library.

Change-Id: I0ef98a9e8b67a96b42889d7c9729dd6f3fe1a837
2017-10-06 17:44:11 +03:00
Ilya Shakhat bb1d12265b Bump os-faults version to 0.1.15
os-faults 0.1.15 has capped ansible < 2.4.

Change-Id: Ica280babc583219eeee0de9a31a4e184a8eb0a0f
2017-09-28 09:16:16 +02:00
Boris Pavlovic 239cbfbc3c Temporary fix for new ansible release
Proper fix should be in os-faults library

Change-Id: I01a97f6fa315d17ac42af4e7635a0bd0df745795
2017-09-19 16:48:51 -07:00
Andrey Kurilin 687b9d497e Update requirements
Change-Id: I8476c6b8cab6fe8042b8c3260ca41813a453673c
2017-09-07 00:39:35 +03:00
Boris Pavlovic 6de875d052 Update requirments
Without this chanage can't install package using python setup.py develop

Change-Id: I075ca332277d335b76fe1e137c2bc8b5faf2d601
2017-08-28 13:13:02 -07:00
Boris Pavlovic 065836b512 Update versions of python clients from global requirments
Otherwise this causes sometimes issues like this:

 (python-cinderclient 2.2.0 (/usr/local/lib/python2.7/dist-packages),
  Requirement.parse('python-cinderclient>=3.0.0'),
  set(['python-openstackclient'])):

ContextualVersionConflict:
  (python-cinderclient 2.2.0 (/usr/local/lib/python2.7/dist-packages),
  Requirement.parse('python-cinderclient>=3.0.0'), set(['python-openstackclient']))

Change-Id: I73d2359d6463ab874391a72d759bb8b75fe602e3
2017-08-25 17:45:43 -07:00
Jon Schlueter f6b37ca733 remove runtime dep on sphinx
in rally/common/plugin/info replace sphinx prepare_docstring
with trim function from PEP-257 reference implementation

Also move Sphinx from requirements to test-requirements
Added several unittests for PEP-257 trim function

Change-Id: I9f13906cbb3ea9212a78b5bed178e15780001caf
2017-07-17 08:04:58 -04:00
Andrey Kurilin 7c0e133cca Update requirements
Change-Id: I301ccb283fa8de5d1a18170bd02ab783b9ec28da
2017-07-06 10:26:29 +00:00
Chandan Kumar 1acee0ebbe Switch to kubernetes upstream python client
Kubernetes Community provides python client named client-python project
for integrating with kubernetes. Let use the same in Rally. As Magnum
uses the same[1.].
I have ported the code from k8sclient to kubernetes.

[1.] https://review.openstack.org/#/c/432421/

Depends-on: I5489ee60cee9857036bb0796f56466cbbf1396c0

Change-Id: I443f2ece1168470b5c83f06bd7514ef257bb4df6
2017-07-01 02:30:33 +00:00
Jenkins 8ef1ace3ca Merge "OSprofiler support" 2017-05-30 12:48:37 +00:00
msimonin 755af67a02 OSprofiler support
The OSprofiler is a distributed trace toolkit library.
It helps to trace internal calls of Openstack services including RPC, DB
and WSGI.

This patch integrates OSprofiler in Rally. Rally can trigger the
profiling on a per-iteration basis. To do so a secret key
(profiler_hmac_key) is stored alongside the credentials and used to
initialize the profiler in the constructor of the scenarios. A
configuration parameter (enable_profiler) can disabled the profiling.

Note that in this patch we don't embed the full osprofiler report but
only a trace id. This trace id can be used to retrieve the full trace
from the osprofiler tool later.

Change-Id: I7602856d094e073fde80d287b4d92b5750aacc3c
Co-Authored-By: rcherrueau <Ronan-Alexandre.Cherrueau@inria.fr>
Implements: spec osprofiler
2017-05-27 15:09:42 +02:00
Winnie Tsang 98ee4ba846 [Magnum] Context and scenario for Kubernetes
Context and scenario to create pods and RCs

In this scenario, a Kubernetes cluster is created and
pods and replication controllers are launched.  These
will in turn launch docker instances.  The manifest
for the pods and replication controllers specifies
the docker image to be downloaded and used in the
containers.

The sample files will create nginx containers.

This scenario is intended to test the performance
of the Kubernetes as provisioned and configured by
Magnum.  There are many ways to configure the
cluster, therefore it would be helpful to detect
if any configuration can be tuned for better
performance.

Partially-Implements: blueprint benchmark-scenarios-for-magnum
Co-Authored-By: Ton Ngo <ton@us.ibm.com>
Change-Id: I3284f44ecce1f6b30087ad380b72da9ac41f21ce
2017-05-19 17:36:19 +02:00
Andrey Kurilin a701c586e6 update requirements
Change-Id: Ia90710f2c4464794cedb4e143ca590f4d2189b18
2017-05-17 20:00:28 -07:00
Andrey Kurilin 0b06cd1bfb Update requirements
Change-Id: Iefa22dcd88164ed0b3170b02d4baf35ff4fb2a12
2017-05-14 22:55:11 -07:00
Cedric Savignan 6c369a4875 Adds Networking-bgpvpn scenarios
Create-and-list-bgpvpns and create-and-update_bgpvpns

Change-Id: I098acedc175beebc24535abcd079a708ff47f846
2017-05-13 14:59:50 -07:00
Prateek Arora 93ee5102e8 Requirements file missing python-virtualenv
On systems where python-virtualenv is not installed, rally fails
to run. As such adding the package to requirements required for
running rally.

Change-Id: Ib95331bab90d0926750548704ac4ba7e997d72f1
Closes-Bug: #1678047
2017-03-31 12:58:04 -04:00
Andrey Kurilin 523f8071af [requirements] Sync requirements
Change-Id: Iefd7579ddc4f640a63d92a25c1baefbee8138b5b
2017-03-17 14:06:47 +02:00
Andrey Kurilin 5be6f319b1 Fix novaclient requirement
Change-Id: Idca835c6519e49ea62b6bceb8be583624ef1c40a
2017-01-27 17:02:10 +00:00
Andrey Kurilin f78371f610 Sync requirements
Change-Id: I8b143557bf49365eec73fd25228a4caac5775b6a
2017-01-24 19:52:43 +02:00
Anton Studenov 29c433241b Remove cueclient
cue project seems to be dead now and python-cueclient
dependancies shows lots of deprecation warnings at run time.

Change-Id: I9e023276798e04820384b15d12cd7952aec441ce
2016-12-27 17:17:29 +03:00
Andrey Kurilin 65a31a53be [requirements] Sync requirements
Change-Id: I5cae2be3aa297c2807c91892a0e90c55cdbba867
2016-11-14 17:13:04 +02:00
Anton Studenov 7d76719cda Fault injection hook plugin
This patch adds os-faults to requirements.txt and allows to
use this library as hook plugin.

Change-Id: Ifa8f33fbcff3e41f6ae019c6823f0a5ec328d780
2016-11-03 14:54:36 +03:00
Jesse Pretorius 31a8f05a65 Remove pycparser restriction from requirements
The assertion error mentioned to justify the restriction is
not actually due to this version of the python package, but
instead due to an improperly prepared wheel which was
uploaded to pypi. This wheel has now been removed and the
package works properly.

Reference: https://github.com/eliben/pycparser/issues/147

This patch removes the restriction so that Rally's
requirements are back in line with the OpenStack upper
constraint for pycparser.

Change-Id: I66ef46ad4c1511f39817270f59c7c1511645f2eb
Related-Bug: #1629830
Related-Bug: #1629726
2016-10-12 10:21:01 +01:00
Andrey Kurilin 3e5a021c49 Sync requirements before release
Change-Id: If3c066c364b18f5bc13ab03715a5f08b5e7d078b
2016-10-11 19:22:10 +03:00
obutenko e1bf4505c9 Pin pycparser version to ==2.13
This should fix  AssertionError: sorry, but this version only
supports 100 named groups during requirements install via pip

Change-Id: I2fd06f39066007ac5496a11eb048f97446a3aaf6
2016-10-03 16:34:36 +03:00
Andrey Kurilin 6c3809aa48 Rework optional-requirements
As discussed at weekly meeting, we should use optional-requirements only
for small number of cases.

This patch:
 - moves most of packages from optional-requirements to requirements
 - make groups of packages in requirements.txt
 - sorts Openstack related group of package
 - describes purpose of optional-requirements

Change-Id: I24fff516588d064069bf4226adeb0ae209c16d42
2016-09-13 18:31:23 +03:00