)]}'
{"glance/tests/functional/v2/test_legacy_update_cinder_store.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[{"line_number":193,"context_line":"        # setup multiple cinder stores"},{"line_number":194,"context_line":"        self.setup_multiple_stores()"},{"line_number":195,"context_line":"        cinder.connector \u003d mock.MagicMock()"},{"line_number":196,"context_line":"        cinder.open \u003d mock.MagicMock()"},{"line_number":197,"context_line":"        self.start_server()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        mocked_cc.return_value \u003d self.cinder_store_mock"}],"source_content_type":"text/x-python","patch_set":5,"id":"687d8be5_ea9e59cf","line":196,"updated":"2021-02-04 17:49:45.000000000","message":"These two mocks need to be done properly, as you\u0027re mocking out these attributes in cinder for the life of this test worker, which can have knock-on effects on tests that run after us.\n\nEither put these in the decorator stack above, or move them to context managers. The former is much preferred.","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"08fbd46e357992a599ef021de8b5b60896006e41","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        # setup multiple cinder stores"},{"line_number":194,"context_line":"        self.setup_multiple_stores()"},{"line_number":195,"context_line":"        cinder.connector \u003d mock.MagicMock()"},{"line_number":196,"context_line":"        cinder.open \u003d mock.MagicMock()"},{"line_number":197,"context_line":"        self.start_server()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        mocked_cc.return_value \u003d self.cinder_store_mock"}],"source_content_type":"text/x-python","patch_set":5,"id":"b2b0cd65_d4909d77","line":196,"in_reply_to":"687d8be5_ea9e59cf","updated":"2021-02-05 13:14:05.000000000","message":"Done","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[{"line_number":203,"context_line":"        # verify image is created with new location url"},{"line_number":204,"context_line":"        self.assertEqual(\u0027cinder://store1/%s\u0027 % self.vol_id,"},{"line_number":205,"context_line":"                         image[\u0027locations\u0027][0][\u0027url\u0027])"},{"line_number":206,"context_line":"        self.assertEqual(\u0027store1\u0027, image[\u0027locations\u0027][0][\u0027metadata\u0027][\u0027store\u0027])"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(cinderclient, \u0027Client\u0027)"},{"line_number":209,"context_line":"    @mock.patch.object(cinder.Store, \u0027temporary_chown\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1c46a272_98f069bf","line":206,"updated":"2021-02-04 17:49:45.000000000","message":"These are good, but would it also be good to check some of the cinder mocks to make sure we called them like we expect? I think the fact that \"cinder://\" and self.vol_id show up in the location url means \"we did the thing we expect\" but I\u0027m not positive. Since you\u0027re mocking the cinderclient return, presumably at least asserting that it was called so we know our mock worked, would be good.","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"08fbd46e357992a599ef021de8b5b60896006e41","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # verify image is created with new location url"},{"line_number":204,"context_line":"        self.assertEqual(\u0027cinder://store1/%s\u0027 % self.vol_id,"},{"line_number":205,"context_line":"                         image[\u0027locations\u0027][0][\u0027url\u0027])"},{"line_number":206,"context_line":"        self.assertEqual(\u0027store1\u0027, image[\u0027locations\u0027][0][\u0027metadata\u0027][\u0027store\u0027])"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(cinderclient, \u0027Client\u0027)"},{"line_number":209,"context_line":"    @mock.patch.object(cinder.Store, \u0027temporary_chown\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"e7d3e818_8e1411ef","line":206,"in_reply_to":"1c46a272_98f069bf","updated":"2021-02-05 13:14:05.000000000","message":"Done","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(cinderclient, \u0027Client\u0027)"},{"line_number":209,"context_line":"    @mock.patch.object(cinder.Store, \u0027temporary_chown\u0027)"},{"line_number":210,"context_line":"    def test_migrate_image(self, mock_chown, mocked_cc):"},{"line_number":211,"context_line":"        # setup single cinder store"},{"line_number":212,"context_line":"        self.setup_single_store()"},{"line_number":213,"context_line":"        cinder.connector \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"6f792a65_39579501","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":26},"updated":"2021-02-04 17:49:45.000000000","message":"I think maybe this should use the word \"upgrade\" in it, because that\u0027s what you\u0027re testing right? That we \"migrate\" our understanding of the image after multiple stores are in place? Maybe something like \"test_migrate_image_after_upgrade()\" or something.\n\nAlso could just add some comments to explain.","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"08fbd46e357992a599ef021de8b5b60896006e41","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    @mock.patch.object(cinderclient, \u0027Client\u0027)"},{"line_number":209,"context_line":"    @mock.patch.object(cinder.Store, \u0027temporary_chown\u0027)"},{"line_number":210,"context_line":"    def test_migrate_image(self, mock_chown, mocked_cc):"},{"line_number":211,"context_line":"        # setup single cinder store"},{"line_number":212,"context_line":"        self.setup_single_store()"},{"line_number":213,"context_line":"        cinder.connector \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"6755d2b0_42f72d9c","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":26},"in_reply_to":"6f792a65_39579501","updated":"2021-02-05 13:14:05.000000000","message":"Done","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[{"line_number":211,"context_line":"        # setup single cinder store"},{"line_number":212,"context_line":"        self.setup_single_store()"},{"line_number":213,"context_line":"        cinder.connector \u003d mock.MagicMock()"},{"line_number":214,"context_line":"        cinder.open \u003d mock.MagicMock()"},{"line_number":215,"context_line":"        self.start_server()"},{"line_number":216,"context_line":"        mocked_cc.return_value \u003d self.cinder_store_mock"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"b8836567_6508aae1","line":214,"updated":"2021-02-04 17:49:45.000000000","message":"Same for these.","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"08fbd46e357992a599ef021de8b5b60896006e41","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        # setup single cinder store"},{"line_number":212,"context_line":"        self.setup_single_store()"},{"line_number":213,"context_line":"        cinder.connector \u003d mock.MagicMock()"},{"line_number":214,"context_line":"        cinder.open \u003d mock.MagicMock()"},{"line_number":215,"context_line":"        self.start_server()"},{"line_number":216,"context_line":"        mocked_cc.return_value \u003d self.cinder_store_mock"},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f449cce_7f29b408","line":214,"in_reply_to":"b8836567_6508aae1","updated":"2021-02-05 13:14:05.000000000","message":"Done","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[{"line_number":218,"context_line":"        # create image in single store"},{"line_number":219,"context_line":"        image_id \u003d self._create_and_import(stores\u003d[\u0027store1\u0027])"},{"line_number":220,"context_line":"        image \u003d self.api_get(\u0027/v2/images/%s\u0027 % image_id).json"},{"line_number":221,"context_line":"        # check the location url is in old format"},{"line_number":222,"context_line":"        self.assertEqual(\u0027cinder://%s\u0027 % self.vol_id,"},{"line_number":223,"context_line":"                         image[\u0027locations\u0027][0][\u0027url\u0027])"},{"line_number":224,"context_line":"        self.unset_single_store()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a45c530_cdf0365b","line":221,"updated":"2021-02-04 17:49:45.000000000","message":"++ good call","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6722eeafb62e20b21b00c005c2ad671b612d7e3f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"72025baf_e3bdefa5","line":238,"updated":"2021-02-04 17:49:45.000000000","message":"Same here for checking that we call into cinder. I think you can probably borrow whatever you use from above.","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"08fbd46e357992a599ef021de8b5b60896006e41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0a775108_b132e3b0","line":238,"in_reply_to":"72025baf_e3bdefa5","updated":"2021-02-05 13:14:05.000000000","message":"Done","commit_id":"1aacda6cb2cef4fd1beefa6017eaea95c19bd073"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"77f03597701a2bc39636695c03eb9abe32140577","unresolved":true,"context_lines":[{"line_number":208,"context_line":"        mocked_cc.assert_called_once()"},{"line_number":209,"context_line":"        mock_open.assert_called_once()"},{"line_number":210,"context_line":"        mock_chown.assert_called_once()"},{"line_number":211,"context_line":"        mock_connector.get_connector_properties.assert_called_once()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    @mock.patch.object(cinderclient, \u0027Client\u0027)"},{"line_number":214,"context_line":"    @mock.patch.object(cinder.Store, \u0027temporary_chown\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ac6b2532_6e4b6d7f","line":211,"updated":"2021-02-05 14:27:42.000000000","message":"Ack, better if we can confirm the arguments, but this is a mostly-functional test, so just making sure we hit the cinder client is probably good enough.","commit_id":"09b924c9bcdfd4d750f285f60cfd02f5504908fb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"77f03597701a2bc39636695c03eb9abe32140577","unresolved":true,"context_lines":[{"line_number":251,"context_line":"        mocked_cc.assert_called()"},{"line_number":252,"context_line":"        # first call when creating volume and second call when migrating"},{"line_number":253,"context_line":"        # the image (setting up multiple stores)"},{"line_number":254,"context_line":"        self.assertEqual(2, mocked_cc.call_count)"}],"source_content_type":"text/x-python","patch_set":6,"id":"4b492bd0_1d19431a","line":254,"updated":"2021-02-05 14:27:42.000000000","message":"Nice.","commit_id":"09b924c9bcdfd4d750f285f60cfd02f5504908fb"}],"lower-constraints.txt":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9d481485f4cd48471e07cc3ed39571646a63835b","unresolved":true,"context_lines":[{"line_number":119,"context_line":"stevedore\u003d\u003d1.20.0"},{"line_number":120,"context_line":"taskflow\u003d\u003d4.0.0"},{"line_number":121,"context_line":"Tempita\u003d\u003d0.5.2"},{"line_number":122,"context_line":"tenacity\u003d\u003d4.9.0"},{"line_number":123,"context_line":"testrepository\u003d\u003d0.0.18"},{"line_number":124,"context_line":"testresources\u003d\u003d2.0.0"},{"line_number":125,"context_line":"testscenarios\u003d\u003d0.4"}],"source_content_type":"text/plain","patch_set":3,"id":"f7da521a_fe8adc64","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":15},"updated":"2021-01-27 11:54:08.000000000","message":"This needs to be updated to account for the min requested by os-brick 3.1.0","commit_id":"3b2d886db1bd985eb5f547bf4c649d3a6b552da9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4e5fc7ef2c99bad9e20bd7bd334373d735184a3a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"stevedore\u003d\u003d1.20.0"},{"line_number":120,"context_line":"taskflow\u003d\u003d4.0.0"},{"line_number":121,"context_line":"Tempita\u003d\u003d0.5.2"},{"line_number":122,"context_line":"tenacity\u003d\u003d4.9.0"},{"line_number":123,"context_line":"testrepository\u003d\u003d0.0.18"},{"line_number":124,"context_line":"testresources\u003d\u003d2.0.0"},{"line_number":125,"context_line":"testscenarios\u003d\u003d0.4"}],"source_content_type":"text/plain","patch_set":3,"id":"01515a27_a0a3360b","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":15},"in_reply_to":"f7da521a_fe8adc64","updated":"2021-01-27 13:06:07.000000000","message":"Done","commit_id":"3b2d886db1bd985eb5f547bf4c649d3a6b552da9"}]}
