)]}'
{"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":13868,"name":"Danny Wilson","email":"daniel.wilson@purestorage.com","username":"dannywilson"},"change_message_id":"9635095a7f74422302cc9be8e521af7f5805799b","unresolved":false,"context_lines":[{"line_number":1588,"context_line":"        self.ecomUseSSL, self.ecomCACert, self.ecomNoVerification \u003d ("},{"line_number":1589,"context_line":"            self.utils.get_ecom_cred_SSL(configurationFile))"},{"line_number":1590,"context_line":"        if self.ecomUseSSL:"},{"line_number":1591,"context_line":"            self.url \u003d (\"https://%(ip)s:%(port)s\""},{"line_number":1592,"context_line":"                        % {\u0027ip\u0027: ip,"},{"line_number":1593,"context_line":"                           \u0027port\u0027: port})"},{"line_number":1594,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_f4331df4","line":1591,"updated":"2015-02-20 08:20:00.000000000","message":"Not sure if this is beyond the scope of this review but you could reduce duplicate code here by creating the %(ip)s:%(port)s string beforehand and then using the if statement to put http or https on the front of it","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8185ae46b3424b2ece3a6345e1fa62b9f08eaa69","unresolved":false,"context_lines":[{"line_number":1588,"context_line":"        self.ecomUseSSL, self.ecomCACert, self.ecomNoVerification \u003d ("},{"line_number":1589,"context_line":"            self.utils.get_ecom_cred_SSL(configurationFile))"},{"line_number":1590,"context_line":"        if self.ecomUseSSL:"},{"line_number":1591,"context_line":"            self.url \u003d (\"https://%(ip)s:%(port)s\""},{"line_number":1592,"context_line":"                        % {\u0027ip\u0027: ip,"},{"line_number":1593,"context_line":"                           \u0027port\u0027: port})"},{"line_number":1594,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_f5cdcd87","line":1591,"in_reply_to":"ba7be1f8_f4331df4","updated":"2015-02-20 15:10:15.000000000","message":"Good suggestion. Will change in the next patch.","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f51042f3caed5e391265cf4b7cc48afeb4226ebe","unresolved":false,"context_lines":[{"line_number":3521,"context_line":"            LOG.info(_LI(\"Target wwns in masking view %(maskingView)s: \""},{"line_number":3522,"context_line":"                     \"%(targetWwns)s.\"),"},{"line_number":3523,"context_line":"                     {\u0027maskingView\u0027: mvInstanceName,"},{"line_number":3524,"context_line":"                      \u0027targetWwns\u0027: six.text_type(targetWwns)})"},{"line_number":3525,"context_line":"        return targetWwns"},{"line_number":3526,"context_line":""},{"line_number":3527,"context_line":"    def get_port_group_from_masking_view(self, maskingViewInstanceName):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_90cac66c","line":3524,"updated":"2015-02-27 18:30:49.000000000","message":"six is not actually needed here, but doesn\u0027t do any harm. The logger will end up running this through six.text_type too, so it\u0027s just redundant.","commit_id":"3685a8690333d4faa9d0aa64d19cf249fe1c1656"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"52ff2403ca831c6a9179886a4356415985fb803d","unresolved":false,"context_lines":[{"line_number":2258,"context_line":"                          \"Replication Service: %(service)s  Operation: 8  \""},{"line_number":2259,"context_line":"                          \"Synchronization: %(syncName)s.\","},{"line_number":2260,"context_line":"                          {\u0027snapshot\u0027: snapshotname,"},{"line_number":2261,"context_line":"                           \u0027service\u0027: repservice,"},{"line_number":2262,"context_line":"                           \u0027syncName\u0027: syncName})"},{"line_number":2263,"context_line":""},{"line_number":2264,"context_line":"                self.provision.delete_clone_relationship("}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_911c856c","line":2261,"updated":"2015-02-27 20:43:19.000000000","message":"why not six.text_type()?","commit_id":"c3d4917d9cfbe03fe40e0c99bd148fa3c526d4bb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33f503c4a36dc2cf9432ed4593f8d0be5affac89","unresolved":false,"context_lines":[{"line_number":2258,"context_line":"                          \"Replication Service: %(service)s  Operation: 8  \""},{"line_number":2259,"context_line":"                          \"Synchronization: %(syncName)s.\","},{"line_number":2260,"context_line":"                          {\u0027snapshot\u0027: snapshotname,"},{"line_number":2261,"context_line":"                           \u0027service\u0027: repservice,"},{"line_number":2262,"context_line":"                           \u0027syncName\u0027: syncName})"},{"line_number":2263,"context_line":""},{"line_number":2264,"context_line":"                self.provision.delete_clone_relationship("}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_f1a5c1b5","line":2261,"in_reply_to":"ba7be1f8_911c856c","updated":"2015-02-27 20:51:19.000000000","message":"six.text_type is not needed for args passed in to the logger. The logger will take care of any unicode conversion/handling.","commit_id":"c3d4917d9cfbe03fe40e0c99bd148fa3c526d4bb"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"52ff2403ca831c6a9179886a4356415985fb803d","unresolved":false,"context_lines":[{"line_number":2259,"context_line":"                          \"Synchronization: %(syncName)s.\","},{"line_number":2260,"context_line":"                          {\u0027snapshot\u0027: snapshotname,"},{"line_number":2261,"context_line":"                           \u0027service\u0027: repservice,"},{"line_number":2262,"context_line":"                           \u0027syncName\u0027: syncName})"},{"line_number":2263,"context_line":""},{"line_number":2264,"context_line":"                self.provision.delete_clone_relationship("},{"line_number":2265,"context_line":"                    self.conn, repservice, syncName, self.extraSpecs, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_312599ab","line":2262,"updated":"2015-02-27 20:43:19.000000000","message":"why not six.text_type()?","commit_id":"c3d4917d9cfbe03fe40e0c99bd148fa3c526d4bb"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1f25be8b91ccb8690f86a18b61b9e637ad58ed67","unresolved":false,"context_lines":[{"line_number":2259,"context_line":"                          \"Synchronization: %(syncName)s.\","},{"line_number":2260,"context_line":"                          {\u0027snapshot\u0027: snapshotname,"},{"line_number":2261,"context_line":"                           \u0027service\u0027: repservice,"},{"line_number":2262,"context_line":"                           \u0027syncName\u0027: syncName})"},{"line_number":2263,"context_line":""},{"line_number":2264,"context_line":"                self.provision.delete_clone_relationship("},{"line_number":2265,"context_line":"                    self.conn, repservice, syncName, self.extraSpecs, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_d1d27d33","line":2262,"in_reply_to":"ba7be1f8_312599ab","updated":"2015-02-27 20:49:10.000000000","message":"six.text_type() doesn\u0027t hurt, but it is also not necessary to add it here. The logger will apply six.text_type() if needed.","commit_id":"c3d4917d9cfbe03fe40e0c99bd148fa3c526d4bb"}],"cinder/volume/drivers/emc/emc_vmax_fast.py":[{"author":{"_account_id":13868,"name":"Danny Wilson","email":"daniel.wilson@purestorage.com","username":"dannywilson"},"change_message_id":"9635095a7f74422302cc9be8e521af7f5805799b","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        assocStorageGroupInstanceName \u003d ("},{"line_number":118,"context_line":"            self.utils.get_storage_group_from_volume(conn, volumeInstanceName))"},{"line_number":119,"context_line":"        defaultSgGroupName \u003d (\"%(prefix)s%(fastPolicyName)s%(postfix)s\""},{"line_number":120,"context_line":"                              % {\u0027prefix\u0027: DEFAULT_SG_PREFIX,"},{"line_number":121,"context_line":"                                 \u0027fastPolicyName\u0027: fastPolicyName,"},{"line_number":122,"context_line":"                                 \u0027postfix\u0027: DEFAULT_SG_POSTFIX})"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_747c8d73","line":119,"updated":"2015-02-20 08:20:00.000000000","message":"Once again, not sure if out of scope for this review but building this string in a helper function would be helpful if this happens again.","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8185ae46b3424b2ece3a6345e1fa62b9f08eaa69","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        assocStorageGroupInstanceName \u003d ("},{"line_number":118,"context_line":"            self.utils.get_storage_group_from_volume(conn, volumeInstanceName))"},{"line_number":119,"context_line":"        defaultSgGroupName \u003d (\"%(prefix)s%(fastPolicyName)s%(postfix)s\""},{"line_number":120,"context_line":"                              % {\u0027prefix\u0027: DEFAULT_SG_PREFIX,"},{"line_number":121,"context_line":"                                 \u0027fastPolicyName\u0027: fastPolicyName,"},{"line_number":122,"context_line":"                                 \u0027postfix\u0027: DEFAULT_SG_POSTFIX})"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_15f50183","line":119,"in_reply_to":"ba7be1f8_747c8d73","updated":"2015-02-20 15:10:15.000000000","message":"Will do.","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"}],"cinder/volume/drivers/emc/emc_vmax_utils.py":[{"author":{"_account_id":13868,"name":"Danny Wilson","email":"daniel.wilson@purestorage.com","username":"dannywilson"},"change_message_id":"9635095a7f74422302cc9be8e521af7f5805799b","unresolved":false,"context_lines":[{"line_number":791,"context_line":""},{"line_number":792,"context_line":"        idarray \u003d poolInstanceId.split(\u0027+\u0027)"},{"line_number":793,"context_line":"        if len(idarray) \u003e 2:"},{"line_number":794,"context_line":"            systemName \u003d (\"%(part1)s+%(part2)s\""},{"line_number":795,"context_line":"                          % {\u0027part1\u0027: idarray[0],"},{"line_number":796,"context_line":"                             \u0027part2\u0027: idarray[1]})"},{"line_number":797,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_94466122","line":794,"updated":"2015-02-20 08:20:00.000000000","message":"Same as above","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8185ae46b3424b2ece3a6345e1fa62b9f08eaa69","unresolved":false,"context_lines":[{"line_number":791,"context_line":""},{"line_number":792,"context_line":"        idarray \u003d poolInstanceId.split(\u0027+\u0027)"},{"line_number":793,"context_line":"        if len(idarray) \u003e 2:"},{"line_number":794,"context_line":"            systemName \u003d (\"%(part1)s+%(part2)s\""},{"line_number":795,"context_line":"                          % {\u0027part1\u0027: idarray[0],"},{"line_number":796,"context_line":"                             \u0027part2\u0027: idarray[1]})"},{"line_number":797,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_d5d609c5","line":794,"in_reply_to":"ba7be1f8_94466122","updated":"2015-02-20 15:10:15.000000000","message":"Will do.","commit_id":"f13c5a3a2e16cb99f9c461b8946fcd978605f5a5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f51042f3caed5e391265cf4b7cc48afeb4226ebe","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        :returns: delta in string H:MM:SS"},{"line_number":1365,"context_line":"        \"\"\""},{"line_number":1366,"context_line":"        delta \u003d endTime - startTime"},{"line_number":1367,"context_line":"        return six.text_type(datetime.timedelta(seconds\u003dint(delta)))"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"    def find_sync_sv_by_target("},{"line_number":1370,"context_line":"            self, conn, storageSystem, target, waitforsync\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_3082fa00","line":1367,"updated":"2015-02-27 18:30:49.000000000","message":"I don\u0027t believe this really matters here since the output from datetime.timedelta couldn\u0027t have any unicode characters as far as I know.","commit_id":"3685a8690333d4faa9d0aa64d19cf249fe1c1656"}]}
