)]}'
{"manila/share/access.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"71bba9a429c1a7b73928dbe95b068048eefb950e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":120,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                driver_rules \u003d add_rules"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            access_keys \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_7faca735","line":122,"range":{"start_line":122,"start_character":16,"end_line":122,"end_character":40},"updated":"2016-11-08 12:52:25.000000000","message":"why re-assign to add_rules here?","commit_id":"df7afea64e6e7132ff468608df39e44aed83d103"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17ef4edca8d6384c63b9f7c9669d0f2f02bc9b17","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":120,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                driver_rules \u003d add_rules"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            access_keys \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_8219bb8a","line":122,"range":{"start_line":122,"start_character":16,"end_line":122,"end_character":40},"in_reply_to":"9a629dbe_7faca735","updated":"2016-11-10 12:40:02.000000000","message":"driver_rules are the rules that the drivers should have. If read-only mode is not supported, then drivers should not have any of these rules besides the rule being added.","commit_id":"df7afea64e6e7132ff468608df39e44aed83d103"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"7bb5a35f6c08fc81d12d011a9d3fff5e9ae384f7","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            if readonly_support:"},{"line_number":114,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":115,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":116,"context_line":"            else:"},{"line_number":117,"context_line":"                driver_rules \u003d add_rules"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        try:"},{"line_number":120,"context_line":"            access_keys \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_5ec91bab","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":40},"updated":"2016-11-28 19:42:59.000000000","message":"Please add comment here.  I guess this is because we can\u0027t do existing rules correctly for migration/RO so we leave them out, but need to add rules -- assuming these are being added just to make migration work.  I think this little else clause has a lot of hidden knowledge.","commit_id":"b76cd49f6331bfee459bbe3aa16c09b769ee2fdb"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"f0ac77bc8cfea3f49fbce26754eb0cd3151ad860","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            if readonly_support:"},{"line_number":114,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":115,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":116,"context_line":"            else:"},{"line_number":117,"context_line":"                driver_rules \u003d add_rules"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        try:"},{"line_number":120,"context_line":"            access_keys \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_3fdfde3a","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":40},"in_reply_to":"5a74a57a_5ec91bab","updated":"2016-11-29 10:54:46.000000000","message":"Done","commit_id":"b76cd49f6331bfee459bbe3aa16c09b769ee2fdb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # NOTE(ganso): If the share instance is the source in a migration,"},{"line_number":110,"context_line":"            # it should have all its rules cast to read-only."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"            readonly_support \u003d self.driver.configuration.safe_get("},{"line_number":113,"context_line":"                \u0027migration_readonly_rules_support\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            # NOTE(ganso): If the backend supports read-only rules, then all"},{"line_number":116,"context_line":"            # rules are cast to read-only here and passed to drivers."},{"line_number":117,"context_line":"            if readonly_support:"},{"line_number":118,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":119,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":120,"context_line":"            # NOTE(ganso): If the backend does not support read-only rules, we"},{"line_number":121,"context_line":"            # will remove all access to the share and have only the access"},{"line_number":122,"context_line":"            # requested by the Data Service for migration as RW."}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_b9914549","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":68},"updated":"2016-11-29 13:25:04.000000000","message":"update_access is invoked even for driver-assisted migrations that support \u0027writable\u0027 and \u0027nondisruptive\u0027 semantics. Most drivers will be able to assist within-vendor migrations; so, if the share\u0027s status is \u0027migrating\u0027, it could also be undergoing a driver assisted migration. So if I have a config option set that says \"migration_readonly_rules_support\", this logic makes the source readonly..","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # NOTE(ganso): If the share instance is the source in a migration,"},{"line_number":110,"context_line":"            # it should have all its rules cast to read-only."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"            readonly_support \u003d self.driver.configuration.safe_get("},{"line_number":113,"context_line":"                \u0027migration_readonly_rules_support\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            # NOTE(ganso): If the backend supports read-only rules, then all"},{"line_number":116,"context_line":"            # rules are cast to read-only here and passed to drivers."},{"line_number":117,"context_line":"            if readonly_support:"},{"line_number":118,"context_line":"                for rule in driver_rules + add_rules:"},{"line_number":119,"context_line":"                    rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":120,"context_line":"            # NOTE(ganso): If the backend does not support read-only rules, we"},{"line_number":121,"context_line":"            # will remove all access to the share and have only the access"},{"line_number":122,"context_line":"            # requested by the Data Service for migration as RW."}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_0122bba2","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":68},"in_reply_to":"5a74a57a_b9914549","updated":"2016-11-29 15:18:02.000000000","message":"In the driver-assisted migration, if writable is True and the driver supports, this method is not invoked. See https://github.com/openstack/manila/blob/6e906bacd9abe2dff64f21aff8c1456ee3d126be/manila/share/manager.py#L743","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"e4ce8f2a41f163ce0e5ec52eaf1e364398141892","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                LOG.debug(\"All previously existing access rules of share \""},{"line_number":128,"context_line":"                          \"instance %s are being removed for migration, as \""},{"line_number":129,"context_line":"                          \"driver does not support read-only mode rules rules\","},{"line_number":130,"context_line":"                          share_instance[\u0027id\u0027])"},{"line_number":131,"context_line":"                driver_rules \u003d add_rules"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_d429558b","line":129,"range":{"start_line":129,"start_character":66,"end_line":129,"end_character":77},"updated":"2016-11-29 18:50:34.000000000","message":"extra rules and missing period.","commit_id":"e5f95a790b5f903414d34d2321c5702e645139dc"}],"manila/share/manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":741,"context_line":"                raise exception.ShareMigrationFailed(reason\u003dmsg)"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"            if not compatibility.get(\u0027writable\u0027):"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"                self.db.share_instance_update_access_status("},{"line_number":746,"context_line":"                    context, src_share_instance[\u0027id\u0027],"},{"line_number":747,"context_line":"                    constants.STATUS_OUT_OF_SYNC)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_8ef6fd5a","line":744,"range":{"start_line":744,"start_character":0,"end_line":744,"end_character":0},"updated":"2016-11-29 13:25:04.000000000","message":"Please add a debug log here that all existing access rules are being cast to read-only on the share.","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                    constants.STATUS_OUT_OF_SYNC)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"                self.access_helper.update_access_rules("},{"line_number":750,"context_line":"                    context, src_share_instance[\u0027id\u0027],"},{"line_number":751,"context_line":"                    share_server\u003dshare_server)"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"            LOG.debug(\"Initiating driver migration for share %s.\","},{"line_number":754,"context_line":"                      share_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_eecf7126","line":751,"range":{"start_line":750,"start_character":20,"end_line":751,"end_character":45},"updated":"2016-11-29 13:25:04.000000000","message":"? pass cast_to_readonly?","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                    constants.STATUS_OUT_OF_SYNC)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"                self.access_helper.update_access_rules("},{"line_number":750,"context_line":"                    context, src_share_instance[\u0027id\u0027],"},{"line_number":751,"context_line":"                    share_server\u003dshare_server)"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"            LOG.debug(\"Initiating driver migration for share %s.\","},{"line_number":754,"context_line":"                      share_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_a17667a1","line":751,"range":{"start_line":750,"start_character":20,"end_line":751,"end_character":45},"in_reply_to":"5a74a57a_eecf7126","updated":"2016-11-29 15:18:02.000000000","message":"in this proposal, this parameter does not exist anymore","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":944,"context_line":"            constants.STATUS_OUT_OF_SYNC)"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"        self.access_helper.update_access_rules("},{"line_number":947,"context_line":"            context, src_share_instance[\u0027id\u0027], share_server\u003dshare_server)"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"        try:"},{"line_number":950,"context_line":"            dest_share_instance \u003d helper.create_instance_and_wait("}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_ce9ab513","line":947,"range":{"start_line":947,"start_character":46,"end_line":947,"end_character":72},"updated":"2016-11-29 13:25:04.000000000","message":"pass cast_to_readonly?","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":944,"context_line":"            constants.STATUS_OUT_OF_SYNC)"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"        self.access_helper.update_access_rules("},{"line_number":947,"context_line":"            context, src_share_instance[\u0027id\u0027], share_server\u003dshare_server)"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"        try:"},{"line_number":950,"context_line":"            dest_share_instance \u003d helper.create_instance_and_wait("}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_216b37b8","line":947,"range":{"start_line":947,"start_character":46,"end_line":947,"end_character":72},"in_reply_to":"5a74a57a_ce9ab513","updated":"2016-11-29 15:18:02.000000000","message":"same as above","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"}],"manila/share/migration.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            LOG.warning(_LW(\"Failed to cleanup new instance during generic\""},{"line_number":132,"context_line":"                        \" migration for share %s.\"), self.share[\u0027id\u0027])"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def cleanup_access_rules(self, share_instance, share_server, driver):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.db.share_instance_update(self.context, share_instance[\u0027id\u0027],"},{"line_number":137,"context_line":"                                      {\u0027status\u0027: constants.STATUS_INACTIVE})"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_b9014507","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":28},"updated":"2016-11-29 13:25:04.000000000","message":"This name is confusing. Cleaning up would mean deleting all access rules. Why not collapse this method into revert_access_rules and just invoke revert_access_rules?","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            LOG.warning(_LW(\"Failed to cleanup new instance during generic\""},{"line_number":132,"context_line":"                        \" migration for share %s.\"), self.share[\u0027id\u0027])"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def cleanup_access_rules(self, share_instance, share_server, driver):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.db.share_instance_update(self.context, share_instance[\u0027id\u0027],"},{"line_number":137,"context_line":"                                      {\u0027status\u0027: constants.STATUS_INACTIVE})"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_a1d5871c","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":28},"in_reply_to":"5a74a57a_b9014507","updated":"2016-11-29 15:18:02.000000000","message":"well, all cleanup methods have been designated as this for the following purposes:\n1) clean up error scenarios, and this case it is in the migration helper file, so it is cleaning up an error\u0027ed migration\n2) they don\u0027t throw exceptions, if cleanup fails, then there is nothing done to cleanup the error caused in the cleanup method","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def cleanup_access_rules(self, share_instance, share_server, driver):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.db.share_instance_update(self.context, share_instance[\u0027id\u0027],"},{"line_number":137,"context_line":"                                      {\u0027status\u0027: constants.STATUS_INACTIVE})"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_99172944","line":136,"range":{"start_line":136,"start_character":16,"end_line":136,"end_character":37},"updated":"2016-11-29 13:25:04.000000000","message":"Why set the status of the source share to \u0027inactive\u0027?","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def cleanup_access_rules(self, share_instance, share_server, driver):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.db.share_instance_update(self.context, share_instance[\u0027id\u0027],"},{"line_number":137,"context_line":"                                      {\u0027status\u0027: constants.STATUS_INACTIVE})"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_01439b13","line":136,"range":{"start_line":136,"start_character":16,"end_line":136,"end_character":37},"in_reply_to":"5a74a57a_99172944","updated":"2016-11-29 15:18:02.000000000","message":"will add a comment to address this. The reason is that we want to restore the rules, and we if do so while the status is \"migrating\" (which normally is the status of the source share instance) then the rules will be cast to read-only. So here it will be changed to inactive for a brief interval. In all occurrences of cleanup_access_rules, the share instance status is changed to available right after.","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"}],"manila/tests/share/test_access.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                         \"_remove_access_rules\", mock.Mock())"},{"line_number":296,"context_line":"        self.mock_object(self.share_access_helper, \"_check_needs_refresh\","},{"line_number":297,"context_line":"                         mock.Mock(return_value\u003dFalse))"},{"line_number":298,"context_line":"        self.mock_object(self.driver.configuration, \u0027safe_get\u0027,"},{"line_number":299,"context_line":"                         mock.Mock(side_effect\u003doverride_conf))"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.share_access_helper.update_access_rules("},{"line_number":302,"context_line":"            self.context, share_instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_79e6cd44","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":62},"updated":"2016-11-29 13:25:04.000000000","message":"use the standard overriding:\n\n   CONF.set_override(\u0027migration_readonly_rules_support\u0027, read_only_support)","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"a63c1806b5d869fe99c1a4670ab82f71b5f6f4e9","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                         \"_remove_access_rules\", mock.Mock())"},{"line_number":296,"context_line":"        self.mock_object(self.share_access_helper, \"_check_needs_refresh\","},{"line_number":297,"context_line":"                         mock.Mock(return_value\u003dFalse))"},{"line_number":298,"context_line":"        self.mock_object(self.driver.configuration, \u0027safe_get\u0027,"},{"line_number":299,"context_line":"                         mock.Mock(side_effect\u003doverride_conf))"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.share_access_helper.update_access_rules("},{"line_number":302,"context_line":"            self.context, share_instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_c977019e","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":62},"in_reply_to":"5a74a57a_614d2fc3","updated":"2016-11-29 16:55:57.000000000","message":"ignore the above comment, that does not work using the current mocks setup for this class.","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                         \"_remove_access_rules\", mock.Mock())"},{"line_number":296,"context_line":"        self.mock_object(self.share_access_helper, \"_check_needs_refresh\","},{"line_number":297,"context_line":"                         mock.Mock(return_value\u003dFalse))"},{"line_number":298,"context_line":"        self.mock_object(self.driver.configuration, \u0027safe_get\u0027,"},{"line_number":299,"context_line":"                         mock.Mock(side_effect\u003doverride_conf))"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.share_access_helper.update_access_rules("},{"line_number":302,"context_line":"            self.context, share_instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_614d2fc3","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":62},"in_reply_to":"5a74a57a_79e6cd44","updated":"2016-11-29 15:18:02.000000000","message":"Done","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"}],"releasenotes/notes/bug-1626523-migration-rw-access-fix-7da3365c7b5b90a1.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5ebb978033de05fb2ede85a11e389d575868a17e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed share remaining with read-write access rules during a"},{"line_number":4,"context_line":"    host-assisted share migration."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a74a57a_59c2f185","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":36},"updated":"2016-11-29 13:25:04.000000000","message":"/","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"4c2212c66161b0ef802385d6d6b2f0ebf4cdc6b2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed share remaining with read-write access rules during a"},{"line_number":4,"context_line":"    host-assisted share migration."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a74a57a_81488bb4","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":36},"in_reply_to":"5a74a57a_59c2f185","updated":"2016-11-29 15:18:02.000000000","message":"Done","commit_id":"e79147b5366ae08f5cb934752049c1f8566bad50"}]}
