)]}'
{"tempest/api/volume/admin/test_volume_services.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3a51b9808838e0a8172c9da77e9b629078171473","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_30e65915","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":38},"updated":"2017-02-08 14:30:14.000000000","message":"NIT: the volume does not need to stick around until class teardown fixture, but that\u0027s not a big deal.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"534ee07837730ab9b8510077156ebb1c8a048e5e","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_8b92804a","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":38},"in_reply_to":"1a430d35_30e65915","updated":"2017-02-08 14:48:02.000000000","message":"Sorry, can you elaborate? I don\u0027t have much experience with Tempest, so I can\u0027t understand what can be fixed here.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2ea8a91b4738963f4be4e8e1b1361460e27c5bc5","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_0d2db994","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":38},"in_reply_to":"1a430d35_8b92804a","updated":"2017-03-24 14:23:13.000000000","message":"The create_volume helper adds the volume to a list of volumes that are cleaned up in a class level fixture i.e. after all tests in the class are executed.\nThe alternative is to create the server using the client and use addCleanup so that it gets cleaned at the end of the test instead.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"07af410cf378562ecdc50d1817dc9a7aebf70bf4","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_18e299d6","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":38},"in_reply_to":"ffe62b97_0d2db994","updated":"2017-03-24 14:46:58.000000000","message":"Ah, that\u0027s the thing. We could delete it earlier, but I don\u0027t see a problem in keeping it for a few more REST calls.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"4e19e5f1b76fa833533ac5c972c2166462cad2e0","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_338fbe24","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":38},"in_reply_to":"ffe62b97_18e299d6","updated":"2017-03-24 15:03:17.000000000","message":"Indeed. It\u0027s just that with our test nodes being a bit overloaded, and with tests running in parallel, I\u0027m a bit paranoid on this :). It\u0027s fine to keep it as is for now.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"0ff21d6dd6e53855c51ddd7ec11f0dc6794278df","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        services \u003d (self.admin_volume_services_client.list_services("},{"line_number":83,"context_line":"            host\u003dhostname, binary\u003d\u0027cinder-volume\u0027)[\u0027services\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertNotEqual(0, len(services))"},{"line_number":86,"context_line":"        self.assertEqual(hostname, _get_host(services[0][\u0027host\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\u0027cinder-volume\u0027, services[0][\u0027binary\u0027])"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_fc00caac","line":85,"range":{"start_line":85,"start_character":42,"end_line":85,"end_character":45},"updated":"2017-02-10 17:03:51.000000000","message":"Please add a meaningful error message otherwise if this fail it only prints something like \"0 is 0\"","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d8480167666f7b69ee34a2eb1f63bb056165a9e2","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        services \u003d (self.admin_volume_services_client.list_services("},{"line_number":83,"context_line":"            host\u003dhostname, binary\u003d\u0027cinder-volume\u0027)[\u0027services\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertNotEqual(0, len(services))"},{"line_number":86,"context_line":"        self.assertEqual(hostname, _get_host(services[0][\u0027host\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\u0027cinder-volume\u0027, services[0][\u0027binary\u0027])"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_c514c245","line":85,"range":{"start_line":85,"start_character":42,"end_line":85,"end_character":45},"in_reply_to":"fa31d9ce_fc00caac","updated":"2017-02-13 15:16:42.000000000","message":"Done","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3a51b9808838e0a8172c9da77e9b629078171473","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            host\u003dhostname, binary\u003d\u0027cinder-volume\u0027)[\u0027services\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertNotEqual(0, len(services))"},{"line_number":86,"context_line":"        self.assertEqual(hostname, _get_host(services[0][\u0027host\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\u0027cinder-volume\u0027, services[0][\u0027binary\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @decorators.idempotent_id(\u0027ffa6167c-4497-4944-a464-226bbdb53908\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_d057d5c7","line":86,"range":{"start_line":86,"start_character":53,"end_line":86,"end_character":56},"updated":"2017-02-08 14:30:14.000000000","message":"I guess this makes sense as it\u0027s the same as the other tests in this class.\nHowever I think there is a wrong assumption embedded here that the volume will be scheduled on the first host where cinder-volume runs.\n\nIt would be nice to fix this in all tests, but in a separate patch.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"2ea8a91b4738963f4be4e8e1b1361460e27c5bc5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            host\u003dhostname, binary\u003d\u0027cinder-volume\u0027)[\u0027services\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertNotEqual(0, len(services))"},{"line_number":86,"context_line":"        self.assertEqual(hostname, _get_host(services[0][\u0027host\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\u0027cinder-volume\u0027, services[0][\u0027binary\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @decorators.idempotent_id(\u0027ffa6167c-4497-4944-a464-226bbdb53908\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_527da0af","line":86,"range":{"start_line":86,"start_character":53,"end_line":86,"end_character":56},"in_reply_to":"1a430d35_0bd21028","updated":"2017-03-24 14:23:13.000000000","message":"I see, that\u0027s even better :)","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"534ee07837730ab9b8510077156ebb1c8a048e5e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            host\u003dhostname, binary\u003d\u0027cinder-volume\u0027)[\u0027services\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertNotEqual(0, len(services))"},{"line_number":86,"context_line":"        self.assertEqual(hostname, _get_host(services[0][\u0027host\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\u0027cinder-volume\u0027, services[0][\u0027binary\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @decorators.idempotent_id(\u0027ffa6167c-4497-4944-a464-226bbdb53908\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_0bd21028","line":86,"range":{"start_line":86,"start_character":53,"end_line":86,"end_character":56},"in_reply_to":"1a430d35_d057d5c7","updated":"2017-02-08 14:48:02.000000000","message":"Actuall there\u0027s no such assumption. This services list is fetched in line 82 - with host and binary filters. There\u0027s an assumption in Cinder (similar in Nova), that host+binary pairs are unique identifiers of services. Therefore - this list call should return just a single service - the one where the volume is located.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"56bd1f2989097bd94ddcd62859b56312a212a9d9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertEqual(sorted(s1), sorted(s2))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u002767ec6902-f91d-4dec-91fa-338523208bbc\u0027)"},{"line_number":77,"context_line":"    def test_get_service_by_volume_host_name(self):"},{"line_number":78,"context_line":"        volume_id \u003d self.create_volume()[\u0027id\u0027]"},{"line_number":79,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":80,"context_line":"        hostname \u003d _get_host(volume[\u0027os-vol-host-attr:host\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_f35b9684","line":77,"range":{"start_line":77,"start_character":5,"end_line":77,"end_character":51},"updated":"2017-03-24 15:07:44.000000000","message":"1.6s runtime, fine with me","commit_id":"ad3c2d8187bc4e85a5d24cf002691059321ca2a7"}],"tempest/api/volume/admin/v2/test_volume_pools.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e0b1f2678ae015732e0cef65642abfaefa3059cf","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            self.volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":31,"context_line":"        cinder_pools \u003d self.admin_volume_client.show_pools("},{"line_number":32,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":33,"context_line":"        self.assertIn(volume_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":34,"context_line":"                      [pool[\u0027name\u0027] for pool in cinder_pools])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u00270248a46c-e226-4933-be10-ad6fca8227e7\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_2eff1aab","side":"PARENT","line":33,"updated":"2017-02-07 11:27:58.000000000","message":"This was the only test that check os-vol-host-attr:host is filled in a non-multibackend conf. Could you add a assertIn(\u0027os-vol-host-attr:host\u0027, volume), in some other test please ? So that we don\"t lose coverage.","commit_id":"f25c5b88f3351fbfff900b2f70494c24301b4e39"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"125d2eb610cfea1c3171aa82ce262f6eea1eb2d2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            self.volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":31,"context_line":"        cinder_pools \u003d self.admin_volume_client.show_pools("},{"line_number":32,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":33,"context_line":"        self.assertIn(volume_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":34,"context_line":"                      [pool[\u0027name\u0027] for pool in cinder_pools])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u00270248a46c-e226-4933-be10-ad6fca8227e7\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_b656fccb","side":"PARENT","line":33,"in_reply_to":"1a430d35_2eff1aab","updated":"2017-02-07 13:40:56.000000000","message":"Makes sense, I\u0027ve added a new tests that looks for that value in list of Cinder services.","commit_id":"f25c5b88f3351fbfff900b2f70494c24301b4e39"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"0ff21d6dd6e53855c51ddd7ec11f0dc6794278df","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class VolumePoolsAdminV2TestsJSON(base.BaseVolumeAdminTest):"},{"line_number":24,"context_line":"    def _assert_pools(self, with_detail\u003dFalse):"},{"line_number":25,"context_line":"        cinder_pools \u003d self.admin_volume_client.show_pools("},{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_019d3565","line":24,"range":{"start_line":24,"start_character":28,"end_line":24,"end_character":39},"updated":"2017-02-10 17:03:51.000000000","message":"nit: IMHO we should rename variable to just \u0027detail\u0027","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d8480167666f7b69ee34a2eb1f63bb056165a9e2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class VolumePoolsAdminV2TestsJSON(base.BaseVolumeAdminTest):"},{"line_number":24,"context_line":"    def _assert_pools(self, with_detail\u003dFalse):"},{"line_number":25,"context_line":"        cinder_pools \u003d self.admin_volume_client.show_pools("},{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_2274b4fb","line":24,"range":{"start_line":24,"start_character":28,"end_line":24,"end_character":39},"in_reply_to":"fa31d9ce_019d3565","updated":"2017-02-13 15:16:42.000000000","message":"I\u0027ll leave it as is - that\u0027s how it was before, so it shouldn\u0027t be related to this patch.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"06569d41f71d3dbdfdb99e54f351fc229830c347","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"},{"line_number":28,"context_line":"        if with_detail:"},{"line_number":29,"context_line":"            self.assertIn(CONF.volume.vendor_name,"},{"line_number":30,"context_line":"                          [pool[\u0027capabilities\u0027][\u0027vendor_name\u0027]"},{"line_number":31,"context_line":"                           for pool in cinder_pools])"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_295a3084","line":29,"updated":"2017-02-10 11:40:54.000000000","message":"I am really sorry but this is going to be an issue in case of multibackend when different backends have a different vendor name, am I right ? \n\nIt\u0027s not uncommon for 3rd party CI to use devstack and have multibackend with LVM + their storage driver.\n\nI am not going to -1, but please don\"t merge until my question is answered.","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"677c485fb512eee1909c130e6901e0e52a0d2189","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"},{"line_number":28,"context_line":"        if with_detail:"},{"line_number":29,"context_line":"            self.assertIn(CONF.volume.vendor_name,"},{"line_number":30,"context_line":"                          [pool[\u0027capabilities\u0027][\u0027vendor_name\u0027]"},{"line_number":31,"context_line":"                           for pool in cinder_pools])"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_a4dba51a","line":29,"in_reply_to":"fa31d9ce_295a3084","updated":"2017-02-10 12:01:54.000000000","message":"Hm, it shouldn\u0027t matter really. Basically:\n\n1. If CONF.volume.vendor_name is set to something that doesn\u0027t exist in the cloud, then tests in test_volume_types will fail miserably. So we can expect that this option is being correctly set to a value from a backend that exists in the cloud.\n2. This check is looking through *all* of the pools. So we need just one backend to have configured value of vendor_name. As I\u0027ve explained in point 1 - we can expect that.\n\nIs there\u0027s a flaw in my logic?","commit_id":"62ddfb4dab0dd094319d0c1d35b3e7e61941ef75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"56bd1f2989097bd94ddcd62859b56312a212a9d9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"},{"line_number":28,"context_line":"        if with_detail:"},{"line_number":29,"context_line":"            self.assertIn(CONF.volume.vendor_name,"},{"line_number":30,"context_line":"                          [pool[\u0027capabilities\u0027][\u0027vendor_name\u0027]"},{"line_number":31,"context_line":"                           for pool in cinder_pools])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @decorators.idempotent_id(\u00270248a46c-e226-4933-be10-ad6fca8227e7\u0027)"},{"line_number":34,"context_line":"    def test_get_pools_without_details(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_93732ae8","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":53},"updated":"2017-03-24 15:07:44.000000000","message":"In case of multiple backends, vendor_name will be set to one of them, which is the one used for non-multibackend tests. So this check looks fine to me.","commit_id":"ad3c2d8187bc4e85a5d24cf002691059321ca2a7"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"79750a4d794ba748759b7b4b673502ece1b6975f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            detail\u003dwith_detail)[\u0027pools\u0027]"},{"line_number":27,"context_line":"        self.assertIn(\u0027name\u0027, cinder_pools[0])"},{"line_number":28,"context_line":"        if with_detail:"},{"line_number":29,"context_line":"            self.assertIn(CONF.volume.vendor_name,"},{"line_number":30,"context_line":"                          [pool[\u0027capabilities\u0027][\u0027vendor_name\u0027]"},{"line_number":31,"context_line":"                           for pool in cinder_pools])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @decorators.idempotent_id(\u00270248a46c-e226-4933-be10-ad6fca8227e7\u0027)"},{"line_number":34,"context_line":"    def test_get_pools_without_details(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_e535d7db","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":53},"in_reply_to":"ffe62b97_93732ae8","updated":"2017-03-27 07:29:17.000000000","message":"You\u0027re right, more detailed explanation in inline comments of patchset #3.","commit_id":"ad3c2d8187bc4e85a5d24cf002691059321ca2a7"}]}
