)]}'
{"doc/source/man/openstack.rst":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    HMAC key to use for encrypting context data for performance profiling of"},{"line_number":128,"context_line":"    requested operation. This key should be the value of one of the HMAC keys"},{"line_number":129,"context_line":"    defined in the configuration files of OpenStack services, user would like"},{"line_number":130,"context_line":"    to trace through. Without key the profiling won\u0027t be triggered even if"},{"line_number":131,"context_line":"    osprofiler library is enabled on the server side."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":":option:`--log-file` \u003cLOGFILE\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da6ed579_5fc30a38","line":130,"updated":"2016-01-15 14:05:23.000000000","message":"If the key is required, I don\u0027t think we need to document what happens without the key.","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7110b2974b92012bf8e0f72148ac0d687a45ebcf","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    HMAC key to use for encrypting context data for performance profiling of"},{"line_number":128,"context_line":"    requested operation. This key should be the value of one of the HMAC keys"},{"line_number":129,"context_line":"    defined in the configuration files of OpenStack services, user would like"},{"line_number":130,"context_line":"    to trace through. Without key the profiling won\u0027t be triggered even if"},{"line_number":131,"context_line":"    osprofiler library is enabled on the server side."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":":option:`--log-file` \u003cLOGFILE\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da6ed579_54f15acc","line":130,"in_reply_to":"da6ed579_5fc30a38","updated":"2016-01-18 12:20:17.000000000","message":"ack, thank you sir","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"dc64b6e4882bd26474ddcb6d4e4dd80bb54bc655","unresolved":false,"context_lines":[{"line_number":123,"context_line":":option:`--os-interface` \u003cinterface\u003e"},{"line_number":124,"context_line":"    Interface type. Valid options are `public`, `admin` and `internal`."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":":option: `--profile` \u003cHMAC_KEY\u003e"},{"line_number":127,"context_line":"    HMAC key to use for encrypting context data for performance profiling of"},{"line_number":128,"context_line":"    requested operation. This key should be the value of one of the HMAC keys"},{"line_number":129,"context_line":"    defined in the configuration files of OpenStack services, user would like"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a57f1b5_27eca98e","line":126,"updated":"2016-02-10 21:39:40.000000000","message":"This should be \u003chmac-key\u003e.","commit_id":"0e00226d683c49cd57ea3032f0571a57a0f817b0"}],"openstackclient/shell.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"d247418da8ebb312be6ce90a61470500a100d26e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        finally:"},{"line_number":131,"context_line":"            self.log.info(\"END return value: %s\", ret_val)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def init_profile(self):"},{"line_number":134,"context_line":"        self.do_profile \u003d osprofiler_profiler and self.options.profile"},{"line_number":135,"context_line":"        if self.do_profile:"},{"line_number":136,"context_line":"            osprofiler_profiler.init(self.options.profile)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_9b8937cd","line":133,"updated":"2015-12-10 13:04:09.000000000","message":"these two methods could be done as decorator, but I decided not to do that as in this case you\u0027ll need to define the class method (decorator) that will require not to use self as a first argument, and that looks pretty ugly. Therefore two methods init_profile and close_profile were defined.","commit_id":"ebf920d1d82a8dcab86844855a6c248d2d855d42"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self.client_manager \u003d None"},{"line_number":105,"context_line":"        self.command_options \u003d None"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        self.do_profile \u003d False"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def configure_logging(self):"},{"line_number":110,"context_line":"        \"\"\"Configure logging for the app.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_faa9ac90","line":107,"updated":"2016-01-15 14:05:23.000000000","message":"Please consider unit tests for the new option.","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7d812068b3100894797ef117da8647f9e50d3436","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self.client_manager \u003d None"},{"line_number":105,"context_line":"        self.command_options \u003d None"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        self.do_profile \u003d False"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def configure_logging(self):"},{"line_number":110,"context_line":"        \"\"\"Configure logging for the app.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_2d13435e","line":107,"in_reply_to":"da6ed579_faa9ac90","updated":"2016-01-18 08:49:53.000000000","message":"ack","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if self.do_profile:"},{"line_number":140,"context_line":"            trace_id \u003d osprofiler_profiler.get().get_base_id()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            # NOTE(dbelova): let\u0027s use error log level to see these messages"},{"line_number":143,"context_line":"            # printed. In fact we can define custom log level here with value"},{"line_number":144,"context_line":"            # bigger than most big default one (CRITICAL) or something like"},{"line_number":145,"context_line":"            # that (PROFILE \u003d 60 for instance), but not sure we need it here."}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_9ad510e6","line":142,"updated":"2016-01-15 14:05:23.000000000","message":"Maybe warning is better than error here?","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7d812068b3100894797ef117da8647f9e50d3436","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if self.do_profile:"},{"line_number":140,"context_line":"            trace_id \u003d osprofiler_profiler.get().get_base_id()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            # NOTE(dbelova): let\u0027s use error log level to see these messages"},{"line_number":143,"context_line":"            # printed. In fact we can define custom log level here with value"},{"line_number":144,"context_line":"            # bigger than most big default one (CRITICAL) or something like"},{"line_number":145,"context_line":"            # that (PROFILE \u003d 60 for instance), but not sure we need it here."}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_ad25f3ae","line":142,"in_reply_to":"da6ed579_9ad510e6","updated":"2016-01-18 08:49:53.000000000","message":"I\u0027ll check, I think it\u0027ll be ok","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_subcommand(self, argv):"},{"line_number":151,"context_line":"        self.init_profile()"},{"line_number":152,"context_line":"        ret_value \u003d super(OpenStackShell, self).run_subcommand(argv)"},{"line_number":153,"context_line":"        self.close_profile()"},{"line_number":154,"context_line":"        return ret_value"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_bf524665","line":152,"updated":"2016-01-15 14:05:23.000000000","message":"I think you want to wrap this with try - finally clause to ensure profile is closed.","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7d812068b3100894797ef117da8647f9e50d3436","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_subcommand(self, argv):"},{"line_number":151,"context_line":"        self.init_profile()"},{"line_number":152,"context_line":"        ret_value \u003d super(OpenStackShell, self).run_subcommand(argv)"},{"line_number":153,"context_line":"        self.close_profile()"},{"line_number":154,"context_line":"        return ret_value"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_2d3a63ce","line":152,"in_reply_to":"da6ed579_bf524665","updated":"2016-01-18 08:49:53.000000000","message":"thank you sir, will fix","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def interact(self):"},{"line_number":157,"context_line":"        self.init_profile()"},{"line_number":158,"context_line":"        ret_value \u003d super(OpenStackShell, self).run_subcommand()"},{"line_number":159,"context_line":"        self.close_profile()"},{"line_number":160,"context_line":"        return ret_value"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def build_option_parser(self, description, version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_1fca721b","line":159,"updated":"2016-01-15 14:05:23.000000000","message":"I think you want to wrap this with try - finally clause to ensure profile is closed.","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"7d812068b3100894797ef117da8647f9e50d3436","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def interact(self):"},{"line_number":157,"context_line":"        self.init_profile()"},{"line_number":158,"context_line":"        ret_value \u003d super(OpenStackShell, self).run_subcommand()"},{"line_number":159,"context_line":"        self.close_profile()"},{"line_number":160,"context_line":"        return ret_value"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def build_option_parser(self, description, version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_ad4c1377","line":159,"in_reply_to":"da6ed579_1fca721b","updated":"2016-01-18 08:49:53.000000000","message":"ok","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c0b872233736f316dd82b092edb4bfa3aa5c68ab","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                                \u0027middleware in the projects user would like \u0027"},{"line_number":236,"context_line":"                                \u0027to profile. It needs to be specified in \u0027"},{"line_number":237,"context_line":"                                \u0027configuration files of the required \u0027"},{"line_number":238,"context_line":"                                \u0027projects. Without key the profiling will not \u0027"},{"line_number":239,"context_line":"                                \u0027be triggered even if osprofiler is enabled \u0027"},{"line_number":240,"context_line":"                                \u0027on server side.\u0027)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_1ff1126b","line":238,"updated":"2016-01-15 14:05:23.000000000","message":"Similar comment to documentation part...","commit_id":"709a9abfe6b7eeabb3708a897f33256290d4250b"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"ba4534c05c61483291e23ab89fa119f0a8e763bc","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        # osprofiler HMAC key argument"},{"line_number":232,"context_line":"        if osprofiler_profiler:"},{"line_number":233,"context_line":"            parser.add_argument(\u0027--profile\u0027,"},{"line_number":234,"context_line":"                                metavar\u003d\u0027HMAC_KEY\u0027,"},{"line_number":235,"context_line":"                                help\u003d\u0027HMAC key to use for encrypting context \u0027"},{"line_number":236,"context_line":"                                \u0027data for performance profiling of operation. \u0027"},{"line_number":237,"context_line":"                                \u0027This key should be the value of one of the \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_0cbdaeb6","line":234,"updated":"2016-02-05 21:36:10.000000000","message":"We format metavars in lower case: hmac-key","commit_id":"81bc2fbe9146a32c38541818e6872903f94df338"}],"releasenotes/notes/add-osprofiler-support-adf5286daf220914.yaml":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"ba4534c05c61483291e23ab89fa119f0a8e763bc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - OSprofiler support was added. To initiate OpenStack request tracing"},{"line_number":4,"context_line":"    `--profile \u003cHMAC_KEY\u003e` option needs to be added to the CLI command. This"},{"line_number":5,"context_line":"    key needs to present one of the secret keys defined in the OpenStack"},{"line_number":6,"context_line":"    projects configuration files (if there is a wish to generate cross-project"},{"line_number":7,"context_line":"    trace, the chosen key needs to be presented in all these configuration"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5a5ae5dd_2cef4aea","line":4,"updated":"2016-02-05 21:36:10.000000000","message":"Please use double backticks for CLI snippets: ``--profile \u003cHMAC_KEY\u003e``\n\nI am fixing the other release notes that missed this (where I can).","commit_id":"81bc2fbe9146a32c38541818e6872903f94df338"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"ba4534c05c61483291e23ab89fa119f0a8e763bc","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    projects configuration files (if there is a wish to generate cross-project"},{"line_number":7,"context_line":"    trace, the chosen key needs to be presented in all these configuration"},{"line_number":8,"context_line":"    files). By default all OpenStack projects, that support OSprofiler,"},{"line_number":9,"context_line":"    are using `SECRET_KEY` HMAC key."},{"line_number":10,"context_line":"    To use tracing functionality OSprofiler (and its storage backend)"},{"line_number":11,"context_line":"    needs to be installed in the environment. If so, you will be able to"},{"line_number":12,"context_line":"    trigger profiling via `openstack --profile SECRET_KEY \u003coperation\u003e` command."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5a5ae5dd_0ca84e8c","line":9,"updated":"2016-02-05 21:36:10.000000000","message":"This gets wrapped into a single paragraph in the output.  If that isn\u0027t what you want, break it here.","commit_id":"81bc2fbe9146a32c38541818e6872903f94df338"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"a7729973f18f9628b6abf3a0d09e7014908834a1","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    projects configuration files (if there is a wish to generate cross-project"},{"line_number":7,"context_line":"    trace, the chosen key needs to be presented in all these configuration"},{"line_number":8,"context_line":"    files). By default all OpenStack projects, that support OSprofiler,"},{"line_number":9,"context_line":"    are using `SECRET_KEY` HMAC key."},{"line_number":10,"context_line":"    To use tracing functionality OSprofiler (and its storage backend)"},{"line_number":11,"context_line":"    needs to be installed in the environment. If so, you will be able to"},{"line_number":12,"context_line":"    trigger profiling via `openstack --profile SECRET_KEY \u003coperation\u003e` command."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5a5ae5dd_bd7d586e","line":9,"in_reply_to":"5a5ae5dd_0ca84e8c","updated":"2016-02-08 22:12:42.000000000","message":"hm, Dean, can you help me with what needs to be done to get it into the separated paragraph? I used | symbol at the line beginning with no success :(","commit_id":"81bc2fbe9146a32c38541818e6872903f94df338"}]}
