)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dina Belova \u003cdbelova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-21 11:49:03 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate OSprofiler in Keystone"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Add settings for OSprofiler wsgi middleware"},{"line_number":10,"context_line":"  This middleware is used for 2 things:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"9a68dd71_077de96d","line":7,"updated":"2016-01-21 15:19:05.000000000","message":"This commit message does a good job of explaining what the change is doing - but it would be nice to have a little more detail as to *why* we need it.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dina Belova \u003cdbelova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-21 11:49:03 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate OSprofiler in Keystone"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Add settings for OSprofiler wsgi middleware"},{"line_number":10,"context_line":"  This middleware is used for 2 things:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"9a68dd71_17e7d740","line":7,"in_reply_to":"9a68dd71_077de96d","updated":"2016-01-25 09:25:50.000000000","message":"ack, will add the appropriate section","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dina Belova \u003cdbelova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-06 16:46:35 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate OSprofiler in Keystone"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OSprofiler is an Oslo library dedicated to enable cross-service"},{"line_number":10,"context_line":"OpenStack profiling. This makes possible to trace the OpenStack"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_26916df1","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":32},"updated":"2016-04-12 21:28:20.000000000","message":"no need to mention keystone.","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":30,"context_line":"result oslo.db enginefacade module needs to be updated."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To test (old variant, will be changed with new commit to the"},{"line_number":33,"context_line":"python-openstackclient):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"$ . amdminrc # you should be admin user/tenant to fetch profiling data"},{"line_number":36,"context_line":"$ keystone --profile SECRET_KEY user-list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_26568d29","line":33,"updated":"2016-04-12 21:28:20.000000000","message":"is this review a WIP?","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":32,"context_line":"To test (old variant, will be changed with new commit to the"},{"line_number":33,"context_line":"python-openstackclient):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"$ . amdminrc # you should be admin user/tenant to fetch profiling data"},{"line_number":36,"context_line":"$ keystone --profile SECRET_KEY user-list"},{"line_number":37,"context_line":"$ osprofiler trace show --html --out result.html \u003cTRACE_ID\u003e"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_46fd8939","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":10},"updated":"2016-04-12 21:28:20.000000000","message":"admin","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":33,"context_line":"python-openstackclient):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"$ . amdminrc # you should be admin user/tenant to fetch profiling data"},{"line_number":36,"context_line":"$ keystone --profile SECRET_KEY user-list"},{"line_number":37,"context_line":"$ osprofiler trace show --html --out result.html \u003cTRACE_ID\u003e"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Old python-keystoneclient change: https://review.openstack.org/#/c/114856/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_669a4516","line":36,"updated":"2016-04-12 21:28:20.000000000","message":"there is no keystone CLI. This should be changed to the openstack CLI.","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":36,"context_line":"$ keystone --profile SECRET_KEY user-list"},{"line_number":37,"context_line":"$ osprofiler trace show --html --out result.html \u003cTRACE_ID\u003e"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Old python-keystoneclient change: https://review.openstack.org/#/c/114856/"},{"line_number":40,"context_line":"Python-openstack client change: https://review.openstack.org/#/c/255861/"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Depends-On: I248b134e0e245bd4cece0ebe225b9b729eedaf78"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_8663211a","line":39,"updated":"2016-04-12 21:28:20.000000000","message":"this is never going to happen since the CLI is removed.","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83f6b718bf1a346e17e88ccb86f09172d05d9568","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Old python-keystoneclient change: https://review.openstack.org/#/c/114856/"},{"line_number":40,"context_line":"Python-openstack client change: https://review.openstack.org/#/c/255861/"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Depends-On: I248b134e0e245bd4cece0ebe225b9b729eedaf78"},{"line_number":43,"context_line":"Change-Id: I3d6eaa7a5ab7ee9ae177f3e1d6cc92f0a01e6a42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"5a18252c_a6bbbd71","line":42,"updated":"2016-04-12 21:28:20.000000000","message":"this can be removed now.","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"}],"bin/keystone-all":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"159aa12083adb9bbbf6e837bf7d7fcdd46ba024d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"except ImportError:"},{"line_number":42,"context_line":"    profiler \u003d None"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"from keystone.openstack.common import context"},{"line_number":45,"context_line":"from keystone.openstack.common import gettextutils"},{"line_number":46,"context_line":"# NOTE(dstanek): gettextutils.enable_lazy() must be called before"},{"line_number":47,"context_line":"# gettextutils._() is called to ensure it has the desired lazy lookup"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"dab895d6_6ee8337d","line":44,"updated":"2014-06-29 15:42:41.000000000","message":"Why this fails??","commit_id":"129b3b155f8b3f30f5dac2c7a89ebc04edd815a6"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"dfc99d89dd10f1748140d49a782334375dab6f07","unresolved":false,"context_lines":[{"line_number":36,"context_line":"try:"},{"line_number":37,"context_line":"    # NOTE(boris-42): This will be required unit new version of oslo.messaging"},{"line_number":38,"context_line":"    #                 with this patch: https://review.openstack.org/#/c/103270/"},{"line_number":39,"context_line":"    #                 will be released."},{"line_number":40,"context_line":"    from oslo.messaging import profiler   # noqa"},{"line_number":41,"context_line":"except ImportError:"},{"line_number":42,"context_line":"    profiler \u003d None"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"baada198_9cf2ec98","line":39,"updated":"2014-07-01 21:22:29.000000000","message":"this is going to move to osproifler","commit_id":"ea998b53b18f9e25a24061b5e051a7328f92db67"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"64da9cee623a6ef51c81888a6cc677fd24c5fdf7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    server \u003d environment.Server(app, host\u003dhost, port\u003dport,"},{"line_number":78,"context_line":"                                keepalive\u003dCONF.tcp_keepalive,"},{"line_number":79,"context_line":"                                keepidle\u003dCONF.tcp_keepidle)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    _notifier \u003d osprofiler.notifier.create(\"Messaging\","},{"line_number":82,"context_line":"                                           notifications.messaging, {},"},{"line_number":83,"context_line":"                                           notifications.get_transport(),"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"baada198_b75dd417","line":80,"updated":"2014-07-10 22:09:46.000000000","message":"Do we want this to run by default for anyone running keystone-all?","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0ec869ebf97b8f10561daa86cb8d55f99b5015ac","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    server \u003d environment.Server(app, host\u003dhost, port\u003dport,"},{"line_number":78,"context_line":"                                keepalive\u003dCONF.tcp_keepalive,"},{"line_number":79,"context_line":"                                keepidle\u003dCONF.tcp_keepidle)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    _notifier \u003d osprofiler.notifier.create(\"Messaging\","},{"line_number":82,"context_line":"                                           notifications.messaging, {},"},{"line_number":83,"context_line":"                                           notifications.get_transport(),"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"baada198_fa0f28de","line":80,"in_reply_to":"baada198_22cee4b4","updated":"2014-07-31 19:37:13.000000000","message":"I would prefer if this was configurable, some clouds *may* not want the profiler running.","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a9152629490626ebfac391812742baf8eeb6e54c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    server \u003d environment.Server(app, host\u003dhost, port\u003dport,"},{"line_number":78,"context_line":"                                keepalive\u003dCONF.tcp_keepalive,"},{"line_number":79,"context_line":"                                keepidle\u003dCONF.tcp_keepidle)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    _notifier \u003d osprofiler.notifier.create(\"Messaging\","},{"line_number":82,"context_line":"                                           notifications.messaging, {},"},{"line_number":83,"context_line":"                                           notifications.get_transport(),"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"baada198_22cee4b4","line":80,"in_reply_to":"baada198_b75dd417","updated":"2014-07-10 22:34:10.000000000","message":"Definitely yep\u003d)\n\n1) It allows us to trace clouds in production without restarting API services (as this is cross project feature, it means that we will need to restart all api services of all projects) (try to get agreement from customer for that\u003d)\n\n2)  There is nothing scary here. It just sets up osprofiler notifier (and it\u0027s done only one time on start of service + it\u0027s very fast operation). \n\n3) It will allow us to profile OpenStack togehter with benchmarks in rally gate job\n\n\nBut I can make this optional (Like I made in glance) if you would prefer:\n\nhttps://review.openstack.org/#/c/105635/10/glance/cmd/api.py","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b4ce76559dda5d87cbc99ff21b93df163d730b3a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    server \u003d environment.Server(app, host\u003dhost, port\u003dport,"},{"line_number":78,"context_line":"                                keepalive\u003dCONF.tcp_keepalive,"},{"line_number":79,"context_line":"                                keepidle\u003dCONF.tcp_keepidle)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    _notifier \u003d osprofiler.notifier.create(\"Messaging\","},{"line_number":82,"context_line":"                                           notifications.messaging, {},"},{"line_number":83,"context_line":"                                           notifications.get_transport(),"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"baada198_1af5bc83","line":80,"in_reply_to":"baada198_fa0f28de","updated":"2014-07-31 19:43:39.000000000","message":"sure.\n\nBtw could you take a look at oslo-spec that I made:\n\nhttps://review.openstack.org/#/c/103825/","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"}],"config-generator/keystone.conf":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"05bf3057aa67ea5f8c86ea4f04977c54f275e663","unresolved":false,"context_lines":[{"line_number":10,"context_line":"namespace \u003d oslo.db"},{"line_number":11,"context_line":"namespace \u003d oslo.middleware"},{"line_number":12,"context_line":"namespace \u003d oslo.service.service"},{"line_number":13,"context_line":"namespace \u003d keystone_osprofiler"},{"line_number":14,"context_line":"# We don\u0027t use oslo.concurrency config options in"},{"line_number":15,"context_line":"# keystone now, just in case it slips through unnoticed."},{"line_number":16,"context_line":"#namespace \u003d oslo.concurrency"}],"source_content_type":"text/plain","patch_set":47,"id":"ba0121b8_0b53066c","line":13,"updated":"2016-03-31 20:12:14.000000000","message":"This needs to be osprofiler","commit_id":"3c0a725401e44b02d5981c69c113ad01a31c6fb5"}],"etc/keystone-paste.ini":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"64da9cee623a6ef51c81888a6cc677fd24c5fdf7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"paste.app_factory \u003d keystone.service:admin_app_factory"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"[pipeline:public_api]"},{"line_number":82,"context_line":"pipeline \u003d sizelimit url_normalize build_auth_context token_auth admin_token_auth osprofiler xml_body_v2 json_body ec2_extension user_crud_extension public_service"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"[pipeline:admin_api]"},{"line_number":85,"context_line":"pipeline \u003d sizelimit url_normalize build_auth_context token_auth admin_token_auth osprofiler xml_body_v2 json_body ec2_extension s3_extension crud_extension admin_service"}],"source_content_type":"text/x-properties","patch_set":10,"id":"baada198_d7e9681b","line":82,"updated":"2014-07-10 22:09:46.000000000","message":"Should this be added to the pipelines by default?","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a4d9b15cff9edfbb304863be534a681f93b7ec90","unresolved":false,"context_lines":[{"line_number":79,"context_line":"paste.app_factory \u003d keystone.service:admin_app_factory"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"[pipeline:public_api]"},{"line_number":82,"context_line":"pipeline \u003d sizelimit url_normalize build_auth_context token_auth admin_token_auth osprofiler xml_body_v2 json_body ec2_extension user_crud_extension public_service"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"[pipeline:admin_api]"},{"line_number":85,"context_line":"pipeline \u003d sizelimit url_normalize build_auth_context token_auth admin_token_auth osprofiler xml_body_v2 json_body ec2_extension s3_extension crud_extension admin_service"}],"source_content_type":"text/x-properties","patch_set":10,"id":"baada198_e23a2c97","line":82,"in_reply_to":"baada198_d7e9681b","updated":"2014-07-10 22:35:01.000000000","message":"yep it should, take a look at my another response:\n\nhttps://review.openstack.org/#/c/103368/10/bin/keystone-all","commit_id":"d759f1e9b4de35b112818404f3cb223e5359afb8"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":79,"context_line":"paste.app_factory \u003d keystone.service:admin_app_factory"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"[pipeline:public_api]"},{"line_number":82,"context_line":"pipeline \u003d sizelimit url_normalize osprofiler build_auth_context token_auth admin_token_auth  xml_body_v2 json_body ec2_extension user_crud_extension public_service"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"[pipeline:admin_api]"},{"line_number":85,"context_line":"pipeline \u003d sizelimit url_normalize osprofiler build_auth_context token_auth admin_token_auth xml_body_v2 json_body ec2_extension s3_extension crud_extension admin_service"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_e2ba3c09","line":82,"updated":"2014-08-19 19:00:02.000000000","message":"do not put this in the default pipelines, instead, document how to enable it","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":79,"context_line":"paste.app_factory \u003d keystone.service:admin_app_factory"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"[pipeline:public_api]"},{"line_number":82,"context_line":"pipeline \u003d sizelimit url_normalize osprofiler build_auth_context token_auth admin_token_auth  xml_body_v2 json_body ec2_extension user_crud_extension public_service"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"[pipeline:admin_api]"},{"line_number":85,"context_line":"pipeline \u003d sizelimit url_normalize osprofiler build_auth_context token_auth admin_token_auth xml_body_v2 json_body ec2_extension s3_extension crud_extension admin_service"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_0aa7b8a7","line":82,"in_reply_to":"1abeadc6_e2ba3c09","updated":"2014-08-23 20:18:09.000000000","message":"I will add separated patch, and let\u0027s discuss this separately","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":111,"context_line":"/v3 \u003d api_v3"},{"line_number":112,"context_line":"/ \u003d admin_version_api"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"[filter:osprofiler]"},{"line_number":115,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":116,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":117,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_4243f013","line":114,"updated":"2014-08-19 19:00:02.000000000","message":"this part is fine","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"[filter:osprofiler]"},{"line_number":115,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":116,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":117,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_824c2844","line":116,"updated":"2014-08-19 19:00:02.000000000","message":"keys? plural?\n\nthese config options are also going to be reproduced in sample config and appear in keystone.conf -- might as well do that now since it confuses everyone that you can put configuration into paste config :(","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"[filter:osprofiler]"},{"line_number":115,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":116,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":117,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_ea7fdca8","line":116,"in_reply_to":"1abeadc6_824c2844","updated":"2014-08-23 20:18:09.000000000","message":"So this is very very long story....\n\n\nFirst of all what is this: \n\n  HMAC keys are used to limit access to profiler. E.g. only person who knows HMAC can trigger profiling (even if it is enabled). \n\n\nWhy this was added: \n\n  Druing Atlanta cross-project session http://junodesignsummit.sched.org/event/54d25c4c4017ca09ee130821ac93f804#.U_jxCry1bq0 A lot of Operators said they want to have this ON on real production clouds and have some kind of \"profiling on demand\" without restarting whole cloud. As well the second criteria was to make it secure, e.g. only admin can trigger this stuff.\n\n\nWhy we have HMAC_KEYS and not only one\n\n  This was requirement from TripleO team. They said that security guys would like to change this HMAC_KEY periodically, from other side, if you change it directly (you\u0027ll get some some kind of downtime in ability to profile). Cause other project will use different HMAC_KEY from this. So to organize smooth change (without downtime) of HMAC you can specify any amount of them (and any will pass). \n\n  So algorithm to update HMAC key will be next: \n\n  INIT: \n  * Service1: HMAC_KEYS \u003d A \n  * Service2: HMAC_KEYS \u003d A\n\n   FIRST STEP: \n  * Service1: HMAC_KEYS \u003d A, B # restart all service 1\n  * Service2: HMAC_KEYS \u003d A\n\n  SECOND STEP:\n  * Service1: HMAC_KEYS \u003d A, B\n  * Service2: HMAC_KEYS \u003d A, B # restart all service2\n\n  THRID STEP:\n  * Service1: HMAC_KEYS \u003d B # restart all service 1\n  * Service2: HMAC_KEYS \u003d A, B \n\n  FINISH: \n  * Service1: HMAC_KEYS \u003d B \n  * Service2: HMAC_KEYS \u003d B # restart all service 2\n\n \n\nAbout keystone.conf  \u0026 HMAC_KEYS specification \n\n  This HMAC_KEY is used only in Middleware, so it won\u0027t be specified in keystone.conf. Also middleware doesn\u0027t know about oslo.config. So this is the simplest and cleanest way to pass it to middleware.","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":114,"context_line":"[filter:osprofiler]"},{"line_number":115,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":116,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":117,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_e2515cd9","line":117,"updated":"2014-08-19 19:00:02.000000000","message":"why does it need an enabled variable? including it in the pipeline should be all that\u0027s required? also, booleans should be true / false rather than yes / no","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":114,"context_line":"[filter:osprofiler]"},{"line_number":115,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":116,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":117,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":16,"id":"1abeadc6_ea6a7c7f","line":117,"in_reply_to":"1abeadc6_e2515cd9","updated":"2014-08-23 20:18:09.000000000","message":"Agree that this can be removed, but it will take a some time, cause we need to make at least 2 new versions of OSProfiler. (cause OSprofiler is already used in glance and cinder) \n\nSo I would prefer to keep it ON.","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"342bc0148c58101316f96c1ac94ab38e5211ddb8","unresolved":false,"context_lines":[{"line_number":91,"context_line":"pipeline \u003d sizelimit osprofiler url_normalize public_version_service"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"[pipeline:admin_version_api]"},{"line_number":94,"context_line":"pipeline \u003d sizelimit osprofiler url_normalize admin_version_service"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"[composite:main]"},{"line_number":97,"context_line":"use \u003d egg:Paste#urlmap"}],"source_content_type":"text/x-properties","patch_set":20,"id":"fa32b979_0b63e542","line":94,"updated":"2015-06-25 19:51:24.000000000","message":"(Question): This is not a blocker, but is this the correct location (pre URL_Normalize?)","commit_id":"e69fc4b1c5db5e0361cad1854b60edc90608d064"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a4ab3ab630391c801b2fbf8be86d4b127d721bad","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"[filter:osprofiler]"},{"line_number":109,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":110,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":111,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":20,"id":"fa32b979_cbe97db9","line":110,"updated":"2015-06-25 19:47:44.000000000","message":"Config should not be in the paste-ini for keystone","commit_id":"e69fc4b1c5db5e0361cad1854b60edc90608d064"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"bd5218d9cf120f8dd5836636b88ac510f8ddc8c7","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"[filter:osprofiler]"},{"line_number":109,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"},{"line_number":110,"context_line":"hmac_keys \u003d SECRET_KEY"},{"line_number":111,"context_line":"enabled \u003d yes"}],"source_content_type":"text/x-properties","patch_set":20,"id":"fa32b979_8b3a9533","line":110,"in_reply_to":"fa32b979_cbe97db9","updated":"2015-06-25 19:49:24.000000000","message":"Morgan, \n\nFully agree on this. When I finish relocation, I will work on new versions of osprofiler that doesn\u0027t require changes in api-paste.ini.","commit_id":"e69fc4b1c5db5e0361cad1854b60edc90608d064"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e484747689774f8205560726b3ef7ebc31c8c8d1","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[app:public_service]"},{"line_number":46,"context_line":"use \u003d egg:keystone#public_service"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"[app:service_v3]"},{"line_number":49,"context_line":"use \u003d egg:keystone#service_v3"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-properties","patch_set":28,"id":"9a68dd71_bdb18a91","line":47,"updated":"2016-01-21 15:41:48.000000000","message":"I still don\u0027t like the fact that this in the default pipelines","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[app:public_service]"},{"line_number":46,"context_line":"use \u003d egg:keystone#public_service"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"[app:service_v3]"},{"line_number":49,"context_line":"use \u003d egg:keystone#service_v3"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-properties","patch_set":28,"id":"9a68dd71_129fe55f","line":47,"in_reply_to":"9a68dd71_bdb18a91","updated":"2016-01-25 09:25:50.000000000","message":"David, the profit of placing osprofiler middleware here is to make profiling process easier for users. During the request passing through middleware, it will simply check if osprofiler is turned on of off. If it\u0027s turned off, request will be processed with our any modifications - and will have no impact on performance as well (except one \"if\" condition.)","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"/v3 \u003d api_v3"},{"line_number":91,"context_line":"/ \u003d admin_version_api"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"[filter:osprofiler]"},{"line_number":94,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"}],"source_content_type":"text/x-properties","patch_set":28,"id":"9a68dd71_a28c0b80","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":60},"updated":"2016-01-21 15:19:05.000000000","message":"Can we add a comment here saying that this is going to be moved in a future release of osprofiler (according to Boris and Morgan\u0027s conversation a couple patch sets back) ?","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"45a20246aa978e8ad2b898fcaa14ccc4a21ba15d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"/v3 \u003d api_v3"},{"line_number":91,"context_line":"/ \u003d admin_version_api"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"[filter:osprofiler]"},{"line_number":94,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"}],"source_content_type":"text/x-properties","patch_set":28,"id":"9a68dd71_1281258f","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":60},"in_reply_to":"9a68dd71_5280fdf4","updated":"2016-01-25 09:31:44.000000000","message":"A-ha, went through the comments on #20 patch set. I believe it was meant to remove configurations (HMAC keys, enabled param) from the *.ini files - as previously osprofiler did not digest other forms of these params passing. Now it can do it due to https://github.com/openstack/osprofiler/commit/cabf79d44c77a9259481cabfa888e99730fb40b0 commit, so we can get rid of ugly parameters passing. Although this section is still 100% needed, as we\u0027re modifying the Keystone ini file, and all middleware need to be described here.\n\nCheers,\nDina","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":90,"context_line":"/v3 \u003d api_v3"},{"line_number":91,"context_line":"/ \u003d admin_version_api"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"[filter:osprofiler]"},{"line_number":94,"context_line":"paste.filter_factory \u003d osprofiler.web:WsgiMiddleware.factory"}],"source_content_type":"text/x-properties","patch_set":28,"id":"9a68dd71_5280fdf4","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":60},"in_reply_to":"9a68dd71_a28c0b80","updated":"2016-01-25 09:25:50.000000000","message":"will read their conversation and check. Thank you sir!","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"}],"etc/keystone.conf.sample":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"2acb53e7de9829082ed70595034fc08cc6cb1a7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"3afc51ec_6395513f","updated":"2016-03-11 13:17:37.000000000","message":"You don\u0027t need to change the sample - we have a job to auto-generate it/propose it as the bot as well as in the documents.","commit_id":"a51a77092ad92bce1ea36fc4c5ef8c62760c798d"}],"keystone/common/config.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":794,"context_line":"                   help\u003d\u0027Default lock timeout for distributed locking.\u0027),"},{"line_number":795,"context_line":"    ],"},{"line_number":796,"context_line":"    \u0027profiler\u0027: ["},{"line_number":797,"context_line":"        cfg.BoolOpt(\"enabled\", default\u003dTrue,"},{"line_number":798,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":799,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dTrue,"},{"line_number":800,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_220a74d2","line":797,"updated":"2014-08-19 19:00:02.000000000","message":"default to False if this boolean is actually necessary","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":794,"context_line":"                   help\u003d\u0027Default lock timeout for distributed locking.\u0027),"},{"line_number":795,"context_line":"    ],"},{"line_number":796,"context_line":"    \u0027profiler\u0027: ["},{"line_number":797,"context_line":"        cfg.BoolOpt(\"enabled\", default\u003dTrue,"},{"line_number":798,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":799,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dTrue,"},{"line_number":800,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_8af588ee","line":797,"in_reply_to":"1abeadc6_220a74d2","updated":"2014-08-23 20:18:09.000000000","message":"Done","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"    ],"},{"line_number":1148,"context_line":"    \u0027profiler\u0027: ["},{"line_number":1149,"context_line":"        cfg.BoolOpt(\"enabled\", default\u003dFalse,"},{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_67a5c5b3","line":1150,"range":{"start_line":1150,"start_character":26,"end_line":1150,"end_character":67},"updated":"2016-01-21 15:19:05.000000000","message":"nit: If set to True, OSProfiler will trace requests providing performance results. If False, the profiler is bypassed completely.\n\nOr something along those lines. Trying to make the help text a little more descriptive.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"    ],"},{"line_number":1148,"context_line":"    \u0027profiler\u0027: ["},{"line_number":1149,"context_line":"        cfg.BoolOpt(\"enabled\", default\u003dFalse,"},{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_b2b299e3","line":1150,"range":{"start_line":1150,"start_character":26,"end_line":1150,"end_character":67},"in_reply_to":"9a68dd71_67a5c5b3","updated":"2016-01-25 09:25:50.000000000","message":"in fact all this part will be replaced with importing needed options from osprofiler after release with https://review.openstack.org/#/c/269059/ will be cut.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"        cfg.BoolOpt(\"enabled\", default\u003dFalse,"},{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","},{"line_number":1154,"context_line":"                   help\u003d\"Secret key to use to sign Keystone tracing \""},{"line_number":1155,"context_line":"                        \"messages.\"),"}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_27f7cdf6","line":1152,"range":{"start_line":1152,"start_character":35,"end_line":1152,"end_character":61},"updated":"2016-01-21 15:19:05.000000000","message":"nit: If False, the profiler won\u0027t trace SQL requests.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e484747689774f8205560726b3ef7ebc31c8c8d1","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","},{"line_number":1154,"context_line":"                   help\u003d\"Secret key to use to sign Keystone tracing \""},{"line_number":1155,"context_line":"                        \"messages.\"),"},{"line_number":1156,"context_line":"    ],"}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_7d21d2fa","line":1153,"updated":"2016-01-21 15:41:48.000000000","message":"Do you really want a default? It seems that this is something a deployer should be forced to set.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","},{"line_number":1154,"context_line":"                   help\u003d\"Secret key to use to sign Keystone tracing \""},{"line_number":1155,"context_line":"                        \"messages.\"),"},{"line_number":1156,"context_line":"    ],"},{"line_number":1157,"context_line":"}"},{"line_number":1158,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_87aeb983","line":1155,"range":{"start_line":1154,"start_character":25,"end_line":1155,"end_character":34},"updated":"2016-01-21 15:19:05.000000000","message":"Is this ever suppose to be changed? What type of value is it suppose to be. Is it suppose to be generated?","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"30cc7645a1ba7d5c3a0f5d9880e3e257d4b5a834","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","},{"line_number":1154,"context_line":"                   help\u003d\"Secret key to use to sign Keystone tracing \""},{"line_number":1155,"context_line":"                        \"messages.\"),"},{"line_number":1156,"context_line":"    ],"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a5ae5dd_d9cd7e5e","line":1153,"updated":"2016-02-04 05:22:21.000000000","message":"\"hmac_keys\" is this meant to be a listOpt? or multistropt?\n\nrecommend moving this to hmac_key if it is not meant to be multiple entries, I would also prefer is OSProfiler supplied these options instead of needing to embed them in keystone itself.\n\nI also would prefer this to be a \"None\" default and if it is unset, profiling does not occur, this is for \"sane defaults\". It should require explicit setup of a key, not a default insecure/known key that anyone can read out of the source repo..","commit_id":"6cc55be199033d828aa34541d666caf7c2a8fd96"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"e22f1d9619e0fa90cf87de700cb0ec228779e8ed","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                    help\u003d\u0027If False fully disable profiling feature.\u0027),"},{"line_number":1151,"context_line":"        cfg.BoolOpt(\"trace_sqlalchemy\", default\u003dFalse,"},{"line_number":1152,"context_line":"                    help\u003d\"If False doesn\u0027t trace SQL requests.\"),"},{"line_number":1153,"context_line":"        cfg.StrOpt(\"hmac_keys\", default\u003d\"SECRET_KEY\","},{"line_number":1154,"context_line":"                   help\u003d\"Secret key to use to sign Keystone tracing \""},{"line_number":1155,"context_line":"                        \"messages.\"),"},{"line_number":1156,"context_line":"    ],"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a5ae5dd_dee857b5","line":1153,"in_reply_to":"5a5ae5dd_d9cd7e5e","updated":"2016-02-08 18:50:13.000000000","message":"Morgan, the profiling is turned off by default by enabled\u003dFalse option... It would not trace anything by deaf;t, and tracing will require changing the config file and services restarting.","commit_id":"6cc55be199033d828aa34541d666caf7c2a8fd96"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e9d10e484e44d984a5db19b4ed5be145494a11e3","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"                    help\u003d\u0027Port to connect to for remote debugger.\u0027))"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    # configure OSprofiler options"},{"line_number":1175,"context_line":"    profiler.set_defaults(conf)"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"    for section in FILE_OPTIONS:"},{"line_number":1178,"context_line":"        for option in FILE_OPTIONS[section]:"}],"source_content_type":"text/x-python","patch_set":33,"id":"5a5ae5dd_ee66b328","line":1175,"updated":"2016-02-08 23:34:43.000000000","message":"This is something I\u0027m actually working with dhellmann to improve. I expect we\u0027ll have an answer soon since I need it for one of the things I\u0027m also working on.","commit_id":"4605d6fcca45506ec9567d117312280b09cb88d8"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"217d6e15b48eed8fbf9083d434144b29b80422d4","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"                    help\u003d\u0027Port to connect to for remote debugger.\u0027))"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    # configure OSprofiler options"},{"line_number":1175,"context_line":"    profiler.set_defaults(conf)"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"    for section in FILE_OPTIONS:"},{"line_number":1178,"context_line":"        for option in FILE_OPTIONS[section]:"}],"source_content_type":"text/x-python","patch_set":33,"id":"3a57f1b5_153c7392","line":1175,"in_reply_to":"5a5ae5dd_ee66b328","updated":"2016-02-09 22:05:06.000000000","message":"ack, thank you sir","commit_id":"4605d6fcca45506ec9567d117312280b09cb88d8"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"eb4e0677c547e5ae6250fe0d93931752113767ca","unresolved":false,"context_lines":[{"line_number":1208,"context_line":""},{"line_number":1209,"context_line":"    :returns: a list of (group_name, opts) tuples"},{"line_number":1210,"context_line":"    \"\"\""},{"line_number":1211,"context_line":"    return list(FILE_OPTIONS.items()) + profiler.list_opts()"}],"source_content_type":"text/x-python","patch_set":33,"id":"5a5ae5dd_0e022fb5","line":1211,"updated":"2016-02-08 23:23:54.000000000","message":"meh, looks ugly... any suggestions?","commit_id":"4605d6fcca45506ec9567d117312280b09cb88d8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d93b7d1b13bffc3e98be12fa29c8fad5a12ff091","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"                    help\u003d\u0027Port to connect to for remote debugger.\u0027))"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    # configure OSprofiler options"},{"line_number":1196,"context_line":"    profiler.set_defaults(conf)"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"    for section in FILE_OPTIONS:"},{"line_number":1199,"context_line":"        for option in FILE_OPTIONS[section]:"}],"source_content_type":"text/x-python","patch_set":36,"id":"7af24918_64869766","line":1196,"updated":"2016-03-02 16:23:05.000000000","message":"this also needs to be called from an entry point like:\n\nhttps://review.openstack.org/#/c/285308/5/setup.cfg\n\nBut for osprofiler","commit_id":"bd177287edecf47aa3367babf24296f51ff0696a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d93b7d1b13bffc3e98be12fa29c8fad5a12ff091","unresolved":false,"context_lines":[{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"    :returns: a list of (group_name, opts) tuples"},{"line_number":1231,"context_line":"    \"\"\""},{"line_number":1232,"context_line":"    return list(FILE_OPTIONS.items()) + profiler.list_opts()"},{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":""},{"line_number":1235,"context_line":"def set_middleware_defaults():"}],"source_content_type":"text/x-python","patch_set":36,"id":"7af24918_64d4d746","line":1232,"updated":"2016-03-02 16:23:05.000000000","message":"Nope, don\u0027t do this here. Make sure to add osprofiler to the config generator.conf","commit_id":"bd177287edecf47aa3367babf24296f51ff0696a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"2acb53e7de9829082ed70595034fc08cc6cb1a7d","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"                     )"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"def set_middleware_defaults():"},{"line_number":1261,"context_line":"    # configure OSprofiler options"},{"line_number":1262,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":39,"id":"3afc51ec_6372717e","line":1260,"updated":"2016-03-11 13:17:37.000000000","message":"This likely needs to be \"set_osprofiler_defaults\" it can\u0027t be duplicating set_middleware_defaults\n\nThis also needs to set / override the defaults as discussed see the above method, so you need to actually set the values for osprofiler.","commit_id":"a51a77092ad92bce1ea36fc4c5ef8c62760c798d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b5a5c1d4543ca49d70bd73aa6ab433a37f0e5e8f","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"3afc51ec_66f8784a","line":1268,"updated":"2016-03-14 11:23:37.000000000","message":"What defaults are being set? Doesn\u0027t this need to set the secret_key value here based on our previous conversations?\n\nAlso see my comment on the setup.cfg","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"22b243b65ca20c46a17af99e2607a53e3a0344fd","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"1af94dfe_c1c89477","line":1268,"in_reply_to":"1af94dfe_690c0c43","updated":"2016-03-15 16:19:35.000000000","message":"Morgan, even if the key is defined in keystone conf, and even if the profiling is enabled in conf, you need client to pass specific headers to trigger the profiling.","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"33e38d01077cdb5eff25f531d20e22a709e7d5a7","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"1af94dfe_0891ea99","line":1268,"in_reply_to":"1af94dfe_81ca0c4e","updated":"2016-03-15 22:48:25.000000000","message":"That is fine. But the fact that you can turn it on with a known, insecure default was the reason I asked for the default to be \u003cnone\u003e and profiling not work unless it is enabled \u0026 a key is set.\n\nI wont -2 over this, and will concede the point if other cores are willing to accept it.\n\nThis really is the last issue in my mind that prevents including osprofiler in keystone (and the config default setting specifics with the entry point in setup.cfg)","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"47ce120cbd9a96abf1e4571ac909e42401ce3373","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"1af94dfe_81ca0c4e","line":1268,"in_reply_to":"1af94dfe_c1c89477","updated":"2016-03-15 16:21:27.000000000","message":"so even with these defaults set, profiling won\u0027t work. And even if all is set to enabled it won\u0027t work without the key passed from the client, using the service.","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"961459fe915c04ec748cf5806741568977b13ba6","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"3afc51ec_ec71d045","line":1268,"in_reply_to":"3afc51ec_66f8784a","updated":"2016-03-15 11:03:49.000000000","message":"Default secret key is set to SECRET_KEY - take a look https://github.com/openstack/osprofiler/blob/master/osprofiler/opts.py#L67\n\nother defaults are: disabled profiler by default and disabled DB tracing by default.","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f1288f3f44681eb0ae9c73ccbb78def48d62c835","unresolved":false,"context_lines":[{"line_number":1265,"context_line":""},{"line_number":1266,"context_line":"def set_profiler_defaults():"},{"line_number":1267,"context_line":"    # configure OSprofiler options"},{"line_number":1268,"context_line":"    profiler.set_defaults(CONF)"}],"source_content_type":"text/x-python","patch_set":42,"id":"1af94dfe_690c0c43","line":1268,"in_reply_to":"3afc51ec_ec71d045","updated":"2016-03-15 15:33:47.000000000","message":"the secret key should be unset and if the secret key is unset the osprofiler should not work (even if enabled). this was the point of the overrides.\n\nthe default of \"SECRET_KEY\" is bad as it is insecure - it is a \"known\" default password. Insecure defaults are bad. This was something i commented on a while back.\n\nThis is one of the reasons why we changed how admin_token works.","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"05bf3057aa67ea5f8c86ea4f04977c54f275e663","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"                    help\u003d\u0027Port to connect to for remote debugger.\u0027))"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    # configure OSprofiler options"},{"line_number":1196,"context_line":"    set_profiler_defaults()"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"    for section in FILE_OPTIONS:"},{"line_number":1199,"context_line":"        for option in FILE_OPTIONS[section]:"}],"source_content_type":"text/x-python","patch_set":47,"id":"ba0121b8_e608872a","line":1196,"updated":"2016-03-31 20:12:14.000000000","message":"Don\u0027t run this here.","commit_id":"3c0a725401e44b02d5981c69c113ad01a31c6fb5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"05bf3057aa67ea5f8c86ea4f04977c54f275e663","unresolved":false,"context_lines":[{"line_number":1232,"context_line":"    return list(FILE_OPTIONS.items())"},{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":""},{"line_number":1235,"context_line":"def set_middleware_defaults():"},{"line_number":1236,"context_line":"    \"\"\"Update default configuration options for oslo.middleware.\"\"\""},{"line_number":1237,"context_line":"    # CORS Defaults"},{"line_number":1238,"context_line":"    # TODO(krotscheck): Update with https://review.openstack.org/#/c/285368/"}],"source_content_type":"text/x-python","patch_set":47,"id":"ba0121b8_e61fe758","line":1235,"updated":"2016-03-31 20:12:14.000000000","message":"rename this to something like \"set_external_opt_defaults\" and include the profiler defaults being set here.","commit_id":"3c0a725401e44b02d5981c69c113ad01a31c6fb5"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"37927ac51ab0a70fb06771c9aa7dccfc1616065b","unresolved":false,"context_lines":[{"line_number":1198,"context_line":"                conf.register_opt(option, group\u003dsection)"},{"line_number":1199,"context_line":"            else:"},{"line_number":1200,"context_line":"                conf.register_opt(option)"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"    # register any non-default auth methods here (used by extensions, etc)"},{"line_number":1203,"context_line":"    setup_authentication(conf)"},{"line_number":1204,"context_line":"    # add oslo.cache related config options"}],"source_content_type":"text/x-python","patch_set":48,"id":"ba0121b8_93528f33","line":1201,"updated":"2016-04-01 11:20:39.000000000","message":"it looks like removal of profiler configuration here led to the errors - https://review.openstack.org/294535","commit_id":"67ae6486dc3c29f6a1e238f23b6aae0a1659f4ef"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"603b948e7d0117a89537b34fc9c753689d05f203","unresolved":false,"context_lines":[{"line_number":1198,"context_line":"                conf.register_opt(option, group\u003dsection)"},{"line_number":1199,"context_line":"            else:"},{"line_number":1200,"context_line":"                conf.register_opt(option)"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"    # register any non-default auth methods here (used by extensions, etc)"},{"line_number":1203,"context_line":"    setup_authentication(conf)"},{"line_number":1204,"context_line":"    # add oslo.cache related config options"}],"source_content_type":"text/x-python","patch_set":48,"id":"ba0121b8_5f644de4","line":1201,"in_reply_to":"ba0121b8_93528f33","updated":"2016-04-02 21:13:58.000000000","message":"We might need to make the CLI also call set_exerntal_opts_defaults - or the main config call set_external_opts_defaults.","commit_id":"67ae6486dc3c29f6a1e238f23b6aae0a1659f4ef"}],"keystone/common/profiler.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d12937cbe079db299850db6735a719b47cf5666b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import osprofiler.notifier"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone import config"},{"line_number":16,"context_line":"from keystone.i18n import _"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_c2ab801b","line":13,"updated":"2014-08-19 19:13:22.000000000","message":"this creates a hard dependency on osprofiler on startup that we probably should not have in all environments","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"2b28f2a7814f9eb59e385f23cf4fd50807238551","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"Messaging\", notifications.messaging, {},"},{"line_number":30,"context_line":"            notifications.get_transport(), \"keystone\", name, host)"},{"line_number":31,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":32,"context_line":"        LOG.warning(_(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":33,"context_line":"                      \"any of hmac_keys that are specified in \""},{"line_number":34,"context_line":"                      \"/etc/nova/api-paste.ini can trace his requests. \\n\""},{"line_number":35,"context_line":"                      \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_22a6f4c1","line":32,"updated":"2014-08-19 19:00:54.000000000","message":"This is likely a LOG INFO not warning\n\nThis needs translation hints","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"Messaging\", notifications.messaging, {},"},{"line_number":30,"context_line":"            notifications.get_transport(), \"keystone\", name, host)"},{"line_number":31,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":32,"context_line":"        LOG.warning(_(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":33,"context_line":"                      \"any of hmac_keys that are specified in \""},{"line_number":34,"context_line":"                      \"/etc/nova/api-paste.ini can trace his requests. \\n\""},{"line_number":35,"context_line":"                      \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_0a8a5863","line":32,"in_reply_to":"1abeadc6_22a6f4c1","updated":"2014-08-23 20:18:09.000000000","message":"Done","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                      \"is no security issue. Note that even if person can \""},{"line_number":37,"context_line":"                      \"trigger profiler, only admin user can retrieve trace \""},{"line_number":38,"context_line":"                      \"information.\\n\""},{"line_number":39,"context_line":"                      \"To disable OSprofiler set in nova.conf:\\n\""},{"line_number":40,"context_line":"                      \"[profiler]\\nenabled\u003dfalse\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_82e8a8e3","line":39,"updated":"2014-08-19 19:00:02.000000000","message":"^","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                      \"is no security issue. Note that even if person can \""},{"line_number":37,"context_line":"                      \"trigger profiler, only admin user can retrieve trace \""},{"line_number":38,"context_line":"                      \"information.\\n\""},{"line_number":39,"context_line":"                      \"To disable OSprofiler set in nova.conf:\\n\""},{"line_number":40,"context_line":"                      \"[profiler]\\nenabled\u003dfalse\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_2aec7429","line":39,"in_reply_to":"1abeadc6_82e8a8e3","updated":"2014-08-23 20:18:09.000000000","message":"Done","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f45c3c5569d17cab1fd91e1c5f7e84e742e22b88","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"Messaging\", notifications.messaging, {},"},{"line_number":30,"context_line":"            notifications.get_transport(), \"keystone\", name, host)"},{"line_number":31,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":32,"context_line":"        LOG.info(_(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":33,"context_line":"                   \"any of hmac_keys that are specified in \""},{"line_number":34,"context_line":"                   \"/etc/keystone-paste.ini can trace his requests. \\n\""},{"line_number":35,"context_line":"                   \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_16f891c3","line":32,"updated":"2014-08-25 23:12:52.000000000","message":"If this patch goes in, this needs the translation hints.\n\nMulti-line loglines are difficult in general, please remove the explicit \\n s from this messages.\n\nGenerally speaking this information needs to also go in the configuring.rst.","commit_id":"0fd093eb5f358a5b14097e52cf96c183b5ba60de"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"5b14608011daf6f95914c0553d1811d4d024471f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"Messaging\", notifications.messaging, {},"},{"line_number":30,"context_line":"            notifications.get_transport(), \"keystone\", name, host)"},{"line_number":31,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":32,"context_line":"        LOG.info(_(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":33,"context_line":"                   \"any of hmac_keys that are specified in \""},{"line_number":34,"context_line":"                   \"/etc/keystone-paste.ini can trace his requests. \\n\""},{"line_number":35,"context_line":"                   \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_76c4655f","line":32,"in_reply_to":"1abeadc6_16f891c3","updated":"2014-08-25 23:15:37.000000000","message":"ah finally I understood, what you mean by translation hints. OK I will address this soon.","commit_id":"0fd093eb5f358a5b14097e52cf96c183b5ba60de"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"4eec798787022429e3b8c31a2d208c24f8ac7f86","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \"Messaging\", notifications.messaging, {},"},{"line_number":30,"context_line":"            notifications.get_transport(), \"keystone\", name, host)"},{"line_number":31,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":32,"context_line":"        LOG.info(_(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":33,"context_line":"                   \"any of hmac_keys that are specified in \""},{"line_number":34,"context_line":"                   \"/etc/keystone-paste.ini can trace his requests. \\n\""},{"line_number":35,"context_line":"                   \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_09ddb070","line":32,"in_reply_to":"1abeadc6_76c4655f","updated":"2014-08-26 17:44:54.000000000","message":"YEah the translation hints are the _LW(), _LI() stuff from keystone.i18n module\n\nYou\u0027ll see it elsewhere in the code base. it just replaces _ with _L\u003clog_level\u003e so translators know the priority","commit_id":"0fd093eb5f358a5b14097e52cf96c183b5ba60de"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def setup(name, host\u003d\u00270.0.0.0\u0027):  # nosec"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    if CONF.profiler.enabled:"},{"line_number":29,"context_line":"        _notifier \u003d osprofiler.notifier.create("}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_075ba988","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":32},"updated":"2016-01-21 15:19:05.000000000","message":"This should have a docstring detailing it\u0027s purpose and usage (even though it may be obvious).","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def setup(name, host\u003d\u00270.0.0.0\u0027):  # nosec"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    if CONF.profiler.enabled:"},{"line_number":29,"context_line":"        _notifier \u003d osprofiler.notifier.create("}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_72c98158","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":32},"in_reply_to":"9a68dd71_075ba988","updated":"2016-01-25 09:25:50.000000000","message":"ack","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e484747689774f8205560726b3ef7ebc31c8c8d1","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            oslo_messaging.get_transport(CONF), \"keystone\", name, host)"},{"line_number":32,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":33,"context_line":"        osprofiler.web.enable(CONF.profiler.hmac_keys)"},{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_1d8776d8","line":34,"updated":"2016-01-21 15:41:48.000000000","message":"Why is this not internationalized?","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            oslo_messaging.get_transport(CONF), \"keystone\", name, host)"},{"line_number":32,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":33,"context_line":"        osprofiler.web.enable(CONF.profiler.hmac_keys)"},{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_12c4c53d","line":34,"in_reply_to":"9a68dd71_1d8776d8","updated":"2016-01-25 09:25:50.000000000","message":"Simply because I forgot to do it :) Will fix.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        osprofiler.web.enable(CONF.profiler.hmac_keys)"},{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_e7f45588","line":36,"range":{"start_line":36,"start_character":18,"end_line":36,"end_character":31},"updated":"2016-01-21 15:19:05.000000000","message":"Can be replaced with the specific location of the config file?","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            oslo_messaging.get_transport(CONF), \"keystone\", name, host)"},{"line_number":32,"context_line":"        osprofiler.notifier.set(_notifier)"},{"line_number":33,"context_line":"        osprofiler.web.enable(CONF.profiler.hmac_keys)"},{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_076e4901","line":36,"range":{"start_line":34,"start_character":42,"end_line":36,"end_character":54},"updated":"2016-01-21 15:19:05.000000000","message":"nit: \"Traces provided from the profiler can only be subscribed to using the same HMAC keys that are configured in Keystone\u0027s configuration file under the [profiler] section.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        osprofiler.web.enable(CONF.profiler.hmac_keys)"},{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_72d0a1f6","line":36,"range":{"start_line":36,"start_character":18,"end_line":36,"end_character":31},"in_reply_to":"9a68dd71_e7f45588","updated":"2016-01-25 09:25:50.000000000","message":"ok, wil fix","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""},{"line_number":40,"context_line":"                 \"information.\\n\""},{"line_number":41,"context_line":"                 \"To disable OSprofiler set in keystone.conf:\\n\""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_674e2598","line":38,"range":{"start_line":37,"start_character":18,"end_line":38,"end_character":40},"updated":"2016-01-21 15:19:05.000000000","message":"This sentence could probably be removed.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        LOG.info(\"OSProfiler is enabled.\\nIt means that person who knows \""},{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""},{"line_number":40,"context_line":"                 \"information.\\n\""},{"line_number":41,"context_line":"                 \"To disable OSprofiler set in keystone.conf:\\n\""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_92fd1570","line":38,"range":{"start_line":37,"start_character":18,"end_line":38,"end_character":40},"in_reply_to":"9a68dd71_674e2598","updated":"2016-01-25 09:25:50.000000000","message":"ok, will either remove or rephrase it.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""},{"line_number":40,"context_line":"                 \"information.\\n\""},{"line_number":41,"context_line":"                 \"To disable OSprofiler set in keystone.conf:\\n\""},{"line_number":42,"context_line":"                 \"[profiler]\\nenabled\u003dfalse\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_273fcdd7","line":40,"range":{"start_line":38,"start_character":41,"end_line":40,"end_character":29},"updated":"2016-01-21 15:19:05.000000000","message":"This sentence is subjective to how people setup their Keystone deployments. I would remove it. I would keep the information to \"how do I subscribe to requests?\" and \"how can I shut this off?\".","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                 \"any of hmac_keys that are specified in \""},{"line_number":36,"context_line":"                 \"keystone.conf can trace his requests. \\n\""},{"line_number":37,"context_line":"                 \"In real life only operator can read this file so there \""},{"line_number":38,"context_line":"                 \"is no security issue. Note that even if person can \""},{"line_number":39,"context_line":"                 \"trigger profiler, only admin user can retrieve trace \""},{"line_number":40,"context_line":"                 \"information.\\n\""},{"line_number":41,"context_line":"                 \"To disable OSprofiler set in keystone.conf:\\n\""},{"line_number":42,"context_line":"                 \"[profiler]\\nenabled\u003dfalse\")"}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_b20e198a","line":40,"range":{"start_line":38,"start_character":41,"end_line":40,"end_character":29},"in_reply_to":"9a68dd71_273fcdd7","updated":"2016-01-25 09:25:50.000000000","message":"ok, we can remove it here I believe","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1ae4de2be64b8e19488ef7f17cc59e40e2e22743","unresolved":false,"context_lines":[{"line_number":27,"context_line":"def setup(name, host\u003d\u00270.0.0.0\u0027):  # nosec"},{"line_number":28,"context_line":"    \"\"\"Setup OSprofiler notifier and enable profiling."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    :param name: name of the service, that will be profiled"},{"line_number":31,"context_line":"    :param host: host (either host name or host address) the service will be"},{"line_number":32,"context_line":"                 running on. By default host will be set to 0.0.0.0, but more"},{"line_number":33,"context_line":"                 specified host name / address usage is highly recommended."}],"source_content_type":"text/x-python","patch_set":46,"id":"ba0121b8_97401e36","line":30,"updated":"2016-03-30 16:13:28.000000000","message":"nit: remove ,","commit_id":"aaf918861b9c6560cd8b4dac244dc922903cd147"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1ae4de2be64b8e19488ef7f17cc59e40e2e22743","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \"\"\"Setup OSprofiler notifier and enable profiling."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    :param name: name of the service, that will be profiled"},{"line_number":31,"context_line":"    :param host: host (either host name or host address) the service will be"},{"line_number":32,"context_line":"                 running on. By default host will be set to 0.0.0.0, but more"},{"line_number":33,"context_line":"                 specified host name / address usage is highly recommended."},{"line_number":34,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":46,"id":"ba0121b8_b76a82b1","line":31,"updated":"2016-03-30 16:13:28.000000000","message":"nit: hostname or host IP address that the service will be running on.","commit_id":"aaf918861b9c6560cd8b4dac244dc922903cd147"}],"keystone/common/sql/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8d24e40f623df611ea40cb637c8abd4361759e76","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    if not _engine_facade:"},{"line_number":177,"context_line":"        _engine_facade \u003d db_session.EngineFacade.from_config(CONF)"},{"line_number":178,"context_line":"        if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:"},{"line_number":179,"context_line":"            osprofiler.sqlalchemy.add_tracing(sql, _engine_facade.get_engine(),"},{"line_number":180,"context_line":"                                              \"db\")"},{"line_number":181,"context_line":"    return _engine_facade"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_42b690fb","line":178,"updated":"2014-08-19 19:00:02.000000000","message":"ah - i see why its necessary now","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    if not _engine_facade:"},{"line_number":177,"context_line":"        _engine_facade \u003d db_session.EngineFacade.from_config(CONF)"},{"line_number":178,"context_line":"        if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:"},{"line_number":179,"context_line":"            osprofiler.sqlalchemy.add_tracing(sql, _engine_facade.get_engine(),"},{"line_number":180,"context_line":"                                              \"db\")"},{"line_number":181,"context_line":"    return _engine_facade"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_4a37f0fe","line":178,"in_reply_to":"1abeadc6_42b690fb","updated":"2014-08-23 20:18:09.000000000","message":"So actually in production, (if it is used) it\u0027s better to avoid tracing of sql  queries (cause they are producing real huge amount of trace information) \n\nBut in case of debug \u0026 development they are really essential","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e17971a840dbb8df7cd5af5fbee4bf1633a0491b","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        _engine_facade \u003d db_session.EngineFacade.from_config(CONF)"},{"line_number":178,"context_line":"        if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:"},{"line_number":179,"context_line":"            osprofiler.sqlalchemy.add_tracing(sql, _engine_facade.get_engine(),"},{"line_number":180,"context_line":"                                              \"db\")"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    return _engine_facade"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba3cc151_a862d4d6","line":180,"updated":"2015-06-29 22:27:28.000000000","message":"(nit) use single quotes","commit_id":"efde1a308b4822a540a078e56f3824fc8951cf3c"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"1306c5de8b8d50575f4f7d4fd32058909d616214","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    if not _main_context_manager:"},{"line_number":176,"context_line":"        _main_context_manager \u003d enginefacade.transaction_context()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:"},{"line_number":179,"context_line":"        m_engine \u003d (_main_context_manager._factory.get_legacy_facade()."},{"line_number":180,"context_line":"                    get_engine())"},{"line_number":181,"context_line":"        osprofiler.sqlalchemy.add_tracing(sql, m_engine, \"db\")"}],"source_content_type":"text/x-python","patch_set":36,"id":"7af24918_beff2300","line":178,"updated":"2016-03-02 12:29:53.000000000","message":"it\u0027s a wrong approach, need to fix it","commit_id":"bd177287edecf47aa3367babf24296f51ff0696a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d93b7d1b13bffc3e98be12fa29c8fad5a12ff091","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    if not _main_context_manager:"},{"line_number":176,"context_line":"        _main_context_manager \u003d enginefacade.transaction_context()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy:"},{"line_number":179,"context_line":"        m_engine \u003d (_main_context_manager._factory.get_legacy_facade()."},{"line_number":180,"context_line":"                    get_engine())"},{"line_number":181,"context_line":"        osprofiler.sqlalchemy.add_tracing(sql, m_engine, \"db\")"}],"source_content_type":"text/x-python","patch_set":36,"id":"7af24918_c1131d65","line":178,"in_reply_to":"7af24918_beff2300","updated":"2016-03-02 16:23:05.000000000","message":"++ otherwise looking close","commit_id":"bd177287edecf47aa3367babf24296f51ff0696a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1ae4de2be64b8e19488ef7f17cc59e40e2e22743","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"def _get_main_context_manager():"},{"line_number":172,"context_line":"    # todo(DinaBelova): add DB profiling"},{"line_number":173,"context_line":"    # this requires oslo.db modification for proper format and functionality"},{"line_number":174,"context_line":"    # will be done in Newton timeframe"},{"line_number":175,"context_line":"    global _main_context_manager"}],"source_content_type":"text/x-python","patch_set":46,"id":"ba0121b8_37d2f25c","line":172,"updated":"2016-03-30 16:13:28.000000000","message":"nit: TODO just to follow out existing convention.","commit_id":"aaf918861b9c6560cd8b4dac244dc922903cd147"}],"keystone/notifications.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"95d403378423fc4befddb1b3639fe299e1947bea","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"def get_transport():"},{"line_number":312,"context_line":"    \"\"\"Return transport object.\"\"\""},{"line_number":313,"context_line":"    return oslo_messaging.get_transport(CONF)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"def _get_notifier():"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_2b47c9bd","line":313,"updated":"2015-06-25 19:49:34.000000000","message":"I don\u0027t think you need to do this here, you could do this in the common.profiler","commit_id":"e69fc4b1c5db5e0361cad1854b60edc90608d064"}],"keystone/server/eventlet.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8de0cb1d9ee65e654ea63ea56aaee271d12d65e9","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    server \u003d environment.Server(app, host\u003dhost, port\u003dport,"},{"line_number":67,"context_line":"                                keepalive\u003dCONF.eventlet_server.tcp_keepalive,"},{"line_number":68,"context_line":"                                keepidle\u003dCONF.eventlet_server.tcp_keepidle)"},{"line_number":69,"context_line":"    profiler.setup(name, host)"},{"line_number":70,"context_line":"    if CONF.eventlet_server_ssl.enable:"},{"line_number":71,"context_line":"        server.set_ssl(CONF.eventlet_server_ssl.certfile,"},{"line_number":72,"context_line":"                       CONF.eventlet_server_ssl.keyfile,"}],"source_content_type":"text/x-python","patch_set":44,"id":"1af94dfe_1a3bbf39","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":30},"updated":"2016-03-16 16:56:38.000000000","message":"It should be great to add the same command that was included for wsgi.py\n\n# setup OSprofiler notifier and enable the profiling if that is configured\n# in Keystone configuration file.","commit_id":"7fe0d83f2de17c296e8e52b88e3cc3b995310f92"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"32bc3c271d32ebb7a5c5f75f3283fa621f4566dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":49,"id":"5a18252c_72f4b686","updated":"2016-04-13 06:52:28.000000000","message":"the changes here are not necessary since we are removing eventlet","commit_id":"639e36adbfa0f58ce2c3f31856b4343e9197aa0e"}],"keystone/server/wsgi.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"aabe2de7e638066d7cb178be4ead2a686c5e283a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    _unused, application \u003d common.setup_backends("},{"line_number":55,"context_line":"        startup_application_fn\u003dloadapp)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    profiler.setup(name)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    return application"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_e26443e6","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":24},"updated":"2016-01-21 15:19:05.000000000","message":"This could be commented - saying what profiler is doing.\n\n    # Setup performance profiling for keystone if enabled.\n    profiler.setup(name)","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e484747689774f8205560726b3ef7ebc31c8c8d1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    _unused, application \u003d common.setup_backends("},{"line_number":55,"context_line":"        startup_application_fn\u003dloadapp)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    profiler.setup(name)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    return application"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_fde8627e","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":24},"in_reply_to":"9a68dd71_e26443e6","updated":"2016-01-21 15:41:48.000000000","message":"or just have a better name than profiler.","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"79f69a8a4c1fc0e1fe8991accd014b6dd5a9b081","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    _unused, application \u003d common.setup_backends("},{"line_number":55,"context_line":"        startup_application_fn\u003dloadapp)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    profiler.setup(name)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    return application"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9a68dd71_122045f6","line":57,"range":{"start_line":57,"start_character":4,"end_line":57,"end_character":24},"in_reply_to":"9a68dd71_fde8627e","updated":"2016-01-25 09:25:50.000000000","message":"ack, will probably do both","commit_id":"c13e8915408a6db0a14ff3fd7acbde37784474ca"}],"requirements.txt":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d12937cbe079db299850db6735a719b47cf5666b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":26,"context_line":"pycadf\u003e\u003d0.5.1"},{"line_number":27,"context_line":"posix_ipc"},{"line_number":28,"context_line":"osprofiler\u003e\u003d0.3.0"}],"source_content_type":"text/plain","patch_set":16,"id":"1abeadc6_a2fe8436","line":28,"updated":"2014-08-19 19:13:22.000000000","message":"test-requirements?","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2cf5ed11b90a97b903fd1bca452c338554841995","unresolved":false,"context_lines":[{"line_number":25,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":26,"context_line":"pycadf\u003e\u003d0.5.1"},{"line_number":27,"context_line":"posix_ipc"},{"line_number":28,"context_line":"osprofiler\u003e\u003d0.3.0"}],"source_content_type":"text/plain","patch_set":16,"id":"1abeadc6_4d7aaa88","line":28,"in_reply_to":"1abeadc6_a2fe8436","updated":"2014-08-23 20:18:09.000000000","message":"Let me try to explain why this shouldn\u0027t be optional. \n\n\nThe idea of OSprofiler is that it should allow project team to add any amount of trace points (that is required) with any amount of information. Because it\u0027s only on demand it won\u0027t make any sense on performance of whole cloud. \n\n\nTo add new points in code you have 4 ways: \n\n   from osprofiler import profiler\n\n   def some_func():\n        profiler.start(\"point_name\", {\"any_key\": \"with_any_value\"})\n        # your code\n        profiler.stop({\"any_info_about_point\": \"in_this_dict\"})\n\n\n    @profiler.trace(\"point_name\",\n                    info\u003d{\"any_info_about_point\": \"in_this_dict\"},\n                    hide_args\u003dFalse)\n    def some_func2(*args, **kwargs):\n        # If you need to hide args in profile info, put hide_args\u003dTrue\n        pass\n\n    def some_func3():\n        with profiler.Trace(\"point_name\",\n                            info\u003d{\"any_key\": \"with_any_value\"}):\n            # some code here\n\n    @profiler.trace_cls(\"point_name\", info\u003d{}, hide_args\u003dFalse,\n                        trace_private\u003dFalse)\n    class TracedClass(object):\n\n        def traced_method(self):\n            pass\n\n        def _traced_only_if_trace_private_true(self):\n             pass\n\n\nIf OSprofiler will be optional, you will be able to use only first option: \nstart()/stop(). Which will produce huge mess in code. Take a look at next sample\n\n\n  def some_func(*args, **kwargs):\n\n     #code\n \n\n  def some_func(*args, **kwargs):\n   try:\n      if profiler:\n         profiler.start(\"point_name\", {\"function\": {\"name\": \"some_func\", args ....}}) \n      #code\n   finally:\n      if profiler:\n         profiler.stop()\n\ninstead of\n\n   @profile.trace(\"point_name\") \n   def some_func():\n      #code\n\n\n\nSo I really do think that OSprofiler is not consumable if it is optional requirements...\n \n\nThe second thing is that it\u0027s already in cinder and glance, and it\u0027s going to be in heat and neutron. So usually it will be deployed on controller (so usually keystone will have OSprofiler always)","commit_id":"1d7c78bbb0e370e83c141dcde0a5da704318c149"}],"setup.cfg":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"2acb53e7de9829082ed70595034fc08cc6cb1a7d","unresolved":false,"context_lines":[{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    oslo.middleware \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"osprofiler \u003d"},{"line_number":182,"context_line":"    osprofiler.opts \u003d keystone.common.config:set_profiler_defaults"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"paste.filter_factory \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":39,"id":"3afc51ec_03e28d03","line":181,"updated":"2016-03-11 13:17:37.000000000","message":"This moves up under line 179 so it looks like:\n\n    oslo.config.opts.defaults \u003d\n        oslo.middleware \u003d keystone.common.config:set_middleware_defaults\n        osprofiler \u003d keystone.common.config:set_profiler_defaults","commit_id":"a51a77092ad92bce1ea36fc4c5ef8c62760c798d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b5a5c1d4543ca49d70bd73aa6ab433a37f0e5e8f","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    keystone \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":"    osprofiler \u003d keystone.common.config:set_profiler_defaults"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"paste.filter_factory \u003d"},{"line_number":183,"context_line":"    admin_token_auth \u003d keystone.middleware:AdminTokenAuthMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":42,"id":"3afc51ec_26d790c0","line":180,"updated":"2016-03-14 11:23:37.000000000","message":"based on a recent change, it looks like all the defaults need to be set in one entry point. Let\u0027s confirm with Doug Hellmann","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"961459fe915c04ec748cf5806741568977b13ba6","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    keystone \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":"    osprofiler \u003d keystone.common.config:set_profiler_defaults"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"paste.filter_factory \u003d"},{"line_number":183,"context_line":"    admin_token_auth \u003d keystone.middleware:AdminTokenAuthMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":42,"id":"3afc51ec_ac94e842","line":180,"in_reply_to":"3afc51ec_26d790c0","updated":"2016-03-15 11:03:49.000000000","message":"ack, let\u0027s wait for a response from Doug.","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"084bb360433f547c8cc601db8f9efad55fa553d9","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    keystone \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":"    osprofiler \u003d keystone.common.config:set_profiler_defaults"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"paste.filter_factory \u003d"},{"line_number":183,"context_line":"    admin_token_auth \u003d keystone.middleware:AdminTokenAuthMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":42,"id":"1af94dfe_8dcec381","line":180,"in_reply_to":"3afc51ec_ac94e842","updated":"2016-03-15 15:36:06.000000000","message":"http://lists.openstack.org/pipermail/openstack-dev/2016-March/089123.html","commit_id":"6cf61f4574066730ee1868004598da5b40c83a2a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"643005a008dfc6bf7d64c74508d950b8764c44b5","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    keystone \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":"    keystone_osprofiler \u003d keystone.common.config:set_profiler_defaults"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"paste.filter_factory \u003d"},{"line_number":183,"context_line":"    admin_token_auth \u003d keystone.middleware:AdminTokenAuthMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":44,"id":"1af94dfe_ee7f3d64","line":180,"updated":"2016-03-16 16:03:26.000000000","message":"Let me check on this, but i think we need to have a single function in keystone to set all defaults (so make set_middleware_defaults into \"set_external_library_defaults\" which does all the extern config setting).\n\nLooks good otherwise.","commit_id":"7fe0d83f2de17c296e8e52b88e3cc3b995310f92"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"05bf3057aa67ea5f8c86ea4f04977c54f275e663","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"oslo.config.opts.defaults \u003d"},{"line_number":179,"context_line":"    keystone \u003d keystone.common.config:set_middleware_defaults"},{"line_number":180,"context_line":"    keystone_osprofiler \u003d keystone.common.config:set_profiler_defaults"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"paste.filter_factory \u003d"},{"line_number":183,"context_line":"    admin_token_auth \u003d keystone.middleware:AdminTokenAuthMiddleware.factory"}],"source_content_type":"text/x-ttcn-cfg","patch_set":47,"id":"ba0121b8_4bd69ef1","line":180,"updated":"2016-03-31 20:12:14.000000000","message":"The code in keystone.common.config:set_profiler_defaults needs to be called from the main entry point for oslo.config.opts.defaults\n\nso a rename of: keystone.common.config:set_middleware_defaults\n\nto something like:\n\nkeystone.common.config:set_external_opt_defaults\n\nand inclusion of set_profiler_defaults in that method","commit_id":"3c0a725401e44b02d5981c69c113ad01a31c6fb5"}]}
