)]}'
{"doc/source/topics/settings.rst":[{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"82eb9b85ca89f8672425d9ceebf86e98dab90cfd","unresolved":false,"context_lines":[{"line_number":1656,"context_line":"  component in the cloud. For more details see `osprofiler documentation`_."},{"line_number":1657,"context_line":"* ``\"notifier_connection_string\"`` is a url to which trace messages are sent by"},{"line_number":1658,"context_line":"  Horizon. For other components it is usually the only URL specified in config,"},{"line_number":1659,"context_line":"  because other components act mostly as traces producers."},{"line_number":1660,"context_line":"* ``\"receiver_connection_string\"`` is a url from which traces are retrieved by"},{"line_number":1661,"context_line":"  Horizon, needed because Horizon is not only the traces producer, but also a"},{"line_number":1662,"context_line":"  consumer. Having 2 settings which usually contain the same value is legacy"}],"source_content_type":"text/x-rst","patch_set":51,"id":"fa7ab95a_ec3a1498","line":1659,"updated":"2016-08-31 04:19:36.000000000","message":"It\u0027d be good to document what the URL points at (outside of the example enabled file default value).","commit_id":"6f86688e4a36695b95aa86d5fcfdeadef4ec4a8a"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"0a88b241fa260cce66de03846f635171f0992231","unresolved":false,"context_lines":[{"line_number":1665,"context_line":"``OPENSTACK_PROFILER``"},{"line_number":1666,"context_line":"----------------------"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":".. versionadded:: 10.0.0(Newton)"},{"line_number":1669,"context_line":""},{"line_number":1670,"context_line":"Default: ``{\"enabled\": False}``"},{"line_number":1671,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5da102_539d4c58","line":1668,"updated":"2016-11-04 15:06:41.000000000","message":"Ocata.","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"4dce699f2f71ea24ea0c9c6a4eec40a3db9d9257","unresolved":false,"context_lines":[{"line_number":1665,"context_line":"``OPENSTACK_PROFILER``"},{"line_number":1666,"context_line":"----------------------"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":".. versionadded:: 10.0.0(Newton)"},{"line_number":1669,"context_line":""},{"line_number":1670,"context_line":"Default: ``{\"enabled\": False}``"},{"line_number":1671,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"9a629dbe_d4b59231","line":1668,"in_reply_to":"ba5da102_539d4c58","updated":"2016-11-08 14:41:22.000000000","message":"Done","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"0a88b241fa260cce66de03846f635171f0992231","unresolved":false,"context_lines":[{"line_number":1690,"context_line":"  feature from older versions of osprofiler when OpenStack components could use"},{"line_number":1691,"context_line":"  oslo.messaging for notifications and the trace client used ceilometer as a"},{"line_number":1692,"context_line":"  receiver backend. By default Horizon uses the same URL pointing to a MongoDB"},{"line_number":1693,"context_line":"  cluster for both purposes, since ceilometer was too slow for using with UI."},{"line_number":1694,"context_line":""},{"line_number":1695,"context_line":".. _osprofiler documentation: http://docs.openstack.org/developer/osprofiler/integration.html#how-to-initialize-profiler-to-get-one-trace-across-all-services"},{"line_number":1696,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5da102_13083491","line":1693,"updated":"2016-11-04 15:06:41.000000000","message":"Can we add examples for the above settings? Something like\n\nExample::\n\n\"keys\": [\"list\", \"of\", \"strings\"]\n\nI realise this is a nit pick, but I\u0027d like the documentation to be as complete as possible to avoid questions in IRC in 6 months time.","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"4dce699f2f71ea24ea0c9c6a4eec40a3db9d9257","unresolved":false,"context_lines":[{"line_number":1690,"context_line":"  feature from older versions of osprofiler when OpenStack components could use"},{"line_number":1691,"context_line":"  oslo.messaging for notifications and the trace client used ceilometer as a"},{"line_number":1692,"context_line":"  receiver backend. By default Horizon uses the same URL pointing to a MongoDB"},{"line_number":1693,"context_line":"  cluster for both purposes, since ceilometer was too slow for using with UI."},{"line_number":1694,"context_line":""},{"line_number":1695,"context_line":".. _osprofiler documentation: http://docs.openstack.org/developer/osprofiler/integration.html#how-to-initialize-profiler-to-get-one-trace-across-all-services"},{"line_number":1696,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"9a629dbe_94ab1ad6","line":1693,"in_reply_to":"ba5da102_13083491","updated":"2016-11-08 14:41:22.000000000","message":"Done","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"}],"horizon/middleware.py":[{"author":{"_account_id":12281,"name":"Itxaka","email":"igarcia@suse.com","username":"itxaka"},"change_message_id":"b219d122d2ca5d1fe2633eb754112ec3f8fa84b0","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.name \u003d profiler_settings.get(\u0027facility_name\u0027, \u0027horizon\u0027)"},{"line_number":222,"context_line":"        self.hmac_keys \u003d profiler_settings.get(\u0027keys\u0027)"},{"line_number":223,"context_line":"        self._enabled \u003d profiler_settings.get(\u0027enabled\u0027, False)"},{"line_number":224,"context_line":"        if self._enabled:"},{"line_number":225,"context_line":"            transport \u003d messaging.get_transport("},{"line_number":226,"context_line":"                CONF,"},{"line_number":227,"context_line":"                \u0027rabbit://guest:guest@%s:5672/\u0027 % settings.OPENSTACK_HOST)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_bc8059c0","line":224,"updated":"2016-02-05 16:15:40.000000000","message":"I know this is WIP but a small comment, if this is not enabled a middleware should raise a django.core.exceptions.MiddlewareNotUsed so django can deactivate it and a message gets logged if debug is enabled.","commit_id":"55bc10d1944b3a52a7188ff9af6e2487eb51426c"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"3dbc8ce486f0e9aaf67adfe43548e0008efec07d","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.name \u003d profiler_settings.get(\u0027facility_name\u0027, \u0027horizon\u0027)"},{"line_number":222,"context_line":"        self.hmac_keys \u003d profiler_settings.get(\u0027keys\u0027)"},{"line_number":223,"context_line":"        self._enabled \u003d profiler_settings.get(\u0027enabled\u0027, False)"},{"line_number":224,"context_line":"        if self._enabled:"},{"line_number":225,"context_line":"            transport \u003d messaging.get_transport("},{"line_number":226,"context_line":"                CONF,"},{"line_number":227,"context_line":"                \u0027rabbit://guest:guest@%s:5672/\u0027 % settings.OPENSTACK_HOST)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_66c9c9ac","line":224,"in_reply_to":"5a5ae5dd_bc8059c0","updated":"2016-04-08 15:00:30.000000000","message":"Done","commit_id":"55bc10d1944b3a52a7188ff9af6e2487eb51426c"}],"openstack_dashboard/contrib/developer/profiler/api.py":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"05e1f97f9570c7b0665866c62ea25ee1bef6322b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from openstack_dashboard.contrib.developer.profiler import models"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def init_notifier(connection_str, oslo_messaging, host\u003d\"localhost\"):"},{"line_number":28,"context_line":"    _notifier \u003d notifier.create("},{"line_number":29,"context_line":"        connection_str, messaging\u003dmessaging, context\u003d{},"},{"line_number":30,"context_line":"        host\u003d\u0027horizon\u0027, service\u003d\u0027horizon\u0027, host\u003dhost)"}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_409e0555","line":27,"range":{"start_line":27,"start_character":34,"end_line":27,"end_character":48},"updated":"2016-05-13 15:17:08.000000000","message":"No need to pass oslo_messaging into function, since it\u0027s imported at module\u0027s top level.","commit_id":"fc1d1d20d7d40a804a3af0aca85670300413aca6"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d16026efb167e03e18972202963c5e40f4d22499","unresolved":false,"context_lines":[{"line_number":18,"context_line":"try:"},{"line_number":19,"context_line":"    from urlparse import urlparse  # noqa"},{"line_number":20,"context_line":"except ImportError:  # Python3 is used"},{"line_number":21,"context_line":"    from urllib import parse as urlparse  # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from django.conf import settings"},{"line_number":24,"context_line":"from oslo_config.cfg import CONF"}],"source_content_type":"text/x-python","patch_set":47,"id":"fa7ab95a_97ef21e8","line":21,"updated":"2016-08-30 05:05:47.000000000","message":"\"from six.moves.urllib import urlparse\"","commit_id":"dc2471857bbda3330c9227aa75bae6fd9b0903e3"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"63f59255e18548ddd509d5da4098bab66a19b7e4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"try:"},{"line_number":19,"context_line":"    from urlparse import urlparse  # noqa"},{"line_number":20,"context_line":"except ImportError:  # Python3 is used"},{"line_number":21,"context_line":"    from urllib import parse as urlparse  # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from django.conf import settings"},{"line_number":24,"context_line":"from oslo_config.cfg import CONF"}],"source_content_type":"text/x-python","patch_set":47,"id":"fa7ab95a_5ba85477","line":21,"in_reply_to":"fa7ab95a_97ef21e8","updated":"2016-08-30 11:57:55.000000000","message":"Done","commit_id":"dc2471857bbda3330c9227aa75bae6fd9b0903e3"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d16026efb167e03e18972202963c5e40f4d22499","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from osprofiler import notifier"},{"line_number":28,"context_line":"from osprofiler import profiler"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"PROFILER_SETTINGS \u003d getattr(settings, \u0027OPENSTACK_PROFILER\u0027, {})"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def init_notifier(connection_str, url, host\u003d\"localhost\"):"}],"source_content_type":"text/x-python","patch_set":47,"id":"fa7ab95a_37a2d54b","line":30,"updated":"2016-08-30 05:05:47.000000000","message":"This setting isn\u0027t documented :-(\n\nIt looks like the setting default got added in the next patch, but even that patch doesn\u0027t document it or add anything to local_settings.py.example, which would be nice.","commit_id":"dc2471857bbda3330c9227aa75bae6fd9b0903e3"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"63f59255e18548ddd509d5da4098bab66a19b7e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from osprofiler import notifier"},{"line_number":28,"context_line":"from osprofiler import profiler"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"PROFILER_SETTINGS \u003d getattr(settings, \u0027OPENSTACK_PROFILER\u0027, {})"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def init_notifier(connection_str, url, host\u003d\"localhost\"):"}],"source_content_type":"text/x-python","patch_set":47,"id":"fa7ab95a_e157b223","line":30,"in_reply_to":"fa7ab95a_37a2d54b","updated":"2016-08-30 11:57:55.000000000","message":"Richard, I agree that was quite confusing. Will provide section in settings.rst in a while.","commit_id":"dc2471857bbda3330c9227aa75bae6fd9b0903e3"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"0a88b241fa260cce66de03846f635171f0992231","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    traces \u003d engine.list_traces(query, fields)"},{"line_number":80,"context_line":"    return [{\u0027id\u0027: trace[\u0027base_id\u0027],"},{"line_number":81,"context_line":"             \u0027timestamp\u0027: trace[\u0027timestamp\u0027],"},{"line_number":82,"context_line":"             \u0027origin\u0027: trace[\u0027info\u0027][\u0027request\u0027][\u0027path\u0027]} for trace in traces]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def get_trace(request, trace_id):"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5da102_93d7e4be","line":82,"updated":"2016-11-04 15:06:41.000000000","message":"(Question, not a -1)\n\nThere are an awful lot of assumed keys in this api; does the osprofiler architecture guarantee their presence?","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"4dce699f2f71ea24ea0c9c6a4eec40a3db9d9257","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    traces \u003d engine.list_traces(query, fields)"},{"line_number":80,"context_line":"    return [{\u0027id\u0027: trace[\u0027base_id\u0027],"},{"line_number":81,"context_line":"             \u0027timestamp\u0027: trace[\u0027timestamp\u0027],"},{"line_number":82,"context_line":"             \u0027origin\u0027: trace[\u0027info\u0027][\u0027request\u0027][\u0027path\u0027]} for trace in traces]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def get_trace(request, trace_id):"}],"source_content_type":"text/x-python","patch_set":60,"id":"9a629dbe_74de866e","line":82,"in_reply_to":"ba5da102_93d7e4be","updated":"2016-11-08 14:41:22.000000000","message":"Rob, in my understanding the presence of these keys is guaranteed by the lines 78-79.","commit_id":"b98012cc5b1760f4785b03cd57d6476917e19425"}],"openstack_dashboard/contrib/developer/profiler/middleware.py":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"0e46552e72326ddd2b734dae80501717ee461288","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.hmac_keys \u003d PROFILER_SETTINGS.get(\u0027keys\u0027)"},{"line_number":49,"context_line":"        self.notifier_connection_str \u003d PROFILER_SETTINGS.get("},{"line_number":50,"context_line":"            \u0027notifier_connection_string\u0027, \u0027messaging://\u0027)"},{"line_number":51,"context_line":"        self.rece"},{"line_number":52,"context_line":"        self._enabled \u003d PROFILER_SETTINGS.get(\u0027enabled\u0027, False)"},{"line_number":53,"context_line":"        if self._enabled:"},{"line_number":54,"context_line":"            api.init_notifier(self.notifier_connection_str)"}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_a049b1d2","line":51,"range":{"start_line":51,"start_character":7,"end_line":51,"end_character":17},"updated":"2016-05-13 15:18:58.000000000","message":"typo","commit_id":"fc1d1d20d7d40a804a3af0aca85670300413aca6"}],"openstack_dashboard/contrib/developer/profiler/models.py":[{"author":{"_account_id":20509,"name":"Daniel Castellanos","email":"luis.daniel.castellanos@intel.com","username":"lcastell"},"change_message_id":"cf52a228771561b651846b0d6d620c623b67d1ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        opts \u003d self._meta"},{"line_number":44,"context_line":"        data \u003d {}"},{"line_number":45,"context_line":"        for f in opts.concrete_fields:"},{"line_number":46,"context_line":"            if f.name in exclude_fields:"},{"line_number":47,"context_line":"                continue"},{"line_number":48,"context_line":"            data[f.name] \u003d f.value_from_object(self)"},{"line_number":49,"context_line":"        return data"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"bab6814e_0138aad2","line":48,"range":{"start_line":46,"start_character":12,"end_line":48,"end_character":52},"updated":"2016-05-18 17:21:09.000000000","message":"why don\u0027t change this for: \nif f.name not in exclude_fields:\n    data[f.name] \u003d f.value_from_object(self)","commit_id":"bde03257b207781fcaba8a5ac70c8a107a62452e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"61a81ad8555897fae471c7d5b395db9921ad976d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        opts \u003d self._meta"},{"line_number":44,"context_line":"        data \u003d {}"},{"line_number":45,"context_line":"        for f in opts.concrete_fields:"},{"line_number":46,"context_line":"            if f.name in exclude_fields:"},{"line_number":47,"context_line":"                continue"},{"line_number":48,"context_line":"            data[f.name] \u003d f.value_from_object(self)"},{"line_number":49,"context_line":"        return data"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"bab6814e_bc91c354","line":48,"range":{"start_line":46,"start_character":12,"end_line":48,"end_character":52},"in_reply_to":"bab6814e_0138aad2","updated":"2016-05-19 17:49:54.000000000","message":"Daniel, I\u0027m expecting the module will go away soon, since using Django ORM here is actually a hack due to ceilometer slowness - but we are gradually moving to mongodb driver for osprofiler.","commit_id":"bde03257b207781fcaba8a5ac70c8a107a62452e"}]}
