)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1452960a5cb85dc80575b42785e16668075b0f8e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"On a failed masking view creation, the device was not"},{"line_number":10,"context_line":"being returned to the default storage group, stale"},{"line_number":11,"context_line":"storage groups were not being deleted and stale"},{"line_number":12,"context_line":"initiator groups were not being deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I96a2dac73792558850affee1287742bd3b7bfcf4"},{"line_number":15,"context_line":"Closes-Bug: #1552426"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa7ab95a_8d44bb74","line":12,"updated":"2016-09-01 13:32:08.000000000","message":"Please add a line: This patch fixed this issue.","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"091a4e01fb32888b2f62dc6700ccbf4b40e1e178","unresolved":false,"context_lines":[{"line_number":9,"context_line":"On a failed masking view creation, the device was not"},{"line_number":10,"context_line":"being returned to the default storage group, stale"},{"line_number":11,"context_line":"storage groups were not being deleted and stale"},{"line_number":12,"context_line":"initiator groups were not being deleted."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I96a2dac73792558850affee1287742bd3b7bfcf4"},{"line_number":15,"context_line":"Closes-Bug: #1552426"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa7ab95a_e190eb97","line":12,"in_reply_to":"fa7ab95a_8d44bb74","updated":"2016-09-01 14:53:20.000000000","message":"Will do","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"}],"cinder/tests/unit/volume/drivers/emc/test_emc_vmax.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1452960a5cb85dc80575b42785e16668075b0f8e","unresolved":false,"context_lines":[{"line_number":7798,"context_line":"    def test_check_if_rollback_action_required_v3(self):"},{"line_number":7799,"context_line":"        conn \u003d self.fake_ecom_connection()"},{"line_number":7800,"context_line":"        masking \u003d self.driver.common.masking"},{"line_number":7801,"context_line":"        masking.get_associated_masking_groups_from_device \u003d mock.Mock("},{"line_number":7802,"context_line":"            return_value\u003dself.data.storagegroups)"},{"line_number":7803,"context_line":"        masking.return_volume_to_default_storage_group_v3 \u003d mock.Mock("},{"line_number":7804,"context_line":"            return_value\u003d\u0027Returning volume to default sg\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_0de6ebb3","line":7801,"updated":"2016-09-01 13:32:08.000000000","message":"Please mock the method instead of changing it directly.","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"091a4e01fb32888b2f62dc6700ccbf4b40e1e178","unresolved":false,"context_lines":[{"line_number":7798,"context_line":"    def test_check_if_rollback_action_required_v3(self):"},{"line_number":7799,"context_line":"        conn \u003d self.fake_ecom_connection()"},{"line_number":7800,"context_line":"        masking \u003d self.driver.common.masking"},{"line_number":7801,"context_line":"        masking.get_associated_masking_groups_from_device \u003d mock.Mock("},{"line_number":7802,"context_line":"            return_value\u003dself.data.storagegroups)"},{"line_number":7803,"context_line":"        masking.return_volume_to_default_storage_group_v3 \u003d mock.Mock("},{"line_number":7804,"context_line":"            return_value\u003d\u0027Returning volume to default sg\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_a168a3bb","line":7801,"in_reply_to":"fa7ab95a_0de6ebb3","updated":"2016-09-01 14:53:20.000000000","message":"Sure","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1452960a5cb85dc80575b42785e16668075b0f8e","unresolved":false,"context_lines":[{"line_number":7800,"context_line":"        masking \u003d self.driver.common.masking"},{"line_number":7801,"context_line":"        masking.get_associated_masking_groups_from_device \u003d mock.Mock("},{"line_number":7802,"context_line":"            return_value\u003dself.data.storagegroups)"},{"line_number":7803,"context_line":"        masking.return_volume_to_default_storage_group_v3 \u003d mock.Mock("},{"line_number":7804,"context_line":"            return_value\u003d\u0027Returning volume to default sg\u0027)"},{"line_number":7805,"context_line":"        controllerConfigService \u003d ("},{"line_number":7806,"context_line":"            self.driver.utils.find_controller_configuration_service("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_4dee338c","line":7803,"updated":"2016-09-01 13:32:08.000000000","message":"Same","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1452960a5cb85dc80575b42785e16668075b0f8e","unresolved":false,"context_lines":[{"line_number":7853,"context_line":"         [\u0027defaultStorageGroupInstanceName\u0027]) \u003d (self.data."},{"line_number":7854,"context_line":"                                                 default_sg_instance_name)"},{"line_number":7855,"context_line":"        (self.driver.common."},{"line_number":7856,"context_line":"         utils.add_members_to_masking_group) \u003d mock.Mock(return_value\u003d0)"},{"line_number":7857,"context_line":"        expectedmessage \u003d (_(\"V3 rollback - Volume is not in any storage \""},{"line_number":7858,"context_line":"                             \"group.\"))"},{"line_number":7859,"context_line":"        message \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_cd8963cc","line":7856,"updated":"2016-09-01 13:32:08.000000000","message":"Same","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"091a4e01fb32888b2f62dc6700ccbf4b40e1e178","unresolved":false,"context_lines":[{"line_number":7853,"context_line":"         [\u0027defaultStorageGroupInstanceName\u0027]) \u003d (self.data."},{"line_number":7854,"context_line":"                                                 default_sg_instance_name)"},{"line_number":7855,"context_line":"        (self.driver.common."},{"line_number":7856,"context_line":"         utils.add_members_to_masking_group) \u003d mock.Mock(return_value\u003d0)"},{"line_number":7857,"context_line":"        expectedmessage \u003d (_(\"V3 rollback - Volume is not in any storage \""},{"line_number":7858,"context_line":"                             \"group.\"))"},{"line_number":7859,"context_line":"        message \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_e162abd7","line":7856,"in_reply_to":"fa7ab95a_cd8963cc","updated":"2016-09-01 14:53:20.000000000","message":"Ok","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"}],"cinder/volume/drivers/emc/emc_vmax_masking.py":[{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                self._check_if_rollback_action_for_masking_required("},{"line_number":155,"context_line":"                    conn, rollbackDict)"},{"line_number":156,"context_line":"            if isV3:"},{"line_number":157,"context_line":"                if (maskingViewDict[\u0027slo\u0027] is not None):"},{"line_number":158,"context_line":"                    rollbackDict[\u0027storageSystemName\u0027] \u003d ("},{"line_number":159,"context_line":"                        maskingViewDict[\u0027storageSystemName\u0027])"},{"line_number":160,"context_line":"                    rollbackDict[\u0027slo\u0027] \u003d maskingViewDict[\u0027slo\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_33042216","line":157,"range":{"start_line":157,"start_character":19,"end_line":157,"end_character":55},"updated":"2016-08-20 09:09:31.000000000","message":"() is unnecessary.","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"60dc6af0174acf883c7e55763b65a7d1006c8ecd","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                self._check_if_rollback_action_for_masking_required("},{"line_number":155,"context_line":"                    conn, rollbackDict)"},{"line_number":156,"context_line":"            if isV3:"},{"line_number":157,"context_line":"                if (maskingViewDict[\u0027slo\u0027] is not None):"},{"line_number":158,"context_line":"                    rollbackDict[\u0027storageSystemName\u0027] \u003d ("},{"line_number":159,"context_line":"                        maskingViewDict[\u0027storageSystemName\u0027])"},{"line_number":160,"context_line":"                    rollbackDict[\u0027slo\u0027] \u003d maskingViewDict[\u0027slo\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_ad689c88","line":157,"range":{"start_line":157,"start_character":19,"end_line":157,"end_character":55},"in_reply_to":"1ac06dbe_33042216","updated":"2016-08-21 18:15:29.000000000","message":"Thanks for the feedback, we will fix all of these","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":1277,"context_line":"        message \u003d None"},{"line_number":1278,"context_line":"        # Check if ig has been created. If so, check for other"},{"line_number":1279,"context_line":"        # masking views associated with the ig. If none, remove"},{"line_number":1280,"context_line":"        # initiators and delete ig"},{"line_number":1281,"context_line":"        self._check_ig_rollback("},{"line_number":1282,"context_line":"            conn, rollbackDict[\u0027controllerConfigService\u0027],"},{"line_number":1283,"context_line":"            rollbackDict[\u0027igGroupName\u0027], rollbackDict[\u0027connector\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_ce20859e","line":1280,"range":{"start_line":1280,"start_character":32,"end_line":1280,"end_character":34},"updated":"2016-08-20 09:09:31.000000000","message":"Add . after ig","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"                        rollbackDict[\u0027defaultStorageGroupInstanceName\u0027]):"},{"line_number":1341,"context_line":"                    # Remove it from its current masking view and return it"},{"line_number":1342,"context_line":"                    # to its default masking view if fast is enabled or slo"},{"line_number":1343,"context_line":"                    # is defined"},{"line_number":1344,"context_line":"                    self.remove_and_reset_members("},{"line_number":1345,"context_line":"                        conn,"},{"line_number":1346,"context_line":"                        rollbackDict[\u0027controllerConfigService\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_0e3bbdd2","line":1343,"range":{"start_line":1343,"start_character":25,"end_line":1343,"end_character":32},"updated":"2016-08-20 09:09:31.000000000","message":"Add . after defined","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":1354,"context_line":"                \"Rollback for Volume: %(volumeName)s has failed. \""},{"line_number":1355,"context_line":"                \"Please contact your system administrator to manually return \""},{"line_number":1356,"context_line":"                \"your volume to the default storage group for fast policy/ \""},{"line_number":1357,"context_line":"                \"slo .\")"},{"line_number":1358,"context_line":"                % {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027]})"},{"line_number":1359,"context_line":"            LOG.exception(errorMessage)"},{"line_number":1360,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derrorMessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_4e35b5d8","line":1357,"range":{"start_line":1357,"start_character":20,"end_line":1357,"end_character":21},"updated":"2016-08-20 09:09:31.000000000","message":"extra blank space.","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":1562,"context_line":""},{"line_number":1563,"context_line":"        Check if the initiator group associated with a failed masking"},{"line_number":1564,"context_line":"        view has been created. If so, check for other masking views"},{"line_number":1565,"context_line":"        associated with the ig. If none, remove the initiators and delete ig"},{"line_number":1566,"context_line":""},{"line_number":1567,"context_line":"        :param conn: the ecom connection"},{"line_number":1568,"context_line":"        :param controllerConfigService: controller config service"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_6e523115","line":1565,"range":{"start_line":1565,"start_character":74,"end_line":1565,"end_character":76},"updated":"2016-08-20 09:09:31.000000000","message":"Add . after ig","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"3a7f66d7f7651ba2b97b6ec0ffa691c6fa76ecb7","unresolved":false,"context_lines":[{"line_number":1566,"context_line":""},{"line_number":1567,"context_line":"        :param conn: the ecom connection"},{"line_number":1568,"context_line":"        :param controllerConfigService: controller config service"},{"line_number":1569,"context_line":"        :param igGroupName: initiator group instance name"},{"line_number":1570,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":1571,"context_line":"        :return Status message or None if ig has not been created"},{"line_number":1572,"context_line":"        \"\"\""},{"line_number":1573,"context_line":"        message \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_ae5c2926","line":1570,"range":{"start_line":1569,"start_character":7,"end_line":1570,"end_character":47},"updated":"2016-08-20 09:09:31.000000000","message":"Missing :param connector?","commit_id":"d873eea3622d76da00626b814907af48aff14fa4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1452960a5cb85dc80575b42785e16668075b0f8e","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"    def _check_ig_rollback("},{"line_number":1566,"context_line":"            self, conn, controllerConfigService,"},{"line_number":1567,"context_line":"            igGroupName, connector, extraSpecs):"},{"line_number":1568,"context_line":"        \"\"\"Check if rollback action is required on an initiator group"},{"line_number":1569,"context_line":""},{"line_number":1570,"context_line":"        Check if the initiator group associated with a failed masking"},{"line_number":1571,"context_line":"        view has been created. If so, check for other masking views"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_4d2b93eb","line":1568,"updated":"2016-09-01 13:32:08.000000000","message":"nit: missing period at the end.","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"091a4e01fb32888b2f62dc6700ccbf4b40e1e178","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"    def _check_ig_rollback("},{"line_number":1566,"context_line":"            self, conn, controllerConfigService,"},{"line_number":1567,"context_line":"            igGroupName, connector, extraSpecs):"},{"line_number":1568,"context_line":"        \"\"\"Check if rollback action is required on an initiator group"},{"line_number":1569,"context_line":""},{"line_number":1570,"context_line":"        Check if the initiator group associated with a failed masking"},{"line_number":1571,"context_line":"        view has been created. If so, check for other masking views"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_412fd73d","line":1568,"in_reply_to":"fa7ab95a_4d2b93eb","updated":"2016-09-01 14:53:20.000000000","message":"ok","commit_id":"e0d583fac81b0e8a12396baa9c918fc19c8995f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"69a6197bd6d8a3a8d04a1d10888e4427b6c3ee03","unresolved":false,"context_lines":[{"line_number":1576,"context_line":"        :param igGroupName: initiator group instance name"},{"line_number":1577,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":1578,"context_line":"        :param connector: the connector object"},{"line_number":1579,"context_line":"        :return Status message or None if ig has not been created"},{"line_number":1580,"context_line":"        \"\"\""},{"line_number":1581,"context_line":"        message \u003d None"},{"line_number":1582,"context_line":"        initiatorNames \u003d self._find_initiator_names(conn, connector)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_d4038e40","line":1579,"updated":"2016-09-02 00:45:34.000000000","message":"You didn\u0027t return a status message.  You returned an info message saying \"Searching for …\".\n\nI don\u0027t think you should return anything in this routine.","commit_id":"e87a74ee9d5b8feacfdb321c29a6b6a534b691ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"69a6197bd6d8a3a8d04a1d10888e4427b6c3ee03","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"        :param connector: the connector object"},{"line_number":1579,"context_line":"        :return Status message or None if ig has not been created"},{"line_number":1580,"context_line":"        \"\"\""},{"line_number":1581,"context_line":"        message \u003d None"},{"line_number":1582,"context_line":"        initiatorNames \u003d self._find_initiator_names(conn, connector)"},{"line_number":1583,"context_line":"        foundInitiatorGroupInstanceName \u003d self._find_initiator_masking_group("},{"line_number":1584,"context_line":"            conn, controllerConfigService, initiatorNames)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_949ca60f","line":1581,"updated":"2016-09-02 00:45:34.000000000","message":"Remove this line if you remove the message.","commit_id":"e87a74ee9d5b8feacfdb321c29a6b6a534b691ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"69a6197bd6d8a3a8d04a1d10888e4427b6c3ee03","unresolved":false,"context_lines":[{"line_number":1592,"context_line":"                self._last_volume_delete_initiator_group("},{"line_number":1593,"context_line":"                    conn, controllerConfigService,"},{"line_number":1594,"context_line":"                    foundInitiatorGroupInstanceName, extraSpecs)"},{"line_number":1595,"context_line":"        return message"},{"line_number":1596,"context_line":""},{"line_number":1597,"context_line":"    def _get_port_group_from_masking_view("},{"line_number":1598,"context_line":"            self, conn, maskingViewName, storageSystemName):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_74cd6230","line":1595,"updated":"2016-09-02 00:45:34.000000000","message":"What\u0027s the point of returning a message saying \"Searching for masking views….\"?  This message is not used by the caller either.  I don\u0027t think you should return this message at all.","commit_id":"e87a74ee9d5b8feacfdb321c29a6b6a534b691ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1b63b7b9ccfb978aad9bd9e7b05a64a0c2d8f256","unresolved":false,"context_lines":[{"line_number":1575,"context_line":""},{"line_number":1576,"context_line":"        :param conn: the ecom connection"},{"line_number":1577,"context_line":"        :param controllerConfigService: controller config service"},{"line_number":1578,"context_line":"        :param igGroupName: the initiator group name"},{"line_number":1579,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":1580,"context_line":"        \"\"\""},{"line_number":1581,"context_line":"        initiatorNames \u003d self._find_initiator_names(conn, connector)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da7fb54a_d5087c94","line":1578,"updated":"2016-09-02 16:25:30.000000000","message":"Please add \"connector\" to the param list.","commit_id":"9c3ee1b40af42add039523a69beb49376f9e093a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ec0fcf9ca0b500ba6d61799c8ba1747cf91ca76a","unresolved":false,"context_lines":[{"line_number":1575,"context_line":""},{"line_number":1576,"context_line":"        :param conn: the ecom connection"},{"line_number":1577,"context_line":"        :param controllerConfigService: controller config service"},{"line_number":1578,"context_line":"        :param igGroupName: the initiator group name"},{"line_number":1579,"context_line":"        :param extraSpecs: extra specifications"},{"line_number":1580,"context_line":"        \"\"\""},{"line_number":1581,"context_line":"        initiatorNames \u003d self._find_initiator_names(conn, connector)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_904df474","line":1578,"in_reply_to":"da7fb54a_d5087c94","updated":"2016-09-05 11:32:05.000000000","message":"Will do","commit_id":"9c3ee1b40af42add039523a69beb49376f9e093a"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0c7e68d6a7b5a092279c11a92cb875f9d229d912","unresolved":false,"context_lines":[{"line_number":1311,"context_line":"                    if errorMessage:"},{"line_number":1312,"context_line":"                        LOG.error(errorMessage)"},{"line_number":1313,"context_line":"                    message \u003d (_(\"V3 rollback - Volume is not in any storage \""},{"line_number":1314,"context_line":"                                 \"group.\"))"},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":"                else:"},{"line_number":1317,"context_line":"                    LOG.warning(_LW("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_6db36e4d","line":1314,"updated":"2016-09-08 19:08:00.000000000","message":"Change this message back to \"V3 rollback\".","commit_id":"8b8893d3195ca9ec353a2e9e45c80238c3310e49"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a82bc5bf2362458559a697beed80e476ca070b2f","unresolved":false,"context_lines":[{"line_number":1311,"context_line":"                    if errorMessage:"},{"line_number":1312,"context_line":"                        LOG.error(errorMessage)"},{"line_number":1313,"context_line":"                    message \u003d (_(\"V3 rollback - Volume is not in any storage \""},{"line_number":1314,"context_line":"                                 \"group.\"))"},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":"                else:"},{"line_number":1317,"context_line":"                    LOG.warning(_LW("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a89bdaa_7045e715","line":1314,"in_reply_to":"9a89bdaa_6db36e4d","updated":"2016-09-09 08:52:23.000000000","message":"ok","commit_id":"8b8893d3195ca9ec353a2e9e45c80238c3310e49"}]}
