Hello community, here is the log from the commit of package python-osprofiler for openSUSE:Factory checked in at 2018-02-27 16:57:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-osprofiler (Old) and /work/SRC/openSUSE:Factory/.python-osprofiler.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-osprofiler" Tue Feb 27 16:57:17 2018 rev:6 rq:579518 version:1.15.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-osprofiler/python-osprofiler.changes 2018-01-17 21:56:41.491767995 +0100 +++ /work/SRC/openSUSE:Factory/.python-osprofiler.new/python-osprofiler.changes 2018-02-27 16:57:19.361419045 +0100 @@ -1,0 +2,20 @@ +Fri Feb 23 13:30:57 UTC 2018 - cloud-de...@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-de...@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 + +------------------------------------------------------------------- Old: ---- osprofiler-1.14.0.tar.gz New: ---- osprofiler-1.15.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-osprofiler.spec ++++++ --- /var/tmp/diff_new_pack.kkU54n/_old 2018-02-27 16:57:20.729369618 +0100 +++ /var/tmp/diff_new_pack.kkU54n/_new 2018-02-27 16:57:20.733369474 +0100 @@ -17,13 +17,13 @@ Name: python-osprofiler -Version: 1.14.0 +Version: 1.15.2 Release: 0 Summary: OpenStack Profiler Library License: Apache-2.0 Group: Development/Languages/Python Url: https://launchpad.net/osprofiler -Source0: https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-1.14.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-1.15.2.tar.gz BuildRequires: openstack-macros BuildRequires: python-devel BuildRequires: python2-WebOb >= 1.7.1 @@ -31,10 +31,10 @@ BuildRequires: python2-ddt >= 1.0.1 BuildRequires: python2-elasticsearch >= 2.0.0 BuildRequires: python2-mock >= 2.0.0 -BuildRequires: python2-oslo.concurrency >= 3.20.0 -BuildRequires: python2-oslo.config >= 4.6.0 -BuildRequires: python2-oslo.log >= 3.30.0 -BuildRequires: python2-oslo.utils >= 3.31.0 +BuildRequires: python2-oslo.concurrency >= 3.25.0 +BuildRequires: python2-oslo.config >= 5.1.0 +BuildRequires: python2-oslo.log >= 3.36.0 +BuildRequires: python2-oslo.utils >= 3.33.0 BuildRequires: python2-pymongo >= 3.0.2 BuildRequires: python2-python-subunit >= 1.0.0 BuildRequires: python2-redis >= 2.10.0 @@ -47,10 +47,10 @@ BuildRequires: python3-devel BuildRequires: python3-elasticsearch >= 2.0.0 BuildRequires: python3-mock >= 2.0.0 -BuildRequires: python3-oslo.concurrency >= 3.20.0 -BuildRequires: python3-oslo.config >= 4.6.0 -BuildRequires: python3-oslo.log >= 3.30.0 -BuildRequires: python3-oslo.utils >= 3.31.0 +BuildRequires: python3-oslo.concurrency >= 3.25.0 +BuildRequires: python3-oslo.config >= 5.1.0 +BuildRequires: python3-oslo.log >= 3.36.0 +BuildRequires: python3-oslo.utils >= 3.33.0 BuildRequires: python3-pymongo >= 3.0.2 BuildRequires: python3-python-subunit >= 1.0.0 BuildRequires: python3-redis >= 2.10.0 @@ -58,10 +58,10 @@ BuildRequires: python3-testrepository >= 0.0.18 BuildRequires: python3-testtools >= 2.2.0 Requires: python-WebOb >= 1.7.1 -Requires: python-oslo.concurrency >= 3.20.0 -Requires: python-oslo.config >= 4.6.0 -Requires: python-oslo.log >= 3.30.0 -Requires: python-oslo.utils >= 3.31.0 +Requires: python-oslo.concurrency >= 3.25.0 +Requires: python-oslo.config >= 5.1.0 +Requires: python-oslo.log >= 3.36.0 +Requires: python-oslo.utils >= 3.33.0 Requires: python-six >= 1.10.0 BuildArch: noarch %if 0%{?suse_version} @@ -86,13 +86,13 @@ Summary: Documentation for OSProfiler Group: Development/Languages/Python BuildRequires: python-Sphinx -BuildRequires: python-openstackdocstheme >= 1.17.0 +BuildRequires: python-openstackdocstheme >= 1.18.1 %description -n python-osprofiler-doc Documentation for OSProfiler. %prep -%autosetup -p1 -n osprofiler-1.14.0 +%autosetup -p1 -n osprofiler-1.15.2 %py_req_cleanup sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kkU54n/_old 2018-02-27 16:57:20.765368317 +0100 +++ /var/tmp/diff_new_pack.kkU54n/_new 2018-02-27 16:57:20.765368317 +0100 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/osprofiler/osprofiler.spec.j2</param> + <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/openstack/osprofiler/osprofiler.spec.j2</param> <param name="output-name">python-osprofiler.spec</param> - <param name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/master/requirements.txt</param> + <param name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/requirements.txt</param> <param name="changelog-email">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,osprofiler</param> </service> ++++++ osprofiler-1.14.0.tar.gz -> osprofiler-1.15.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/.zuul.yaml new/osprofiler-1.15.2/.zuul.yaml --- old/osprofiler-1.14.0/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/osprofiler-1.15.2/.zuul.yaml 2018-02-14 21:46:00.000000000 +0100 @@ -0,0 +1,10 @@ +- project: + name: openstack/osprofiler + check: + jobs: + - openstack-tox-functional + - openstack-tox-functional-py35 + gate: + jobs: + - openstack-tox-functional + - openstack-tox-functional-py35 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/AUTHORS new/osprofiler-1.15.2/AUTHORS --- old/osprofiler-1.14.0/AUTHORS 2017-11-13 16:32:10.000000000 +0100 +++ new/osprofiler-1.15.2/AUTHORS 2018-02-14 21:47:44.000000000 +0100 @@ -2,6 +2,7 @@ Akihiro Motoki <amot...@gmail.com> Alexander Ignatyev <aignat...@mirantis.com> Alexey Yelistratov <ayelistra...@mirantis.com> +Andreas Jaeger <a...@suse.com> Andreas Jaeger <a...@suse.de> Andrey Kurilin <akuri...@mirantis.com> Atsushi SAKAI <sak...@jp.fujitsu.com> @@ -47,5 +48,6 @@ reedip <reedip.baner...@nectechnologies.in> ricolin <rico....@easystack.cn> ritesh.arya <ritesh.a...@nectechnologies.in> +shangxiaobj <shangxia...@inspur.com> uppi <helend...@gmail.com> wangxiyuan <wangxiy...@huawei.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/CONTRIBUTING.rst new/osprofiler-1.15.2/CONTRIBUTING.rst --- old/osprofiler-1.14.0/CONTRIBUTING.rst 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/CONTRIBUTING.rst 2018-02-14 21:45:38.000000000 +0100 @@ -1,16 +1,16 @@ If you would like to contribute to the development of OpenStack, you must follow the steps in this page: - http://docs.openstack.org/infra/manual/developers.html + https://docs.openstack.org/infra/manual/developers.html Once those steps have been completed, changes to OpenStack should be submitted for review via the Gerrit tool, following the workflow documented at: - http://docs.openstack.org/infra/manual/developers.html#development-workflow + https://docs.openstack.org/infra/manual/developers.html#development-workflow Pull requests submitted through GitHub will be ignored. Bugs should be filed on Launchpad, not GitHub: - https://bugs.launchpad.net/osprofiler \ No newline at end of file + https://bugs.launchpad.net/osprofiler diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/ChangeLog new/osprofiler-1.15.2/ChangeLog --- old/osprofiler-1.14.0/ChangeLog 2017-11-13 16:32:10.000000000 +0100 +++ new/osprofiler-1.15.2/ChangeLog 2018-02-14 21:47:44.000000000 +0100 @@ -1,6 +1,27 @@ CHANGES ======= +1.15.2 +------ + +* Check profiler instance before initialize +* Update .gitreview for stable/queens + +1.15.1 +------ + + +1.15.0 +------ + +* Update the invalid doc links to the right ones in osprofiler docs +* Add filter for OSprofiler html output +* Add kwargs to WsgiMiddleware \_\_init\_\_ +* Make collector configurable in DevStack plugin +* Add functional test for Redis driver +* Remove setting of version/release from releasenotes +* Add Zuul job for functional testing + 1.14.0 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/PKG-INFO new/osprofiler-1.15.2/PKG-INFO --- old/osprofiler-1.14.0/PKG-INFO 2017-11-13 16:32:11.000000000 +0100 +++ new/osprofiler-1.15.2/PKG-INFO 2018-02-14 21:47:45.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: osprofiler -Version: 1.14.0 +Version: 1.15.2 Summary: OpenStack Profiler Library Home-page: https://docs.openstack.org/osprofiler/latest/ Author: OpenStack @@ -11,8 +11,8 @@ Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/osprofiler.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/osprofiler.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/README.rst new/osprofiler-1.15.2/README.rst --- old/osprofiler-1.14.0/README.rst 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/README.rst 2018-02-14 21:45:38.000000000 +0100 @@ -2,8 +2,8 @@ Team and repository tags ======================== -.. image:: http://governance.openstack.org/badges/osprofiler.svg - :target: http://governance.openstack.org/reference/tags/index.html +.. image:: https://governance.openstack.org/tc/badges/osprofiler.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/bindep.txt new/osprofiler-1.15.2/bindep.txt --- old/osprofiler-1.14.0/bindep.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/osprofiler-1.15.2/bindep.txt 2018-02-14 21:45:38.000000000 +0100 @@ -0,0 +1,3 @@ +rabbitmq-server [test] +redis [test platform:rpm] +redis-server [test platform:dpkg] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/devstack/README.rst new/osprofiler-1.15.2/devstack/README.rst --- old/osprofiler-1.14.0/devstack/README.rst 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/devstack/README.rst 2018-02-14 21:46:00.000000000 +0100 @@ -5,29 +5,58 @@ This directory contains the files necessary to run OpenStack with enabled OSProfiler in DevStack. -OSProfiler has different drivers for trace processing. The default driver uses -Ceilometer to process and store trace events. Other drivers may connect -to databases directly and do not require Ceilometer. +OSProfiler can send trace data into different collectors. There are 2 parameters +that control this: + +* ``OSPROFILER_COLLECTOR`` specifies which collector to install in DevStack. + By default OSProfiler plugin does not install anything, thus default + messaging driver with Ceilometer storage will be used. + + Possible values: + + * ``<empty>`` - default messaging driver with Ceilometer is used + * ``redis`` - Redis is installed + + The default value of ``OSPROFILER_CONNECTION_STRING`` is set automatically + depending on ``OSPROFILER_COLLECTOR`` value. + +* ``OSPROFILER_CONNECTION_STRING`` specifies which driver is used by OSProfiler. + + Possible values: + + * ``messaging://`` - use messaging as trace collector (with the transport configured by oslo.messaging) + * ``redis://host:port`` - use Redis as trace storage + * ``elasticsearch://host:port`` - use Elasticsearch as trace storage + * ``mongodb://host:port`` - use MongoDB as trace storage + * ``loginsight://username:password@host`` - use LogInsight as trace collector/storage + To configure DevStack and enable OSProfiler edit ``${DEVSTACK_DIR}/local.conf`` file and add the following to ``[[local|localrc]]`` section: - * to use specified driver:: +* to use Redis collector:: + + enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master + OSPROFILER_COLLECTOR=redis - enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master - OSPROFILER_CONNECTION_STRING=<connection string value> + OSProfiler plugin will install Redis and configure OSProfiler to use Redis driver - the driver is chosen depending on the value of - ``OSPROFILER_CONNECTION_STRING`` variable (refer to the next section for - details) +* to use specified driver:: - * to use default Ceilometer driver:: + enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master + OSPROFILER_CONNECTION_STRING=<connection string value> - enable_plugin panko https://git.openstack.org/openstack/panko master - enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer master - enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master + the driver is chosen depending on the value of + ``OSPROFILER_CONNECTION_STRING`` variable (refer to the next section for + details) - .. note:: The order of enabling plugins matters. +* to use default Ceilometer driver:: + + enable_plugin panko https://git.openstack.org/openstack/panko master + enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer master + enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master + + Note: the order of enabling plugins matters. Run DevStack as normal:: @@ -52,3 +81,9 @@ OSPROFILER_CONNECTION_STRING=elasticsearch://127.0.0.1:9200 +**OSPROFILER_COLLECTOR** - controls which collector to install into DevStack. +The driver is then chosen automatically based on the collector. Empty value assumes +that the default messaging driver with Ceilometer is used. +Example: enable Redis collector:: + + OSPROFILER_COLLECTOR=redis diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/devstack/lib/osprofiler new/osprofiler-1.15.2/devstack/lib/osprofiler --- old/osprofiler-1.14.0/devstack/lib/osprofiler 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/devstack/lib/osprofiler 2018-02-14 21:46:00.000000000 +0100 @@ -1,16 +1,7 @@ -# lib/osprofiler -# Functions to control the configuration and operation of the **osprofiler** +#!/bin/bash -# Dependencies: -# -# - ``functions`` file -# - ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined - -# ``stack.sh`` calls the entry points in this order: -# -# - install_osprofiler -# - configure_osprofiler -# - init_osprofiler +# lib/osprofiler +# Functions to control the configuration and operation of the **OSProfiler** # Save trace setting XTRACE=$(set +o | grep xtrace) @@ -44,7 +35,31 @@ # Functions # --------- -# configure_osprofiler() - Nothing for now +function install_redis() { + if is_fedora; then + install_package redis python-redis + elif is_ubuntu; then + install_package redis-server python-redis + elif is_suse; then + install_package redis python-redis + else + exit_distro_not_supported "redis installation" + fi + + start_service redis +} + +function install_osprofiler_collector() { + if [ -z "$OSPROFILER_COLLECTOR" ]; then + OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"messaging://"} + elif [ "$OSPROFILER_COLLECTOR" == "redis" ]; then + install_redis + OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"redis://localhost:6379"} + else + die $LINENO "OSProfiler collector $OSPROFILER_COLLECTOR is not supported" + fi +} + function configure_osprofiler() { for conf in ${CONF_FILES[@]}; do @@ -56,6 +71,14 @@ iniset $conf profiler connection_string $OSPROFILER_CONNECTION_STRING fi done + + # Insert osprofiler filter into Neutron paste configuration + if [ -f $Q_API_PASTE_FILE ]; then + VAL=$(iniget $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone) + VAL=${VAL/catch_errors/catch_errors osprofiler} + iniset $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone "$VAL" + fi + if [ -f $CEILOMETER_CONF ] then iniset $CEILOMETER_CONF event store_raw info @@ -65,8 +88,3 @@ # Restore xtrace $XTRACE - -# Tell emacs to use shell-script-mode -## Local variables: -## mode: shell-script -## End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/devstack/plugin.sh new/osprofiler-1.15.2/devstack/plugin.sh --- old/osprofiler-1.14.0/devstack/plugin.sh 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/devstack/plugin.sh 2018-02-14 21:45:38.000000000 +0100 @@ -1,3 +1,4 @@ +#!/bin/bash # DevStack extras script to install osprofiler # Save trace setting @@ -6,8 +7,12 @@ source $DEST/osprofiler/devstack/lib/osprofiler -if [[ "$1" == "stack" && "$2" == "post-config" ]]; then - echo_summary "Configuring OSprofiler" +if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then + echo_summary "Configuring system services for OSProfiler" + install_osprofiler_collector + +elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then + echo_summary "Configuring OSProfiler" configure_osprofiler fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/devstack/settings new/osprofiler-1.15.2/devstack/settings --- old/osprofiler-1.14.0/devstack/settings 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/devstack/settings 2018-02-14 21:45:38.000000000 +0100 @@ -4,6 +4,5 @@ # of profiling in OpenStack services: profiling is only performed for # requests that specify one of these keys in HTTP headers. OSPROFILER_HMAC_KEYS=${OSPROFILER_HMAC_KEYS:-"SECRET_KEY"} -OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"messaging://"} enable_service osprofiler diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/doc/source/user/integration.rst new/osprofiler-1.15.2/doc/source/user/integration.rst --- old/osprofiler-1.14.0/doc/source/user/integration.rst 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/doc/source/user/integration.rst 2018-02-14 21:45:38.000000000 +0100 @@ -126,9 +126,9 @@ * ALL SQL requests (turned off by default, because it produce a lot of traffic) -.. _CONF: http://docs.openstack.org/developer/oslo.config/ -.. _HMAC: http://en.wikipedia.org/wiki/Hash-based_message_authentication_code -.. _OpenStack: http://openstack.org/ +.. _CONF: https://docs.openstack.org/oslo.config/latest/ +.. _HMAC: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code +.. _OpenStack: https://www.openstack.org/ .. _Ceilometer: https://wiki.openstack.org/wiki/Ceilometer .. _oslo.messaging: https://pypi.python.org/pypi/oslo.messaging .. _OSprofiler WSGI middleware: https://github.com/openstack/osprofiler/blob/master/osprofiler/web.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/cmd/template.html new/osprofiler-1.15.2/osprofiler/cmd/template.html --- old/osprofiler-1.14.0/osprofiler/cmd/template.html 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/cmd/template.html 2018-02-14 21:45:38.000000000 +0100 @@ -79,6 +79,8 @@ document.write('<script type="text/javascript" src="/libs/ui-bootstrap-tpls-2.3.1.min.js"><\/script>'); document.write('<script type="text/javascript" src="/libs/highlight.min.js"><\/script>'); document.write('<script type="text/javascript" src="/libs/angular-highlightjs.min.js"><\/script>'); + document.write('<script type="text/javascript" src="/libs/angular-ui-tree.min.js"><\/script>'); + document.write('<script type="text/javascript" src="/libs/angular-ui-tree-filter.js"><\/script>'); } else{ document.write('<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">'); @@ -87,6 +89,8 @@ document.write('<script type="text/javascript" src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.3.1.min.js"><\/script>'); document.write('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/highlight.min.js"><\/script>'); document.write('<script type="text/javascript" src="https://pc035860.github.io/angular-highlightjs/angular-highlightjs.min.js"><\/script>'); + document.write('<script type="text/javascript" src="https://cdn.rawgit.com/angular-ui-tree/angular-ui-tree/master/dist/angular-ui-tree.min.js"><\/script>'); + document.write('<script type="text/javascript" src="https://cdn.rawgit.com/EE/angular-ui-tree-filter/master/dist/angular-ui-tree-filter.js"><\/script>'); } </script> </head> @@ -99,7 +103,7 @@ var OSProfilerData = $DATA; angular - .module('app', ['ui.bootstrap', 'hljs']) + .module('app', ['ui.bootstrap', 'hljs', 'ui.tree', 'ui.tree-filter']) .config(['$rootScopeProvider', function ($rootScopeProvider) { $rootScopeProvider.digestTtl(50); }]) @@ -109,19 +113,30 @@ tabReplace: ' ' }); }]) + .config(['uiTreeFilterSettingsProvider', function (uiTreeFilterSettingsProvider) { + uiTreeFilterSettingsProvider.addresses = [ + 'info.name', + 'info.project', + 'info.service', + 'info.host' + ]; + uiTreeFilterSettingsProvider.descendantCollection = 'children'; + }]) .controller('ProfilerController', ProfilerController) .controller('ModalInstanceController', ModalInstanceController); // Inject services - ProfilerController.$inject = ['$uibModal']; + ProfilerController.$inject = ['$filter', '$uibModal']; ModalInstanceController.$inject = ['$uibModalInstance', 'info']; - function ProfilerController($uibModal) { + function ProfilerController($filter, $uibModal) { // NOTE(tovin07): Bind this to vm. This is controller as and vm syntax. // This style is mainstream now. It replaces $scope style. // Ref: https://johnpapa.net/angularjss-controller-as-and-the-vm-variable/ var vm = this; + vm.filter = $filter('uiTreeFilter'); + var converInput = function(input, level) { level = (level) ? level : 0; input.level = level; @@ -249,8 +264,8 @@ </td> </tr> </table> - <div ng-hide="hide_children"> - <div ng-repeat="data in data.children" ng-include="'tree_item_renderer.html'"></div> + <div ui-tree-nodes ng-model="data.children" ng-hide="hide_children"> + <div ui-tree-node ng-repeat="data in data.children" ng-include="'tree_item_renderer.html'" ng-hide="!vm.filter(data, vm.filterPattern)"></div> </div> </div> </script> @@ -285,6 +300,16 @@ </script> <!--Body--> <div ng-controller="ProfilerController as vm"> + <form class="form-horizontal"> + <div class="form-group"> + <label for="filterPattern" class="col-md-4 control-label">Span filtering:</label> + <div class="col-md-6"> + <input type="text" class="form-control" id="filterPattern" + placeholder="Input your regular expression pattern here" + ng-model="vm.filterPattern"> + </div> + </div> + </form> <table class="trace"> <tr class="bold text-left" style="border-bottom: solid 1px gray;"> <td class="level">Levels</td> @@ -296,7 +321,11 @@ <td class="details">Details</td> </tr> </table> - <div ng-repeat="data in vm.tree" ng-include="'tree_item_renderer.html'"></div> + <div ui-tree> + <div ui-tree-nodes ng-model="vm.tree"> + <div ui-tree-node ng-repeat="data in vm.tree" ng-include="'tree_item_renderer.html'" ng-hide="!vm.filter(data, vm.filterPattern)"></div> + </div> + </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/profiler.py new/osprofiler-1.15.2/osprofiler/profiler.py --- old/osprofiler-1.14.0/osprofiler/profiler.py 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/profiler.py 2018-02-14 21:46:00.000000000 +0100 @@ -55,8 +55,9 @@ :param parent_id: Used to build tree of traces. :returns: Profiler instance """ - __local_ctx.profiler = _Profiler(hmac_key, base_id=base_id, - parent_id=parent_id) + if get() is None: + __local_ctx.profiler = _Profiler(hmac_key, base_id=base_id, + parent_id=parent_id) return __local_ctx.profiler diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/tests/functional/config.cfg new/osprofiler-1.15.2/osprofiler/tests/functional/config.cfg --- old/osprofiler-1.14.0/osprofiler/tests/functional/config.cfg 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/tests/functional/config.cfg 2018-02-14 21:45:38.000000000 +0100 @@ -1,3 +1,5 @@ +[DEFAULT] +transport_url=rabbit://localhost:5672/ [profiler] connection_string="messaging://" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/tests/functional/test_driver.py new/osprofiler-1.15.2/osprofiler/tests/functional/test_driver.py --- old/osprofiler-1.14.0/osprofiler/tests/functional/test_driver.py 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/tests/functional/test_driver.py 2018-02-14 21:46:00.000000000 +0100 @@ -13,6 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. +import logging import os from oslo_config import cfg @@ -25,9 +26,19 @@ CONF = cfg.CONF +LOG = logging.getLogger(__name__) -class DriverTestCase(test.TestCase): +@profiler.trace_cls("rpc", hide_args=True) +class Foo(object): + def bar(self, x): + return self.baz(x, x) + + def baz(self, x, y): + return x * y + + +class DriverTestCase(test.FunctionalTestCase): SERVICE = "service" PROJECT = "project" @@ -40,15 +51,6 @@ trace_sqlalchemy=False, hmac_keys="SECRET_KEY") - @profiler.trace_cls("rpc", hide_args=True) - class Foo(object): - - def bar(self, x): - return self.baz(x, x) - - def baz(self, x, y): - return x * y - def _assert_dict(self, info, **kwargs): for key in kwargs: self.assertEqual(kwargs[key], info[key]) @@ -75,26 +77,35 @@ self._assert_dict(raw_stop, **exp_raw) def test_get_report(self): + # initialize profiler notifier (the same way as in services) initializer.init_from_conf( - CONF, None, self.PROJECT, self.SERVICE, "host") + CONF, {}, self.PROJECT, self.SERVICE, "host") profiler.init("SECRET_KEY") - foo = DriverTestCase.Foo() + # grab base_id + base_id = profiler.get().get_base_id() + + # execute profiled code + foo = Foo() foo.bar(1) + # instantiate report engine (the same way as in osprofiler CLI) engine = base.get_driver(CONF.profiler.connection_string, project=self.PROJECT, service=self.SERVICE, host="host", conf=CONF) - base_id = profiler.get().get_base_id() - res = engine.get_report(base_id) - self.assertEqual("total", res["info"]["name"]) - self.assertEqual(2, res["stats"]["rpc"]["count"]) - self.assertEqual(1, len(res["children"])) + # generate the report + report = engine.get_report(base_id) + LOG.debug("OSProfiler report: %s", report) + + # verify the report + self.assertEqual("total", report["info"]["name"]) + self.assertEqual(2, report["stats"]["rpc"]["count"]) + self.assertEqual(1, len(report["children"])) - cbar = res["children"][0] + cbar = report["children"][0] self._assert_child_dict( cbar, base_id, base_id, "rpc", "osprofiler.tests.functional.test_driver.Foo.bar") @@ -104,3 +115,14 @@ self._assert_child_dict( cbaz, base_id, cbar["trace_id"], "rpc", "osprofiler.tests.functional.test_driver.Foo.baz") + + +class RedisDriverTestCase(DriverTestCase): + def setUp(self): + super(DriverTestCase, self).setUp() + CONF([]) + opts.set_defaults(CONF, + connection_string="redis://localhost:6379", + enabled=True, + trace_sqlalchemy=False, + hmac_keys="SECRET_KEY") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/tests/test.py new/osprofiler-1.15.2/osprofiler/tests/test.py --- old/osprofiler-1.14.0/osprofiler/tests/test.py 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/tests/test.py 2018-02-14 21:45:38.000000000 +0100 @@ -13,6 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. +import logging +import sys from testtools import testcase @@ -20,3 +22,12 @@ class TestCase(testcase.TestCase): """Test case base class for all osprofiler unit tests.""" pass + + +class FunctionalTestCase(TestCase): + """Base for functional tests""" + + def setUp(self): + super(FunctionalTestCase, self).setUp() + + logging.basicConfig(stream=sys.stderr, level=logging.DEBUG) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler/web.py new/osprofiler-1.15.2/osprofiler/web.py --- old/osprofiler-1.14.0/osprofiler/web.py 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler/web.py 2018-02-14 21:45:38.000000000 +0100 @@ -69,7 +69,7 @@ class WsgiMiddleware(object): """WSGI Middleware that enables tracing for an application.""" - def __init__(self, application, hmac_keys=None, enabled=False): + def __init__(self, application, hmac_keys=None, enabled=False, **kwargs): """Initialize middleware with api-paste.ini arguments. :application: wsgi app @@ -79,6 +79,10 @@ by only those who knows this key which helps avoid DDOS. :enabled: This middleware can be turned off fully if enabled is False. + :kwargs: Other keyword arguments. + NOTE(tovin07): Currently, this `kwargs` is not used at all. + It's here to avoid some extra keyword arguments in local_conf + that cause `__init__() got an unexpected keyword argument`. """ self.application = application self.name = "wsgi" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler.egg-info/PKG-INFO new/osprofiler-1.15.2/osprofiler.egg-info/PKG-INFO --- old/osprofiler-1.14.0/osprofiler.egg-info/PKG-INFO 2017-11-13 16:32:10.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler.egg-info/PKG-INFO 2018-02-14 21:47:44.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: osprofiler -Version: 1.14.0 +Version: 1.15.2 Summary: OpenStack Profiler Library Home-page: https://docs.openstack.org/osprofiler/latest/ Author: OpenStack @@ -11,8 +11,8 @@ Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/osprofiler.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/osprofiler.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler.egg-info/SOURCES.txt new/osprofiler-1.15.2/osprofiler.egg-info/SOURCES.txt --- old/osprofiler-1.14.0/osprofiler.egg-info/SOURCES.txt 2017-11-13 16:32:11.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler.egg-info/SOURCES.txt 2018-02-14 21:47:45.000000000 +0100 @@ -1,9 +1,11 @@ .testr.conf +.zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog LICENSE README.rst +bindep.txt requirements.txt setup.cfg setup.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/osprofiler.egg-info/pbr.json new/osprofiler-1.15.2/osprofiler.egg-info/pbr.json --- old/osprofiler-1.14.0/osprofiler.egg-info/pbr.json 2017-11-13 16:32:10.000000000 +0100 +++ new/osprofiler-1.15.2/osprofiler.egg-info/pbr.json 2018-02-14 21:47:44.000000000 +0100 @@ -1 +1 @@ -{"git_version": "ffd8d7d", "is_release": true} \ No newline at end of file +{"git_version": "2eef344", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/releasenotes/source/conf.py new/osprofiler-1.15.2/releasenotes/source/conf.py --- old/osprofiler-1.14.0/releasenotes/source/conf.py 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/releasenotes/source/conf.py 2018-02-14 21:45:38.000000000 +0100 @@ -60,16 +60,12 @@ project = u'osprofiler Release Notes' copyright = u'2016, osprofiler Developers' -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. +# Release notes do not need a version in the title, they span +# multiple versions. # The full version, including alpha/beta/rc tags. -import pkg_resources -release = pkg_resources.get_distribution('osprofiler').version +release = '' # The short X.Y version. -version = release +version = '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-1.14.0/tox.ini new/osprofiler-1.15.2/tox.ini --- old/osprofiler-1.14.0/tox.ini 2017-11-13 16:29:18.000000000 +0100 +++ new/osprofiler-1.15.2/tox.ini 2018-02-14 21:45:38.000000000 +0100 @@ -21,6 +21,7 @@ setenv = {[testenv]setenv} OS_TEST_PATH=./osprofiler/tests/functional deps = {[testenv]deps} + oslo.messaging [testenv:functional-py35] basepython = python3.5