)]}'
{"tempest/api/volume/admin/v2/test_manageable_resources_list.py":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"8396cdbb5094cff68ee2facd8c69b485ba0cd0af","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.volume import base"},{"line_number":19,"context_line":"from tempest.common import waiters"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_4d35a644","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":10},"updated":"2017-02-10 15:52:44.000000000","message":"I think DDT library usage within \nTempest is still under discussion -  See Ieeac25f73fd4c962883732d64437285ba233175a","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.volume import base"},{"line_number":19,"context_line":"from tempest.common import waiters"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_fcaf7f27","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":10},"in_reply_to":"fa31d9ce_4d35a644","updated":"2017-02-23 07:32:16.000000000","message":"You are right! I have removed it","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48a61f8f113e8f45f89e57370b2629da54d041bc","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        cls.services \u003d cls.admin_volume_services_client.list_services()["},{"line_number":68,"context_line":"            \u0027services\u0027]"},{"line_number":69,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":70,"context_line":"        for _ in range(1):"},{"line_number":71,"context_line":"            volume \u003d cls.create_volume()"},{"line_number":72,"context_line":"            waiters.wait_for_volume_status(cls.admin_volume_client,"},{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_2dcfa3b1","line":70,"range":{"start_line":70,"start_character":17,"end_line":70,"end_character":25},"updated":"2017-02-10 08:52:42.000000000","message":"range(1) seems not worth a loop...","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        cls.services \u003d cls.admin_volume_services_client.list_services()["},{"line_number":68,"context_line":"            \u0027services\u0027]"},{"line_number":69,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":70,"context_line":"        for _ in range(1):"},{"line_number":71,"context_line":"            volume \u003d cls.create_volume()"},{"line_number":72,"context_line":"            waiters.wait_for_volume_status(cls.admin_volume_client,"},{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_fc6cdf36","line":70,"range":{"start_line":70,"start_character":17,"end_line":70,"end_character":25},"in_reply_to":"fa31d9ce_2dcfa3b1","updated":"2017-02-23 07:32:16.000000000","message":"Have removed this one..","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48a61f8f113e8f45f89e57370b2629da54d041bc","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":70,"context_line":"        for _ in range(1):"},{"line_number":71,"context_line":"            volume \u003d cls.create_volume()"},{"line_number":72,"context_line":"            waiters.wait_for_volume_status(cls.admin_volume_client,"},{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            snapshot \u003d cls.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_4d969795","line":73,"range":{"start_line":72,"start_character":0,"end_line":73,"end_character":69},"updated":"2017-02-10 08:52:42.000000000","message":"no need this, cls.create_volume will wait for available","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":70,"context_line":"        for _ in range(1):"},{"line_number":71,"context_line":"            volume \u003d cls.create_volume()"},{"line_number":72,"context_line":"            waiters.wait_for_volume_status(cls.admin_volume_client,"},{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            snapshot \u003d cls.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_3c73d716","line":73,"range":{"start_line":72,"start_character":0,"end_line":73,"end_character":69},"in_reply_to":"fa31d9ce_4d969795","updated":"2017-02-23 07:32:16.000000000","message":"Done","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"48a61f8f113e8f45f89e57370b2629da54d041bc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            snapshot \u003d cls.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"},{"line_number":77,"context_line":"                                             snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270132f42d-0147-4b45-8501-cc504bbf7810\u0027)"},{"line_number":80,"context_line":"    @ddt.data((\u0027volume\u0027, \u0027detail_\u0027), (\u0027volume\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_8d908f97","line":77,"range":{"start_line":76,"start_character":0,"end_line":77,"end_character":73},"updated":"2017-02-10 08:52:42.000000000","message":"ditto","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                                           volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            snapshot \u003d cls.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"},{"line_number":77,"context_line":"                                             snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270132f42d-0147-4b45-8501-cc504bbf7810\u0027)"},{"line_number":80,"context_line":"    @ddt.data((\u0027volume\u0027, \u0027detail_\u0027), (\u0027volume\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_bc5d077b","line":77,"range":{"start_line":76,"start_character":0,"end_line":77,"end_character":73},"in_reply_to":"fa31d9ce_8d908f97","updated":"2017-02-23 07:32:16.000000000","message":"done","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"8396cdbb5094cff68ee2facd8c69b485ba0cd0af","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"},{"line_number":77,"context_line":"                                             snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270132f42d-0147-4b45-8501-cc504bbf7810\u0027)"},{"line_number":80,"context_line":"    @ddt.data((\u0027volume\u0027, \u0027detail_\u0027), (\u0027volume\u0027, \u0027\u0027),"},{"line_number":81,"context_line":"              (\u0027snapshot\u0027, \u0027detail_\u0027), (\u0027snapshot\u0027, \u0027\u0027))"},{"line_number":82,"context_line":"    @ddt.unpack"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_fb2ff79e","line":79,"range":{"start_line":79,"start_character":31,"end_line":79,"end_character":68},"updated":"2017-02-10 15:52:44.000000000","message":"need a new idempotent, this one is used on tempest/api/volume/admin/v2/test_snapshot_manage.\nSee https://github.com/openstack/tempest/blob/master/HACKING.rst#test-identification-with-idempotent-id","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            waiters.wait_for_snapshot_status(cls.admin_snapshots_client,"},{"line_number":77,"context_line":"                                             snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270132f42d-0147-4b45-8501-cc504bbf7810\u0027)"},{"line_number":80,"context_line":"    @ddt.data((\u0027volume\u0027, \u0027detail_\u0027), (\u0027volume\u0027, \u0027\u0027),"},{"line_number":81,"context_line":"              (\u0027snapshot\u0027, \u0027detail_\u0027), (\u0027snapshot\u0027, \u0027\u0027))"},{"line_number":82,"context_line":"    @ddt.unpack"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_fc53ff68","line":79,"range":{"start_line":79,"start_character":31,"end_line":79,"end_character":68},"in_reply_to":"fa31d9ce_fb2ff79e","updated":"2017-02-23 07:32:16.000000000","message":"Thanks! that helps","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"14af1ea65f1e5032aef5bc0ed8d99df073813cdb","unresolved":false,"context_lines":[{"line_number":81,"context_line":"              (\u0027snapshot\u0027, \u0027detail_\u0027), (\u0027snapshot\u0027, \u0027\u0027))"},{"line_number":82,"context_line":"    @ddt.unpack"},{"line_number":83,"context_line":"    def test_unmanage_manage_detailed(self, resource_type, det):"},{"line_number":84,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        resources \u003d self.admin_manageable_resource_client.os_resource_manage("},{"line_number":87,"context_line":"            params\u003dparams, resource_type\u003dresource_type)"},{"line_number":88,"context_line":"        rkey \u003d \u0027manageable-%ss\u0027 % resource_type"},{"line_number":89,"context_line":"        self.columns \u003d \u0027%ss_%slist\u0027 % (resource_type, det)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # checking if the keys exists in the results of manageable volumes list"},{"line_number":92,"context_line":"        for key in getattr(self, self.columns):"},{"line_number":93,"context_line":"            self.assertIn(key, resources[rkey][0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # limit the no of rows returned by volume"},{"line_number":96,"context_line":"        params \u003d {\u0027host\u0027: self.host_name, \u0027limit\u0027: 1}"},{"line_number":97,"context_line":"        resources \u003d self.admin_manageable_resource_client.os_resource_manage("},{"line_number":98,"context_line":"            params\u003dparams, resource_type\u003dresource_type)"},{"line_number":99,"context_line":"        self.assertEqual(1, len(resources[rkey]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_2ee8767c","line":99,"range":{"start_line":84,"start_character":0,"end_line":99,"end_character":49},"updated":"2017-02-10 11:17:16.000000000","message":"This isn\u0027t really what is needed. You need to create the volume, then unmanage it, and then list manageable. After that you need to manage it again - to make sure the resource gets deleted from the cloud - otherwise handler in self.create_volume() will not be able to remove it.","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":81,"context_line":"              (\u0027snapshot\u0027, \u0027detail_\u0027), (\u0027snapshot\u0027, \u0027\u0027))"},{"line_number":82,"context_line":"    @ddt.unpack"},{"line_number":83,"context_line":"    def test_unmanage_manage_detailed(self, resource_type, det):"},{"line_number":84,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        resources \u003d self.admin_manageable_resource_client.os_resource_manage("},{"line_number":87,"context_line":"            params\u003dparams, resource_type\u003dresource_type)"},{"line_number":88,"context_line":"        rkey \u003d \u0027manageable-%ss\u0027 % resource_type"},{"line_number":89,"context_line":"        self.columns \u003d \u0027%ss_%slist\u0027 % (resource_type, det)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # checking if the keys exists in the results of manageable volumes list"},{"line_number":92,"context_line":"        for key in getattr(self, self.columns):"},{"line_number":93,"context_line":"            self.assertIn(key, resources[rkey][0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # limit the no of rows returned by volume"},{"line_number":96,"context_line":"        params \u003d {\u0027host\u0027: self.host_name, \u0027limit\u0027: 1}"},{"line_number":97,"context_line":"        resources \u003d self.admin_manageable_resource_client.os_resource_manage("},{"line_number":98,"context_line":"            params\u003dparams, resource_type\u003dresource_type)"},{"line_number":99,"context_line":"        self.assertEqual(1, len(resources[rkey]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_3cf83749","line":99,"range":{"start_line":84,"start_character":0,"end_line":99,"end_character":49},"in_reply_to":"fa31d9ce_2ee8767c","updated":"2017-02-23 07:32:16.000000000","message":"Yes, But I have seen this comparison of result columns in other api tests like\n\nhttps://github.com/openstack/tempest/blob/7c43b980c038ca2815db8a23728ff180d8c899e0/tempest/api/volume/admin/v2/test_backends_capabilities.py#L52\n\nHowever, I have refactored these in different tests and also addressed the main topic which you pointed out in the above comment.","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f16ec40c4db0c42a9fd2aa8b7c87742c7eda0587","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        super(ManageableResourceListAdminV2Test, cls).resource_setup()"},{"line_number":56,"context_line":"        cls.services \u003d cls.admin_volume_services_client.list_services()["},{"line_number":57,"context_line":"            \u0027services\u0027]"},{"line_number":58,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u00277a209dda-e23f-4759-b01f-53371205c6a7\u0027)"},{"line_number":61,"context_line":"    def test_manage_volume_list_detailed(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_44226453","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":58},"updated":"2017-02-23 15:46:43.000000000","message":"You have an assumption that there will be only one host present and volume will be placed there. This is false, Tempest should work with any cloud. Just check where the created volume was placed by looking at it\u0027s os-volume-something:host (don\u0027t remember exact name) attribute.","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f16ec40c4db0c42a9fd2aa8b7c87742c7eda0587","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            \u0027services\u0027]"},{"line_number":58,"context_line":"        cls.host_name \u003d _get_host(cls.services[0][\u0027host\u0027])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u00277a209dda-e23f-4759-b01f-53371205c6a7\u0027)"},{"line_number":61,"context_line":"    def test_manage_volume_list_detailed(self):"},{"line_number":62,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":63,"context_line":"        self.create_volume()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # limit the no of rows returned by volumes manageable list"},{"line_number":66,"context_line":"        params \u003d {\u0027host\u0027: self.host_name, \u0027limit\u0027: 1}"},{"line_number":67,"context_line":"        resources \u003d (self.admin_manageable_resource_client."},{"line_number":68,"context_line":"                     os_managed_resource_list(params\u003dparams,"},{"line_number":69,"context_line":"                                              resource_type\u003d\u0027volume\u0027))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # checking if the keys exists in the results of manageable volumes list"},{"line_number":72,"context_line":"        for key in self.volumes_detail_list:"},{"line_number":73,"context_line":"            self.assertIn(key, resources[\u0027manageable-volumes\u0027][0])"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-volumes\u0027]))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @decorators.idempotent_id(\u0027bc20f847-eea1-4e06-9238-ce4cc662901e\u0027)"},{"line_number":78,"context_line":"    def test_manage_snapshot_list_detailed(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_44e984e5","line":75,"range":{"start_line":60,"start_character":0,"end_line":75,"end_character":65},"updated":"2017-02-23 15:46:43.000000000","message":"What\u0027s the purpose of this test? As you don\u0027t unmanage the volume, it will not be listed on manageable list.","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f16ec40c4db0c42a9fd2aa8b7c87742c7eda0587","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        volume \u003d self.create_volume()"},{"line_number":82,"context_line":"        self.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # limit the no of rows returned by snapshots manageable list"},{"line_number":85,"context_line":"        params \u003d {\u0027host\u0027: self.host_name, \u0027limit\u0027: 1}"},{"line_number":86,"context_line":"        resources \u003d (self.admin_manageable_resource_client."},{"line_number":87,"context_line":"                     os_managed_resource_list(params\u003dparams,"},{"line_number":88,"context_line":"                                              resource_type\u003d\u0027snapshot\u0027))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # checking if the keys exists in the results of manageable snapshot"},{"line_number":91,"context_line":"        # list"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_a4c32056","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":72},"updated":"2017-02-23 15:46:43.000000000","message":"You need to unmanage the snapshot first, otherwise it won\u0027t show up in the list.","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f16ec40c4db0c42a9fd2aa8b7c87742c7eda0587","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            self.admin_volume_client,"},{"line_number":119,"context_line":"            managed_vol[\u0027volume\u0027][\u0027id\u0027],"},{"line_number":120,"context_line":"            \u0027available\u0027)"},{"line_number":121,"context_line":"        self.addCleanup(self.admin_volume_client.delete_volume,"},{"line_number":122,"context_line":"                        managed_vol[\u0027volume\u0027][\u0027id\u0027])"},{"line_number":123,"context_line":"        resources \u003d (self.admin_manageable_resource_client."},{"line_number":124,"context_line":"                     os_managed_resource_list(params\u003dparams,"},{"line_number":125,"context_line":"                                              resource_type\u003d\u0027volume\u0027))"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":128,"context_line":"                           (\"volume-\" + managed_vol[\u0027volume\u0027][\u0027id\u0027]),"},{"line_number":129,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        self.assertEqual(vol[0][\u0027safe_to_manage\u0027], False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_04330c63","line":131,"range":{"start_line":121,"start_character":0,"end_line":131,"end_character":57},"updated":"2017-02-23 15:46:43.000000000","message":"If you\u0027ve deleted the volume, it will not show up in manageable list.","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"class ManageableResourceListAdminV2Test(base.BaseVolumeAdminTest):"},{"line_number":28,"context_line":"    \"\"\"Get Manageable volumes \u0026 snapshots List"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"     This class tests snapshots \u0026 volumes list managed by a volume host"},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":"    volumes_detail_list \u003d (\u0027reason_not_safe\u0027,"},{"line_number":33,"context_line":"                           \u0027cinder_id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_a96af3af","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":5},"updated":"2017-04-04 02:23:36.000000000","message":"nit: extra space.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                             \u0027source_reference\u0027"},{"line_number":47,"context_line":"                             )"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def resource_setup(cls):"},{"line_number":51,"context_line":"        super(ManageableResourceListAdminV2Test, cls).resource_setup()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @classmethod"},{"line_number":54,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_e970fba7","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":70},"updated":"2017-04-04 02:23:36.000000000","message":"This can be removed, only calls super class.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        for key in self.snapshots_detail_list:"},{"line_number":99,"context_line":"            self.assertIn(key, resources[\u0027manageable-snapshots\u0027][0])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-snapshots\u0027]))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @decorators.idempotent_id(\u0027bc8e3f57-569f-4b8f-9e35-b9cf52ecd366\u0027)"},{"line_number":104,"context_line":"    def test_unmanage_manage_volume(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_e97ebb69","line":101,"range":{"start_line":101,"start_character":8,"end_line":101,"end_character":67},"updated":"2017-04-04 02:23:36.000000000","message":"I think this should be above the for loop above, because it already indexes into resources[\u0027manageable-snapshots\u0027][0], so this is too late.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":117,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":120,"context_line":"                           (\"volume-\" + volume[\u0027id\u0027]),"},{"line_number":121,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":122,"context_line":"        self.assertEqual(vol[0][\u0027safe_to_manage\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_69b98b2c","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":11},"updated":"2017-04-04 02:23:36.000000000","message":"Why not call this manageable_volumes or volumes or even vols, since it\u0027s a list of volumes?","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":117,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":120,"context_line":"                           (\"volume-\" + volume[\u0027id\u0027]),"},{"line_number":121,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":122,"context_line":"        self.assertEqual(vol[0][\u0027safe_to_manage\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_3d8dead2","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":11},"in_reply_to":"dfeb2761_69b98b2c","updated":"2017-04-04 19:58:17.000000000","message":"Actually I am extracting only one volume from this. I am using the volume[\u0027id\u0027] here.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":143,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":146,"context_line":"                           (\"volume-\" + managed_vol[\u0027volume\u0027][\u0027id\u0027]),"},{"line_number":147,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_49b48735","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":11},"updated":"2017-04-04 02:23:36.000000000","message":"Ditto.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":143,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":146,"context_line":"                           (\"volume-\" + managed_vol[\u0027volume\u0027][\u0027id\u0027]),"},{"line_number":147,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_bdba1a6b","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":11},"in_reply_to":"dfeb2761_49b48735","updated":"2017-04-04 19:58:17.000000000","message":"Actually I am extracting only one volume from this. I am using the volume[\u0027id\u0027] here.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dfeb2761_2db801e3","updated":"2017-04-05 05:59:35.000000000","message":"maybe you can put these testcases in test_volume_manage.py and test_snapshot_manage.py","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class ManageableResourceListAdminV2Test(base.BaseVolumeAdminTest):"},{"line_number":28,"context_line":"    \"\"\"Get Manageable volumes \u0026 snapshots List"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    This class tests snapshots \u0026 volumes list managed by a volume host"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_120d5fe7","line":27,"range":{"start_line":27,"start_character":6,"end_line":27,"end_character":39},"updated":"2017-04-05 05:59:35.000000000","message":"please refer to https://review.openstack.org/#/c/450411/ for the naming","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                           \u0027safe_to_manage\u0027"},{"line_number":38,"context_line":"                           )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    snapshots_detail_list \u003d (\u0027reason_not_safe\u0027,"},{"line_number":41,"context_line":"                             \u0027cinder_id\u0027,"},{"line_number":42,"context_line":"                             \u0027extra_info\u0027,"},{"line_number":43,"context_line":"                             \u0027reference\u0027,"},{"line_number":44,"context_line":"                             \u0027size\u0027,"},{"line_number":45,"context_line":"                             \u0027safe_to_manage\u0027,"},{"line_number":46,"context_line":"                             \u0027source_reference\u0027"},{"line_number":47,"context_line":"                             )"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_0db09d42","line":47,"range":{"start_line":40,"start_character":0,"end_line":47,"end_character":30},"updated":"2017-04-05 05:59:35.000000000","message":"how about:\nsnapshots_detail_list \u003d volumes_detail_list + (\u0027source_reference\u0027, ) ?","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        for key in self.snapshots_detail_list:"},{"line_number":90,"context_line":"            self.assertIn(key, resources[\u0027manageable-snapshots\u0027][0])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-snapshots\u0027]))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @decorators.idempotent_id(\u0027bc8e3f57-569f-4b8f-9e35-b9cf52ecd366\u0027)"},{"line_number":95,"context_line":"    @testtools.skipUnless(CONF.volume_feature_enabled.manage_volume,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_0d7f7d15","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":67},"updated":"2017-04-05 05:59:35.000000000","message":"move upper to before #89","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    @decorators.idempotent_id(\u0027bc8e3f57-569f-4b8f-9e35-b9cf52ecd366\u0027)"},{"line_number":95,"context_line":"    @testtools.skipUnless(CONF.volume_feature_enabled.manage_volume,"},{"line_number":96,"context_line":"                          \u0027Cinder Managed Volume feature disabled\u0027)"},{"line_number":97,"context_line":"    def test_unmanage_manage_volume(self):"},{"line_number":98,"context_line":"        # create a volume, unmanage it and then list manageable volumes"},{"line_number":99,"context_line":"        # Manage it back again ane then list manageable volumes"},{"line_number":100,"context_line":"        volume \u003d self.create_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_8d85cd5c","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":35},"updated":"2017-04-05 05:59:35.000000000","message":"https://github.com/openstack/tempest/blob/948d9b9845b18928c037625929e2846172083751/tempest/api/volume/admin/test_volume_manage.py#L39\n\nThis should not be a testcase, you can put the steps of manage/unmanage in your testcase","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    @decorators.idempotent_id(\u002709670992-0155-499c-871b-08671d6e8915\u0027)"},{"line_number":142,"context_line":"    @testtools.skipUnless(CONF.volume_feature_enabled.manage_snapshot,"},{"line_number":143,"context_line":"                          \u0027Cinder Managed Snapshot feature disabled\u0027)"},{"line_number":144,"context_line":"    def test_unmanage_manage_snapshot(self):"},{"line_number":145,"context_line":"        # Create a volume, snapshot"},{"line_number":146,"context_line":"        volume \u003d self.create_volume()"},{"line_number":147,"context_line":"        snapshot \u003d self.create_snapshot(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_8dea6d0c","line":144,"range":{"start_line":144,"start_character":8,"end_line":144,"end_character":37},"updated":"2017-04-05 05:59:35.000000000","message":"https://github.com/openstack/tempest/blob/076d412210b567069509f23dcfa0f2d0368e2df5/tempest/api/volume/admin/test_snapshot_manage.py#L37","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"}],"tempest/api/volume/admin/v3/test_manageable_resources_list.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"da36d5c6_1057d758","updated":"2017-02-23 08:31:58.000000000","message":"seems no need a new file, volume manageable list test can be grouped with volume manage/unmanage test, \nand snapshot manageable list test can be grouped with snapshot manage/unmanage test","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    min_microversion \u003d \u00273.8\u0027"},{"line_number":37,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    volumes_detail_list \u003d (\u0027reason_not_safe\u0027,"},{"line_number":40,"context_line":"                           \u0027cinder_id\u0027,"},{"line_number":41,"context_line":"                           \u0027extra_info\u0027,"},{"line_number":42,"context_line":"                           \u0027reference\u0027,"},{"line_number":43,"context_line":"                           \u0027size\u0027,"},{"line_number":44,"context_line":"                           \u0027safe_to_manage\u0027"},{"line_number":45,"context_line":"                           )"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    snapshots_detail_list \u003d (\u0027reason_not_safe\u0027,"},{"line_number":48,"context_line":"                             \u0027cinder_id\u0027,"},{"line_number":49,"context_line":"                             \u0027extra_info\u0027,"},{"line_number":50,"context_line":"                             \u0027reference\u0027,"},{"line_number":51,"context_line":"                             \u0027size\u0027,"},{"line_number":52,"context_line":"                             \u0027safe_to_manage\u0027,"},{"line_number":53,"context_line":"                             \u0027source_reference\u0027"},{"line_number":54,"context_line":"                             )"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_9014a7a0","line":54,"range":{"start_line":39,"start_character":0,"end_line":54,"end_character":30},"updated":"2017-02-23 08:31:58.000000000","message":"they are used only once, so seems no need to be class variables","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @decorators.idempotent_id(\u0027923b5800-f74f-46e0-981d-594b834f2fd7\u0027)"},{"line_number":64,"context_line":"    def test_manage_volume_list_detailed(self):"},{"line_number":65,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":66,"context_line":"        self.create_volume()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # limit the no of rows returned by volumes manageable list"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_f038833f","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":41},"updated":"2017-02-23 08:31:58.000000000","message":"this seems no use","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-volumes\u0027]))"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @decorators.idempotent_id(\u0027635f28d2-87fc-4cf8-abcd-e093350be03c\u0027)"},{"line_number":81,"context_line":"    def test_manage_snapshot_list_detailed(self):"},{"line_number":82,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        volume \u003d self.create_volume()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_501f8fb6","line":81,"range":{"start_line":81,"start_character":4,"end_line":81,"end_character":42},"updated":"2017-02-23 08:31:58.000000000","message":"should skip if volume snapshot is not supported","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @decorators.idempotent_id(\u0027635f28d2-87fc-4cf8-abcd-e093350be03c\u0027)"},{"line_number":81,"context_line":"    def test_manage_snapshot_list_detailed(self):"},{"line_number":82,"context_line":"        params \u003d {\u0027host\u0027: self.host_name}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        volume \u003d self.create_volume()"},{"line_number":85,"context_line":"        self.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_f00fa385","line":82,"range":{"start_line":82,"start_character":8,"end_line":82,"end_character":41},"updated":"2017-02-23 08:31:58.000000000","message":"ditto","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"class ManageableResourceListAdminV3Test(base.VolumesV3AdminTest):"},{"line_number":28,"context_line":"    \"\"\"Get Manageable volumes \u0026 snapshots List"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"     This class tests snapshots \u0026 volumes list managed by a volume host"},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":"    min_microversion \u003d \u00273.8\u0027"},{"line_number":33,"context_line":"    max_microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_6992aba0","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":5},"updated":"2017-04-04 02:23:36.000000000","message":"nit: extra space.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                             \u0027source_reference\u0027"},{"line_number":50,"context_line":"                             )"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @classmethod"},{"line_number":53,"context_line":"    def resource_setup(cls):"},{"line_number":54,"context_line":"        super(ManageableResourceListAdminV3Test, cls).resource_setup()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_498da779","line":54,"range":{"start_line":52,"start_character":0,"end_line":54,"end_character":70},"updated":"2017-04-04 02:23:36.000000000","message":"Not needed, just calls super class method.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @decorators.idempotent_id(\u0027f064fc7a-d2a0-48b4-b0b8-9d7a9d24f07f\u0027)"},{"line_number":68,"context_line":"    def test_manage_volume_list_detailed(self):"},{"line_number":69,"context_line":"        volume \u003d self.create_volume()"},{"line_number":70,"context_line":"        org_vol_info \u003d (self.admin_volume_client."},{"line_number":71,"context_line":"                        show_volume(volume[\u0027id\u0027])[\u0027volume\u0027])"},{"line_number":72,"context_line":"        host \u003d org_vol_info[\u0027os-vol-host-attr:host\u0027]"},{"line_number":73,"context_line":"        # limit the no of rows returned by volumes manageable list"},{"line_number":74,"context_line":"        params \u003d {\u0027host\u0027: host, \u0027limit\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_c9f657fa","line":71,"range":{"start_line":69,"start_character":8,"end_line":71,"end_character":60},"updated":"2017-04-04 02:23:36.000000000","message":"You can put this in resource_setup since test_manage_snapshot_list_detailed also creates a volume and then shows it (but doesn\u0027t delete it or anything). So you\u0027d save on 1 create_volume call.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        for key in self.volumes_detail_list:"},{"line_number":80,"context_line":"            self.assertIn(key, resources[\u0027manageable-volumes\u0027][0])"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-volumes\u0027]))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @decorators.idempotent_id(\u00276b687ff6-f00b-40db-acaf-efea28d77933\u0027)"},{"line_number":85,"context_line":"    @testtools.skipUnless(CONF.volume_feature_enabled.snapshot,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_29ea630e","line":82,"range":{"start_line":82,"start_character":8,"end_line":82,"end_character":65},"updated":"2017-04-04 02:23:36.000000000","message":"Should be above for loop above.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    @testtools.skipUnless(CONF.volume_feature_enabled.snapshot,"},{"line_number":86,"context_line":"                          \u0027Cinder snapshot feature disabled\u0027)"},{"line_number":87,"context_line":"    def test_manage_snapshot_list_detailed(self):"},{"line_number":88,"context_line":"        volume \u003d self.create_volume()"},{"line_number":89,"context_line":"        org_vol_info \u003d (self.admin_volume_client."},{"line_number":90,"context_line":"                        show_volume(volume[\u0027id\u0027])[\u0027volume\u0027])"},{"line_number":91,"context_line":"        host \u003d org_vol_info[\u0027os-vol-host-attr:host\u0027]"},{"line_number":92,"context_line":"        self.create_snapshot(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_a9dd5371","line":90,"range":{"start_line":88,"start_character":8,"end_line":90,"end_character":60},"updated":"2017-04-04 02:23:36.000000000","message":"See above.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        for key in self.snapshots_detail_list:"},{"line_number":102,"context_line":"            self.assertIn(key, resources[\u0027manageable-snapshots\u0027][0])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        self.assertEqual(1, len(resources[\u0027manageable-snapshots\u0027]))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @decorators.idempotent_id(\u00275edeba13-69c9-471d-b95e-17d21c271a9d\u0027)"},{"line_number":107,"context_line":"    def test_unmanage_manage_volume(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_09ed5f24","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":67},"updated":"2017-04-04 02:23:36.000000000","message":"See above.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":120,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":123,"context_line":"                           (\"volume-\" + volume[\u0027id\u0027]),"},{"line_number":124,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":125,"context_line":"        self.assertEqual(vol[0][\u0027safe_to_manage\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_49e24731","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":11},"updated":"2017-04-04 02:23:36.000000000","message":"Should be plural since it\u0027s a list.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":120,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":123,"context_line":"                           (\"volume-\" + volume[\u0027id\u0027]),"},{"line_number":124,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":125,"context_line":"        self.assertEqual(vol[0][\u0027safe_to_manage\u0027], True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_109d6dbb","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":11},"in_reply_to":"dfeb2761_49e24731","updated":"2017-04-04 19:58:17.000000000","message":"it only returns only one volume as it filtered by volume[\u0027id\u0027]","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        resources \u003d (self.admin_manageable_volume_list_client."},{"line_number":146,"context_line":"                     managed_volume_list(params\u003dparams))"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        vol \u003d (list(filter(lambda a: a[\u0027reference\u0027][\u0027source-name\u0027] \u003d\u003d"},{"line_number":149,"context_line":"                           (\"volume-\" + managed_vol[\u0027volume\u0027][\u0027id\u0027]),"},{"line_number":150,"context_line":"                           resources[\u0027manageable-volumes\u0027])))"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_89d84f7f","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":11},"updated":"2017-04-04 02:23:36.000000000","message":"Should be plural since it\u0027s a list.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"}],"tempest/lib/services/volume/v2/manageable_resource_list_client.py":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"8396cdbb5094cff68ee2facd8c69b485ba0cd0af","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.lib.common import rest_client"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class ManageableResourceListClient(rest_client.RestClient):"},{"line_number":23,"context_line":"    \"\"\"Client to send a V2 os-volume-manage or os-snapshot-manage request\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    api_version \u003d \"v2\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_83412d3c","line":22,"range":{"start_line":22,"start_character":6,"end_line":22,"end_character":34},"updated":"2017-02-10 15:52:44.000000000","message":"Client should represent a set of the API directly, ex. tempest.lib.services.volume.v2.snapshot_manage_client.\nHence client (and file) should be renamed to ResourceManageClient, or if it doesn\u0027t match with the API, then test cases should call SnapshotManageClient (os-snapshot-manage) directly","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"14af1ea65f1e5032aef5bc0ed8d99df073813cdb","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    api_version \u003d \"v2\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def os_resource_manage(self, params, resource_type, detail\u003dTrue):"},{"line_number":28,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_ced8ba20","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":26},"updated":"2017-02-10 11:17:16.000000000","message":"This name suggest that the method is doing manage. This isn\u0027t true, this is just listing.","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    api_version \u003d \"v2\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def os_resource_manage(self, params, resource_type, detail\u003dTrue):"},{"line_number":28,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_fc885fc7","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":26},"in_reply_to":"fa31d9ce_ced8ba20","updated":"2017-02-23 07:32:16.000000000","message":"Done","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"8396cdbb5094cff68ee2facd8c69b485ba0cd0af","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    api_version \u003d \"v2\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def os_resource_manage(self, params, resource_type, detail\u003dTrue):"},{"line_number":28,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_03ba9de1","line":28,"range":{"start_line":28,"start_character":42,"end_line":28,"end_character":51},"updated":"2017-02-10 15:52:44.000000000","message":"nit: resources","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    api_version \u003d \"v2\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def os_resource_manage(self, params, resource_type, detail\u003dTrue):"},{"line_number":28,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_bcb9877b","line":28,"range":{"start_line":28,"start_character":42,"end_line":28,"end_character":51},"in_reply_to":"fa31d9ce_03ba9de1","updated":"2017-02-23 07:32:16.000000000","message":"missed this nit pick. will address in next patchset!","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"8396cdbb5094cff68ee2facd8c69b485ba0cd0af","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if params:"},{"line_number":32,"context_line":"            if detail is True:"},{"line_number":33,"context_line":"                url +\u003d \u0027/detail?%s\u0027 % urllib.urlencode(params)"},{"line_number":34,"context_line":"            else:"},{"line_number":35,"context_line":"                url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_63e27905","line":33,"range":{"start_line":32,"start_character":12,"end_line":33,"end_character":31},"updated":"2017-02-10 15:52:44.000000000","message":"Extract details statement one level:\n\nif detail:\n    url +\u003d \u0027/detail\u0027\nif params:\n    url +\u003d \u0027?%s\u0027 %  urllib.urlencode(params)","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"f6401c02a51b32988f8da3c3a8ac41e359de3550","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        url \u003d \u0027os-%s-manage\u0027 % resource_type"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if params:"},{"line_number":32,"context_line":"            if detail is True:"},{"line_number":33,"context_line":"                url +\u003d \u0027/detail?%s\u0027 % urllib.urlencode(params)"},{"line_number":34,"context_line":"            else:"},{"line_number":35,"context_line":"                url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da36d5c6_dcb2bb93","line":33,"range":{"start_line":32,"start_character":12,"end_line":33,"end_character":31},"in_reply_to":"fa31d9ce_63e27905","updated":"2017-02-23 07:32:16.000000000","message":"Done! Thanks!","commit_id":"754b75a22f4e7a7e0d216c0e2458f4365ecbf8a6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"aeee57a115c50b9ad437dd083a91cc3f4312db58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"da36d5c6_708f33cc","updated":"2017-02-23 08:31:58.000000000","message":"seems better to split into two parts, one can be put into SnapshotManageClient, \nand the other can be put into VolumeManageClient(in progress, https://review.openstack.org/#/c/433411/)","commit_id":"8359a8a6ba75c2ddc45be84e72539b465e8896d0"}],"tempest/lib/services/volume/v2/snapshot_manage_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_49bb670d","line":36,"range":{"start_line":36,"start_character":44,"end_line":36,"end_character":55},"updated":"2017-04-04 02:23:36.000000000","message":"Should this be True by default? The convention appears to be detail\u003dFalse.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_4edfd2d5","line":36,"range":{"start_line":36,"start_character":44,"end_line":36,"end_character":55},"in_reply_to":"dfeb2761_49bb670d","updated":"2017-04-04 19:58:17.000000000","message":"actually the default for the API is detail\u003dTrue. Thats the reason why I kept it like this so that if someone calls it without detail parameter ..it behaves just like the API.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_92484f5c","line":36,"range":{"start_line":36,"start_character":36,"end_line":36,"end_character":42},"updated":"2017-04-05 05:59:35.000000000","message":"if params is available, is there any api link ref?","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_f259db34","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":29},"updated":"2017-04-05 05:59:35.000000000","message":"list_managed_snapshot","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29d9f6aaf7cd66d02ddfddbb68903f1e2281898f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bff0334d_a36dae99","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":29},"in_reply_to":"dfeb2761_f259db34","updated":"2017-04-06 14:30:09.000000000","message":"list_managed_snapshots","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"}],"tempest/lib/services/volume/v2/volume_manage_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        body \u003d json.loads(body)"},{"line_number":38,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def managed_volume_list(self, params, detail\u003dTrue):"},{"line_number":41,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027os-volume-manage\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_093b1f9c","line":40,"range":{"start_line":40,"start_character":42,"end_line":40,"end_character":53},"updated":"2017-04-04 02:23:36.000000000","message":"Should this be detail\u003dTrue? Convention appears to be detail\u003dFalse.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c4615a533a740e331878567af5c22a992206d665","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        body \u003d json.loads(body)"},{"line_number":38,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def managed_volume_list(self, params, detail\u003dTrue):"},{"line_number":41,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027os-volume-manage\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_5278878e","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"updated":"2017-04-05 05:59:35.000000000","message":"list_managed_volume","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29d9f6aaf7cd66d02ddfddbb68903f1e2281898f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        body \u003d json.loads(body)"},{"line_number":38,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def managed_volume_list(self, params, detail\u003dTrue):"},{"line_number":41,"context_line":"        \"\"\"Returns the list of manageable reosurces\"\"\""},{"line_number":42,"context_line":"        url \u003d \u0027os-volume-manage\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bff0334d_6360c6a6","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"in_reply_to":"dfeb2761_5278878e","updated":"2017-04-06 14:30:09.000000000","message":"list_managed_volumes","commit_id":"5ae5edb86b6d227776b2c4d0d5b6a9a7acc3be5d"}],"tempest/lib/services/volume/v3/__init__.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    VolumeManageClient"},{"line_number":22,"context_line":"from tempest.lib.services.volume.v3.volumes_client import VolumesClient"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"__all__ \u003d [\u0027MessagesClient\u0027, \u0027BaseClient\u0027, \u0027VersionsClient\u0027, \u0027VolumesClient\u0027,"},{"line_number":25,"context_line":"           \u0027SnapshotManageClient\u0027, \u0027VolumeManageClient\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_89460f21","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":56},"updated":"2017-04-04 02:23:36.000000000","message":"nit: not in alphabetical order.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    VolumeManageClient"},{"line_number":22,"context_line":"from tempest.lib.services.volume.v3.volumes_client import VolumesClient"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"__all__ \u003d [\u0027MessagesClient\u0027, \u0027BaseClient\u0027, \u0027VersionsClient\u0027, \u0027VolumesClient\u0027,"},{"line_number":25,"context_line":"           \u0027SnapshotManageClient\u0027, \u0027VolumeManageClient\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_308cf17d","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":56},"in_reply_to":"dfeb2761_89460f21","updated":"2017-04-04 19:58:17.000000000","message":"Done","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"}],"tempest/lib/services/volume/v3/snapshot_manage_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_c95d37ea","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":30},"updated":"2017-04-04 02:23:36.000000000","message":"This Copyright looks copy/pasted since it\u0027s 2017 :)","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        body \u003d json.loads(body)"},{"line_number":34,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def managed_snapshot_list(self, params, detail\u003dTrue):"},{"line_number":37,"context_line":"        \"\"\"Returns the list of manageable snapshots\"\"\""},{"line_number":38,"context_line":"        url \u003d \u0027os-snapshot-manage\u0027"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_69550bc6","line":36,"range":{"start_line":36,"start_character":44,"end_line":36,"end_character":55},"updated":"2017-04-04 02:23:36.000000000","message":"detail\u003dFalse.","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"}],"tempest/lib/services/volume/v3/volume_manage_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 FiberHome Telecommunication Technologies CO.,LTD"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_a9743369","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":65},"updated":"2017-04-04 02:23:36.000000000","message":"My guess is that this should be Intel :)","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        body \u003d json.loads(body)"},{"line_number":33,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def managed_volume_list(self, params, detail\u003dTrue):"},{"line_number":36,"context_line":"        \"\"\"Returns the list of manageable volumes\"\"\""},{"line_number":37,"context_line":"        url \u003d \u0027os-volume-manage\u0027"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_495007d5","line":35,"range":{"start_line":35,"start_character":49,"end_line":35,"end_character":53},"updated":"2017-04-04 02:23:36.000000000","message":"False","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"}],"tempest/lib/services/volume/v3/volumes_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"69ed9287328597810bd21b32375adaccdc746d5b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Intel Corporation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_e95a3bf1","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"updated":"2017-04-04 02:23:36.000000000","message":"This Copyright looks copy/pasted since it\u0027s 2017 :)","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"92a125a06651892705da4e82390b629416dae242","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Intel Corporation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_50753531","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"in_reply_to":"dfeb2761_e95a3bf1","updated":"2017-04-04 19:58:17.000000000","message":"good catch ..thanks","commit_id":"ac2ea9a20abce6149bfead49231944b94cced327"}]}
