From 8ebce0597cac097925853f2bb67ee46440484871b833e3c2c83333eb61d5ea4f Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Mon, 2 Sep 2024 17:29:07 +0000 Subject: [PATCH] - added new-elasticsearch.patch - removed 0001-Add-default-port-to-Elasticsearch-connection-url.patch - update to version 4.2.0 - List up extra requirements for drivers - reno: Update master for unmaintained/victoria - Update python classifier in setup.cfg - Move oslo.config to normal requirements - Declare Python 3.10 support OBS-URL: https://build.opensuse.org/package/show/Cloud:OpenStack:Factory/python-osprofiler?expand=0&rev=42 --- .gitattributes | 23 + .gitignore | 1 + ...port-to-Elasticsearch-connection-url.patch | 42 ++ _service | 12 + new-elasticsearch.patch | 15 + osprofiler-4.1.0.tar.gz | 3 + osprofiler-4.2.0.tar.gz | 3 + python-osprofiler.changes | 417 ++++++++++++++++++ python-osprofiler.spec | 118 +++++ 9 files changed, 634 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-Add-default-port-to-Elasticsearch-connection-url.patch create mode 100644 _service create mode 100644 new-elasticsearch.patch create mode 100644 osprofiler-4.1.0.tar.gz create mode 100644 osprofiler-4.2.0.tar.gz create mode 100644 python-osprofiler.changes create mode 100644 python-osprofiler.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Add-default-port-to-Elasticsearch-connection-url.patch b/0001-Add-default-port-to-Elasticsearch-connection-url.patch new file mode 100644 index 0000000..deba306 --- /dev/null +++ b/0001-Add-default-port-to-Elasticsearch-connection-url.patch @@ -0,0 +1,42 @@ +From 5833d9519a31665447250e9c734ca64c065dab64 Mon Sep 17 00:00:00 2001 +From: Daniel Garcia Moreno +Date: Wed, 5 Oct 2022 14:42:54 +0200 +Subject: [PATCH] Add default port to Elasticsearch connection url + +This change makes it compatible with modern versions of elasticsearch. + +Change-Id: I10b8b57432894e28d5da87eb6d886a053be776f0 +--- + osprofiler/drivers/elasticsearch_driver.py | 2 +- + test-requirements.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/osprofiler/drivers/elasticsearch_driver.py b/osprofiler/drivers/elasticsearch_driver.py +index da9be17..deb42a3 100644 +--- a/osprofiler/drivers/elasticsearch_driver.py ++++ b/osprofiler/drivers/elasticsearch_driver.py +@@ -44,7 +44,7 @@ class ElasticsearchDriver(base.Driver): + client_url = parser.urlunparse(parser.urlparse(self.connection_str) + ._replace(scheme="http")) + self.conf = conf +- self.client = Elasticsearch(client_url) ++ self.client = Elasticsearch(client_url + ":9200") + self.index_name = index_name + self.index_name_error = "osprofiler-notifications-error" + +diff --git a/test-requirements.txt b/test-requirements.txt +index 3e1bbd8..52c1446 100644 +--- a/test-requirements.txt ++++ b/test-requirements.txt +@@ -13,7 +13,7 @@ bandit>=1.6.0,<1.7.0 # Apache-2.0 + pymongo!=3.1,>=3.0.2 # Apache-2.0 + + # Elasticsearch python client +-elasticsearch>=2.0.0,<3.0.0 # Apache-2.0 ++elasticsearch>=2.0.0,<9.0.0 # Apache-2.0 + + # Redis python client + redis>=2.10.0 # MIT +-- +2.37.3 + diff --git a/_service b/_service new file mode 100644 index 0000000..5ff958e --- /dev/null +++ b/_service @@ -0,0 +1,12 @@ + + + https://opendev.org/openstack/rpm-packaging/raw/master/openstack/osprofiler/osprofiler.spec.j2 + python-osprofiler.spec + https://opendev.org/openstack/osprofiler/raw/master/requirements.txt + cloud-devel@suse.de + gh,openstack,osprofiler + + + + + diff --git a/new-elasticsearch.patch b/new-elasticsearch.patch new file mode 100644 index 0000000..2570b74 --- /dev/null +++ b/new-elasticsearch.patch @@ -0,0 +1,15 @@ +submitted as https://review.opendev.org/c/openstack/osprofiler/+/927749 + +Index: osprofiler-4.2.0/osprofiler/tests/unit/drivers/test_elasticsearch.py +=================================================================== +--- osprofiler-4.2.0.orig/osprofiler/tests/unit/drivers/test_elasticsearch.py ++++ osprofiler-4.2.0/osprofiler/tests/unit/drivers/test_elasticsearch.py +@@ -23,7 +23,7 @@ class ElasticsearchTestCase(test.TestCas + + def setUp(self): + super(ElasticsearchTestCase, self).setUp() +- self.elasticsearch = ElasticsearchDriver("elasticsearch://localhost") ++ self.elasticsearch = ElasticsearchDriver("elasticsearch://localhost:9001/") + self.elasticsearch.project = "project" + self.elasticsearch.service = "service" + diff --git a/osprofiler-4.1.0.tar.gz b/osprofiler-4.1.0.tar.gz new file mode 100644 index 0000000..9c22ac1 --- /dev/null +++ b/osprofiler-4.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57837b620581b13444a2e20564775d4fc73eff67c7888af99947ed582fe514b0 +size 96068 diff --git a/osprofiler-4.2.0.tar.gz b/osprofiler-4.2.0.tar.gz new file mode 100644 index 0000000..2374948 --- /dev/null +++ b/osprofiler-4.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dd1c4be2645a8f24121055da5bb461688dcafc7e6b4d4babc0ef1ba66902781 +size 95940 diff --git a/python-osprofiler.changes b/python-osprofiler.changes new file mode 100644 index 0000000..fd921ad --- /dev/null +++ b/python-osprofiler.changes @@ -0,0 +1,417 @@ +------------------------------------------------------------------- +Mon Sep 2 17:28:50 UTC 2024 - cloud-devel@suse.de + +- added new-elasticsearch.patch +- removed 0001-Add-default-port-to-Elasticsearch-connection-url.patch +- update to version 4.2.0 + - List up extra requirements for drivers + - reno: Update master for unmaintained/victoria + - Update python classifier in setup.cfg + - Move oslo.config to normal requirements + - Declare Python 3.10 support + +------------------------------------------------------------------- +Mon Apr 1 17:37:16 UTC 2024 - Christian Boltz + +- %check: delete test_jaeger.py (already excluded via + --exclude-regex, but still causes import error) +- add missing BuildRequires: python3-opentelemetry-exporter-otlp + +------------------------------------------------------------------- +Thu Jan 4 09:08:04 UTC 2024 - cloud-devel@suse.de + +- added 0001-Add-default-port-to-Elasticsearch-connection-url.patch +- update to version 4.1.0 + - tox: Add functional-py38, functional-py39 envs + - add support of otlp exporter + - jaeger: introduce process tags' option for tracer + - Fix formattiing of release list + - [profiler] hmac_key should be secret + - setup.cfg: Replace dashes with underscores + - jaeger: introduce service name prefix + - remove unicode prefix from code + - jaeger: fix driver initialization for tests + - devstack: remove jaeger container on unstack + - profiler: add python requests profile + - Change StrictRedis usage to Redis + +------------------------------------------------------------------- +Wed Jun 8 20:10:52 UTC 2022 - Dirk Müller + +- update to 3.4.3: + * Make some revisions in the document + * Update CI to use unversioned jobs template + * Fix api index and module index + +------------------------------------------------------------------- +Tue May 24 21:54:01 UTC 2022 - Dirk Müller + +- drop unneeded dependencies + +------------------------------------------------------------------- +Mon Dec 6 09:30:11 UTC 2021 - cloud-devel@suse.de + +- update to version 3.4.2 + - Use py3 as the default runtime for tox + - Move flake8 as a pre-commit local target. + - Add Python3 wallaby unit tests + - ignore reno generated artifacts + - Dropping lower constraints testing + - Set manila config opts in devstack + - Update master for stable/victoria + - Uncap PrettyTable + - Adding pre-commit + +------------------------------------------------------------------- +Fri Oct 9 19:18:37 UTC 2020 - cloud-devel@suse.de + +- update to version 3.4.0 + - Fix empty 'args' and 'kwargs' when using 'hide_args' with Jaeger + - drop mock from lower-constraints + - Bump default tox env from py37 to py38 + - Add Python3 victoria unit tests + - Add py38 package metadata + - switch to importlib.metadata to find package version + - Fix StopIteration error on Ubuntu Focal + - Use unittest.mock instead of third party mock + - Fix pep8 failures + - Bump bandit version + - Switch to newer openstackdocstheme and reno versions + - Update master for stable/ussuri + - Enforce order of import statements + +------------------------------------------------------------------- +Tue May 12 10:04:24 UTC 2020 - cloud-devel@suse.de + +- update to version 3.1.0 + - Handle driver initialization errors to avoid service crash + - [ussuri][goal] Drop python 2.7 support and testing + - Switch to Ussuri jobs + - Start README.rst with a better title + - Update master for stable/train + - Update hacking for Python3 + +------------------------------------------------------------------- +Mon Mar 23 12:16:26 UTC 2020 - Dirk Mueller + +- add obsoletes + +------------------------------------------------------------------- +Sat Mar 14 11:45:55 UTC 2020 - Dirk Mueller + +- switch to python 3.x only builds + +------------------------------------------------------------------- +Wed Oct 9 12:39:40 UTC 2019 - cloud-devel@suse.de + +- update to version 2.8.2 + - Add a job to run full Tempest with enabled profiler + - Minimum versions of databases with JSON data type support + - Allow OSPROFILER_TRACE_SQLALCHEMY to be overridden + - Don't fail if sqlalchemy driver fails to initialize + - Fix elasticsearch version in python requirements + - Automatic configuration of SQLAlchemy driver in DevStack + - Rename OSProfiler-enabled Tempest job + - Add Python 3 Train unit tests + - Bring env OSPROFILER_CONNECTION_STRING into effect + - Optimize storage schema for Redis driver + - Replace git.openstack.org URLs with opendev.org URLs + - Dropping the py35 testing + - Support standalone placement in the devstack + - Update master for stable/stein + - Collect traces from Tempest job + - change function list_traces of mongodb module + - OpenDev Migration Patch + +------------------------------------------------------------------- +Mon Apr 8 14:04:49 UTC 2019 - cloud-devel@suse.de + +- update to version 2.6.0 + - Switch to stestr + - When shortening span-ids, check if they're already short + - Do not insert osprofiler filter into Neutron api-paste pipeline + - Change python3.5 job to python3.7 job on Stein+ + - import zuul job settings from project-config + - [devstack] Add support for elasticsearch backend + - Change openstack-dev to openstack-discuss + - Update reno for stable/rocky + - Update min tox version to 2.0 + - Don't quote {posargs} in tox.ini + - add python 3.6 unit test job + - Make tracing of SQL statements configurable in DevStack plugin + - add lib-forward-testing-python3 test job + - build universal wheels + - Reload keystone to apply osprofiler config + - Allow test path to be overridden + - Add sqlalchemy collector + - Configure Jaeger collector in DevStack + - add password for connecting redis-sentinel + - Add support for mongodb backend in devstack plugin + - In DevStack install Redis client library via pip, not as system package + - Use $STACK_USER variable in install_jaeger function + - Change http to https in reference link + - In case of an error, always add message + - Use templates for cover and lower-constraints +- remove 0001-Add-sqlalchemy-collector.patch and 0001-Don-t-fail-if-sqlalchemy-driver-fails-to-initialize.patch + +------------------------------------------------------------------- +Tue Mar 12 09:50:53 UTC 2019 - Thomas Bechtold + +- Add 0001-Add-sqlalchemy-collector.patch and + 0001-Don-t-fail-if-sqlalchemy-driver-fails-to-initialize.patch + Backport of the sqlalchemy collector driver to store traces + in a SQL database + +------------------------------------------------------------------- +Mon Sep 3 09:47:07 UTC 2018 - cloud-devel@suse.de + +- update to version 2.3.0 + - Check profiler instance before initialize + - Put 'db' parameter back and provide a deprecation warning before remove + - Update reno for stable/queens + - opts: Fix invalid rST formatting + - Unify and fix `list_traces` function + - Cleanup test-requirements + - Add oslo.serialization into requirements + - Zuul: Remove project name + - Add release note link in README + - Add minimum version and fix dulwich issue + - Remove Ceilometer support + - Filter traces that contain error/exception + - Remove lower bound from requirements + - Allow user to specify password for Redis connection + - Update documentation & usage for redis driver + - Trivial: Update pypi url to new url + - Fix typo + - OSprofiler with Jaeger Tracing as backend + - Add lower-constraints job + - set default python to python3 + - fix tox python3 overrides + - Make profiler.clean() public method + - Initialize osprofiler in Nova Cell configs + - update sphinx-doc links + - Add initial 'trace list' command + +------------------------------------------------------------------- +Fri Feb 23 13:30:57 UTC 2018 - cloud-devel@suse.de + +- update to version 1.15.2 + - Update .gitreview for stable/queens + - Check profiler instance before initialize +- Switch to stable/queens spec template + +------------------------------------------------------------------- +Tue Jan 30 15:15:33 UTC 2018 - cloud-devel@suse.de + +- update to version 1.15.1 + - Add kwargs to WsgiMiddleware __init__ + - Add functional test for Redis driver + - Add Zuul job for functional testing + - Remove setting of version/release from releasenotes + - Make collector configurable in DevStack plugin + - Add filter for OSprofiler html output + - Update the invalid doc links to the right ones in osprofiler docs + +------------------------------------------------------------------- +Mon Jan 15 12:04:06 UTC 2018 - cloud-devel@suse.de + +- update to version 1.14.0 + - Remove unused parameters from Profiler class + - Make dependency on oslo.messaging runtime only + - Update reno for stable/pike + - Add loading local static files option of template.html + - Do not require OpenStack authentication to run osprofiler CLI + - Improve unit test coverage + - Make test_notifier independent of test case execution order + - Remove dependency on oslo.log library + - Extend messaging driver to support reporting + - Handle and report SQLAlchemy errors + - Add function/sql results to trace info + +------------------------------------------------------------------- +Mon Aug 7 08:36:49 UTC 2017 - cloud-devel@suse.de + +- update to version 1.11.0 + - devstack: make option hmac_keys configurable + - Add functional test for notifier backend + - Add Jaeger to list of similar projects + - Highlight last trace for OSprofiler html output + - Upgrade libraries, add highlight for JSON data + - doc: Fix formatting + - Switch to "topics" keyword for messaging driver + - Python 3.4 support is removed + - Fix mistake in split meta string + - Update reno for stable/ocata + - Expose connection_string parameter into DevStack plugin + - Add magnum to devstack config + - Fix error message for invalid trace + - rearrange existing documentation to fit the new standard layout + - Move implemeted specs to implemented directory + - Add zun to devstack config + - Update .gitignore + - Update URLs in documents according to document migration + - Revert "Change list_opts to dictionary style" + - Change list_opts to dictionary style + - Improve error reporting for Ceilometer driver + - Enable warning-is-error in doc build + - Replace oslo.messaging.get_transport with get_notification_transport + - Change some bindings to one-time bindings + - devstack: use project conf file env variables + - Increase angular digest iteration limit + - Remove extra white spaces in json output + - Cleanup code of DevStack plugin + - Remove unused imports + - Fix enabling order specify in README.rst + - [Fix gate]Update test requirement + - Switch from oslosphinx to openstackdocstheme + - fix an outdated link for zipkin + +------------------------------------------------------------------- +Mon Feb 13 08:44:13 UTC 2017 - cloud-devel@suse.de + +- update to version 1.5.0: + - Add py35 tox virtualenv + - Fix a doc typo + - Use an env variable for connection string default + - Show team and repo badges on README + - Fix import order + - Add Log Insight driver + - Add Elasticsearch driver + - Update dependencies' version from project requirements + - Add a redis driver + - Trivial: Remove vim header from source files + - Add exception to trace point details + - Add reno for release notes management + - Visualize trace output as graph + - Update documentation to the latest state + - Add AUTHORS and ChangeLog to .gitignore + - Replace six.iteritems() with .items() + - Organize unit tests under tests/unit folder + - Move hacking checks outside tests + - Error out for invalid trace ID + - Use method constant_time_compare from oslo.utils + - [doc]Add description for multi-backend URI + - Update devstack plugin readme to enable Panko + - Pretty print json output + - Heat and Cinder now use new style conf + - Use oslo_utils.uuidutils.is_uuid_like + - Update homepage with developer documentation page + - Replace logging with oslo_log + - Pass oslo.messaging kwargs only for "messaging://" + - Add .idea folder to .gitignore + - Use uuidutils instead of uuid.uuid4() + - Enable devstack to configure OSProfiler for Senlin project + - Fix syntax in JS, JSON indent with 4 spaces + - Re-format html template + - Remove old notifiers + - Fix the issue that ChangeLog not found when building docs + - Update the driver path in th doc + - Remove print statement + +------------------------------------------------------------------- +Tue Aug 30 15:22:08 UTC 2016 - tbechtold@suse.com + +- update to version 1.4.0 + * Remove discover from test-requirements + * Don't set html_last_updated_fmt without git + * Add exception type to stop trace info + * OSprofiler initialization method + * Fix title of index page + * Add Ceilometer driver + * Expose osprofiler middleware as entrypoint + * Add MongoDB driver + * Improve unit test coverage + * Add connection string usage to osprofiler-cli + * Add tests for mongodb driver + * doc: Log warning when can't get informaiton from git + * Fix typos on spec directory + * Fix typo: 'Olso' to 'Oslo' + * Add backward compatible drivers structure + * Add overall profiler stats by operation + +------------------------------------------------------------------- +Mon Aug 1 18:56:59 UTC 2016 - tbechtold@suse.com + +- Add _service and switch to upstream spec file + +------------------------------------------------------------------- +Wed Apr 27 11:48:12 UTC 2016 - mmnelemane@suse.com + +- Upgraded to version 1.3.0 + * Add hepler to trace sessions + * Add an error tip when trace_id is not found + * Add a similar link with reference to similar projects/libraries + * Continue work on standardizing osprofiler docs + * Remove dead/broken link to example + * Updates to doc conf.py to look the same as other projects + * Clean thread local profiler object after usage + * Avoid tracing class and static methods + * Avoid multiple tracing when applying meta or class decorator + * Remove outdated version + * Dont claim copyright for future years + * Use pkg_resources to get version + * Enable bandit in gate + * Fallback if git is absent + * It's unnecessary set deprecate group for option 'enabled' + * Add CONTRIBUTING.rst + +------------------------------------------------------------------- +Sun Feb 28 13:12:06 UTC 2016 - dmueller@suse.com + +- update to 1.2.0: + * Remove flake8 ignore list in tox.ini + * run py34 tests before py27 to work around testr bug + * stop making a copy of options discovered by config generator + * Make class detection more accurate + * Disable staticmethods tracing + * Add fix for static and class methods in @trace_cls + * Expose X-Trace-* constants + * Add raw Ceilometer events support to DevStack plugin + * Use raw data storage for events to collect more info + * Use oslo.utils reflection and avoid refinding decorated name + * Move osprofiler tests into osprofiler + * Consolidate osprofiler options + * Remove argparse from requirements + * Add py34 to tox env list + * Make profiler timestamp json.dumps friendly + * Replace deprecated library function os.popen() with subprocess + * Add DevStack plugin + * Remove Py33 support + * Make it possible to specify file path as a source for trace + * Remove support for py26 + * Improve HTML reports performance + * Fix TracedMeta class + * Fix a couple of typos in doc strings + * Fix Ceilometer parser to use events + * remove python 2.6 trove classifier + * Add TracedMeta class + * Update requirements + * Deprecated tox -downloadcache option removed + * Fix enable/disable compatibility + * Add hacking rules & fix hacking issues + +------------------------------------------------------------------- +Tue Nov 17 14:33:11 UTC 2015 - bwiedemann@suse.com + +- update to 0.3.1 + * Make api-paste.ini config optional + * Fix minor typos in the multi-backend specification + * Spec: Integration Testing + * Spec: Better DevStack Integration + * Spec: Multi Backend support + * Spec: Optional options in api-paste.ini + * Add specs base structure + * Update .gitreview for new namespace + * Fix date parsing when there's not milliseconds in the date + * Various cleanups + * Remove version from setup.cfg + * Stop using intersphinx + * Rename doc environment to docs + * Imporve generated trace html + * Adding a hits to notice operator when trace not found + +------------------------------------------------------------------- +Wed Aug 20 06:52:43 UTC 2014 - tbechtold@suse.com + +- Initial version + diff --git a/python-osprofiler.spec b/python-osprofiler.spec new file mode 100644 index 0000000..9a3cc79 --- /dev/null +++ b/python-osprofiler.spec @@ -0,0 +1,118 @@ +# +# spec file for package python-osprofiler +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: python-osprofiler +Version: 4.2.0 +Release: 0 +Summary: OpenStack Profiler Library +License: Apache-2.0 +Group: Development/Languages/Python +URL: https://docs.openstack.org/osprofiler +Source0: https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-4.2.0.tar.gz +Patch0: new-elasticsearch.patch +BuildRequires: openstack-macros +BuildRequires: python3-PrettyTable >= 0.7.2 +BuildRequires: python3-WebOb >= 1.7.1 +BuildRequires: python3-ddt +BuildRequires: python3-docutils +BuildRequires: python3-elasticsearch +BuildRequires: python3-importlib-metadata +BuildRequires: python3-opentelemetry-exporter-otlp +BuildRequires: python3-oslo.concurrency >= 3.26.0 +BuildRequires: python3-oslo.config >= 5.2.0 +BuildRequires: python3-oslo.log +BuildRequires: python3-oslo.utils >= 3.33.0 +BuildRequires: python3-pymongo +BuildRequires: python3-python-subunit +BuildRequires: python3-redis +BuildRequires: python3-stestr +BuildRequires: python3-testtools +BuildArch: noarch + +%description +OSProfiler provides a tiny but powerful library that is used by +most (soon to be all) OpenStack projects and their python clients. It +provides functionality to be able to generate 1 trace per request, that goes +through all involved services. This trace can then be extracted and used +to build a tree of calls which can be quite handy for a variety of +reasons (for example in isolating cross-project performance issues). + +%package -n python3-osprofiler +Summary: OpenStack Profiler Library +Requires: python3-PrettyTable >= 0.7.2 +Requires: python3-WebOb >= 1.7.1 +Requires: python3-importlib-metadata +Requires: python3-oslo.concurrency >= 3.26.0 +Requires: python3-oslo.config >= 5.2.0 +Requires: python3-oslo.log +Requires: python3-oslo.utils >= 3.33.0 +%if 0%{?suse_version} +Obsoletes: python2-osprofiler < 3.0.0 +%endif + +%description -n python3-osprofiler +OSProfiler provides a tiny but powerful library that is used by +most (soon to be all) OpenStack projects and their python clients. It +provides functionality to be able to generate 1 trace per request, that goes +through all involved services. This trace can then be extracted and used +to build a tree of calls which can be quite handy for a variety of +reasons (for example in isolating cross-project performance issues). + +This package contains the Python 3.x module + +%package -n python-osprofiler-doc +Summary: Documentation for OSProfiler +BuildRequires: python3-Sphinx +BuildRequires: python3-openstackdocstheme +BuildRequires: python3-sphinxcontrib-apidoc + +%description -n python-osprofiler-doc +Documentation for OSProfiler. + +%prep +%autosetup -p1 -n osprofiler-4.2.0 +%py_req_cleanup + +%build +%{py3_build} + +%install +%{py3_install} + +# generate html docs +PBR_VERSION=%{version} %sphinx_build -b html doc/source doc/build/html +# remove the sphinx-build leftovers +rm -rf doc/build/html/.{doctrees,buildinfo} + +%check +# otherwise causes import error +rm osprofiler/tests/unit/drivers/test_jaeger.py +%{openstack_stestr_run} --exclude-regex '(^osprofiler.tests.unit.drivers.test_jaeger.JaegerTestCase.*$)' + +%files -n python3-osprofiler +%license LICENSE +%doc README.rst ChangeLog +%{python3_sitelib}/osprofiler +%{python3_sitelib}/*.egg-info +%{_bindir}/osprofiler + +%files -n python-osprofiler-doc +%license LICENSE +%doc doc/build/html + +%changelog