)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d11e7ff8fd27ffd63474c96fa33004cff95abc00","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  header inline."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This is a WIP at the moment just showing that actually bypassing"},{"line_number":28,"context_line":"NoAuthMiddleware is fairly straightforward. To make this go, we would"},{"line_number":29,"context_line":"also want to rip out hundreds of lines of now-unused code, including"},{"line_number":30,"context_line":"NoAuthMiddleware itself and all its tests, as well as references to it"},{"line_number":31,"context_line":"from conf and paste.ini."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I459a605b4a9390f0e36356ca1fe432948159acd4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_77cf047f","line":31,"range":{"start_line":28,"start_character":44,"end_line":31,"end_character":24},"updated":"2019-10-08 20:38:17.000000000","message":"But after the noauth2 auth_strategy choice is gone in a future release right?","commit_id":"fd5524822b17f21ef9833552213ef680e1eed8de"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d6952cf0299de1b7b07f82e7ce14141a72d62f33","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  header inline."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This is a WIP at the moment just showing that actually bypassing"},{"line_number":28,"context_line":"NoAuthMiddleware is fairly straightforward. To make this go, we would"},{"line_number":29,"context_line":"also want to rip out hundreds of lines of now-unused code, including"},{"line_number":30,"context_line":"NoAuthMiddleware itself and all its tests, as well as references to it"},{"line_number":31,"context_line":"from conf and paste.ini."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I459a605b4a9390f0e36356ca1fe432948159acd4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_97f40089","line":31,"range":{"start_line":28,"start_character":44,"end_line":31,"end_character":24},"in_reply_to":"3fa7e38b_77cf047f","updated":"2019-10-08 20:50:14.000000000","message":"Hum, yes. I was actually thinking this patch would wait until that time, but I guess there\u0027s no reason for nova to wait to stop using noauth2 in its tests.","commit_id":"fd5524822b17f21ef9833552213ef680e1eed8de"}],"nova/tests/fixtures.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0541112c9e2783407d4384a9b195297d229346e8","unresolved":false,"context_lines":[{"line_number":982,"context_line":""},{"line_number":983,"context_line":"        # Stub out authentication middleware"},{"line_number":984,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":985,"context_line":"            \u0027keystonemiddleware.auth_token.filter_factory\u0027,"},{"line_number":986,"context_line":"            return_value\u003dlambda _app: _app))"},{"line_number":987,"context_line":"        # ...and context middleware"},{"line_number":988,"context_line":"        # TODO(efried): We could have more realistic tests if we stubbed less"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_17d6d028","line":985,"updated":"2019-10-08 20:37:05.000000000","message":"Could we use https://github.com/openstack/keystonemiddleware/blob/master/keystonemiddleware/fixture.py here?","commit_id":"fd5524822b17f21ef9833552213ef680e1eed8de"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"63e85b9c3b4baa6956944c87f005b64867b57b62","unresolved":false,"context_lines":[{"line_number":954,"context_line":""},{"line_number":955,"context_line":"    def __init__(self, api_version\u003d\u0027v2\u0027,"},{"line_number":956,"context_line":"                 project_id\u003d\u00276f70656e737461636b20342065766572\u0027,"},{"line_number":957,"context_line":"                 use_project_id_in_urls\u003dFalse):"},{"line_number":958,"context_line":"        \"\"\"Constructor"},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"        :param api_version: the API version that we\u0027re interested in"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_6f5dda13","line":957,"range":{"start_line":957,"start_character":17,"end_line":957,"end_character":39},"updated":"2019-10-09 20:30:29.000000000","message":"doc this","commit_id":"20d8263a63444b8160259d955f3488dfd65399a7"}],"nova/tests/functional/api_sample_tests/api_sample_base.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97ba249135492b0ab9a0b948f2bc4c48358b394f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # test v2.18 code without project id"},{"line_number":83,"context_line":"        (\u0027v2_1_noproject_id\u0027, {"},{"line_number":84,"context_line":"            \u0027api_major_version\u0027: \u0027v2.1\u0027,"},{"line_number":85,"context_line":"            \u0027_use_project_id\u0027: False,"},{"line_number":86,"context_line":"            \u0027_additional_fixtures\u0027: ["},{"line_number":87,"context_line":"                api_paste_fixture.ApiPasteNoProjectId]})"},{"line_number":88,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_01b37299","line":85,"updated":"2019-10-16 19:49:54.000000000","message":"Looking at this, if we knew the microversion we were going to use to construct the API fixture we could automatically set _use_project_id based on whether or not the microversion is \u003e\u003d 2.18 and could maybe save us some boilerplate copy/paste in the other samples tests later in this patch.","commit_id":"52fe8c028578e750fec2add978182707733a13fa"}],"nova/tests/functional/api_sample_tests/test_simple_tenant_usage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5abaf09694ce45d5ded85f3a41e8d4daa9ba7d9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    sample_dir \u003d \u0027os-simple-tenant-usage\u0027"},{"line_number":75,"context_line":"    microversion \u003d \u00272.40\u0027"},{"line_number":76,"context_line":"    scenarios \u003d [(\u0027v2_40\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":77,"context_line":"    _use_project_id \u003d False"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(SimpleTenantUsageV240Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f7e66db0","line":77,"updated":"2019-10-10 17:59:53.000000000","message":"If this already defaults to False in the parent:\n\nhttps://review.opendev.org/#/c/687416/5/nova/tests/functional/integrated_helpers.py\n\nWhy do we need to set it here?","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7fe38e51151b910557b353a7f06916af6acd4868","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    sample_dir \u003d \u0027os-simple-tenant-usage\u0027"},{"line_number":75,"context_line":"    microversion \u003d \u00272.40\u0027"},{"line_number":76,"context_line":"    scenarios \u003d [(\u0027v2_40\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":77,"context_line":"    _use_project_id \u003d False"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(SimpleTenantUsageV240Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_86fb2345","line":77,"in_reply_to":"3fa7e38b_f7698df7","updated":"2019-10-14 16:43:00.000000000","message":"I moved the base definition up to _IntegratedTestBase and added some comments. Hopefully this makes it clearer.","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d249ef31ce6be299b5f3853e36d65a46f1f82c3","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    sample_dir \u003d \u0027os-simple-tenant-usage\u0027"},{"line_number":75,"context_line":"    microversion \u003d \u00272.40\u0027"},{"line_number":76,"context_line":"    scenarios \u003d [(\u0027v2_40\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":77,"context_line":"    _use_project_id \u003d False"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(SimpleTenantUsageV240Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f7698df7","line":77,"in_reply_to":"3fa7e38b_f7e66db0","updated":"2019-10-10 18:16:08.000000000","message":"It defaults to True in nova.tests.functional.api_sample_tests.api_sample_base.ApiSampleTestBaseV21, which is between here and IntegratedTestBase in the class ancestry.\n\nThe thing you\u0027re pointing to in IntegratedTestBase is for setting up the OSAPIFixture; and it\u0027s using getattr with a default for that same reason.\n\n...but perhaps it would be better to move _use_project_id up to IntegratedTestBase, default it to False, and then not do that getattr(). (But still override it to True in ApiSampleTestBaseV21, because most of the descendants of that guy want it True.)\n\nI can\u0027t think through this effectively right now, but if you have an opinion on which way you want it, lmk and I\u0027ll fix it up next week.","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97ba249135492b0ab9a0b948f2bc4c48358b394f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    sample_dir \u003d \u0027os-simple-tenant-usage\u0027"},{"line_number":75,"context_line":"    microversion \u003d \u00272.40\u0027"},{"line_number":76,"context_line":"    scenarios \u003d [(\u0027v2_40\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":77,"context_line":"    _use_project_id \u003d False"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(SimpleTenantUsageV240Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_81bf625f","line":77,"updated":"2019-10-16 19:49:54.000000000","message":"OK this is because we extend ServersSampleBase which extends ApiSampleTestBaseV21 which sets _use_project_id\u003dTrue for pre-2.18 samples.","commit_id":"52fe8c028578e750fec2add978182707733a13fa"}],"nova/tests/functional/api_sample_tests/test_versions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5abaf09694ce45d5ded85f3a41e8d4daa9ba7d9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class VersionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):"},{"line_number":21,"context_line":"    sample_dir \u003d \u0027versions\u0027"},{"line_number":22,"context_line":"    _use_project_id \u003d False"},{"line_number":23,"context_line":"    # NOTE(gmann): Setting empty scenario for \u0027version\u0027 API testing"},{"line_number":24,"context_line":"    # as those does not send request on particular endpoint and running"},{"line_number":25,"context_line":"    # its tests alone is enough."}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_b704754b","line":22,"updated":"2019-10-10 17:59:53.000000000","message":"same","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"}],"nova/tests/functional/integrated_helpers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e5abaf09694ce45d5ded85f3a41e8d4daa9ba7d9","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.compute \u003d self._setup_compute_service()"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        _use_proj_id_in_urls \u003d getattr(self, \u0027_use_project_id\u0027, False)"},{"line_number":129,"context_line":"        self.api_fixture \u003d self.useFixture("},{"line_number":130,"context_line":"            nova_fixtures.OSAPIFixture("},{"line_number":131,"context_line":"                api_version\u003dself.api_major_version,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_57f66165","line":128,"updated":"2019-10-10 17:59:53.000000000","message":"A comment here would probably be good.","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d249ef31ce6be299b5f3853e36d65a46f1f82c3","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.compute \u003d self._setup_compute_service()"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        _use_proj_id_in_urls \u003d getattr(self, \u0027_use_project_id\u0027, False)"},{"line_number":129,"context_line":"        self.api_fixture \u003d self.useFixture("},{"line_number":130,"context_line":"            nova_fixtures.OSAPIFixture("},{"line_number":131,"context_line":"                api_version\u003dself.api_major_version,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f7b42d84","line":128,"in_reply_to":"3fa7e38b_57f66165","updated":"2019-10-10 18:16:08.000000000","message":"will do","commit_id":"170a3e1c10a9f6236f6b64ed1fcc1b64f2583ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97ba249135492b0ab9a0b948f2bc4c48358b394f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self.api \u003d self.api_fixture.api"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if hasattr(self, \u0027microversion\u0027):"},{"line_number":144,"context_line":"            self.api.microversion \u003d self.microversion"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def get_unused_server_name(self):"},{"line_number":147,"context_line":"        servers \u003d self.api.get_servers()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e17896c1","line":144,"range":{"start_line":143,"start_character":8,"end_line":144,"end_character":53},"updated":"2019-10-16 19:49:54.000000000","message":"Based on what I was talking about before, if we moved this up before we created the API fixture and could use it to decide the default for _use_project_id based on the microversion being \u003e\u003d 2.18 that would be nice, but I\u0027m not sure how much benefit we gain from it and it means we have more complicated setup going on several classes removed from the actual thing that defines the tests which has always been a pain for the API samples tests, especially for new contributors. Plus I\u0027m not sure if you\u0027d do some kind of ternary logic for _use_project_id like:\n\n_use_project_id \u003d None  # default, determine based on microversion\n\n...\n\nif self._use_project_id is None:\n    self._use_project_id \u003d self.microversion \u003e\u003d 2.18\n\nAnyway, something to chew on if it bugs you.","commit_id":"52fe8c028578e750fec2add978182707733a13fa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5ca2b3d6930c8a7ded568f0ed9e87a0d4a5c72d6","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self.api \u003d self.api_fixture.api"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if hasattr(self, \u0027microversion\u0027):"},{"line_number":144,"context_line":"            self.api.microversion \u003d self.microversion"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def get_unused_server_name(self):"},{"line_number":147,"context_line":"        servers \u003d self.api.get_servers()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_b84961b8","line":144,"range":{"start_line":143,"start_character":8,"end_line":144,"end_character":53},"in_reply_to":"3fa7e38b_4ca8c18a","updated":"2019-10-17 16:39:26.000000000","message":"Sounds like a fiber deficiency.","commit_id":"52fe8c028578e750fec2add978182707733a13fa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2adafaa80c35fd76467900d7e80ed5e94da19897","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self.api \u003d self.api_fixture.api"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if hasattr(self, \u0027microversion\u0027):"},{"line_number":144,"context_line":"            self.api.microversion \u003d self.microversion"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def get_unused_server_name(self):"},{"line_number":147,"context_line":"        servers \u003d self.api.get_servers()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_4ca8c18a","line":144,"range":{"start_line":143,"start_character":8,"end_line":144,"end_character":53},"in_reply_to":"3fa7e38b_e17896c1","updated":"2019-10-16 20:15:23.000000000","message":"\u003e Anyway, something to chew on if it bugs you.\n\nIt did, but so did a dozen other potential refactors of various magnitudes while I was working on this. I may some day go after some of those, but I don\u0027t see it floating to the top any time soon.","commit_id":"52fe8c028578e750fec2add978182707733a13fa"}]}
