)]}'
{"cinder/tests/unit/volume/drivers/test_kaminario.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        self.driver._delete_volume_replica \u003d mock.Mock()"},{"line_number":396,"context_line":"        result \u003d self.driver.retype(None, self.vol,"},{"line_number":397,"context_line":"                                    self.vol.volume_type, None, None)"},{"line_number":398,"context_line":"        self.assertTrue(result)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def test_add_replication(self):"},{"line_number":401,"context_line":"        \"\"\"\"Test _add_replication.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_3c42b068","line":398,"updated":"2016-08-01 10:13:25.000000000","message":"We should also test for the cases where retype returns False.\n\nAlso, we need to assert for the calls made (add replication status, delete replication status etc.).","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        self.driver._delete_volume_replica \u003d mock.Mock()"},{"line_number":396,"context_line":"        result \u003d self.driver.retype(None, self.vol,"},{"line_number":397,"context_line":"                                    self.vol.volume_type, None, None)"},{"line_number":398,"context_line":"        self.assertTrue(result)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def test_add_replication(self):"},{"line_number":401,"context_line":"        \"\"\"\"Test _add_replication.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_60647ab8","line":398,"in_reply_to":"bacf61ea_3c42b068","updated":"2016-08-01 11:02:20.000000000","message":"We will check this","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"}],"cinder/volume/drivers/kaminario/kaminario_common.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":786,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":787,"context_line":"        old_type \u003d volume.get(\u0027volume_type\u0027)"},{"line_number":788,"context_line":"        vg_name \u003d self.get_volume_group_name(volume.id)"},{"line_number":789,"context_line":"        old_rep_type \u003d self._get_replica_status(vg_name)"},{"line_number":790,"context_line":"        new_rep_type \u003d self._get_is_replica(new_type)"},{"line_number":791,"context_line":"        new_prov_type \u003d self._get_is_dedup(new_type)"},{"line_number":792,"context_line":"        old_prov_type \u003d self._get_is_dedup(old_type)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_bc5340e1","line":789,"updated":"2016-08-01 10:13:25.000000000","message":"Why we are not getting it from the old type?","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":786,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":787,"context_line":"        old_type \u003d volume.get(\u0027volume_type\u0027)"},{"line_number":788,"context_line":"        vg_name \u003d self.get_volume_group_name(volume.id)"},{"line_number":789,"context_line":"        old_rep_type \u003d self._get_replica_status(vg_name)"},{"line_number":790,"context_line":"        new_rep_type \u003d self._get_is_replica(new_type)"},{"line_number":791,"context_line":"        new_prov_type \u003d self._get_is_dedup(new_type)"},{"line_number":792,"context_line":"        old_prov_type \u003d self._get_is_dedup(old_type)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_f2bb1fe3","line":789,"in_reply_to":"bacf61ea_bc5340e1","updated":"2016-08-01 11:02:20.000000000","message":"_get_is_replica method decides whether we are going to create a volume with or without replication for a given volume_type.\nif _get_is_replica method returns False, then without-replication, if it returns True then with-replication\n\nSo suppose \"self.replica\" is not defined while creating a volume with a volume type, then  _get_is_replica will return False and a volume without replication will be created.\n\nSuppose, we define \"self.replica\"  latter, then if we use _get_is_replica on old volume type of an existing volume, then it will return True, which is not correct.\nSo we are directly checking that replication is enabled or not on  a existing volume from K2 api. It will be always accurate.","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":797,"context_line":"            elif old_rep_type and not new_rep_type:"},{"line_number":798,"context_line":"                self._delete_replication(volume)"},{"line_number":799,"context_line":"                return True"},{"line_number":800,"context_line":"        elif not new_rep_type and not old_rep_type:"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        else:"},{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_bc9d0068","line":800,"updated":"2016-08-01 10:13:25.000000000","message":"If dedup is different and if replicaton is disabled in the old and new type, no retype possibe. Is that correct? \n\nPlease add a comment why it is like that. It is not easy to understand otherwise.","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":797,"context_line":"            elif old_rep_type and not new_rep_type:"},{"line_number":798,"context_line":"                self._delete_replication(volume)"},{"line_number":799,"context_line":"                return True"},{"line_number":800,"context_line":"        elif not new_rep_type and not old_rep_type:"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        else:"},{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_f22cbf03","line":800,"in_reply_to":"bacf61ea_bc9d0068","updated":"2016-08-01 11:02:20.000000000","message":"In this case, retype is possible by:\ncinder retype --migration-policy on-demand volume-id new-volume-type\n\nSince, K2 do not have api to change directly from dedup to nodedup or viceversa, changing two properties in retype will be complex and roll-back will be difficult.","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":798,"context_line":"                self._delete_replication(volume)"},{"line_number":799,"context_line":"                return True"},{"line_number":800,"context_line":"        elif not new_rep_type and not old_rep_type:"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        else:"},{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"},{"line_number":804,"context_line":"                          \u0027does not support directly in K2.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_3cfc7071","line":801,"updated":"2016-08-01 10:13:25.000000000","message":"Why it is not logged?","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":798,"context_line":"                self._delete_replication(volume)"},{"line_number":799,"context_line":"                return True"},{"line_number":800,"context_line":"        elif not new_rep_type and not old_rep_type:"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        else:"},{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"},{"line_number":804,"context_line":"                          \u0027does not support directly in K2.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_f2ef9f84","line":801,"in_reply_to":"bacf61ea_3cfc7071","updated":"2016-08-01 11:02:20.000000000","message":"done","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"},{"line_number":804,"context_line":"                          \u0027does not support directly in K2.\u0027),"},{"line_number":805,"context_line":"                      {\u0027type1\u0027: old_type, \u0027type2\u0027: new_type})"},{"line_number":806,"context_line":"            return False"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def _add_replication(self, volume):"},{"line_number":809,"context_line":"        vg_name \u003d self.get_volume_group_name(volume.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_1c0fec88","line":806,"updated":"2016-08-01 10:13:25.000000000","message":"I don\u0027t understand why we need the elif? We return False irrespective of whether the elif condition is satisfied or not. The only difference is a log statement in the else part.","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"},{"line_number":804,"context_line":"                          \u0027does not support directly in K2.\u0027),"},{"line_number":805,"context_line":"                      {\u0027type1\u0027: old_type, \u0027type2\u0027: new_type})"},{"line_number":806,"context_line":"            return False"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def _add_replication(self, volume):"},{"line_number":809,"context_line":"        vg_name \u003d self.get_volume_group_name(volume.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_602c7a99","line":806,"in_reply_to":"bacf61ea_1c0fec88","updated":"2016-08-01 11:02:20.000000000","message":"we will put a LOG.debug for returning False in elif.\nHere we put a LOG.error for returning False.","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"1460a68e4d2775245a5b2761c4af9d1199645b66","unresolved":false,"context_lines":[{"line_number":39,"context_line":"kaminario1_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027kaminario_nodedup_substring\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027K2-nodedup\u0027,"},{"line_number":42,"context_line":"               help\u003d\"If volume-type name contains this substring \""},{"line_number":43,"context_line":"                    \"nodedup volume will be created, otherwise \""},{"line_number":44,"context_line":"                    \"dedup volume wil be created. Note: this option is \""},{"line_number":45,"context_line":"                    \"deprecated in favour of \u0027kaminario:thin_prov_type\u0027 in \""},{"line_number":46,"context_line":"                    \"extra-specs and will be removed in the Ocata release.\")]"},{"line_number":47,"context_line":"kaminario2_opts \u003d ["},{"line_number":48,"context_line":"    cfg.BoolOpt(\u0027auto_calc_max_oversubscription_ratio\u0027,"},{"line_number":49,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_fa8b9c1c","line":46,"range":{"start_line":42,"start_character":12,"end_line":46,"end_character":77},"updated":"2016-08-02 19:17:53.000000000","message":"I\u0027m not sure why you\u0027re adding this at all. Type names are freeform, adding meaning to the names is totally broken. Why add something you\u0027re going to break in the next release? We generally avoid anything that breaks existing configs. Just use the right key now.","commit_id":"408e9abfd314b9ee191dc52a29b99f1876c4d7ac"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"b2f8833070e6ccb45144ef837fcb04beb66f2fea","unresolved":false,"context_lines":[{"line_number":39,"context_line":"kaminario1_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027kaminario_nodedup_substring\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027K2-nodedup\u0027,"},{"line_number":42,"context_line":"               help\u003d\"If volume-type name contains this substring \""},{"line_number":43,"context_line":"                    \"nodedup volume will be created, otherwise \""},{"line_number":44,"context_line":"                    \"dedup volume wil be created. Note: this option is \""},{"line_number":45,"context_line":"                    \"deprecated in favour of \u0027kaminario:thin_prov_type\u0027 in \""},{"line_number":46,"context_line":"                    \"extra-specs and will be removed in the Ocata release.\")]"},{"line_number":47,"context_line":"kaminario2_opts \u003d ["},{"line_number":48,"context_line":"    cfg.BoolOpt(\u0027auto_calc_max_oversubscription_ratio\u0027,"},{"line_number":49,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_1578ef8e","line":46,"range":{"start_line":42,"start_character":12,"end_line":46,"end_character":77},"in_reply_to":"bacf61ea_3f307407","updated":"2016-08-03 06:48:31.000000000","message":"Sorry, I somehow messed up rebasing this review and saw a diff that I shouldn\u0027t have done. My bad. Please ignore this comment","commit_id":"408e9abfd314b9ee191dc52a29b99f1876c4d7ac"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"2ced865d1cbd2ec192f8dc54777078819ce95d99","unresolved":false,"context_lines":[{"line_number":39,"context_line":"kaminario1_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027kaminario_nodedup_substring\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027K2-nodedup\u0027,"},{"line_number":42,"context_line":"               help\u003d\"If volume-type name contains this substring \""},{"line_number":43,"context_line":"                    \"nodedup volume will be created, otherwise \""},{"line_number":44,"context_line":"                    \"dedup volume wil be created. Note: this option is \""},{"line_number":45,"context_line":"                    \"deprecated in favour of \u0027kaminario:thin_prov_type\u0027 in \""},{"line_number":46,"context_line":"                    \"extra-specs and will be removed in the Ocata release.\")]"},{"line_number":47,"context_line":"kaminario2_opts \u003d ["},{"line_number":48,"context_line":"    cfg.BoolOpt(\u0027auto_calc_max_oversubscription_ratio\u0027,"},{"line_number":49,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_3f307407","line":46,"range":{"start_line":42,"start_character":12,"end_line":46,"end_character":77},"in_reply_to":"bacf61ea_c116a1f0","updated":"2016-08-03 06:09:27.000000000","message":"Please add a comment to the commit message then - something like \"incorrectly removed kaminario_nodedup_substring in Change I43630dd6f7b9c1d18f59be12626b66f798de2822 - re-adding here until end of deprecation cycle\". \n\nThanks for the explaination.","commit_id":"408e9abfd314b9ee191dc52a29b99f1876c4d7ac"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"0760952254d8049393b5a6f53847ef74cda43f9e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"kaminario1_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027kaminario_nodedup_substring\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027K2-nodedup\u0027,"},{"line_number":42,"context_line":"               help\u003d\"If volume-type name contains this substring \""},{"line_number":43,"context_line":"                    \"nodedup volume will be created, otherwise \""},{"line_number":44,"context_line":"                    \"dedup volume wil be created. Note: this option is \""},{"line_number":45,"context_line":"                    \"deprecated in favour of \u0027kaminario:thin_prov_type\u0027 in \""},{"line_number":46,"context_line":"                    \"extra-specs and will be removed in the Ocata release.\")]"},{"line_number":47,"context_line":"kaminario2_opts \u003d ["},{"line_number":48,"context_line":"    cfg.BoolOpt(\u0027auto_calc_max_oversubscription_ratio\u0027,"},{"line_number":49,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_c116a1f0","line":46,"range":{"start_line":42,"start_character":12,"end_line":46,"end_character":77},"in_reply_to":"bacf61ea_fa8b9c1c","updated":"2016-08-03 04:18:29.000000000","message":"hi Duncan, it was suggested in reviews on\nhttps://review.openstack.org/346540\nto deprecate this option in current release and delete it in Ocata release.\n\nWe have deleted this but after reviews we have added it back.","commit_id":"408e9abfd314b9ee191dc52a29b99f1876c4d7ac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"01eb02a1a7b251a263679d9481ee9acf04ed6ebb","unresolved":false,"context_lines":[{"line_number":822,"context_line":"                self._delete_replication(volume)"},{"line_number":823,"context_line":"                return True"},{"line_number":824,"context_line":"        elif not new_rep_type and not old_rep_type:"},{"line_number":825,"context_line":"            LOG.debug(\"Use \u0027--migration-policy on-demand\u0027 to change \u0027dedup \""},{"line_number":826,"context_line":"                      \"without replication\u003c-\u003enodedup without replication.\")"},{"line_number":827,"context_line":"            return False"},{"line_number":828,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_997c07b7","line":825,"updated":"2016-08-03 13:16:50.000000000","message":"Either remove \u0027 before dedup or add the missing ending \u0027","commit_id":"77494549fecdb89fa10351c03a4e7458323a2382"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"01eb02a1a7b251a263679d9481ee9acf04ed6ebb","unresolved":false,"context_lines":[{"line_number":827,"context_line":"            return False"},{"line_number":828,"context_line":"        else:"},{"line_number":829,"context_line":"            LOG.error(_LE(\u0027Change from type1: %(type1)s to type2: %(type2)s \u0027"},{"line_number":830,"context_line":"                          \u0027does not support directly in K2.\u0027),"},{"line_number":831,"context_line":"                      {\u0027type1\u0027: old_type, \u0027type2\u0027: new_type})"},{"line_number":832,"context_line":"            return False"},{"line_number":833,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_59d60fc4","line":830,"updated":"2016-08-03 13:16:50.000000000","message":"/s/does not support/is not supported","commit_id":"77494549fecdb89fa10351c03a4e7458323a2382"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"16bf04c7368abe26bd38c9f48ac2d142b099ba91","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               help\u003d\"If volume-type name contains this substring \""},{"line_number":43,"context_line":"                    \"nodedup volume will be created, otherwise \""},{"line_number":44,"context_line":"                    \"dedup volume wil be created.\","},{"line_number":45,"context_line":"               deprecated_for_removal\u003dTrue,"},{"line_number":46,"context_line":"               deprecated_reason\u003d\"This option is deprecated in favour of \""},{"line_number":47,"context_line":"                                 \"\u0027kaminario:thin_prov_type\u0027 in extra-specs \""},{"line_number":48,"context_line":"                                 \"and will be removed in the next release.\")]"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_85f2ce98","line":45,"updated":"2016-08-03 16:53:11.000000000","message":"Looks like a release note for the deprecated option was not added in https://review.openstack.org/#/c/346540\n\nPlease add a release note for this deprecated option.\n\nSee http://docs.openstack.org/developer/cinder/devref/releasenotes.html","commit_id":"4b7d9716faae997ac82a4abf6b246394be3018f9"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"b7f5f2d151ae22d68ba1ddd5b619dfd51083c865","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        All other characters are replaced with \u0027_\u0027."},{"line_number":565,"context_line":"        Total characters in initiator host name: 32"},{"line_number":566,"context_line":"        \"\"\""},{"line_number":567,"context_line":"        return re.sub(\u0027[^0-9a-zA-Z-_]\u0027, \u0027_\u0027, connector.get(\u0027host\u0027, \u0027\u0027))[:32]"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    @kaminario_logger"},{"line_number":570,"context_line":"    def get_volume_group_name(self, vid):"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_67004c67","line":567,"updated":"2016-08-04 14:22:41.000000000","message":"This is not a related change and we need a bug report for this. If you are fixing it in this patch, please mention about that in the commit message.","commit_id":"922181218a56bef406a606d880707562248b68d0"}],"releasenotes/notes/deprecated-kaminario_nodedup_substring-659a47acea97ef5a.yaml":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"b7f5f2d151ae22d68ba1ddd5b619dfd51083c865","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Deprecated Kaminario iSCSI and FC Cinder drivers \u0027kaminario_nodedup_substring\u0027 option."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"bacf61ea_07a8701f","line":3,"updated":"2016-08-04 14:22:41.000000000","message":"nit: Please add what is the alternative.","commit_id":"922181218a56bef406a606d880707562248b68d0"}],"releasenotes/notes/kaminario-cinder-driver-ac522bc73e27faad.yaml":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bcab46f65457384da6995c7441682c519aa782e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add retype feature in Kaminario cinder driver."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bacf61ea_bc498062","line":3,"range":{"start_line":3,"start_character":36,"end_line":3,"end_character":49},"updated":"2016-08-01 10:13:25.000000000","message":"nit: there are two drivers.\n\n\"Added retype feature in Kaminario iSCSI and FC Cinder drivers.\"","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"631995c6788e79aaa29781de4aa2f0d4803df889","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add retype feature in Kaminario cinder driver."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"bacf61ea_a022f2a0","line":3,"range":{"start_line":3,"start_character":36,"end_line":3,"end_character":49},"in_reply_to":"bacf61ea_bc498062","updated":"2016-08-01 11:02:20.000000000","message":"Done","commit_id":"320134cc18a9ae9381e62cbd41fe261ef9b34001"}]}
