)]}'
{"cinder/tests/unit/volume/drivers/netapp/fakes.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"450d317fc5c532cc219bfaab07fe91b06b6bb3b5","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                                     size\u003d42,"},{"line_number":78,"context_line":"                                     id\u003dVOLUME_ID,"},{"line_number":79,"context_line":"                                     host\u003d\u0027fake_host@fake_backend#fake_pool\u0027,"},{"line_number":80,"context_line":"                                     volume_type_id\u003dVOLUME_TYPE_ID)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"SNAPSHOT_NAME \u003d \u0027fake_snapshot_name\u0027"},{"line_number":83,"context_line":"SNAPSHOT_ID \u003d \u0027fake_snapshot_id\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"c3d5d478_6304aba3","line":80,"updated":"2021-03-26 16:54:24.000000000","message":"If we get enough interest from driver maintainers to have a \"drivers day\" at the PTG, we should show them this example and encourage them to refactor away from dicts and toward using objects, which is what their code will actually be dealing with in real life.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2baf3a7547663f00b808c9c05da7bd809a3b094b","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                                     size\u003d42,"},{"line_number":78,"context_line":"                                     id\u003dVOLUME_ID,"},{"line_number":79,"context_line":"                                     host\u003d\u0027fake_host@fake_backend#fake_pool\u0027,"},{"line_number":80,"context_line":"                                     volume_type_id\u003dVOLUME_TYPE_ID)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"SNAPSHOT_NAME \u003d \u0027fake_snapshot_name\u0027"},{"line_number":83,"context_line":"SNAPSHOT_ID \u003d \u0027fake_snapshot_id\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"59678f90_5f7095b4","line":80,"in_reply_to":"c3d5d478_6304aba3","updated":"2021-04-15 11:21:18.000000000","message":"+1, I\u0027ve faced issues in the past while modifying driver tests.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"}],"cinder/volume/drivers/netapp/dataontap/nfs_base.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"82ef9865334148b81d7cddff537042afc493674f","unresolved":true,"context_lines":[{"line_number":1069,"context_line":"        LOG.info(\u0027Cinder NFS volume with current path \"%(cr)s\" is \u0027"},{"line_number":1070,"context_line":"                 \u0027no longer being managed.\u0027, {\u0027cr\u0027: vol_path})"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"    def update_migrated_volume(self, ctxt, volume, new_volume,"},{"line_number":1073,"context_line":"                               original_volume_status):"},{"line_number":1074,"context_line":"        # Implemented to prevent NFSDriver\u0027s implementation renaming the file"},{"line_number":1075,"context_line":"        # and breaking volume\u0027s backend QoS."}],"source_content_type":"text/x-python","patch_set":1,"id":"6a082823_3d2086c4","line":1072,"updated":"2021-02-26 21:01:49.000000000","message":"Not implementing this method will cause the migrated volume end up with a file name different of its volume cinder entity id. Normally, the driver creates the file with the file name as volume-\u003cvolume_id\u003e, now after migrating it is going to have the file name as the volume-\u003cvolume_name_id\u003e, where name_id is the id of the temporary volume entity. Is it the expected behaviour ?","commit_id":"8fc91c63768d59288e19849f3b49da9fe989e1b0"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1b9e9301d3057e3897363833dcaf13060c24cc29","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"        LOG.info(\u0027Cinder NFS volume with current path \"%(cr)s\" is \u0027"},{"line_number":1070,"context_line":"                 \u0027no longer being managed.\u0027, {\u0027cr\u0027: vol_path})"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"    def update_migrated_volume(self, ctxt, volume, new_volume,"},{"line_number":1073,"context_line":"                               original_volume_status):"},{"line_number":1074,"context_line":"        # Implemented to prevent NFSDriver\u0027s implementation renaming the file"},{"line_number":1075,"context_line":"        # and breaking volume\u0027s backend QoS."}],"source_content_type":"text/x-python","patch_set":1,"id":"4c4767ab_a7f5fcb5","line":1072,"in_reply_to":"6a082823_3d2086c4","updated":"2021-03-17 11:14:12.000000000","message":"Yes that is correct.\nThe idea is for cinder volume manager to support both type of drivers:\n- Those that implement the method will try to rename the volume to use the original old id. If they fail cinder-volume manager will proceed as if it wasn\u0027t implemented.  In this case _name_id doesn\u0027t need to be set.\n- For those that don\u0027t implement the method cinder-volume manager will store the real volume\u0027s id in _name_id, so drivers will have to use it instead of the id.","commit_id":"8fc91c63768d59288e19849f3b49da9fe989e1b0"}],"cinder/volume/drivers/netapp/utils.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"82ef9865334148b81d7cddff537042afc493674f","unresolved":true,"context_lines":[{"line_number":266,"context_line":"def get_qos_policy_group_name(volume):"},{"line_number":267,"context_line":"    \"\"\"Return the name of backend QOS policy group based on its volume id.\"\"\""},{"line_number":268,"context_line":"    if \u0027id\u0027 in volume:"},{"line_number":269,"context_line":"        return OPENSTACK_PREFIX + (volume.get(\u0027name\u0027) or volume[\u0027id\u0027])"},{"line_number":270,"context_line":"    return None"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"2d5ffec6_ff78c202","line":269,"updated":"2021-02-26 21:01:49.000000000","message":"It would be better if you keep the QoS name as before, because the name is simpler and is compatible with past tests and deployments: openstack-\u003cvolume-id\u003e.\n\nThe fix relies on the fact that the \u0027name\u0027 returns the \u0027_name_id\u0027 value when it is set. The \u0027_name_id\u0027 is set with the source id when performing the migration. So, you could get the name_id directly, instead of get the \u0027name\u0027 which comes with the volume template. Like:\n\nreturn OPENSTACK_PREFIX + volume.get(\u0027name_id\u0027)\n\nI think it does not need the \"or\" because the volume.get(\u0027name_id\u0027) will get the \u0027name_id\u0027, which is the _name_id if is set, otherwise the id.","commit_id":"8fc91c63768d59288e19849f3b49da9fe989e1b0"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1b9e9301d3057e3897363833dcaf13060c24cc29","unresolved":false,"context_lines":[{"line_number":266,"context_line":"def get_qos_policy_group_name(volume):"},{"line_number":267,"context_line":"    \"\"\"Return the name of backend QOS policy group based on its volume id.\"\"\""},{"line_number":268,"context_line":"    if \u0027id\u0027 in volume:"},{"line_number":269,"context_line":"        return OPENSTACK_PREFIX + (volume.get(\u0027name\u0027) or volume[\u0027id\u0027])"},{"line_number":270,"context_line":"    return None"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"31c93b79_22b5f17b","line":269,"in_reply_to":"2d5ffec6_ff78c202","updated":"2021-03-17 11:14:12.000000000","message":"Yes, definitely it will be better to use name_id","commit_id":"8fc91c63768d59288e19849f3b49da9fe989e1b0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2baf3a7547663f00b808c9c05da7bd809a3b094b","unresolved":true,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_qos_policy_group_name(volume):"},{"line_number":391,"context_line":"    \"\"\"Return the name of backend QOS policy group based on its volume id.\"\"\""},{"line_number":392,"context_line":"    if \u0027id\u0027 in volume:"},{"line_number":393,"context_line":"        return OPENSTACK_PREFIX + volume.name_id"},{"line_number":394,"context_line":"    return None"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4a84adf6_c7b20d55","line":392,"range":{"start_line":392,"start_character":7,"end_line":392,"end_character":11},"updated":"2021-04-15 11:21:18.000000000","message":"is this check still correct? shouldn\u0027t we check for volume.name_id here?","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d74216412ea60a38ab262f77a97c56e4fb9572e","unresolved":true,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_qos_policy_group_name(volume):"},{"line_number":391,"context_line":"    \"\"\"Return the name of backend QOS policy group based on its volume id.\"\"\""},{"line_number":392,"context_line":"    if \u0027id\u0027 in volume:"},{"line_number":393,"context_line":"        return OPENSTACK_PREFIX + volume.name_id"},{"line_number":394,"context_line":"    return None"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5604ac96_dbf6c081","line":392,"range":{"start_line":392,"start_character":7,"end_line":392,"end_character":11},"in_reply_to":"4a84adf6_c7b20d55","updated":"2021-04-16 15:03:34.000000000","message":"Yes, still valid, as name_id is a property that will return the _name_id field if it has data and id otherwise.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2baf3a7547663f00b808c9c05da7bd809a3b094b","unresolved":true,"context_lines":[{"line_number":436,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":437,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":438,"context_line":"    try:"},{"line_number":439,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"},{"line_number":440,"context_line":"    except (KeyError, exception.NotFound):"},{"line_number":441,"context_line":"        LOG.exception(\u0027Cannot get QoS spec for volume %s.\u0027, volume[\u0027id\u0027])"},{"line_number":442,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":4,"id":"6e6615b6_1c321dd0","line":439,"range":{"start_line":439,"start_character":22,"end_line":439,"end_character":49},"updated":"2021-04-15 11:21:18.000000000","message":"This raises NotFound if the entry doesn\u0027t exist in DB but while creating the volume, we already ensure the volume type is valid and is in use by at least this volume so can\u0027t be deleted. Can we still get NotFound error any other way?","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d74216412ea60a38ab262f77a97c56e4fb9572e","unresolved":true,"context_lines":[{"line_number":436,"context_line":"    \"\"\"Given a volume, return information for QOS provisioning.\"\"\""},{"line_number":437,"context_line":"    info \u003d dict(legacy\u003dNone, spec\u003dNone)"},{"line_number":438,"context_line":"    try:"},{"line_number":439,"context_line":"        volume_type \u003d get_volume_type_from_volume(volume)"},{"line_number":440,"context_line":"    except (KeyError, exception.NotFound):"},{"line_number":441,"context_line":"        LOG.exception(\u0027Cannot get QoS spec for volume %s.\u0027, volume[\u0027id\u0027])"},{"line_number":442,"context_line":"        return info"}],"source_content_type":"text/x-python","patch_set":4,"id":"29cab202_5c0ccf7c","line":439,"range":{"start_line":439,"start_character":22,"end_line":439,"end_character":49},"in_reply_to":"6e6615b6_1c321dd0","updated":"2021-04-16 15:03:34.000000000","message":"I don\u0027t remember why I added the exception catching here.  Afaik it doesn\u0027t hurt anyway.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"}],"releasenotes/notes/netapp-migrated-qos-c0c8aae50d010c75.yaml":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"2baf3a7547663f00b808c9c05da7bd809a3b094b","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    NetApp ONTAP `bug #1906291"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/cinder/+bug/1906291\u003e`_: Fix volume losing its"},{"line_number":6,"context_line":"    QoS policy on the backend after moving it (migrate or retype with migrate)"},{"line_number":7,"context_line":"    to a NetApp backend."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1969355d_d3b4a2ef","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":23},"updated":"2021-04-15 11:21:18.000000000","message":"Is this the issue with all netapp backends or just the nfs one? I\u0027m a little confused with the bug report and commit msg.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d74216412ea60a38ab262f77a97c56e4fb9572e","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    NetApp ONTAP `bug #1906291"},{"line_number":5,"context_line":"    \u003chttps://bugs.launchpad.net/cinder/+bug/1906291\u003e`_: Fix volume losing its"},{"line_number":6,"context_line":"    QoS policy on the backend after moving it (migrate or retype with migrate)"},{"line_number":7,"context_line":"    to a NetApp backend."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"709c2535_ace6db9f","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":23},"in_reply_to":"1969355d_d3b4a2ef","updated":"2021-04-16 15:03:34.000000000","message":"Just NFS, I don\u0027t know why I forgot to write NFS in the patch.","commit_id":"8600267ac8549b4243cfb61786d1a113385f95a2"}]}
