)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"741e5682bbd2bc8724d1a330ec7b657e0c260e62","unresolved":false,"context_lines":[{"line_number":9,"context_line":"There doesn\u0027t exist any test case in tempest for retype"},{"line_number":10,"context_line":"volume without migration, so adding new test for it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related Bug : #1740544"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I58c348b954a679bc809906b2c73df9b1ab4459c5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_6aab4487","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":22},"updated":"2018-06-12 10:42:01.000000000","message":"Link is not opening","commit_id":"8e0d0183a1cdc1ce6631ecb03c553dd9325fa652"}],"tempest/api/volume/admin/test_volume_retype.py":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"741e5682bbd2bc8724d1a330ec7b657e0c260e62","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(\u0027volume-type-2\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _wait_for_internal_volume_cleanup(self, vol):"},{"line_number":35,"context_line":"        # When retyping a volume, Cinder creates an internal volume in the"},{"line_number":36,"context_line":"        # target backend. The volume in the source backend is deleted after"},{"line_number":37,"context_line":"        # the migration, so we need to wait for Cinder delete this volume"},{"line_number":38,"context_line":"        # before deleting the types we\u0027ve created."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        # This list should return 2 volumes until the copy and cleanup"},{"line_number":41,"context_line":"        # process is finished."},{"line_number":42,"context_line":"        fetched_list \u003d self.admin_volume_client.list_volumes("},{"line_number":43,"context_line":"            params\u003d{\u0027all_tenants\u0027: True,"},{"line_number":44,"context_line":"                    \u0027display_name\u0027: vol[\u0027name\u0027]})[\u0027volumes\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_8aa020a7","line":41,"range":{"start_line":35,"start_character":8,"end_line":41,"end_character":30},"updated":"2018-06-12 10:42:01.000000000","message":"It should be better to write in such way by Adding Note with IRC account Id.\ne.g.: #Note(IRC id):\nFor Reference: https://github.com/openstack/tempest/blob/0a107b1b30e8a5b963e85d59963f159b3b694ac4/tempest/lib/api_schema/response/compute/v2_1/parameter_types.py#L102","commit_id":"8e0d0183a1cdc1ce6631ecb03c553dd9325fa652"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"22ea951e20f6323d8a25f57231851502ec7df84c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        volume_dest \u003d self.admin_volume_client.show_volume("},{"line_number":73,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Check the volume information after the retype"},{"line_number":76,"context_line":"        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])"},{"line_number":77,"context_line":"        self.assertIsNone(volume_dest[\u0027migration_status\u0027])"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        for key in keys_with_no_change:"},{"line_number":80,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_85bddcd8","line":77,"range":{"start_line":75,"start_character":0,"end_line":77,"end_character":58},"updated":"2018-06-07 01:51:32.000000000","message":"any cinder doc to explain this behavior. i mean i want to understand the use case of \u0027never\u0027 as migration_policy","commit_id":"8e0d0183a1cdc1ce6631ecb03c553dd9325fa652"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c49c89ce45222554f2f7377720df97f4d7600c80","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,"},{"line_number":74,"context_line":"                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027,"},{"line_number":75,"context_line":"                                   \u0027os-vol-host-attr:host\u0027)"},{"line_number":76,"context_line":"            keys_with_change \u003d (\u0027volume_type\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        volume_source \u003d self.admin_volume_client.show_volume("},{"line_number":79,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_b78a0418","line":76,"range":{"start_line":76,"start_character":12,"end_line":76,"end_character":46},"updated":"2018-06-13 14:21:00.000000000","message":"I think this should be iterable for consistency and also to future-proof it. If we add new keys here below test will fail, e.g.:\n\n   keys_with_change \u003d (\u0027volume_type\u0027,)  # with comma","commit_id":"9a820519767e4d8d411cd36a2c7008178471d370"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c49c89ce45222554f2f7377720df97f4d7600c80","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_src)"},{"line_number":120,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_dst)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _retype_volume_with_migration(self, volume):"},{"line_number":123,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":124,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027on-demand\u0027))"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_37fa7474","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":37},"updated":"2018-06-13 14:21:00.000000000","message":"Where is this used? I don\u0027t see it called anywhere","commit_id":"9a820519767e4d8d411cd36a2c7008178471d370"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c49c89ce45222554f2f7377720df97f4d7600c80","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(\u0027volume-type-1\u0027)"},{"line_number":156,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(\u0027volume-type-2\u0027)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _retype_volume_without_migration(self, volume):"},{"line_number":159,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":160,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027never\u0027))"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_77aeac81","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":40},"updated":"2018-06-13 14:21:00.000000000","message":"This is currently unused?","commit_id":"9a820519767e4d8d411cd36a2c7008178471d370"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c49c89ce45222554f2f7377720df97f4d7600c80","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        for key in keys_with_no_change:"},{"line_number":167,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.assertNotEqual(volume_source[keys_with_change],"},{"line_number":170,"context_line":"                            volume_dest[keys_with_change])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_f7739c4c","line":169,"updated":"2018-06-13 14:21:00.000000000","message":"And down here should iterate:\n\n    for key in keys_with_change:\n        self.assertNotEqual(volume_source[key], volume_dest[key])","commit_id":"9a820519767e4d8d411cd36a2c7008178471d370"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return src_vol"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _retype_volume(self, volume, migration_policy):"},{"line_number":67,"context_line":"        if migration_policy \u003d\u003d \u0027on-demand\u0027:"},{"line_number":68,"context_line":"            keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,"},{"line_number":69,"context_line":"                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027)"},{"line_number":70,"context_line":"            keys_with_change \u003d (\u0027volume_type\u0027, \u0027os-vol-host-attr:host\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        elif migration_policy \u003d\u003d \u0027never\u0027:"},{"line_number":73,"context_line":"            keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,"},{"line_number":74,"context_line":"                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027,"},{"line_number":75,"context_line":"                                   \u0027os-vol-host-attr:host\u0027)"},{"line_number":76,"context_line":"            keys_with_change \u003d (\u0027volume_type\u0027,)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        volume_source \u003d self.admin_volume_client.show_volume("},{"line_number":79,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_05605000","line":76,"range":{"start_line":67,"start_character":0,"end_line":76,"end_character":47},"updated":"2018-06-14 05:06:38.000000000","message":"this should not be needed after you do verification separately in each class.","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return src_vol"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _retype_volume(self, volume, migration_policy):"},{"line_number":67,"context_line":"        if migration_policy \u003d\u003d \u0027on-demand\u0027:"},{"line_number":68,"context_line":"            keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,"},{"line_number":69,"context_line":"                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027)"},{"line_number":70,"context_line":"            keys_with_change \u003d (\u0027volume_type\u0027, \u0027os-vol-host-attr:host\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        elif migration_policy \u003d\u003d \u0027never\u0027:"},{"line_number":73,"context_line":"            keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,"},{"line_number":74,"context_line":"                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027,"},{"line_number":75,"context_line":"                                   \u0027os-vol-host-attr:host\u0027)"},{"line_number":76,"context_line":"            keys_with_change \u003d (\u0027volume_type\u0027,)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        volume_source \u003d self.admin_volume_client.show_volume("},{"line_number":79,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0dd7fcc2","line":76,"range":{"start_line":67,"start_character":0,"end_line":76,"end_character":47},"in_reply_to":"5f7c97a3_05605000","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        volume_dest \u003d self.admin_volume_client.show_volume("},{"line_number":90,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        return (volume_source, volume_dest, keys_with_no_change,"},{"line_number":93,"context_line":"                keys_with_change)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"class VolumeRetypeWithMigrationTest(VolumeRetypeTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8531c00d","line":93,"range":{"start_line":92,"start_character":8,"end_line":93,"end_character":33},"updated":"2018-06-14 05:06:38.000000000","message":"here you can call verify method:\n\nself._verify_migration(volume_source, volume_dest)","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        volume_dest \u003d self.admin_volume_client.show_volume("},{"line_number":90,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        return (volume_source, volume_dest, keys_with_no_change,"},{"line_number":93,"context_line":"                keys_with_change)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"class VolumeRetypeWithMigrationTest(VolumeRetypeTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_adf1286d","line":93,"range":{"start_line":92,"start_character":8,"end_line":93,"end_character":33},"in_reply_to":"5f7c97a3_8531c00d","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"class VolumeRetypeWithMigrationTest(VolumeRetypeTest):"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @classmethod"},{"line_number":99,"context_line":"    def skip_checks(cls):"},{"line_number":100,"context_line":"        super(VolumeRetypeWithMigrationTest, cls).skip_checks()"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":103,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":106,"context_line":"            raise cls.skipException(\"Requires at least two different \""},{"line_number":107,"context_line":"                                    \"backend names\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @classmethod"},{"line_number":110,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_05db70ec","line":107,"range":{"start_line":99,"start_character":0,"end_line":107,"end_character":52},"updated":"2018-06-14 05:06:38.000000000","message":"these condition not needed for migration policy \u0027never\u0027 ? as it does not actually migrate the storage if might not needed to be multi backend env but we can check while running the tests.","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":96,"context_line":"class VolumeRetypeWithMigrationTest(VolumeRetypeTest):"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @classmethod"},{"line_number":99,"context_line":"    def skip_checks(cls):"},{"line_number":100,"context_line":"        super(VolumeRetypeWithMigrationTest, cls).skip_checks()"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":103,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":106,"context_line":"            raise cls.skipException(\"Requires at least two different \""},{"line_number":107,"context_line":"                                    \"backend names\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @classmethod"},{"line_number":110,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0d005c35","line":107,"range":{"start_line":99,"start_character":0,"end_line":107,"end_character":52},"in_reply_to":"5f7c97a3_05db70ec","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_src)"},{"line_number":120,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_dst)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _retype_volume_with_migration(self, volume):"},{"line_number":123,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":124,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027on-demand\u0027))"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e57754d0","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":37},"updated":"2018-06-14 05:06:38.000000000","message":"you can do verification here and call this from _retype_volume() method. and this function covers the verification difference when migrating with \u0027on-demand\u0027 and \u0027never\u0027 policy. something like below: \n\ndef _verify_migration(self, volume_source, volume_dest):\n        keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,\n                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027)\n        keys_with_change \u003d (\u0027volume_type\u0027, \u0027os-vol-host-attr:host\u0027)\n\n        # Check the volume information after the migration.\n        self.assertEqual(\u0027success\u0027,\n                         volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])\n        self.assertEqual(\u0027success\u0027, volume_dest[\u0027migration_status\u0027])\n\n        for key in keys_with_no_change:\n            self.assertEqual(volume_source[key], volume_dest[key])\n\n        for key in keys_with_change:\n            self.assertNotEqual(volume_source[key], volume_dest[key])","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_src)"},{"line_number":120,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(extra_specs\u003dextra_specs_dst)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _retype_volume_with_migration(self, volume):"},{"line_number":123,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":124,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027on-demand\u0027))"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_2dfd183b","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":37},"in_reply_to":"5f7c97a3_e57754d0","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027never\u0027))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Check the volume information after the retype"},{"line_number":163,"context_line":"        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])"},{"line_number":164,"context_line":"        self.assertIsNone(volume_dest[\u0027migration_status\u0027])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_no_change:"},{"line_number":167,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a51ddc73","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":57},"updated":"2018-06-14 05:06:38.000000000","message":"along with these checking we should really need to modify some extra specs and check their modified value.","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027never\u0027))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Check the volume information after the retype"},{"line_number":163,"context_line":"        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])"},{"line_number":164,"context_line":"        self.assertIsNone(volume_dest[\u0027migration_status\u0027])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_no_change:"},{"line_number":167,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_cda7c450","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":57},"in_reply_to":"5f7c97a3_a51ddc73","updated":"2018-06-15 05:12:54.000000000","message":"as mentioned here \nhttps://docs.openstack.org/cinder/latest/admin/blockstorage-volume-migration.html\nthere are 3 attributes related to migration,\nos-vol-host-attr:host\nos-vol-mig-status-attr:migstat\nos-vol-mig-status-attr:name_id\n\nand after retype (without migration), all stay the same (None), only the volume-type changes\n\ni can add name_id here but i could not find any suitable assertions here that gets modified","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(\u0027volume-type-1\u0027)"},{"line_number":156,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(\u0027volume-type-2\u0027)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _retype_volume_without_migration(self, volume):"},{"line_number":159,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":160,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027never\u0027))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Check the volume information after the retype"},{"line_number":163,"context_line":"        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])"},{"line_number":164,"context_line":"        self.assertIsNone(volume_dest[\u0027migration_status\u0027])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_no_change:"},{"line_number":167,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for key in keys_with_change:"},{"line_number":170,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":173,"context_line":"    def test_volume_from_snapshot_retype(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a54f1c90","line":170,"range":{"start_line":158,"start_character":0,"end_line":170,"end_character":69},"updated":"2018-06-14 05:06:38.000000000","message":"here you can have verification like below:\ndef _verify_migration(self, volume_source, volume_dest):\n        keys_with_no_change \u003d (\u0027id\u0027, \u0027size\u0027, \u0027description\u0027, \u0027name\u0027,\n                                   \u0027user_id\u0027, \u0027os-vol-tenant-attr:tenant_id\u0027,\n                                   \u0027os-vol-host-attr:host\u0027)\n        keys_with_change \u003d (\u0027volume_type\u0027,)\n        # Check the volume information after the retype\n        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])\n        self.assertIsNone(volume_dest[\u0027migration_status\u0027])\n\n        for key in keys_with_no_change:\n            self.assertEqual(volume_source[key], volume_dest[key])\n\n        for key in keys_with_change:\n            self.assertNotEqual(volume_source[key], volume_dest[key])","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        cls.src_vol_type \u003d cls.create_volume_type(\u0027volume-type-1\u0027)"},{"line_number":156,"context_line":"        cls.dst_vol_type \u003d cls.create_volume_type(\u0027volume-type-2\u0027)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _retype_volume_without_migration(self, volume):"},{"line_number":159,"context_line":"        volume_source, volume_dest, keys_with_no_change, keys_with_change \u003d ("},{"line_number":160,"context_line":"            self._retype_volume(volume, migration_policy\u003d\u0027never\u0027))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Check the volume information after the retype"},{"line_number":163,"context_line":"        self.assertIsNone(volume_dest[\u0027os-vol-mig-status-attr:migstat\u0027])"},{"line_number":164,"context_line":"        self.assertIsNone(volume_dest[\u0027migration_status\u0027])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_no_change:"},{"line_number":167,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for key in keys_with_change:"},{"line_number":170,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":173,"context_line":"    def test_volume_from_snapshot_retype(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_ad9608ef","line":170,"range":{"start_line":158,"start_character":0,"end_line":170,"end_character":69},"in_reply_to":"5f7c97a3_a54f1c90","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03239db99d87e24538ff3db37f10f36bd0b9387c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        for key in keys_with_change:"},{"line_number":170,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":173,"context_line":"    def test_volume_from_snapshot_retype(self):"},{"line_number":174,"context_line":"        src_vol \u003d self._test_volume_from_snapshot()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Retype the volume from snapshot"},{"line_number":177,"context_line":"        self._retype_volume_without_migration(src_vol)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_2520ecaf","line":177,"range":{"start_line":172,"start_character":0,"end_line":177,"end_character":54},"updated":"2018-06-14 05:06:38.000000000","message":"we can do without snapshot as this does not really migrate the storage so checking normal volume retype is ok.\n\nbasically this tests \n test_available_volume_retype_with_migration","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3ae6e50f2bf1959b8760c42af1d27f175dcc70af","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        for key in keys_with_change:"},{"line_number":170,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":173,"context_line":"    def test_volume_from_snapshot_retype(self):"},{"line_number":174,"context_line":"        src_vol \u003d self._test_volume_from_snapshot()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Retype the volume from snapshot"},{"line_number":177,"context_line":"        self._retype_volume_without_migration(src_vol)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0d85bcae","line":177,"range":{"start_line":172,"start_character":0,"end_line":177,"end_character":54},"in_reply_to":"5f7c97a3_2520ecaf","updated":"2018-06-15 05:12:54.000000000","message":"Done","commit_id":"1bd09e931ca2725a6c99254000ac7bd84fbbdbb1"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6a7ffd8d7fc54f0d29d7a7b71291eb82247742a0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(VolumeRetypeTest, cls).skip_checks()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":33,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":36,"context_line":"            raise cls.skipException(\"Requires at least two different \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ab60efd0","line":33,"updated":"2018-06-19 07:18:28.000000000","message":"Do we need the multi_backend feature when the policy is \u0027never\u0027? I\u0027m not sure but just curious.","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8c31f25c63c112df52a570f64271980d076daa10","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(VolumeRetypeTest, cls).skip_checks()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":33,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":36,"context_line":"            raise cls.skipException(\"Requires at least two different \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_eaa80a8d","line":33,"in_reply_to":"5f7c97a3_006f7afa","updated":"2018-06-20 02:56:29.000000000","message":"so this seems not required for policy \u0027never\u0027 [1]\n so let\u0027s keep this for \u0027on-demand\u0027 only \n[1] http://logs.openstack.org/06/576506/1/experimental/legacy-tempest-dsvm-lvm-multibackend/e484837/logs/testr_results.html.gz","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0f5837de716e4106b1188dbf77cbec616c6aeee4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(VolumeRetypeTest, cls).skip_checks()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":33,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":36,"context_line":"            raise cls.skipException(\"Requires at least two different \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_006f7afa","line":33,"in_reply_to":"5f7c97a3_605f4e75","updated":"2018-06-19 12:41:12.000000000","message":"testing this in https://review.openstack.org/#/c/576506/1","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ddf78811a0bca02bef90cf097d0b7af226a9888a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(VolumeRetypeTest, cls).skip_checks()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":33,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":36,"context_line":"            raise cls.skipException(\"Requires at least two different \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_605f4e75","line":33,"in_reply_to":"5f7c97a3_ab60efd0","updated":"2018-06-19 12:33:22.000000000","message":"Yea i also doubt that we need multinode setup for \u0027never\u0027 policy.\n\nI will push a testing dependent patch to test these.","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"92a98dd01c79e860e3bb77cce8d972e5e61b1b73","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(VolumeRetypeTest, cls).skip_checks()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        if not CONF.volume_feature_enabled.multi_backend:"},{"line_number":33,"context_line":"            raise cls.skipException(\"Cinder multi-backend feature disabled.\")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if len(set(CONF.volume.backend_names)) \u003c 2:"},{"line_number":36,"context_line":"            raise cls.skipException(\"Requires at least two different \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d962cad9","line":33,"in_reply_to":"5f7c97a3_eaa80a8d","updated":"2018-06-20 07:07:50.000000000","message":"Done","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0f5837de716e4106b1188dbf77cbec616c6aeee4","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                    fetched_vol[\u0027id\u0027])"},{"line_number":58,"context_line":"                break"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _verify_migration(self, source_vol, dest_vol):"},{"line_number":61,"context_line":"        pass"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _test_volume_from_snapshot(self):"},{"line_number":64,"context_line":"        # Create a volume in the first backend"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_80638a19","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":12},"updated":"2018-06-19 12:41:12.000000000","message":"let\u0027s define this a abstract method so that we do not *pass* the verification accidentally by not overriding this method in derived class. use @abc.abstractmethod","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"92a98dd01c79e860e3bb77cce8d972e5e61b1b73","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                    fetched_vol[\u0027id\u0027])"},{"line_number":58,"context_line":"                break"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _verify_migration(self, source_vol, dest_vol):"},{"line_number":61,"context_line":"        pass"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _test_volume_from_snapshot(self):"},{"line_number":64,"context_line":"        # Create a volume in the first backend"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_796136d3","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":12},"in_reply_to":"5f7c97a3_80638a19","updated":"2018-06-20 07:07:50.000000000","message":"Done","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6a7ffd8d7fc54f0d29d7a7b71291eb82247742a0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_change:"},{"line_number":167,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":170,"context_line":"    def test_available_volume_retype(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_cb5beb1f","line":167,"updated":"2018-06-19 07:18:28.000000000","message":"nit: I think we can use \u0027volume_type\u0027 directly. (We don\u0027t need the \u0027for loop\u0027 here). But yeah, I don\u0027t have strong opinion here because this also works with no doubt.","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"92a98dd01c79e860e3bb77cce8d972e5e61b1b73","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        for key in keys_with_change:"},{"line_number":167,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":170,"context_line":"    def test_available_volume_retype(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_19a60211","line":167,"in_reply_to":"5f7c97a3_cb5beb1f","updated":"2018-06-20 07:07:50.000000000","message":"This is kept for consistency purpose so as to make future modifications easy.\nIn the intial patch it wasn\u0027t iterable, these changes are made according to @Felipe\u0027s comment","commit_id":"e2f85e090936c3876dadd9c692c4891c38a6ac8c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0b20c4eda1a5e7c1e21b4dfe1df45b9139f8ed6b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def _verify_migration(self, source_vol, dest_vol):"},{"line_number":52,"context_line":"        pass"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _test_volume_from_snapshot(self):"},{"line_number":55,"context_line":"        # Create a volume in the first backend"},{"line_number":56,"context_line":"        src_vol \u003d self.create_volume(volume_type\u003dself.src_vol_type[\u0027name\u0027])"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_0b3803c9","line":54,"range":{"start_line":54,"start_character":9,"end_line":54,"end_character":13},"updated":"2018-07-01 23:13:16.000000000","message":"nit: create","commit_id":"88c9f74dc734d2b8bfd16922607d06067b2f4e11"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"153f96ffadb06c89e7b18703c927aeabff8cc335","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def _verify_migration(self, source_vol, dest_vol):"},{"line_number":52,"context_line":"        pass"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _test_volume_from_snapshot(self):"},{"line_number":55,"context_line":"        # Create a volume in the first backend"},{"line_number":56,"context_line":"        src_vol \u003d self.create_volume(volume_type\u003dself.src_vol_type[\u0027name\u0027])"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_d1f95ec5","line":54,"range":{"start_line":54,"start_character":9,"end_line":54,"end_character":13},"in_reply_to":"5f7c97a3_0b3803c9","updated":"2018-07-02 04:17:26.000000000","message":"Done","commit_id":"88c9f74dc734d2b8bfd16922607d06067b2f4e11"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0b20c4eda1a5e7c1e21b4dfe1df45b9139f8ed6b","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @decorators.idempotent_id(\u0027d0d9554f-e7a5-4104-8973-f35b27ccb60d\u0027)"},{"line_number":139,"context_line":"    def test_volume_from_snapshot_retype_with_migration(self):"},{"line_number":140,"context_line":"        src_vol \u003d self._test_volume_from_snapshot()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Migrate the volume from snapshot to the second backend"},{"line_number":143,"context_line":"        self._retype_volume(src_vol, migration_policy\u003d\u0027on-demand\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_ab46af4f","line":140,"range":{"start_line":140,"start_character":24,"end_line":140,"end_character":28},"updated":"2018-07-01 23:13:16.000000000","message":"nit: create","commit_id":"88c9f74dc734d2b8bfd16922607d06067b2f4e11"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"153f96ffadb06c89e7b18703c927aeabff8cc335","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @decorators.idempotent_id(\u0027d0d9554f-e7a5-4104-8973-f35b27ccb60d\u0027)"},{"line_number":139,"context_line":"    def test_volume_from_snapshot_retype_with_migration(self):"},{"line_number":140,"context_line":"        src_vol \u003d self._test_volume_from_snapshot()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Migrate the volume from snapshot to the second backend"},{"line_number":143,"context_line":"        self._retype_volume(src_vol, migration_policy\u003d\u0027on-demand\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_712aca2f","line":140,"range":{"start_line":140,"start_character":24,"end_line":140,"end_character":28},"in_reply_to":"5f7c97a3_ab46af4f","updated":"2018-07-02 04:17:26.000000000","message":"Done","commit_id":"88c9f74dc734d2b8bfd16922607d06067b2f4e11"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"3c72001df7fc283235ade7c271c61d3dbd9a355e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        src_vol \u003d self._test_volume_from_snapshot()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Migrate the volume from snapshot to the second backend"},{"line_number":143,"context_line":"        self._retype_volume(src_vol, migration_policy\u003d\u0027on-demand\u0027)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class VolumeRetypeWithoutMigrationTest(VolumeRetypeTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_8421dd4f","line":143,"updated":"2018-06-26 05:15:18.000000000","message":"The test timed out http://logs.openstack.org/87/572287/5/experimental/legacy-tempest-dsvm-lvm-multibackend/9f62c69/job-output.txt.gz#_2018-06-26_00_43_14_735787","commit_id":"88c9f74dc734d2b8bfd16922607d06067b2f4e11"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aef18e376338cefde0a8e920bf1772c666c73979","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        for key in keys_with_change:"},{"line_number":131,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u0027a1a41f3f-9dad-493e-9f09-3ff197d477cd\u0027)"},{"line_number":134,"context_line":"    def test_available_volume_retype_with_migration(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_040c64ea","line":131,"range":{"start_line":131,"start_character":52,"end_line":131,"end_character":63},"updated":"2018-07-02 16:30:36.000000000","message":"Would this volume_dest have \u0027volume_type\u0027 of dst_vol_type[\u0027name\u0027]? If so, could add as additional assertion.","commit_id":"a3a67d476132fe5f55020cf2dc1f672c17be6eb3"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aef18e376338cefde0a8e920bf1772c666c73979","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        for key in keys_with_change:"},{"line_number":169,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":172,"context_line":"    def test_available_volume_retype(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_640518c1","line":169,"range":{"start_line":169,"start_character":52,"end_line":169,"end_character":63},"updated":"2018-07-02 16:30:36.000000000","message":"Would this volume_dest have \u0027volume_type\u0027 of dst_vol_type[\u0027name\u0027]? If so, could add as additional assertion.","commit_id":"a3a67d476132fe5f55020cf2dc1f672c17be6eb3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"08afed2561f0b18348701f4e134e18bc7a2e465d","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            self.assertEqual(volume_source[key], volume_dest[key])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        for key in keys_with_change:"},{"line_number":169,"context_line":"            self.assertNotEqual(volume_source[key], volume_dest[key])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @decorators.idempotent_id(\u0027b90412ee-465d-46e9-b249-ec84a47d5f25\u0027)"},{"line_number":172,"context_line":"    def test_available_volume_retype(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_03dd3140","line":169,"range":{"start_line":169,"start_character":52,"end_line":169,"end_character":63},"in_reply_to":"5f7c97a3_640518c1","updated":"2018-07-03 01:34:39.000000000","message":"+1, we can do i followup.","commit_id":"a3a67d476132fe5f55020cf2dc1f672c17be6eb3"}]}
