)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"For the oslo_config_config object to work correctly, it _must_ have"},{"line_number":21,"context_line":"a value for the \u0027project\u0027 entry in the DEFAULT section. Tests have"},{"line_number":22,"context_line":"been updated to reflect this requirement."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I0beb809bc5ace609561f10dc52800a8a6e03f7e6"},{"line_number":25,"context_line":"Closes-Bug: #1540022"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a5ae5dd_71f1ad00","line":22,"updated":"2016-02-05 16:03:34.000000000","message":"While the exception message says that you need to define [DEFAULT].project when you do CONF.project, that\u0027s a bug in oslo.config. The exception message should say that you didn\u0027t finalize configuration of the CfgOpts (which is done by calling it like a function).\n\nIn other words, if you do CONF.project and it says there\u0027s no project option it was because you didn\u0027t do CONF() yet.\n\nI opened a bug: https://bugs.launchpad.net/oslo.config/+bug/1542372","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a33184790f5991ac72553b045adc7008ce5e60bc","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"For the oslo_config_config object to work correctly, it must be"},{"line_number":21,"context_line":"finalized to ensure that it is given a \u0027project\u0027 entry in the"},{"line_number":22,"context_line":"DEFAULT section. Tests have been updated to reflect this requirement."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I0beb809bc5ace609561f10dc52800a8a6e03f7e6"},{"line_number":25,"context_line":"Closes-Bug: #1540022"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a5ae5dd_0d7615a4","line":22,"updated":"2016-02-05 17:03:11.000000000","message":"it\u0027s given a project property. The way oslo.config works is if it\u0027s not a property it\u0027s looked up as a config value.","commit_id":"d8f001ea9f6751a6fbe495d120bff5ec37806f2c"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f02290fe2392acb73de1bcedd12374fa1c4675ec","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Calling a ConfigOpts instance with new args will implicitly reset"},{"line_number":10,"context_line":"the config values in the instance. This means that with the code as"},{"line_number":11,"context_line":"it was before this change any use of oslo_config_config would be"},{"line_number":12,"context_line":"instantly clobbered by the following line of code."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Now, if oslo_config_config is set to a non-None value it will be"},{"line_number":15,"context_line":"left unmolested. This is useful because oslo_config_config turns out"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a5ae5dd_f627c5b3","line":12,"updated":"2016-02-05 20:34:55.000000000","message":"What line of code?","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"78f52b581819704eb77fc2a631a56668de481e9a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Calling a ConfigOpts instance with new args will implicitly reset"},{"line_number":10,"context_line":"the config values in the instance. This means that with the code as"},{"line_number":11,"context_line":"it was before this change any use of oslo_config_config would be"},{"line_number":12,"context_line":"instantly clobbered by the following line of code."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Now, if oslo_config_config is set to a non-None value it will be"},{"line_number":15,"context_line":"left unmolested. This is useful because oslo_config_config turns out"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a5ae5dd_f6058579","line":12,"in_reply_to":"5a5ae5dd_f627c5b3","updated":"2016-02-05 20:45:02.000000000","message":"\"with the code as it was before\"\n\nBefore this commit immediately after using oslo_config_config it would get clobbered.","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1653c0b0542756093d7ae88280c71ba314efbd74","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calling a ConfigOpts instance with new args will implicitly reset"},{"line_number":10,"context_line":"the config values in the instance. This means that in the previous"},{"line_number":11,"context_line":"revision of the code, any use assignment of oslo_config_config to"},{"line_number":12,"context_line":"self._local_oslo_config would be instantly clobbered by calling"},{"line_number":13,"context_line":"it as a method to read from default_config_files."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_d1d3b3d3","line":11,"range":{"start_line":11,"start_character":26,"end_line":11,"end_character":43},"updated":"2016-02-05 21:15:47.000000000","message":"this doesn\u0027t make sense now.","commit_id":"3d9690f9abec82a37d834712012afca985824766"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"88a0d5448b29a887feee672d501636913d24258e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calling a ConfigOpts instance with new args will implicitly reset"},{"line_number":10,"context_line":"the config values in the instance. This means that in the previous"},{"line_number":11,"context_line":"revision of the code, any use assignment of oslo_config_config to"},{"line_number":12,"context_line":"self._local_oslo_config would be instantly clobbered by calling"},{"line_number":13,"context_line":"it as a method to read from default_config_files."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_b10f1738","line":11,"in_reply_to":"5a5ae5dd_d1d3b3d3","updated":"2016-02-05 21:22:44.000000000","message":"fixed","commit_id":"3d9690f9abec82a37d834712012afca985824766"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1653c0b0542756093d7ae88280c71ba314efbd74","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the config values in the instance. This means that in the previous"},{"line_number":11,"context_line":"revision of the code, any use assignment of oslo_config_config to"},{"line_number":12,"context_line":"self._local_oslo_config would be instantly clobbered by calling"},{"line_number":13,"context_line":"it as a method to read from default_config_files."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Now, if oslo_config_config is set to a non-None value it will be"},{"line_number":16,"context_line":"left unmolested. This is useful because oslo_config_config turns out"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_11f5cb55","line":13,"updated":"2016-02-05 21:15:47.000000000","message":"This wasn\u0027t even meant to work since it was only for the unit tests, so not really a problem.","commit_id":"3d9690f9abec82a37d834712012afca985824766"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"88a0d5448b29a887feee672d501636913d24258e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the config values in the instance. This means that in the previous"},{"line_number":11,"context_line":"revision of the code, any use assignment of oslo_config_config to"},{"line_number":12,"context_line":"self._local_oslo_config would be instantly clobbered by calling"},{"line_number":13,"context_line":"it as a method to read from default_config_files."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Now, if oslo_config_config is set to a non-None value it will be"},{"line_number":16,"context_line":"left unmolested. This is useful because oslo_config_config turns out"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_d114134e","line":13,"in_reply_to":"5a5ae5dd_11f5cb55","updated":"2016-02-05 21:22:44.000000000","message":"It didn\u0027t work for tests either. The fact that the previous tests worked was because the tests were wrong...","commit_id":"3d9690f9abec82a37d834712012afca985824766"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1653c0b0542756093d7ae88280c71ba314efbd74","unresolved":false,"context_lines":[{"line_number":19,"context_line":"conf nor paste is being used."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"For the oslo_config_config object to work correctly, it must be"},{"line_number":22,"context_line":"finalized to ensure that it is given a \u0027project\u0027 property in the"},{"line_number":23,"context_line":"DEFAULT section. Tests have been updated to reflect this requirement."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I0beb809bc5ace609561f10dc52800a8a6e03f7e6"},{"line_number":26,"context_line":"Closes-Bug: #1540022"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_f196efee","line":23,"range":{"start_line":22,"start_character":58,"end_line":23,"end_character":15},"updated":"2016-02-05 21:15:47.000000000","message":"the properties aren\u0027t in the config file, so this can be removed.","commit_id":"3d9690f9abec82a37d834712012afca985824766"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"88a0d5448b29a887feee672d501636913d24258e","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"For the oslo_config_config object to work correctly, it must be"},{"line_number":22,"context_line":"finalized to ensure that it is given a \u0027project\u0027 property in the"},{"line_number":23,"context_line":"DEFAULT section. Tests have been updated to reflect this requirement."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I0beb809bc5ace609561f10dc52800a8a6e03f7e6"},{"line_number":26,"context_line":"Closes-Bug: #1540022"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a5ae5dd_910bfb29","line":23,"in_reply_to":"5a5ae5dd_f196efee","updated":"2016-02-05 21:22:44.000000000","message":"Done","commit_id":"3d9690f9abec82a37d834712012afca985824766"}],"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc2b8d6e4ca9a528634492c1c7eca4a988f1c56b","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            # oslo_config_config."},{"line_number":654,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"},{"line_number":655,"context_line":"                self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]"},{"line_number":656,"context_line":"                self._local_oslo_config.project \u003d conf[\u0027oslo_config_project\u0027]"},{"line_number":657,"context_line":"            else:"},{"line_number":658,"context_line":"                self._local_oslo_config \u003d cfg.ConfigOpts()"},{"line_number":659,"context_line":"                self._local_oslo_config("}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_146c5d07","line":656,"updated":"2016-02-02 21:42:45.000000000","message":"If the application is passing in oslo_config_config, why doesn\u0027t it set the .project on it itself? The application shouldn\u0027t need auth_token to set the project for it.\n\nAdd a comment why this is here.","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"39310dde45314d12335780c6ef4b2ec22f6d7eb0","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            # oslo_config_config."},{"line_number":654,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"},{"line_number":655,"context_line":"                self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]"},{"line_number":656,"context_line":"                self._local_oslo_config.project \u003d conf[\u0027oslo_config_project\u0027]"},{"line_number":657,"context_line":"            else:"},{"line_number":658,"context_line":"                self._local_oslo_config \u003d cfg.ConfigOpts()"},{"line_number":659,"context_line":"                self._local_oslo_config("}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_879edd61","line":656,"in_reply_to":"7a5de9d1_146c5d07","updated":"2016-02-02 21:59:50.000000000","message":"Will do, the other option is to change at least 14 unrelated tests.\n\nBasically those tests really only worked because of the bug being fixed in this change.","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2f8b7d0cfa0e6031596a6a94f43c88b6f13335a0","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                # in their artificial oslo config we must set"},{"line_number":660,"context_line":"                # project here to avoid \"oslo_config.cfg.NoSuchOptError:"},{"line_number":661,"context_line":"                # no such option in group DEFAULT: project\""},{"line_number":662,"context_line":"                self._local_oslo_config.project \u003d conf[\u0027oslo_config_project\u0027]"},{"line_number":663,"context_line":"            else:"},{"line_number":664,"context_line":"                self._local_oslo_config \u003d cfg.ConfigOpts()"},{"line_number":665,"context_line":"                self._local_oslo_config("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_ebd78521","line":662,"range":{"start_line":662,"start_character":21,"end_line":662,"end_character":39},"updated":"2016-02-03 00:39:34.000000000","message":"Doing this seems strange to me. I\u0027ll put comment on the review.","commit_id":"3d67637b23aa6d1e3e3c4a45226fbeb98d5a4995"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8c3472eb9098b2d1c9dd43c650f39b38246069d2","unresolved":false,"context_lines":[{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(sileht): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # we can set the paste \"oslo_config_project\" and the middleware"},{"line_number":644,"context_line":"        # will load the configuration with a local oslo.config object."},{"line_number":645,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":646,"context_line":"        if \u0027oslo_config_project\u0027 in conf:"},{"line_number":647,"context_line":"            if \u0027oslo_config_file\u0027 in conf:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_61ff0d02","line":644,"updated":"2016-02-03 16:54:42.000000000","message":"Also update this note with a description of oslo_config_config usage.","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(sileht): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # we can set the paste \"oslo_config_project\" and the middleware"},{"line_number":644,"context_line":"        # will load the configuration with a local oslo.config object."},{"line_number":645,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":646,"context_line":"        if \u0027oslo_config_project\u0027 in conf:"},{"line_number":647,"context_line":"            if \u0027oslo_config_file\u0027 in conf:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_d106611c","line":644,"in_reply_to":"5a5ae5dd_61ff0d02","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":643,"context_line":"        # we can set the paste \"oslo_config_project\" and the middleware"},{"line_number":644,"context_line":"        # will load the configuration with a local oslo.config object."},{"line_number":645,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":646,"context_line":"        if \u0027oslo_config_project\u0027 in conf:"},{"line_number":647,"context_line":"            if \u0027oslo_config_file\u0027 in conf:"},{"line_number":648,"context_line":"                default_config_files \u003d [conf[\u0027oslo_config_file\u0027]]"},{"line_number":649,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_06242f0b","line":646,"updated":"2016-02-03 16:48:16.000000000","message":"I don\u0027t think the local_oslo_config should be switched off of if \u0027oslo_config_project\u0027 is defined. oslo_config_project isn\u0027t used if oslo_config_config is defined (also, oslo_config_file isn\u0027t used if oslo_config_config is defined).\n\nI think the logic should be:\n\n if \u0027oslo_config_project\u0027 in conf or conf.get(\u0027oslo_config_config\u0027):\n\n   if conf.get(\u0027oslo_config_config\u0027):\n     self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]\n   else:\n     if \u0027oslo_config_file\u0027 in conf:\n         default_config_files \u003d [conf[\u0027oslo_config_file\u0027]]\n     ...\n     self._local_oslo_config \u003d cfg.ConfigOpts()\n     ...\n\n   # always register opts.\n   self._local_oslo_config.register_opts(_OPTS,\n   ...\n\nright?","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":643,"context_line":"        # we can set the paste \"oslo_config_project\" and the middleware"},{"line_number":644,"context_line":"        # will load the configuration with a local oslo.config object."},{"line_number":645,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":646,"context_line":"        if \u0027oslo_config_project\u0027 in conf:"},{"line_number":647,"context_line":"            if \u0027oslo_config_file\u0027 in conf:"},{"line_number":648,"context_line":"                default_config_files \u003d [conf[\u0027oslo_config_file\u0027]]"},{"line_number":649,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_3116d54c","line":646,"in_reply_to":"5a5ae5dd_06242f0b","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5ebed4849f7136ed41dd173c649014b710ce1ab3","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            else:"},{"line_number":650,"context_line":"                default_config_files \u003d None"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"            # For unit tests, support passing in a ConfigOpts in"},{"line_number":653,"context_line":"            # oslo_config_config."},{"line_number":654,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"},{"line_number":655,"context_line":"                self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_065c2f4a","line":652,"updated":"2016-02-03 16:52:28.000000000","message":"you\u0027re changing this so that it\u0027s not just useful for unit tests, so update the comment.","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            else:"},{"line_number":650,"context_line":"                default_config_files \u003d None"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"            # For unit tests, support passing in a ConfigOpts in"},{"line_number":653,"context_line":"            # oslo_config_config."},{"line_number":654,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"},{"line_number":655,"context_line":"                self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_f11b5d71","line":652,"in_reply_to":"5a5ae5dd_065c2f4a","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":640,"context_line":"        self._conf \u003d _conf_values_type_convert(conf)"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(sileht): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # there are two options: we can set the paste \"oslo_config_project\""},{"line_number":644,"context_line":"        # and the middleware will load the configuration with a local"},{"line_number":645,"context_line":"        # oslo.config object or the caller which instantiates an"},{"line_number":646,"context_line":"        # AuthProtocol can pass in an existing oslo.config as the"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_51e7d110","line":643,"range":{"start_line":643,"start_character":33,"end_line":643,"end_character":39},"updated":"2016-02-05 16:03:34.000000000","message":"suggest remove \"we can\"","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        # NOTE(sileht): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # there are two options: we can set the paste \"oslo_config_project\""},{"line_number":644,"context_line":"        # and the middleware will load the configuration with a local"},{"line_number":645,"context_line":"        # oslo.config object or the caller which instantiates an"},{"line_number":646,"context_line":"        # AuthProtocol can pass in an existing oslo.config as the"},{"line_number":647,"context_line":"        # value of an \"oslo_config_config\" key in conf."},{"line_number":648,"context_line":"        self._local_oslo_config \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_91b789f4","line":645,"range":{"start_line":645,"start_character":62,"end_line":645,"end_character":64},"updated":"2016-02-05 16:03:34.000000000","message":"suggest remove \"an\"","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        # and the middleware will load the configuration with a local"},{"line_number":645,"context_line":"        # oslo.config object or the caller which instantiates an"},{"line_number":646,"context_line":"        # AuthProtocol can pass in an existing oslo.config as the"},{"line_number":647,"context_line":"        # value of an \"oslo_config_config\" key in conf."},{"line_number":648,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":649,"context_line":"        if \u0027oslo_config_project\u0027 in conf or conf.get(\u0027oslo_config_config\u0027):"},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_91aea996","line":647,"range":{"start_line":647,"start_character":19,"end_line":647,"end_character":21},"updated":"2016-02-05 16:03:34.000000000","message":"suggest change to \"the\"","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":646,"context_line":"        # AuthProtocol can pass in an existing oslo.config as the"},{"line_number":647,"context_line":"        # value of an \"oslo_config_config\" key in conf."},{"line_number":648,"context_line":"        self._local_oslo_config \u003d None"},{"line_number":649,"context_line":"        if \u0027oslo_config_project\u0027 in conf or conf.get(\u0027oslo_config_config\u0027):"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"            # Support passing in a ConfigOpts in oslo_config_config,"},{"line_number":652,"context_line":"            # either for testing or apps that instantiate the"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_117dd9b0","line":649,"updated":"2016-02-05 16:03:34.000000000","message":"suggest put conf.get(\u0027oslo_config_config\u0027) first since that takes precedence.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":649,"context_line":"        if \u0027oslo_config_project\u0027 in conf or conf.get(\u0027oslo_config_config\u0027):"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"            # Support passing in a ConfigOpts in oslo_config_config,"},{"line_number":652,"context_line":"            # either for testing or apps that instantiate the"},{"line_number":653,"context_line":"            # middleware themselves and already have an oslo.config"},{"line_number":654,"context_line":"            # object."},{"line_number":655,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_71976d3a","line":652,"range":{"start_line":652,"start_character":25,"end_line":652,"end_character":32},"updated":"2016-02-05 16:03:34.000000000","message":"suggest remove the testing part, since that\u0027s incidental now that the function is supported.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":652,"context_line":"            # either for testing or apps that instantiate the"},{"line_number":653,"context_line":"            # middleware themselves and already have an oslo.config"},{"line_number":654,"context_line":"            # object."},{"line_number":655,"context_line":"            if conf.get(\u0027oslo_config_config\u0027):"},{"line_number":656,"context_line":"                self._local_oslo_config \u003d conf[\u0027oslo_config_config\u0027]"},{"line_number":657,"context_line":"            else:"},{"line_number":658,"context_line":"                if \u0027oslo_config_file\u0027 in conf:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_71e52dda","line":655,"range":{"start_line":655,"start_character":15,"end_line":655,"end_character":45},"updated":"2016-02-05 16:03:34.000000000","message":"this is getting copied a few times so suggest store it in a local variable and use that.\n\n oslo_config_config \u003d conf.get(\u0027oslo_config_config\u0027)\n\nCould change line 648 to\n\n  self._local_oslo_config \u003d conf.get(\u0027oslo_config_config\u0027)\n\nthat would make it clear where it\u0027s used.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":669,"context_line":"                                                  group\u003d_base.AUTHTOKEN_GROUP)"},{"line_number":670,"context_line":"            self._local_oslo_config.register_opts(_auth.OPTS,"},{"line_number":671,"context_line":"                                                  group\u003d_base.AUTHTOKEN_GROUP)"},{"line_number":672,"context_line":"            loading.register_auth_conf_options(self._local_oslo_config,"},{"line_number":673,"context_line":"                                               group\u003d_base.AUTHTOKEN_GROUP)"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        super(AuthProtocol, self).__init__("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f147ddb9","line":672,"updated":"2016-02-05 16:03:34.000000000","message":"revert the unrelated whitespace change on the previous line.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a33184790f5991ac72553b045adc7008ce5e60bc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Refer to: http://docs.openstack.org/developer/keystonemiddleware/\\"},{"line_number":30,"context_line":"middlewarearchitecture.html"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Headers"},{"line_number":34,"context_line":"-------"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_adaee1e3","line":31,"updated":"2016-02-05 17:03:11.000000000","message":"There should be some docs here that say how to use this but I guess there\u0027s none for oslo_config_project, et al, either.","commit_id":"d8f001ea9f6751a6fbe495d120bff5ec37806f2c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a33184790f5991ac72553b045adc7008ce5e60bc","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        # value of the \"oslo_config_config\" key in conf. If both are"},{"line_number":648,"context_line":"        # set \"olso_config_config\" is used."},{"line_number":649,"context_line":"        self._local_oslo_config \u003d conf.get(\u0027oslo_config_config\u0027)"},{"line_number":650,"context_line":"        if not self._local_oslo_config and \u0027oslo_config_project\u0027 in conf:"},{"line_number":651,"context_line":"            if \u0027oslo_config_file\u0027 in conf:"},{"line_number":652,"context_line":"                default_config_files \u003d [conf[\u0027oslo_config_file\u0027]]"},{"line_number":653,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_2d3e718c","line":650,"updated":"2016-02-05 17:03:11.000000000","message":"add () to make this clearer.","commit_id":"d8f001ea9f6751a6fbe495d120bff5ec37806f2c"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f02290fe2392acb73de1bcedd12374fa1c4675ec","unresolved":false,"context_lines":[{"line_number":639,"context_line":"        # conf value into correct type."},{"line_number":640,"context_line":"        self._conf \u003d _conf_values_type_convert(conf)"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(cdent): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # there are two options: set \"oslo_config_project\" in"},{"line_number":644,"context_line":"        # paste.ini and the middleware will load the configuration with a"},{"line_number":645,"context_line":"        # local oslo.config object or the caller which instantiates"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_562fb987","line":642,"updated":"2016-02-05 20:34:55.000000000","message":"probably want to keep the original not author and just add your name. NOTE(sileht,cdent)","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"78f52b581819704eb77fc2a631a56668de481e9a","unresolved":false,"context_lines":[{"line_number":639,"context_line":"        # conf value into correct type."},{"line_number":640,"context_line":"        self._conf \u003d _conf_values_type_convert(conf)"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(cdent): If we don\u0027t want to use oslo.config global object"},{"line_number":643,"context_line":"        # there are two options: set \"oslo_config_project\" in"},{"line_number":644,"context_line":"        # paste.ini and the middleware will load the configuration with a"},{"line_number":645,"context_line":"        # local oslo.config object or the caller which instantiates"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_d6008968","line":642,"in_reply_to":"5a5ae5dd_562fb987","updated":"2016-02-05 20:45:02.000000000","message":"check","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"790c367397ee7a28ec3f6e0d34d2dd73be6f4587","unresolved":false,"context_lines":[{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # NOTE(sileht, cdent): If we don\u0027t want to use oslo.config global"},{"line_number":643,"context_line":"        # object there are two options: set \"oslo_config_project\" in"},{"line_number":644,"context_line":"        # paste.ini and the middleware will load the configuration with a"},{"line_number":645,"context_line":"        # local oslo.config object or the caller which instantiates"},{"line_number":646,"context_line":"        # AuthProtocol can pass in an existing oslo.config as the"},{"line_number":647,"context_line":"        # value of the \"oslo_config_config\" key in conf. If both are"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a5ae5dd_9a60e202","line":644,"updated":"2016-02-06 15:49:25.000000000","message":"And never ever ever put options in paste-ini. It\u0027s good there is an alternative now.","commit_id":"dc22e9fd30ea678edaf0a3237ed10c49128e87d9"}],"keystonemiddleware/tests/unit/auth_token/base.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.requests_mock \u003d self.useFixture(rm_fixture.Fixture())"},{"line_number":32,"context_line":"        self.logger \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)"},{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_2b5c9424","line":34,"updated":"2016-02-03 16:48:16.000000000","message":"is this what applications usually do? shouldn\u0027t the config fixture be calling conf(project\u003d\u0027keystonemiddleware\u0027)?\n\nAt least add a comment why this is being done.","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b70ac0db675277f75a52d13f41efddeaae95e716","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.requests_mock \u003d self.useFixture(rm_fixture.Fixture())"},{"line_number":32,"context_line":"        self.logger \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)"},{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_bd1205b3","line":34,"in_reply_to":"5a5ae5dd_2b5c9424","updated":"2016-02-03 18:52:43.000000000","message":"This kind of worked:\n\n self.cfg.conf(args\u003d[], default_config_files\u003d[])","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.requests_mock \u003d self.useFixture(rm_fixture.Fixture())"},{"line_number":32,"context_line":"        self.logger \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)"},{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_f1327df1","line":34,"in_reply_to":"5a5ae5dd_bd1205b3","updated":"2016-02-05 15:36:19.000000000","message":"I chose a slightly more explicit form.","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.requests_mock \u003d self.useFixture(rm_fixture.Fixture())"},{"line_number":32,"context_line":"        self.logger \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)"},{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf(args\u003d[], project\u003d\u0027keystonemiddleware\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_d9f527ed","line":34,"updated":"2016-02-05 16:03:34.000000000","message":"No need to pass project here.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3b648ae48e286145db6a83ee93f8e3d9db510fb2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.requests_mock \u003d self.useFixture(rm_fixture.Fixture())"},{"line_number":32,"context_line":"        self.logger \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)"},{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf(args\u003d[], project\u003d\u0027keystonemiddleware\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_9f3eaf26","line":34,"in_reply_to":"5a5ae5dd_d9f527ed","updated":"2016-02-05 16:36:29.000000000","message":"Done","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf(args\u003d[], project\u003d\u0027keystonemiddleware\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        @webob.dec.wsgify"},{"line_number":39,"context_line":"        def _do_cb(req):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f9bb43e3","line":36,"updated":"2016-02-05 16:03:34.000000000","message":"(unrelated) the method arguments are confusing.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3b648ae48e286145db6a83ee93f8e3d9db510fb2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.cfg \u003d self.useFixture(cfg_fixture.Config(conf\u003dcfg.ConfigOpts()))"},{"line_number":34,"context_line":"        self.cfg.conf(args\u003d[], project\u003d\u0027keystonemiddleware\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_middleware(self, cb, conf\u003dNone, use_global_conf\u003dFalse):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        @webob.dec.wsgify"},{"line_number":39,"context_line":"        def _do_cb(req):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_1f807fbf","line":36,"in_reply_to":"5a5ae5dd_f9bb43e3","updated":"2016-02-05 16:36:29.000000000","message":"I agree, I\u0027ve tried to address the confusion in my comment where I use it.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"}],"keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc2b8d6e4ca9a528634492c1c7eca4a988f1c56b","unresolved":false,"context_lines":[{"line_number":2474,"context_line":"        self.project \u003d uuid.uuid4().hex"},{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): Many options you might like to pass as oslo"},{"line_number":2477,"context_line":"        # config are not in the \u0027keystone_authoken\u0027 group. It appears"},{"line_number":2478,"context_line":"        # some options are showing up as allowed in the paste.ini but"},{"line_number":2479,"context_line":"        # not available in olso config files. For example auth_type"},{"line_number":2480,"context_line":"        # and auth_plugin."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_b4c4695f","line":2477,"range":{"start_line":2477,"start_character":42,"end_line":2477,"end_character":50},"updated":"2016-02-02 21:42:45.000000000","message":"(typo) authtoken","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc2b8d6e4ca9a528634492c1c7eca4a988f1c56b","unresolved":false,"context_lines":[{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): Many options you might like to pass as oslo"},{"line_number":2477,"context_line":"        # config are not in the \u0027keystone_authoken\u0027 group. It appears"},{"line_number":2478,"context_line":"        # some options are showing up as allowed in the paste.ini but"},{"line_number":2479,"context_line":"        # not available in olso config files. For example auth_type"},{"line_number":2480,"context_line":"        # and auth_plugin."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_14af7d7e","line":2478,"updated":"2016-02-02 21:42:45.000000000","message":"I have no idea what this means... showing up where?","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc2b8d6e4ca9a528634492c1c7eca4a988f1c56b","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"        # config are not in the \u0027keystone_authoken\u0027 group. It appears"},{"line_number":2478,"context_line":"        # some options are showing up as allowed in the paste.ini but"},{"line_number":2479,"context_line":"        # not available in olso config files. For example auth_type"},{"line_number":2480,"context_line":"        # and auth_plugin."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"},{"line_number":2482,"context_line":"            \u0027auth_uri\u0027: uuid.uuid4().hex,"},{"line_number":2483,"context_line":"            \u0027identity_uri\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_b4eea9b2","line":2480,"updated":"2016-02-02 21:42:45.000000000","message":"This mentions auth_type and auth_plugin but the following dict has auth_uri and identity_uri. Is the dict supposed to have auth_plugin instead?","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"39310dde45314d12335780c6ef4b2ec22f6d7eb0","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"        # config are not in the \u0027keystone_authoken\u0027 group. It appears"},{"line_number":2478,"context_line":"        # some options are showing up as allowed in the paste.ini but"},{"line_number":2479,"context_line":"        # not available in olso config files. For example auth_type"},{"line_number":2480,"context_line":"        # and auth_plugin."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"},{"line_number":2482,"context_line":"            \u0027auth_uri\u0027: uuid.uuid4().hex,"},{"line_number":2483,"context_line":"            \u0027identity_uri\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_a7c0b92b","line":2480,"in_reply_to":"7a5de9d1_b4eea9b2","updated":"2016-02-02 21:59:50.000000000","message":"All this is related I think to https://review.openstack.org/#/c/255661/\n\nI\u0027ll try to clarify the comment in the next submission.","commit_id":"cf55900cf6b893c237461265e63feeaeddc5943b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":2474,"context_line":"        self.project \u003d uuid.uuid4().hex"},{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): The options below are selected from those"},{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_6b94cc36","line":2477,"range":{"start_line":2477,"start_character":45,"end_line":2477,"end_character":63},"updated":"2016-02-03 16:48:16.000000000","message":"change to \"auth_token middleware\"","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":2474,"context_line":"        self.project \u003d uuid.uuid4().hex"},{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): The options below are selected from those"},{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_d1542100","line":2477,"in_reply_to":"5a5ae5dd_6b94cc36","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): The options below are selected from those"},{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_4b4a3085","line":2478,"range":{"start_line":2478,"start_character":10,"end_line":2478,"end_character":25},"updated":"2016-02-03 16:48:16.000000000","message":"change to \"in\"","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":2475,"context_line":""},{"line_number":2476,"context_line":"        # NOTE(cdent): The options below are selected from those"},{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_71552df8","line":2478,"in_reply_to":"5a5ae5dd_4b4a3085","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"},{"line_number":2482,"context_line":"            \u0027auth_uri\u0027: uuid.uuid4().hex,"},{"line_number":2483,"context_line":"            \u0027identity_uri\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_cb25c0c2","line":2480,"range":{"start_line":2480,"start_character":13,"end_line":2480,"end_character":19},"updated":"2016-02-03 16:48:16.000000000","message":"change to \"must\"","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"        # which are statically registered by keystonemiddleware"},{"line_number":2478,"context_line":"        # to be a part of the  \u0027keystone_authtoken\u0027 group."},{"line_number":2479,"context_line":"        # Additional options, from plugins, are registered dynamically"},{"line_number":2480,"context_line":"        # so should not be used here."},{"line_number":2481,"context_line":"        self.oslo_options \u003d {"},{"line_number":2482,"context_line":"            \u0027auth_uri\u0027: uuid.uuid4().hex,"},{"line_number":2483,"context_line":"            \u0027identity_uri\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_915a2929","line":2480,"in_reply_to":"5a5ae5dd_cb25c0c2","updated":"2016-02-05 15:36:19.000000000","message":"Done","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bc2d56965bacba971a740bba3796a8fb9d287c2","unresolved":false,"context_lines":[{"line_number":2493,"context_line":"        for option, value in self.oslo_options.items():"},{"line_number":2494,"context_line":"            self.local_oslo_config.set_override(option, value,"},{"line_number":2495,"context_line":"                                                \u0027keystone_authtoken\u0027)"},{"line_number":2496,"context_line":"        self.local_oslo_config.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":2497,"context_line":""},{"line_number":2498,"context_line":"        self.file_options \u003d {"},{"line_number":2499,"context_line":"            \u0027auth_type\u0027: \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_e63a33cd","line":2496,"updated":"2016-02-03 16:48:16.000000000","message":"shouldn\u0027t this happen when self.local_oslo_config(project\u003d\u0027keystonemiddleware\u0027) is called?","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"68bfac634d2dc936a2f0b3641ed4beb0324bda12","unresolved":false,"context_lines":[{"line_number":2493,"context_line":"        for option, value in self.oslo_options.items():"},{"line_number":2494,"context_line":"            self.local_oslo_config.set_override(option, value,"},{"line_number":2495,"context_line":"                                                \u0027keystone_authtoken\u0027)"},{"line_number":2496,"context_line":"        self.local_oslo_config.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":2497,"context_line":""},{"line_number":2498,"context_line":"        self.file_options \u003d {"},{"line_number":2499,"context_line":"            \u0027auth_type\u0027: \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_b184055e","line":2496,"in_reply_to":"5a5ae5dd_1dfa3943","updated":"2016-02-05 15:36:19.000000000","message":"I went for a slightly more explicit form.","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7f6545cce24676198820d969bd80398effdf139b","unresolved":false,"context_lines":[{"line_number":2493,"context_line":"        for option, value in self.oslo_options.items():"},{"line_number":2494,"context_line":"            self.local_oslo_config.set_override(option, value,"},{"line_number":2495,"context_line":"                                                \u0027keystone_authtoken\u0027)"},{"line_number":2496,"context_line":"        self.local_oslo_config.project \u003d \u0027keystonemiddleware\u0027"},{"line_number":2497,"context_line":""},{"line_number":2498,"context_line":"        self.file_options \u003d {"},{"line_number":2499,"context_line":"            \u0027auth_type\u0027: \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_1dfa3943","line":2496,"in_reply_to":"5a5ae5dd_e63a33cd","updated":"2016-02-03 18:56:07.000000000","message":"Try this:\n\n self.local_oslo_config(args\u003d[])","commit_id":"fcea2c9d92d8ad631ca43cc5082b34e250c73223"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":2524,"context_line":"                             app._conf_get(option))"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"    def test_passed_olso_configuration_wins(self):"},{"line_number":2527,"context_line":"        \"\"\"oslo_config_config has precedence over oslo_config_file.\"\"\""},{"line_number":2528,"context_line":"        conf \u003d {\u0027oslo_config_project\u0027: self.project,"},{"line_number":2529,"context_line":"                \u0027oslo_config_config\u0027: self.local_oslo_config,"},{"line_number":2530,"context_line":"                \u0027oslo_config_file\u0027: self.conf_file_fixture.path}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f1911df2","line":2527,"range":{"start_line":2527,"start_character":50,"end_line":2527,"end_character":66},"updated":"2016-02-05 16:03:34.000000000","message":"oslo_config_project","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3b648ae48e286145db6a83ee93f8e3d9db510fb2","unresolved":false,"context_lines":[{"line_number":2524,"context_line":"                             app._conf_get(option))"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"    def test_passed_olso_configuration_wins(self):"},{"line_number":2527,"context_line":"        \"\"\"oslo_config_config has precedence over oslo_config_file.\"\"\""},{"line_number":2528,"context_line":"        conf \u003d {\u0027oslo_config_project\u0027: self.project,"},{"line_number":2529,"context_line":"                \u0027oslo_config_config\u0027: self.local_oslo_config,"},{"line_number":2530,"context_line":"                \u0027oslo_config_file\u0027: self.conf_file_fixture.path}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_df46677a","line":2527,"in_reply_to":"5a5ae5dd_f1911df2","updated":"2016-02-05 16:36:29.000000000","message":"Done","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8865bde54387429801e3cebeeeb157cd37edcce2","unresolved":false,"context_lines":[{"line_number":2543,"context_line":"        with mock.patch(\u0027keystonemiddleware.auth_token.pkg_resources\u0027,"},{"line_number":2544,"context_line":"                        new\u003dfake_pkg_resources):"},{"line_number":2545,"context_line":"            return self.create_simple_middleware(body\u003dbody, conf\u003dconf,"},{"line_number":2546,"context_line":"                                                 use_global_conf\u003dTrue)"},{"line_number":2547,"context_line":""},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"def load_tests(loader, tests, pattern):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_d96f67fa","line":2546,"updated":"2016-02-05 16:03:34.000000000","message":"we always want to use the global conf? How about add a comment why.","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3b648ae48e286145db6a83ee93f8e3d9db510fb2","unresolved":false,"context_lines":[{"line_number":2543,"context_line":"        with mock.patch(\u0027keystonemiddleware.auth_token.pkg_resources\u0027,"},{"line_number":2544,"context_line":"                        new\u003dfake_pkg_resources):"},{"line_number":2545,"context_line":"            return self.create_simple_middleware(body\u003dbody, conf\u003dconf,"},{"line_number":2546,"context_line":"                                                 use_global_conf\u003dTrue)"},{"line_number":2547,"context_line":""},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"def load_tests(loader, tests, pattern):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_9f5d4f49","line":2546,"in_reply_to":"5a5ae5dd_d96f67fa","updated":"2016-02-05 16:36:29.000000000","message":"Done","commit_id":"88771a12d4089141d88f6eae919ef766dfee19f1"}],"releasenotes/notes/authprotocol-accepts-oslo-config-config-a37212b60f58e154.yaml":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a33184790f5991ac72553b045adc7008ce5e60bc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The AuthProtocol middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    `oslo_config_config`. If this is set its value should be an existing"},{"line_number":6,"context_line":"    oslo_config `ConfigOpts`. `olso_config_config` takes precedence over"},{"line_number":7,"context_line":"    `oslo_config_project`. This feature is useful to applications that"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a5ae5dd_8d220551","line":4,"updated":"2016-02-05 17:03:11.000000000","message":"change AuthProtocol to auth_token since this is what people know it as.","commit_id":"d8f001ea9f6751a6fbe495d120bff5ec37806f2c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a33184790f5991ac72553b045adc7008ce5e60bc","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The AuthProtocol middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    `oslo_config_config`. If this is set its value should be an existing"},{"line_number":6,"context_line":"    oslo_config `ConfigOpts`. `olso_config_config` takes precedence over"},{"line_number":7,"context_line":"    `oslo_config_project`. This feature is useful to applications that"},{"line_number":8,"context_line":"    are instantiating the auth_token middleware themselves and wish to"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a5ae5dd_6d1549e3","line":5,"range":{"start_line":5,"start_character":51,"end_line":5,"end_character":57},"updated":"2016-02-05 17:03:11.000000000","message":"suggest use ``oslo_config_config`` since it\u0027s a literal.\n\nchange should to must","commit_id":"d8f001ea9f6751a6fbe495d120bff5ec37806f2c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e6faeab6a532e40a21bbcce72e2c5a7a47a9d6bb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The auth_token middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    ``oslo_config_config``. If this is set its value must be an existing"},{"line_number":6,"context_line":"    oslo_config ``ConfigOpts``. ``olso_config_config`` takes precedence over"},{"line_number":7,"context_line":"    ``oslo_config_project``. This feature is useful to applications that"},{"line_number":8,"context_line":"    are instantiating the auth_token middleware themselves and wish to"},{"line_number":9,"context_line":"    use an existing configuration."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a5ae5dd_ceb31399","line":6,"updated":"2016-02-05 18:22:44.000000000","message":"` around ConfigOpts was correct because it\u0027s not a literal string, it\u0027s the name of a class.","commit_id":"49bcf2c8931f68b27ea1f0d11af6303ef810d161"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f02290fe2392acb73de1bcedd12374fa1c4675ec","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The auth_token middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    ``oslo_config_config``. If this is set its value must be an existing"},{"line_number":6,"context_line":"    oslo_config `ConfigOpts`. ``olso_config_config`` takes precedence over"},{"line_number":7,"context_line":"    ``oslo_config_project``. This feature is useful to applications that"},{"line_number":8,"context_line":"    are instantiating the auth_token middleware themselves and wish to"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a5ae5dd_568b3968","line":5,"updated":"2016-02-05 20:34:55.000000000","message":"the name oslo_config_config made me smile","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"78f52b581819704eb77fc2a631a56668de481e9a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The auth_token middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    ``oslo_config_config``. If this is set its value must be an existing"},{"line_number":6,"context_line":"    oslo_config `ConfigOpts`. ``olso_config_config`` takes precedence over"},{"line_number":7,"context_line":"    ``oslo_config_project``. This feature is useful to applications that"},{"line_number":8,"context_line":"    are instantiating the auth_token middleware themselves and wish to"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5a5ae5dd_b632ad5c","line":5,"in_reply_to":"5a5ae5dd_568b3968","updated":"2016-02-05 20:45:02.000000000","message":"Yeah, not my choice. It was already being used. It is a bit wacky.","commit_id":"09a57abaa6b982b07f55797756e7a95bfc44b139"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"951cc5eb356859dabbc3c9357648cddb6c7c1fe3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    The auth_token middleware will now accept a conf setting named"},{"line_number":5,"context_line":"    ``oslo_config_config``. If this is set its value must be an existing"},{"line_number":6,"context_line":"    oslo_config `ConfigOpts`. ``olso_config_config`` takes precedence over"},{"line_number":7,"context_line":"    ``oslo_config_project``. This feature is useful to applications that"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a5ae5dd_6cd30205","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":66},"updated":"2016-02-05 21:38:09.000000000","message":"could mention the bug here\n\n[`bug 1540022 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1540022\u003e`_]","commit_id":"3abc0f8bf61af400ae16ab3ecea0acde34c1f7d1"}]}
