)]}'
{"cinder/tests/test_emc_vmax.py":[{"author":{"_account_id":13527,"name":"Bharat Kumar Kobagana","email":"bkobagan@redhat.com","username":"BharatKumar","inactive":true},"change_message_id":"79d92717e449a452d99f02db8f9fe2204365695d","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"    def _enum_targetMaskingGroup(self):"},{"line_number":1036,"context_line":"        targetMaskingGroups \u003d []"},{"line_number":1037,"context_line":"        targetMaskingGroup \u003d {}"},{"line_number":1038,"context_line":"        targetMaskingGroup \u003d CIM_TargetMaskingGroup()"},{"line_number":1039,"context_line":"        targetMaskingGroup[\u0027CreationClassName\u0027] \u003d \u0027CIM_TargetMaskingGroup\u0027"},{"line_number":1040,"context_line":"        targetMaskingGroup[\u0027ElementName\u0027] \u003d \u0027myPortGroup\u0027"},{"line_number":1041,"context_line":"        targetMaskingGroup.path \u003d targetMaskingGroup"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_8f90b296","line":1038,"updated":"2014-12-18 09:18:11.000000000","message":"May I know why, variable \"targetMaskingGroup\" initialized two times with { } and CIM_TargetMaskingGroup()?","commit_id":"db5bcf005df1687009bd8e6dcf2a61a616b87af3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fc329f3eab1112903652b990628701319f30c2ac","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"    def _enum_targetMaskingGroup(self):"},{"line_number":1036,"context_line":"        targetMaskingGroups \u003d []"},{"line_number":1037,"context_line":"        targetMaskingGroup \u003d {}"},{"line_number":1038,"context_line":"        targetMaskingGroup \u003d CIM_TargetMaskingGroup()"},{"line_number":1039,"context_line":"        targetMaskingGroup[\u0027CreationClassName\u0027] \u003d \u0027CIM_TargetMaskingGroup\u0027"},{"line_number":1040,"context_line":"        targetMaskingGroup[\u0027ElementName\u0027] \u003d \u0027myPortGroup\u0027"},{"line_number":1041,"context_line":"        targetMaskingGroup.path \u003d targetMaskingGroup"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_da7cf922","line":1038,"in_reply_to":"3a961159_8f90b296","updated":"2014-12-19 22:58:15.000000000","message":"You are right. It is not necessary. The first one should be removed. Will fix it in the next patch.","commit_id":"db5bcf005df1687009bd8e6dcf2a61a616b87af3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e21f4f221a9167a5695cd66ad312ac94f5d78e06","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"    def _enum_targetMaskingGroup(self):"},{"line_number":1036,"context_line":"        targetMaskingGroups \u003d []"},{"line_number":1037,"context_line":"        targetMaskingGroup \u003d {}"},{"line_number":1038,"context_line":"        targetMaskingGroup \u003d CIM_TargetMaskingGroup()"},{"line_number":1039,"context_line":"        targetMaskingGroup[\u0027CreationClassName\u0027] \u003d \u0027CIM_TargetMaskingGroup\u0027"},{"line_number":1040,"context_line":"        targetMaskingGroup[\u0027ElementName\u0027] \u003d \u0027myPortGroup\u0027"},{"line_number":1041,"context_line":"        targetMaskingGroup.path \u003d targetMaskingGroup"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_e1b81e77","line":1038,"in_reply_to":"3a961159_da7cf922","updated":"2014-12-22 05:21:54.000000000","message":"Done","commit_id":"db5bcf005df1687009bd8e6dcf2a61a616b87af3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"99eb482a18e2a57a48447dbb6999057ae92c19dd","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        emc.appendChild(array)"},{"line_number":2084,"context_line":"        array.appendChild(arraytext)"},{"line_number":2085,"context_line":""},{"line_number":2086,"context_line":"        fastPolicy \u003d doc.createElement(\"FastPolicy\")"},{"line_number":2087,"context_line":"        fastPolicyText \u003d doc.createTextNode(\"GOLD1\")"},{"line_number":2088,"context_line":"        emc.appendChild(fastPolicy)"},{"line_number":2089,"context_line":"        fastPolicy.appendChild(fastPolicyText)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_36911c54","line":2086,"updated":"2015-01-20 07:57:42.000000000","message":"Overall I only see fast policy of \u0027GOLD1\u0027 is tested. Is that enough? Won\u0027t there be other fast policies?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        emc.appendChild(array)"},{"line_number":2084,"context_line":"        array.appendChild(arraytext)"},{"line_number":2085,"context_line":""},{"line_number":2086,"context_line":"        fastPolicy \u003d doc.createElement(\"FastPolicy\")"},{"line_number":2087,"context_line":"        fastPolicyText \u003d doc.createTextNode(\"GOLD1\")"},{"line_number":2088,"context_line":"        emc.appendChild(fastPolicy)"},{"line_number":2089,"context_line":"        fastPolicy.appendChild(fastPolicyText)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_cbee63b5","line":2086,"in_reply_to":"3a961159_36911c54","updated":"2015-01-20 17:24:04.000000000","message":"One is enough. This is specified by user. Only one can be specified for one backend.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"fad5ad886a9d8ca30f362ebcd87f602bceb7b450","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        emc.appendChild(array)"},{"line_number":2084,"context_line":"        array.appendChild(arraytext)"},{"line_number":2085,"context_line":""},{"line_number":2086,"context_line":"        fastPolicy \u003d doc.createElement(\"FastPolicy\")"},{"line_number":2087,"context_line":"        fastPolicyText \u003d doc.createTextNode(\"GOLD1\")"},{"line_number":2088,"context_line":"        emc.appendChild(fastPolicy)"},{"line_number":2089,"context_line":"        fastPolicy.appendChild(fastPolicyText)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a930d6b_ba1cc4c2","line":2086,"in_reply_to":"3a961159_cbee63b5","updated":"2015-01-23 12:03:44.000000000","message":"Thanks, Xing. That\u0027s OK.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"}],"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                      % {\u0027vol\u0027: volumeName})"},{"line_number":329,"context_line":"            if rollbackDict[\u0027fastPolicyName\u0027] is not None:"},{"line_number":330,"context_line":"                (self.masking"},{"line_number":331,"context_line":"                    ._check_if_rollback_action_for_masking_required("},{"line_number":332,"context_line":"                        self.conn, rollbackDict))"},{"line_number":333,"context_line":"            exception_message \u003d (\"Error Attaching volume %(vol)s.\""},{"line_number":334,"context_line":"                                 % {\u0027vol\u0027: volumeName})"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_34d75bf0","line":331,"updated":"2015-01-20 04:55:34.000000000","message":"Access private member?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                      % {\u0027vol\u0027: volumeName})"},{"line_number":329,"context_line":"            if rollbackDict[\u0027fastPolicyName\u0027] is not None:"},{"line_number":330,"context_line":"                (self.masking"},{"line_number":331,"context_line":"                    ._check_if_rollback_action_for_masking_required("},{"line_number":332,"context_line":"                        self.conn, rollbackDict))"},{"line_number":333,"context_line":"            exception_message \u003d (\"Error Attaching volume %(vol)s.\""},{"line_number":334,"context_line":"                                 % {\u0027vol\u0027: volumeName})"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_0b0f8b8c","line":331,"in_reply_to":"3a961159_34d75bf0","updated":"2015-01-20 17:24:04.000000000","message":"Good catch. Should be changed to public method.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"}],"cinder/volume/drivers/emc/emc_vmax_masking.py":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"3de18a2d6c4bbaf7e71a2c64e9450fc3c798eb77","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :returns: maskingViewInstanceName, storageGroupInstanceName,"},{"line_number":137,"context_line":"                  errorMessage"},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        storageSystemName \u003d maskingViewDict[\u0027storageSystemName\u0027]"},{"line_number":140,"context_line":"        maskingViewName \u003d maskingViewDict[\u0027maskingViewName\u0027]"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        maskingViewInstanceName \u003d self._find_masking_view("}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_dbb3aae7","line":139,"updated":"2014-12-27 07:07:36.000000000","message":"Great work here but I think the variable names doesn\u0027t follow pep8 variable naming convention.","commit_id":"6e40d3f3f2226440b2c43843c46c1c4a619b945d"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"b3627313df8741ec301d9a3df17fc3f449accab1","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :returns: maskingViewInstanceName, storageGroupInstanceName,"},{"line_number":137,"context_line":"                  errorMessage"},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        storageSystemName \u003d maskingViewDict[\u0027storageSystemName\u0027]"},{"line_number":140,"context_line":"        maskingViewName \u003d maskingViewDict[\u0027maskingViewName\u0027]"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        maskingViewInstanceName \u003d self._find_masking_view("}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_79fab744","line":139,"in_reply_to":"3a961159_b6db4c20","updated":"2014-12-29 07:40:51.000000000","message":"It is true that everywhere in this driver camel style is used. It would be nice for a thorough name refactoring, but I know the effort. It is good to have another patch for it.","commit_id":"6e40d3f3f2226440b2c43843c46c1c4a619b945d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"939935a8f709c41b245649baa47f885cc414a595","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :returns: maskingViewInstanceName, storageGroupInstanceName,"},{"line_number":137,"context_line":"                  errorMessage"},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        storageSystemName \u003d maskingViewDict[\u0027storageSystemName\u0027]"},{"line_number":140,"context_line":"        maskingViewName \u003d maskingViewDict[\u0027maskingViewName\u0027]"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        maskingViewInstanceName \u003d self._find_masking_view("}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_b6db4c20","line":139,"in_reply_to":"3a961159_dbb3aae7","updated":"2014-12-29 04:48:06.000000000","message":"This naming style is throughout the files in this driver. If I change this one place, it will be inconsistent with other places. So I\u0027d rather keep the consistency within this driver.\n\nQuote the following from the pep8 style guide https://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds :\n\n\"A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is most important.\"","commit_id":"6e40d3f3f2226440b2c43843c46c1c4a619b945d"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                        % {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":120,"context_line":"                           \u0027volumeName\u0027: volumeName})"},{"line_number":121,"context_line":"                    LOG.error(exceptionMessage)"},{"line_number":122,"context_line":"                    raise"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"                portGroupInstanceName \u003d self._get_port_group_instance_name("},{"line_number":125,"context_line":"                    conn, controllerConfigService, pgGroupName)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_4fde14dc","side":"PARENT","line":122,"updated":"2015-01-20 04:55:34.000000000","message":"What exception is it trying to raise?","commit_id":"09b1ff209172299bf372efe08482bf6b8316817e"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            # We must make sure that volume is returned to default storage"},{"line_number":72,"context_line":"            # group if anything goes wrong."},{"line_number":73,"context_line":"            fastPolicyName \u003d maskingViewDict[\u0027fastPolicy\u0027]"},{"line_number":74,"context_line":"            # if FAST is enabled remove the volume from the default SG"},{"line_number":75,"context_line":"            if fastPolicyName is not None:"},{"line_number":76,"context_line":"                defaultStorageGroupInstanceName \u003d ("},{"line_number":77,"context_line":"                    self._get_and_remove_from_storage_group_v2("}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_2f1c68c2","line":74,"updated":"2015-01-20 04:55:34.000000000","message":"Capitalize the first letter of \u0027if\u0027?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            # We must make sure that volume is returned to default storage"},{"line_number":72,"context_line":"            # group if anything goes wrong."},{"line_number":73,"context_line":"            fastPolicyName \u003d maskingViewDict[\u0027fastPolicy\u0027]"},{"line_number":74,"context_line":"            # if FAST is enabled remove the volume from the default SG"},{"line_number":75,"context_line":"            if fastPolicyName is not None:"},{"line_number":76,"context_line":"                defaultStorageGroupInstanceName \u003d ("},{"line_number":77,"context_line":"                    self._get_and_remove_from_storage_group_v2("}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_ab667753","line":74,"in_reply_to":"3a961159_2f1c68c2","updated":"2015-01-20 17:24:04.000000000","message":"Sure.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                        volumeName, fastPolicyName))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Validate new or existing masking view"},{"line_number":83,"context_line":"        # return the storage group so we can add the volume to it."},{"line_number":84,"context_line":"        maskingViewInstanceName, storageGroupInstanceName, errorMessage \u003d ("},{"line_number":85,"context_line":"            self._validate_masking_view(conn, maskingViewDict,"},{"line_number":86,"context_line":"                                        defaultStorageGroupInstanceName))"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_4f70d408","line":83,"updated":"2015-01-20 04:55:34.000000000","message":"Capitalize the first letter and add a \u0027.\u0027 to the previous sentence?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                        volumeName, fastPolicyName))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Validate new or existing masking view"},{"line_number":83,"context_line":"        # return the storage group so we can add the volume to it."},{"line_number":84,"context_line":"        maskingViewInstanceName, storageGroupInstanceName, errorMessage \u003d ("},{"line_number":85,"context_line":"            self._validate_masking_view(conn, maskingViewDict,"},{"line_number":86,"context_line":"                                        defaultStorageGroupInstanceName))"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_6b5c8f7e","line":83,"in_reply_to":"3a961159_4f70d408","updated":"2015-01-20 17:24:04.000000000","message":"Ok","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            exceptionMessage \u003d (_("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \")"},{"line_number":323,"context_line":"                % {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        return portGroupInstanceName, exceptionMessage"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_cfb124e2","line":324,"updated":"2015-01-20 04:55:34.000000000","message":"It is a check_xxx method. It is perfect for it to tell true or false, but deciding something is an error should not be what check_xxx is doing. Maybe change the method name to validate_xxx?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2972aa63f54caff07ce590d1f31a9f96dbcfc8f0","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            exceptionMessage \u003d (_("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \")"},{"line_number":323,"context_line":"                % {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        return portGroupInstanceName, exceptionMessage"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a930d6b_7a509c5e","line":324,"in_reply_to":"3a961159_b7e1749d","updated":"2015-01-23 12:07:02.000000000","message":"Get your point. That\u0027s OK.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            exceptionMessage \u003d (_("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \")"},{"line_number":323,"context_line":"                % {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        return portGroupInstanceName, exceptionMessage"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_b7e1749d","line":324,"in_reply_to":"3a961159_cfb124e2","updated":"2015-01-20 17:24:04.000000000","message":"I don\u0027t see a problem naming it \"check\". \"check\" means examine, inspect, or investigate.  It does not need to be True or False only.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":930,"context_line":"            defaultStorageGroupInstanceName):"},{"line_number":931,"context_line":"        \"\"\"Gets the storage group instance name."},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        If fastPolicy name is None"},{"line_number":934,"context_line":"        then NON FAST is assumed.  If it is a valid fastPolicy name"},{"line_number":935,"context_line":"        then associate the new storage group with the fast policy."},{"line_number":936,"context_line":"        If we are using an existing storage group then we must check that"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_2fed48f1","line":933,"updated":"2015-01-20 04:55:34.000000000","message":"This line is shorter. You might move part of the next line here if you like.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":930,"context_line":"            defaultStorageGroupInstanceName):"},{"line_number":931,"context_line":"        \"\"\"Gets the storage group instance name."},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        If fastPolicy name is None"},{"line_number":934,"context_line":"        then NON FAST is assumed.  If it is a valid fastPolicy name"},{"line_number":935,"context_line":"        then associate the new storage group with the fast policy."},{"line_number":936,"context_line":"        If we are using an existing storage group then we must check that"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_97a9d827","line":933,"in_reply_to":"3a961159_2fed48f1","updated":"2015-01-20 17:24:04.000000000","message":"Ok.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":937,"context_line":"        it is associated with the correct fast policy"},{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        :param conn: the connection to the ecom server"},{"line_number":940,"context_line":"        :param maskingViewDict - the masking view dictionary"},{"line_number":941,"context_line":"        :param defaultStorageGroupInstanceName: default storage group instance"},{"line_number":942,"context_line":"                                                name (can be None for Non FAST)"},{"line_number":943,"context_line":"        :returns: instance name storageGroupInstanceName"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_cfde843e","line":940,"updated":"2015-01-20 04:55:34.000000000","message":"Use \u0027:\u0027 instead of \u0027-\u0027?","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"489ba8d9b80333517aacb94f6ddc4b9f7f9fdc7c","unresolved":false,"context_lines":[{"line_number":937,"context_line":"        it is associated with the correct fast policy"},{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        :param conn: the connection to the ecom server"},{"line_number":940,"context_line":"        :param maskingViewDict - the masking view dictionary"},{"line_number":941,"context_line":"        :param defaultStorageGroupInstanceName: default storage group instance"},{"line_number":942,"context_line":"                                                name (can be None for Non FAST)"},{"line_number":943,"context_line":"        :returns: instance name storageGroupInstanceName"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_b7a6d452","line":940,"in_reply_to":"3a961159_cfde843e","updated":"2015-01-20 17:24:04.000000000","message":"Yes","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"        \"\"\""},{"line_number":1141,"context_line":"        foundInitiatorMaskingGroupInstanceName \u003d None"},{"line_number":1142,"context_line":"        foundView \u003d self._find_masking_view("},{"line_number":1143,"context_line":"            conn, maskingViewName, storageSystemName)"},{"line_number":1144,"context_line":"        if foundView is not None:"},{"line_number":1145,"context_line":"            groups \u003d conn.AssociatorNames("},{"line_number":1146,"context_line":"                foundView,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_0f196c23","line":1143,"updated":"2015-01-20 04:55:34.000000000","message":"You can also change here like 1309 if you like :-)","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"                conn, maskingViewName, storageSystemName))"},{"line_number":1187,"context_line":""},{"line_number":1188,"context_line":"        if (foundInitiatorGroupFromConnector !\u003d"},{"line_number":1189,"context_line":"                foundInitiatorGroupFromMaskingView):"},{"line_number":1190,"context_line":"            if foundInitiatorGroupFromMaskingView is not None:"},{"line_number":1191,"context_line":"                maskingViewInstanceName \u003d self._find_masking_view("},{"line_number":1192,"context_line":"                    conn, maskingViewName, storageSystemName)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_4f137401","line":1189,"updated":"2015-01-20 04:55:34.000000000","message":"You can also change here like 1309 if you like.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"852aca5308415663edd805ef125c23d9dce4725c","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"                    self._get_storage_group_from_masking_view("},{"line_number":1211,"context_line":"                        conn, maskingViewName, storageSystemName))"},{"line_number":1212,"context_line":"                portGroupInstanceName \u003d self._get_port_group_from_masking_view("},{"line_number":1213,"context_line":"                    conn, maskingViewName, storageSystemName)"},{"line_number":1214,"context_line":"                if (foundInitiatorGroupFromConnector is not None and"},{"line_number":1215,"context_line":"                        storageGroupInstanceName is not None and"},{"line_number":1216,"context_line":"                        portGroupInstanceName is not None):"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_2f1628f3","line":1213,"updated":"2015-01-20 04:55:34.000000000","message":"You can also change here like 1309 if you like.","commit_id":"b0eb0c9a68cc9f153f7d3aeb1301aefe1b911567"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        LOG.debug("},{"line_number":89,"context_line":"            \"The masking view in the attach operation is \""},{"line_number":90,"context_line":"            \"%(maskingViewInstanceName)s. \""},{"line_number":91,"context_line":"            % {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if not errorMessage:"},{"line_number":94,"context_line":"            # Only after the masking view has been validated, add the volume"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_da7a66f0","line":91,"updated":"2015-01-29 16:49:09.000000000","message":"% -\u003e ,","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            self._get_storage_group_instance_name("},{"line_number":254,"context_line":"                conn, maskingViewDict, storageGroupInstanceName))"},{"line_number":255,"context_line":"        if storageGroupInstanceName is None:"},{"line_number":256,"context_line":"            exceptionMessage \u003d (_("},{"line_number":257,"context_line":"                \"Cannot get or create a storage group: %(sgGroupName)s\""},{"line_number":258,"context_line":"                \" for volume %(volumeName)s \")"},{"line_number":259,"context_line":"                % {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_78218ab3","line":256,"updated":"2015-01-29 15:15:58.000000000","message":"It says exception message, but it\u0027s really an error message. Also, you need to use _LE marker","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            self._get_storage_group_instance_name("},{"line_number":254,"context_line":"                conn, maskingViewDict, storageGroupInstanceName))"},{"line_number":255,"context_line":"        if storageGroupInstanceName is None:"},{"line_number":256,"context_line":"            exceptionMessage \u003d (_("},{"line_number":257,"context_line":"                \"Cannot get or create a storage group: %(sgGroupName)s\""},{"line_number":258,"context_line":"                \" for volume %(volumeName)s \")"},{"line_number":259,"context_line":"                % {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_daefc685","line":256,"in_reply_to":"fa81d914_78218ab3","updated":"2015-01-29 16:49:09.000000000","message":"Good catch. Will rename exceptionMessage to msg and add _LE marker. Also change % to \",\".","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":280,"context_line":"                conn, maskingViewInstanceName))"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if sgFromMvInstanceName is None:"},{"line_number":283,"context_line":"            exceptionMessage \u003d (_("},{"line_number":284,"context_line":"                \"Cannot get storage group: %(sgGroupName)s \""},{"line_number":285,"context_line":"                \"from masking view %(maskingViewInstanceName)s. \")"},{"line_number":286,"context_line":"                % {\u0027sgGroupName\u0027: sgGroupName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_4b96ae4d","line":283,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":280,"context_line":"                conn, maskingViewInstanceName))"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        if sgFromMvInstanceName is None:"},{"line_number":283,"context_line":"            exceptionMessage \u003d (_("},{"line_number":284,"context_line":"                \"Cannot get storage group: %(sgGroupName)s \""},{"line_number":285,"context_line":"                \"from masking view %(maskingViewInstanceName)s. \")"},{"line_number":286,"context_line":"                % {\u0027sgGroupName\u0027: sgGroupName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_1aa15e47","line":283,"in_reply_to":"fa81d914_4b96ae4d","updated":"2015-01-29 16:49:09.000000000","message":"You are right.  Same as above.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        portGroupInstanceName \u003d self._get_port_group_instance_name("},{"line_number":319,"context_line":"            conn, controllerConfigService, pgGroupName)"},{"line_number":320,"context_line":"        if portGroupInstanceName is None:"},{"line_number":321,"context_line":"            exceptionMessage \u003d (_("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \")"},{"line_number":323,"context_line":"                % {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_ab9baa70","line":321,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        portGroupInstanceName \u003d self._get_port_group_instance_name("},{"line_number":319,"context_line":"            conn, controllerConfigService, pgGroupName)"},{"line_number":320,"context_line":"        if portGroupInstanceName is None:"},{"line_number":321,"context_line":"            exceptionMessage \u003d (_("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \")"},{"line_number":323,"context_line":"                % {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_1a6f9efe","line":321,"in_reply_to":"fa81d914_ab9baa70","updated":"2015-01-29 16:49:09.000000000","message":"Yes, same as above.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                conn, controllerConfigService, igGroupName, connector,"},{"line_number":344,"context_line":"                storageSystemName))"},{"line_number":345,"context_line":"        if initiatorGroupInstanceName is None:"},{"line_number":346,"context_line":"            exceptionMessage \u003d (_("},{"line_number":347,"context_line":"                \"Cannot get or create initiator group: \""},{"line_number":348,"context_line":"                \"%(igGroupName)s. \")"},{"line_number":349,"context_line":"                % {\u0027igGroupName\u0027: igGroupName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_8b77c639","line":346,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                conn, controllerConfigService, igGroupName, connector,"},{"line_number":344,"context_line":"                storageSystemName))"},{"line_number":345,"context_line":"        if initiatorGroupInstanceName is None:"},{"line_number":346,"context_line":"            exceptionMessage \u003d (_("},{"line_number":347,"context_line":"                \"Cannot get or create initiator group: \""},{"line_number":348,"context_line":"                \"%(igGroupName)s. \")"},{"line_number":349,"context_line":"                % {\u0027igGroupName\u0027: igGroupName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_ba7db2b3","line":346,"in_reply_to":"fa81d914_8b77c639","updated":"2015-01-29 16:49:09.000000000","message":"Yes, same as above.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        if not self._verify_initiator_group_from_masking_view("},{"line_number":371,"context_line":"                conn, controllerConfigService, maskingViewName,"},{"line_number":372,"context_line":"                connector, storageSystemName, igGroupName):"},{"line_number":373,"context_line":"            exceptionMessage \u003d (_("},{"line_number":374,"context_line":"                \"Unable to verify initiator group: %(igGroupName)s \""},{"line_number":375,"context_line":"                \"in masking view %(maskingViewName)s. \")"},{"line_number":376,"context_line":"                % {\u0027igGroupName\u0027: igGroupName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_cb90de45","line":373,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        if not self._verify_initiator_group_from_masking_view("},{"line_number":371,"context_line":"                conn, controllerConfigService, maskingViewName,"},{"line_number":372,"context_line":"                connector, storageSystemName, igGroupName):"},{"line_number":373,"context_line":"            exceptionMessage \u003d (_("},{"line_number":374,"context_line":"                \"Unable to verify initiator group: %(igGroupName)s \""},{"line_number":375,"context_line":"                \"in masking view %(maskingViewName)s. \")"},{"line_number":376,"context_line":"                % {\u0027igGroupName\u0027: igGroupName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_5a5f5641","line":373,"in_reply_to":"fa81d914_cb90de45","updated":"2015-01-29 16:49:09.000000000","message":"Yes, same as above.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                storageGroupInstanceName, portGroupInstanceName,"},{"line_number":399,"context_line":"                initiatorGroupInstanceName))"},{"line_number":400,"context_line":"        if maskingViewInstanceName is None:"},{"line_number":401,"context_line":"            exceptionMessage \u003d (_("},{"line_number":402,"context_line":"                \"Cannot create masking view: %(maskingViewName)s. \")"},{"line_number":403,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewName})"},{"line_number":404,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_8baee683","line":401,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                storageGroupInstanceName, portGroupInstanceName,"},{"line_number":399,"context_line":"                initiatorGroupInstanceName))"},{"line_number":400,"context_line":"        if maskingViewInstanceName is None:"},{"line_number":401,"context_line":"            exceptionMessage \u003d (_("},{"line_number":402,"context_line":"                \"Cannot create masking view: %(maskingViewName)s. \")"},{"line_number":403,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewName})"},{"line_number":404,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_da198689","line":401,"in_reply_to":"fa81d914_8baee683","updated":"2015-01-29 16:49:09.000000000","message":"Yes, same as above.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        if self._is_volume_in_storage_group("},{"line_number":423,"context_line":"                conn, storageGroupInstanceName,"},{"line_number":424,"context_line":"                volumeInstance):"},{"line_number":425,"context_line":"            LOG.warn(_("},{"line_number":426,"context_line":"                \"Volume: %(volumeName)s is already part \""},{"line_number":427,"context_line":"                \"of storage group %(sgGroupName)s \")"},{"line_number":428,"context_line":"                % {\u0027volumeName\u0027: volumeName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_aba9ea7c","line":425,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LW marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        if self._is_volume_in_storage_group("},{"line_number":423,"context_line":"                conn, storageGroupInstanceName,"},{"line_number":424,"context_line":"                volumeInstance):"},{"line_number":425,"context_line":"            LOG.warn(_("},{"line_number":426,"context_line":"                \"Volume: %(volumeName)s is already part \""},{"line_number":427,"context_line":"                \"of storage group %(sgGroupName)s \")"},{"line_number":428,"context_line":"                % {\u0027volumeName\u0027: volumeName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_9a070e1c","line":425,"in_reply_to":"fa81d914_aba9ea7c","updated":"2015-01-29 16:49:09.000000000","message":"You are right.  Also change % to \",\".","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":435,"context_line":"            if not self._is_volume_in_storage_group("},{"line_number":436,"context_line":"                    conn, storageGroupInstanceName,"},{"line_number":437,"context_line":"                    volumeInstance):"},{"line_number":438,"context_line":"                exceptionMessage \u003d (_("},{"line_number":439,"context_line":"                    \"Volume: %(volumeName)s was not added \""},{"line_number":440,"context_line":"                    \"to storage group %(sgGroupName)s. \")"},{"line_number":441,"context_line":"                    % {\u0027volumeName\u0027: volumeName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_4bcb0e53","line":438,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LI marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":435,"context_line":"            if not self._is_volume_in_storage_group("},{"line_number":436,"context_line":"                    conn, storageGroupInstanceName,"},{"line_number":437,"context_line":"                    volumeInstance):"},{"line_number":438,"context_line":"                exceptionMessage \u003d (_("},{"line_number":439,"context_line":"                    \"Volume: %(volumeName)s was not added \""},{"line_number":440,"context_line":"                    \"to storage group %(sgGroupName)s. \")"},{"line_number":441,"context_line":"                    % {\u0027volumeName\u0027: volumeName,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_dc2a637d","line":438,"in_reply_to":"fa81d914_4bcb0e53","updated":"2015-01-29 16:49:09.000000000","message":"_LE.  % -\u003e \",\".  Rename exceptionMessage to msg.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                conn, controllerConfigService, volumeInstanceName,"},{"line_number":460,"context_line":"                volumeName, fastPolicyName))"},{"line_number":461,"context_line":"        if defaultStorageGroupInstanceName is None:"},{"line_number":462,"context_line":"            exceptionMessage \u003d (_("},{"line_number":463,"context_line":"                \"Cannot get the default storage group for FAST policy: \""},{"line_number":464,"context_line":"                \"%(fastPolicyName)s. \")"},{"line_number":465,"context_line":"                % {\u0027fastPolicyName\u0027: fastPolicyName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_ebe122d1","line":462,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                conn, controllerConfigService, volumeInstanceName,"},{"line_number":460,"context_line":"                volumeName, fastPolicyName))"},{"line_number":461,"context_line":"        if defaultStorageGroupInstanceName is None:"},{"line_number":462,"context_line":"            exceptionMessage \u003d (_("},{"line_number":463,"context_line":"                \"Cannot get the default storage group for FAST policy: \""},{"line_number":464,"context_line":"                \"%(fastPolicyName)s. \")"},{"line_number":465,"context_line":"                % {\u0027fastPolicyName\u0027: fastPolicyName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_fc580734","line":462,"in_reply_to":"fa81d914_ebe122d1","updated":"2015-01-29 16:49:09.000000000","message":"This one does not need _LE because it also goes to the VolumeBackendAPIException below.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"9d83a6afae8fdc956866ffc5568cf74e07206534","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                conn, controllerConfigService, volumeInstanceName,"},{"line_number":473,"context_line":"                volumeName, fastPolicyName))"},{"line_number":474,"context_line":"        if retStorageGroupInstanceName is None:"},{"line_number":475,"context_line":"            exceptionMessage \u003d (_("},{"line_number":476,"context_line":"                \"Failed to remove volume %(volumeName)s from default SG: \""},{"line_number":477,"context_line":"                \"%(volumeName)s. \")"},{"line_number":478,"context_line":"                % {\u0027volumeName\u0027: volumeName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_abd72aec","line":475,"updated":"2015-01-29 15:15:58.000000000","message":"Need _LE marker here","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c66d94693e704f0ac38a5314e6daa2aaad86b8c3","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                conn, controllerConfigService, volumeInstanceName,"},{"line_number":473,"context_line":"                volumeName, fastPolicyName))"},{"line_number":474,"context_line":"        if retStorageGroupInstanceName is None:"},{"line_number":475,"context_line":"            exceptionMessage \u003d (_("},{"line_number":476,"context_line":"                \"Failed to remove volume %(volumeName)s from default SG: \""},{"line_number":477,"context_line":"                \"%(volumeName)s. \")"},{"line_number":478,"context_line":"                % {\u0027volumeName\u0027: volumeName})"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa81d914_dc86e364","line":475,"in_reply_to":"fa81d914_abd72aec","updated":"2015-01-29 16:49:09.000000000","message":"Same here. We don\u0027t need _LE because it also goes to the exception below.","commit_id":"620ded8b847dd6ac455ed3553e7b07b16f0c1377"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        LOG.debug("},{"line_number":89,"context_line":"            \"The masking view in the attach operation is \""},{"line_number":90,"context_line":"            \"%(maskingViewInstanceName)s. \""},{"line_number":91,"context_line":"            % {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if not errorMessage:"},{"line_number":94,"context_line":"            # Only after the masking view has been validated, add the volume"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_0b624bd8","line":91,"updated":"2015-02-01 03:05:47.000000000","message":"% -\u003e ,","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                \" for volume %(volumeName)s \"),"},{"line_number":259,"context_line":"                {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"},{"line_number":260,"context_line":"                 \u0027volumeName\u0027: maskingViewDict[\u0027volumeName\u0027]})"},{"line_number":261,"context_line":"            LOG.error(msg)"},{"line_number":262,"context_line":"        return storageGroupInstanceName, msg"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def _check_existing_storage_group("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_6b790793","line":261,"updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                \"from masking view %(maskingViewInstanceName)s. \"),"},{"line_number":286,"context_line":"                {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":287,"context_line":"                 \u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":288,"context_line":"            LOG.error(msg)"},{"line_number":289,"context_line":"        return sgFromMvInstanceName, msg"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_storage_group_from_masking_view_instance("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_20f1eecd","line":288,"updated":"2015-01-31 22:21:13.000000000","message":"Are you sure this is going to work as expected? I did a quick test and it didn\u0027t format the string. I think you can do the msg \u003d _LE(\u0027\u0027...\") first, but then pass the arg dict separately in the LOG.error() call.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                \"from masking view %(maskingViewInstanceName)s. \"),"},{"line_number":286,"context_line":"                {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":287,"context_line":"                 \u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":288,"context_line":"            LOG.error(msg)"},{"line_number":289,"context_line":"        return sgFromMvInstanceName, msg"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _get_storage_group_from_masking_view_instance("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_ab73ffaf","line":288,"in_reply_to":"da86d52c_20f1eecd","updated":"2015-02-01 03:05:47.000000000","message":"Sean, you are right. This won\u0027t format correctly.\n\nAfter looking this over, I realized that we need to return \"msg\" on line 289 and eventually this \"msg\" will be part of an exception. So we should use this format:\n\nmsg \u003d (_(\".....\" % .....)).\n\nWe can\u0027t use \",\" as the msg won\u0027t be formatted correctly with \",\".  \"%\" is needed.\n\nWe should add a comment here to explain that msg will be part of an exception later on and therefore this format (_(\"......\" % ....)) is needed.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            conn, controllerConfigService, pgGroupName)"},{"line_number":320,"context_line":"        if portGroupInstanceName is None:"},{"line_number":321,"context_line":"            msg \u003d (_LE("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \"),"},{"line_number":323,"context_line":"                {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(msg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_40eee2ed","line":322,"updated":"2015-01-31 22:21:13.000000000","message":"Same as above re: the arguments for string formatting. Don\u0027t think those can be assigned to the msg variable.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            conn, controllerConfigService, pgGroupName)"},{"line_number":320,"context_line":"        if portGroupInstanceName is None:"},{"line_number":321,"context_line":"            msg \u003d (_LE("},{"line_number":322,"context_line":"                \"Cannot get port group: %(pgGroupName)s. \"),"},{"line_number":323,"context_line":"                {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":324,"context_line":"            LOG.error(msg)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_4b828353","line":322,"in_reply_to":"da86d52c_40eee2ed","updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        if initiatorGroupInstanceName is None:"},{"line_number":346,"context_line":"            msg \u003d (_LE("},{"line_number":347,"context_line":"                \"Cannot get or create initiator group: \""},{"line_number":348,"context_line":"                \"%(igGroupName)s. \"),"},{"line_number":349,"context_line":"                {\u0027igGroupName\u0027: igGroupName})"},{"line_number":350,"context_line":"            LOG.error(msg)"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_60ba06e3","line":348,"updated":"2015-01-31 22:21:13.000000000","message":"Same","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        if initiatorGroupInstanceName is None:"},{"line_number":346,"context_line":"            msg \u003d (_LE("},{"line_number":347,"context_line":"                \"Cannot get or create initiator group: \""},{"line_number":348,"context_line":"                \"%(igGroupName)s. \"),"},{"line_number":349,"context_line":"                {\u0027igGroupName\u0027: igGroupName})"},{"line_number":350,"context_line":"            LOG.error(msg)"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_8b7c7b74","line":348,"in_reply_to":"da86d52c_60ba06e3","updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":373,"context_line":"            msg \u003d (_LE("},{"line_number":374,"context_line":"                \"Unable to verify initiator group: %(igGroupName)s \""},{"line_number":375,"context_line":"                \"in masking view %(maskingViewName)s. \"),"},{"line_number":376,"context_line":"                {\u0027igGroupName\u0027: igGroupName,"},{"line_number":377,"context_line":"                 \u0027maskingViewName\u0027: maskingViewName})"},{"line_number":378,"context_line":"            LOG.error(msg)"},{"line_number":379,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_80bffacf","line":376,"updated":"2015-01-31 22:21:13.000000000","message":"Same.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":373,"context_line":"            msg \u003d (_LE("},{"line_number":374,"context_line":"                \"Unable to verify initiator group: %(igGroupName)s \""},{"line_number":375,"context_line":"                \"in masking view %(maskingViewName)s. \"),"},{"line_number":376,"context_line":"                {\u0027igGroupName\u0027: igGroupName,"},{"line_number":377,"context_line":"                 \u0027maskingViewName\u0027: maskingViewName})"},{"line_number":378,"context_line":"            LOG.error(msg)"},{"line_number":379,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_ab813f4c","line":376,"in_reply_to":"da86d52c_80bffacf","updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                initiatorGroupInstanceName))"},{"line_number":400,"context_line":"        if maskingViewInstanceName is None:"},{"line_number":401,"context_line":"            msg \u003d (_("},{"line_number":402,"context_line":"                \"Cannot create masking view: %(maskingViewName)s. \"),"},{"line_number":403,"context_line":"                {\u0027maskingViewName\u0027: maskingViewName})"},{"line_number":404,"context_line":"            LOG.error(msg)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_a0b4fef2","line":402,"updated":"2015-01-31 22:21:13.000000000","message":"Same.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                initiatorGroupInstanceName))"},{"line_number":400,"context_line":"        if maskingViewInstanceName is None:"},{"line_number":401,"context_line":"            msg \u003d (_("},{"line_number":402,"context_line":"                \"Cannot create masking view: %(maskingViewName)s. \"),"},{"line_number":403,"context_line":"                {\u0027maskingViewName\u0027: maskingViewName})"},{"line_number":404,"context_line":"            LOG.error(msg)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_cb959389","line":402,"in_reply_to":"da86d52c_a0b4fef2","updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":437,"context_line":"                    volumeInstance):"},{"line_number":438,"context_line":"                msg \u003d (_LE("},{"line_number":439,"context_line":"                    \"Volume: %(volumeName)s was not added \""},{"line_number":440,"context_line":"                    \"to storage group %(sgGroupName)s. \"),"},{"line_number":441,"context_line":"                    {\u0027volumeName\u0027: volumeName,"},{"line_number":442,"context_line":"                     \u0027sgGroupName\u0027: sgGroupName})"},{"line_number":443,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_c0b9f2ea","line":440,"updated":"2015-01-31 22:21:13.000000000","message":"Same.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":437,"context_line":"                    volumeInstance):"},{"line_number":438,"context_line":"                msg \u003d (_LE("},{"line_number":439,"context_line":"                    \"Volume: %(volumeName)s was not added \""},{"line_number":440,"context_line":"                    \"to storage group %(sgGroupName)s. \"),"},{"line_number":441,"context_line":"                    {\u0027volumeName\u0027: volumeName,"},{"line_number":442,"context_line":"                     \u0027sgGroupName\u0027: sgGroupName})"},{"line_number":443,"context_line":"                LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_eb92579e","line":440,"in_reply_to":"da86d52c_c0b9f2ea","updated":"2015-02-01 03:05:47.000000000","message":"Same as line 288.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b7b9ffa9fa93c33b0a7b32f5e9cbf4a6cf239ae8","unresolved":false,"context_lines":[{"line_number":583,"context_line":"        if foundStorageGroupInstanceName is None:"},{"line_number":584,"context_line":"            LOG.error(_LE("},{"line_number":585,"context_line":"                \"Cannot get storage Group from job : %(storageGroupName)s. \")"},{"line_number":586,"context_line":"                % {\u0027storageGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027]})"},{"line_number":587,"context_line":"            return failedRet"},{"line_number":588,"context_line":"        else:"},{"line_number":589,"context_line":"            LOG.info(_LI("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_00cb0a73","line":586,"updated":"2015-01-31 22:21:13.000000000","message":"These next few can be switched from % to , since they are then args to LOG.x().","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":583,"context_line":"        if foundStorageGroupInstanceName is None:"},{"line_number":584,"context_line":"            LOG.error(_LE("},{"line_number":585,"context_line":"                \"Cannot get storage Group from job : %(storageGroupName)s. \")"},{"line_number":586,"context_line":"                % {\u0027storageGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027]})"},{"line_number":587,"context_line":"            return failedRet"},{"line_number":588,"context_line":"        else:"},{"line_number":589,"context_line":"            LOG.info(_LI("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_4be9a319","line":586,"in_reply_to":"da86d52c_00cb0a73","updated":"2015-02-01 03:05:47.000000000","message":"You are right.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        else:"},{"line_number":589,"context_line":"            LOG.info(_LI("},{"line_number":590,"context_line":"                \"Created new storage group: %(storageGroupName)s \")"},{"line_number":591,"context_line":"                % {\u0027storageGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027]})"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"        if (maskingViewDict[\u0027fastPolicy\u0027] is not None and"},{"line_number":594,"context_line":"                defaultStorageGroupInstanceName is not None):"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_6bee6724","line":591,"updated":"2015-02-01 03:05:47.000000000","message":"% -\u003e ,","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":603,"context_line":"                    \"Cannot add and verify tier policy association for storage\""},{"line_number":604,"context_line":"                    \" group : %(storageGroupName)s to FAST policy : \""},{"line_number":605,"context_line":"                    \"%(fastPolicyName)s. \")"},{"line_number":606,"context_line":"                    % {\u0027storageGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"},{"line_number":607,"context_line":"                       \u0027fastPolicyName\u0027: maskingViewDict[\u0027fastPolicy\u0027]})"},{"line_number":608,"context_line":"                return failedRet"},{"line_number":609,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_8bf39b09","line":606,"updated":"2015-02-01 03:05:47.000000000","message":"% -\u003e ,","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":797,"context_line":"            storageId \u003d hardwareIdInstance[\u0027StorageID\u0027]"},{"line_number":798,"context_line":"            for initiatorName in initiatorNames:"},{"line_number":799,"context_line":"                LOG.debug(\"The storage Id is : %(storageId)s \""},{"line_number":800,"context_line":"                          % {\u0027storageId\u0027: storageId.lower()})"},{"line_number":801,"context_line":"                LOG.debug(\"The initiatorName is : %(initiatorName)s \""},{"line_number":802,"context_line":"                          % {\u0027initiatorName\u0027: initiatorName.lower()})"},{"line_number":803,"context_line":"                if storageId.lower() \u003d\u003d initiatorName.lower():"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_abf85fe6","line":800,"updated":"2015-02-01 03:05:47.000000000","message":"% -\u003e ,","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":799,"context_line":"                LOG.debug(\"The storage Id is : %(storageId)s \""},{"line_number":800,"context_line":"                          % {\u0027storageId\u0027: storageId.lower()})"},{"line_number":801,"context_line":"                LOG.debug(\"The initiatorName is : %(initiatorName)s \""},{"line_number":802,"context_line":"                          % {\u0027initiatorName\u0027: initiatorName.lower()})"},{"line_number":803,"context_line":"                if storageId.lower() \u003d\u003d initiatorName.lower():"},{"line_number":804,"context_line":"                    # Check that the found hardwareId has been deleted."},{"line_number":805,"context_line":"                    # If it has, we don\u0027t want to add it to the list."}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_cbdcb377","line":802,"updated":"2015-02-01 03:05:47.000000000","message":"% -\u003e ,","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"                infoMessage \u003d (_("},{"line_number":1062,"context_line":"                    \"Performing rollback on Volume: %(volumeName)s \""},{"line_number":1063,"context_line":"                    \"To return it to the default storage group for FAST policy\""},{"line_number":1064,"context_line":"                    \" %(fastPolicyName)s. \")"},{"line_number":1065,"context_line":"                    % {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1066,"context_line":"                       \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1067,"context_line":"                LOG.warning(_LW(\"No storage group found. %s\"), infoMessage)"}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_2be46f3a","line":1064,"updated":"2015-02-01 03:05:47.000000000","message":"Remove extra space after period.","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"                    \" %(fastPolicyName)s. \")"},{"line_number":1065,"context_line":"                    % {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1066,"context_line":"                       \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1067,"context_line":"                LOG.warning(_LW(\"No storage group found. %s\"), infoMessage)"},{"line_number":1068,"context_line":"                assocDefaultStorageGroupName \u003d ("},{"line_number":1069,"context_line":"                    self.fast"},{"line_number":1070,"context_line":"                    .add_volume_to_default_storage_group_for_fast_policy("}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_8bcabb9f","line":1067,"updated":"2015-02-01 03:05:47.000000000","message":"LOG.warning(_LW(\"No storage group found. Performing rollback on Volume .....\"), .....)","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dc95ef9febc1b24d8fa2fe2327ef8b87c2beec54","unresolved":false,"context_lines":[{"line_number":1081,"context_line":"                        \"get the volume re-added manually \")"},{"line_number":1082,"context_line":"                        % {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1083,"context_line":"                           \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1084,"context_line":"                    LOG.error(errorMsg)"},{"line_number":1085,"context_line":"            if len(foundStorageGroupInstanceName) \u003e 0:"},{"line_number":1086,"context_line":"                errorMsg \u003d (_("},{"line_number":1087,"context_line":"                    \"The storage group found is \""}],"source_content_type":"text/x-python","patch_set":15,"id":"da86d52c_abcf7faf","line":1084,"updated":"2015-02-01 03:05:47.000000000","message":"LOG.error(_LE(.....), ......)","commit_id":"fcef4a3550189a5de4d869559a684ff520bb6fcf"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                \"Failed to get, create or add volume %(volumeName)s \""},{"line_number":119,"context_line":"                \"to masking view %(maskingViewName)s. \""},{"line_number":120,"context_line":"                \"The error message received was %(errorMessage)s. \")"},{"line_number":121,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewName,"},{"line_number":122,"context_line":"                   \u0027volumeName\u0027: volumeName,"},{"line_number":123,"context_line":"                   \u0027errorMessage\u0027: errorMessage})"},{"line_number":124,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_a454b221","line":121,"updated":"2015-02-03 17:00:37.000000000","message":"we should use comma instead of % here","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"14898dfdffa55dcb9a9b3b2838ae1885a72a623b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                \"Failed to get, create or add volume %(volumeName)s \""},{"line_number":119,"context_line":"                \"to masking view %(maskingViewName)s. \""},{"line_number":120,"context_line":"                \"The error message received was %(errorMessage)s. \")"},{"line_number":121,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewName,"},{"line_number":122,"context_line":"                   \u0027volumeName\u0027: volumeName,"},{"line_number":123,"context_line":"                   \u0027errorMessage\u0027: errorMessage})"},{"line_number":124,"context_line":"            LOG.error(exceptionMessage)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_6f9453e2","line":121,"in_reply_to":"da86d52c_a454b221","updated":"2015-02-03 17:14:26.000000000","message":"This has to be % as we are formatting the message and make it part of the exception.","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                               defaultStorageGroupInstanceName):"},{"line_number":131,"context_line":"        \"\"\"Validate all the individual pieces of the masking view."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        :param conn - the ecom connection"},{"line_number":134,"context_line":"        :param maskingViewDict - the masking view dictionary"},{"line_number":135,"context_line":"        :param defaultStorageGroupInstanceName - the default SG"},{"line_number":136,"context_line":"        :returns: maskingViewInstanceName, storageGroupInstanceName,"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_0f0e7734","line":133,"updated":"2015-02-03 17:00:37.000000000","message":"I don\u0027t think the documentation format is correct here. Not sure how it passed the doc tests","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"14898dfdffa55dcb9a9b3b2838ae1885a72a623b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                               defaultStorageGroupInstanceName):"},{"line_number":131,"context_line":"        \"\"\"Validate all the individual pieces of the masking view."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        :param conn - the ecom connection"},{"line_number":134,"context_line":"        :param maskingViewDict - the masking view dictionary"},{"line_number":135,"context_line":"        :param defaultStorageGroupInstanceName - the default SG"},{"line_number":136,"context_line":"        :returns: maskingViewInstanceName, storageGroupInstanceName,"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_0f403755","line":133,"in_reply_to":"da86d52c_0f0e7734","updated":"2015-02-03 17:14:26.000000000","message":"What do you think should be the correct documentation format?","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            # This may be used in exception hence _ instead of _LE"},{"line_number":257,"context_line":"            msg \u003d (_("},{"line_number":258,"context_line":"                \"Cannot get or create a storage group: %(sgGroupName)s\""},{"line_number":259,"context_line":"                \" for volume %(volumeName)s \") %"},{"line_number":260,"context_line":"                {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"},{"line_number":261,"context_line":"                 \u0027volumeName\u0027: maskingViewDict[\u0027volumeName\u0027]})"},{"line_number":262,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_cf78df91","line":259,"updated":"2015-02-03 17:00:37.000000000","message":"we should use comma instead of % here","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"14898dfdffa55dcb9a9b3b2838ae1885a72a623b","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            # This may be used in exception hence _ instead of _LE"},{"line_number":257,"context_line":"            msg \u003d (_("},{"line_number":258,"context_line":"                \"Cannot get or create a storage group: %(sgGroupName)s\""},{"line_number":259,"context_line":"                \" for volume %(volumeName)s \") %"},{"line_number":260,"context_line":"                {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027],"},{"line_number":261,"context_line":"                 \u0027volumeName\u0027: maskingViewDict[\u0027volumeName\u0027]})"},{"line_number":262,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_aa2719b5","line":259,"in_reply_to":"da86d52c_cf78df91","updated":"2015-02-03 17:14:26.000000000","message":"This msg is returned and used later in an exception.  So it has to be %.","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            # This may be used in exception hence _ instead of _LE"},{"line_number":285,"context_line":"            msg \u003d (_("},{"line_number":286,"context_line":"                \"Cannot get storage group: %(sgGroupName)s \""},{"line_number":287,"context_line":"                \"from masking view %(maskingViewInstanceName)s.\") %"},{"line_number":288,"context_line":"                {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":289,"context_line":"                 \u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":290,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_6f6373dc","line":287,"updated":"2015-02-03 17:00:37.000000000","message":"we should use comma instead of % here","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                \"from masking view %(maskingViewInstanceName)s.\") %"},{"line_number":288,"context_line":"                {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":289,"context_line":"                 \u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":290,"context_line":"            LOG.error(msg)"},{"line_number":291,"context_line":"        return sgFromMvInstanceName, msg"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _get_storage_group_from_masking_view_instance("}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_cf861f65","line":290,"updated":"2015-02-03 17:00:37.000000000","message":"We\u0027re only logging the error here, so we should use the _LE marker here","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"14898dfdffa55dcb9a9b3b2838ae1885a72a623b","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                \"from masking view %(maskingViewInstanceName)s.\") %"},{"line_number":288,"context_line":"                {\u0027sgGroupName\u0027: sgGroupName,"},{"line_number":289,"context_line":"                 \u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":290,"context_line":"            LOG.error(msg)"},{"line_number":291,"context_line":"        return sgFromMvInstanceName, msg"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _get_storage_group_from_masking_view_instance("}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_4a3dbdba","line":290,"in_reply_to":"da86d52c_cf861f65","updated":"2015-02-03 17:14:26.000000000","message":"We returned the msg on line 291 to be used later in an exception, so it has to be %.","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        if portGroupInstanceName is None:"},{"line_number":323,"context_line":"            # This may be used in exception hence _ instead of _LE"},{"line_number":324,"context_line":"            msg \u003d (_("},{"line_number":325,"context_line":"                \"Cannot get port group: %(pgGroupName)s.\") %"},{"line_number":326,"context_line":"                {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":327,"context_line":"            LOG.error(msg)"},{"line_number":328,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_4fd94f82","line":325,"updated":"2015-02-03 17:00:37.000000000","message":"s/%/,/","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            msg \u003d (_("},{"line_number":325,"context_line":"                \"Cannot get port group: %(pgGroupName)s.\") %"},{"line_number":326,"context_line":"                {\u0027pgGroupName\u0027: pgGroupName})"},{"line_number":327,"context_line":"            LOG.error(msg)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        return portGroupInstanceName, msg"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_2fdedb6d","line":327,"updated":"2015-02-03 17:00:37.000000000","message":"We\u0027re only logging the error here, so we should use the _LE marker here","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":351,"context_line":"                \"Cannot get or create initiator group: \""},{"line_number":352,"context_line":"                \"%(igGroupName)s.\") %"},{"line_number":353,"context_line":"                {\u0027igGroupName\u0027: igGroupName})"},{"line_number":354,"context_line":"            LOG.error(msg)"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        return initiatorGroupInstanceName, msg"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_2fc5fb8d","line":354,"updated":"2015-02-03 17:00:37.000000000","message":"same two comments as above","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                \"in masking view %(maskingViewName)s.\") %"},{"line_number":381,"context_line":"                {\u0027igGroupName\u0027: igGroupName,"},{"line_number":382,"context_line":"                 \u0027maskingViewName\u0027: maskingViewName})"},{"line_number":383,"context_line":"            LOG.error(msg)"},{"line_number":384,"context_line":"        return msg"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _check_masking_view("}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_6fbff3fb","line":383,"updated":"2015-02-03 17:00:37.000000000","message":"ditto","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            msg \u003d (_("},{"line_number":408,"context_line":"                \"Cannot create masking view: %(maskingViewName)s. \") %"},{"line_number":409,"context_line":"                {\u0027maskingViewName\u0027: maskingViewName})"},{"line_number":410,"context_line":"            LOG.error(msg)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        return maskingViewInstanceName, msg"},{"line_number":413,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_0f467723","line":410,"updated":"2015-02-03 17:00:37.000000000","message":"ditto","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                    \"to storage group %(sgGroupName)s.\") %"},{"line_number":448,"context_line":"                    {\u0027volumeName\u0027: volumeName,"},{"line_number":449,"context_line":"                     \u0027sgGroupName\u0027: sgGroupName})"},{"line_number":450,"context_line":"                LOG.error(msg)"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        return msg"},{"line_number":453,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_2f4c1b42","line":450,"updated":"2015-02-03 17:00:37.000000000","message":"ditto","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":469,"context_line":"            exceptionMessage \u003d (_("},{"line_number":470,"context_line":"                \"Cannot get the default storage group for FAST policy: \""},{"line_number":471,"context_line":"                \"%(fastPolicyName)s. \")"},{"line_number":472,"context_line":"                % {\u0027fastPolicyName\u0027: fastPolicyName})"},{"line_number":473,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":474,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":475,"context_line":"                data\u003dexceptionMessage)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_8f16e7ef","line":472,"updated":"2015-02-03 17:00:37.000000000","message":"comma vs %","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":482,"context_line":"            exceptionMessage \u003d (_("},{"line_number":483,"context_line":"                \"Failed to remove volume %(volumeName)s from default SG: \""},{"line_number":484,"context_line":"                \"%(volumeName)s. \")"},{"line_number":485,"context_line":"                % {\u0027volumeName\u0027: volumeName})"},{"line_number":486,"context_line":"            LOG.error(exceptionMessage)"},{"line_number":487,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":488,"context_line":"                data\u003dexceptionMessage)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_ef276362","line":485,"updated":"2015-02-03 17:00:37.000000000","message":"comma instead of %","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":956,"context_line":"                errorMessage \u003d (_("},{"line_number":957,"context_line":"                    \"Cannot create or find an storage group with name \""},{"line_number":958,"context_line":"                    \"%(sgGroupName)s\")"},{"line_number":959,"context_line":"                    % {\u0027sgGroupName\u0027: maskingViewDict[\u0027sgGroupName\u0027]})"},{"line_number":960,"context_line":"                LOG.error(errorMessage)"},{"line_number":961,"context_line":"                raise exception.VolumeBackendAPIException(data\u003derrorMessage)"},{"line_number":962,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_afa2cbab","line":959,"updated":"2015-02-03 17:00:37.000000000","message":"% vs ,","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e522e9c3f429c7ef2f0cfa4c3b4f2c2cedee7247","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"                \"Please contact your system administrator to manually return \""},{"line_number":1111,"context_line":"                \"your volume to the default storage group for fast policy \""},{"line_number":1112,"context_line":"                \"%(fastPolicyName)s failed \")"},{"line_number":1113,"context_line":"                % {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1114,"context_line":"                   \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1115,"context_line":"            LOG.error(errorMessage)"},{"line_number":1116,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derrorMessage)"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_0f875710","line":1113,"updated":"2015-02-03 17:00:37.000000000","message":"% vs ,","commit_id":"e62eaccf7a74a786ce92f22620f840eaeb145d1f"}]}
