)]}'
{"cinder/tests/unit/test_storwize_svc.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":3749,"context_line":"        # Make sure the type of replication class is GM/MM"},{"line_number":3750,"context_line":"        self.assertIsInstance(self.driver.replication,"},{"line_number":3751,"context_line":"                              replication.StorwizeSVCReplicationMirroring,"},{"line_number":3752,"context_line":"                              \"The type of the replication instance is not\""},{"line_number":3753,"context_line":"                              \"StorwizeSVCReplicationMirroring\")"},{"line_number":3754,"context_line":""},{"line_number":3755,"context_line":"        with mock.patch.object(self.driver._helpers, \u0027create_vdisk\u0027) as create:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_8049cfd2","line":3752,"updated":"2015-07-17 20:44:50.000000000","message":"Are you supposed to be missing a space at EOL here?","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"}],"cinder/volume/drivers/ibm/storwize_svc/__init__.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":125,"context_line":"storwize_svc_replica_opts \u003d ["},{"line_number":126,"context_line":"    cfg.StrOpt(\u0027replica_storwize_svc_volpool_name\u0027,"},{"line_number":127,"context_line":"               default\u003d\u0027replica_volpool\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027Storage system storage pool for volumes\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027replica_backend_name\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_60636b42","line":128,"updated":"2015-07-17 20:44:50.000000000","message":"\u0027.\u0027 at eol please.","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    cfg.StrOpt(\u0027replica_storwize_svc_volpool_name\u0027,"},{"line_number":127,"context_line":"               default\u003d\u0027replica_volpool\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027Storage system storage pool for volumes\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027replica_backend_name\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027\u0027),"},{"line_number":132,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_00e85f7b","line":129,"updated":"2015-07-17 20:44:50.000000000","message":"Should probably make this \u0027replica_storwize_svc_volpool_name\u0027  for consistency.","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":128,"context_line":"               help\u003d\u0027Storage system storage pool for volumes\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027replica_backend_name\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027\u0027),"},{"line_number":132,"context_line":"]"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_c0db57ec","line":131,"updated":"2015-07-17 20:44:50.000000000","message":"So we will be able to use either a pool on the same backend and/or a pool on a different backend?","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.configuration.append_config_values(storwize_svc_replica_opts)"},{"line_number":167,"context_line":"        self._helpers \u003d storwize_helpers.StorwizeHelpers(self._run_ssh)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        if self.configuration.replica_san_ip:"},{"line_number":170,"context_line":"            self._replica_helpers \u003d storwize_helpers.StorwizeHelpers("},{"line_number":171,"context_line":"                self._replica_run_ssh)"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_60984b1c","line":169,"updated":"2015-07-17 20:44:50.000000000","message":"Where is replica_san_ip coming from?","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"f5189f18188adfd2da0f47747d56523e380bc67d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"storwize_svc_replica_opts \u003d ["},{"line_number":126,"context_line":"    cfg.StrOpt(\u0027replica_storwize_svc_volpool_name\u0027,"},{"line_number":127,"context_line":"               default\u003d\u0027replica_volpool\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027Storage system storage pool for volumes\u0027),"},{"line_number":129,"context_line":"    cfg.StrOpt(\u0027replica_backend_name\u0027,"},{"line_number":130,"context_line":"               default\u003dNone,"},{"line_number":131,"context_line":"               help\u003d\u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_0f78b5c3","line":128,"updated":"2015-07-20 13:51:11.000000000","message":"Missing \".\" at EOL.","commit_id":"c047d282d780ce027dbc66ad7c7b16a8ac3e83b0"}],"cinder/volume/drivers/ibm/storwize_svc/helpers.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":1109,"context_line":"                rc_id \u003d self.ssh.mkrcrelationship(master, aux, system, name,"},{"line_number":1110,"context_line":"                                                  globalmirror)"},{"line_number":1111,"context_line":"            except exception.VolumeBackendAPIException as e:"},{"line_number":1112,"context_line":"                if \u0027CMMVC5959E\u0027 not in e:"},{"line_number":1113,"context_line":"                    raise"},{"line_number":1114,"context_line":"            break"},{"line_number":1115,"context_line":"        self.ssh.startrcrelationship(rc_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_6034cbfa","line":1112,"updated":"2015-07-17 20:44:50.000000000","message":"obviously would need a more helpful error mesage here.","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume[\u0027name\u0027])"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":1129,"context_line":"            LOG.info(_LI(\"Couldnot get remote copy information for volume %s\")"},{"line_number":1130,"context_line":"                     % volume[\u0027name\u0027])"},{"line_number":1131,"context_line":"            return"},{"line_number":1132,"context_line":"        return self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_601b6b81","line":1129,"updated":"2015-07-17 20:44:50.000000000","message":"\u0027Could not\u0027 and need \u0027.\u0027 at EOL.","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"7bfa8317fbe27c68f1a029ee95b3566ff4b3fa19","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"        vol_attrs \u003d self.get_vdisk_attributes(volume[\u0027name\u0027])"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"        if not vol_attrs or not vol_attrs[\u0027RC_name\u0027]:"},{"line_number":1129,"context_line":"            LOG.info(_LI(\"Couldnot get remote copy information for volume %s\")"},{"line_number":1130,"context_line":"                     % volume[\u0027name\u0027])"},{"line_number":1131,"context_line":"            return"},{"line_number":1132,"context_line":"        return self.ssh.lsrcrelationship(vol_attrs[\u0027RC_name\u0027])[0]"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_b4a6b4bf","line":1129,"updated":"2015-07-20 13:24:01.000000000","message":"Space between \"could\" and \"not\" and please add a \".\" at EOL.","commit_id":"c047d282d780ce027dbc66ad7c7b16a8ac3e83b0"}],"cinder/volume/drivers/ibm/storwize_svc/replication.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            rel_info \u003d self._replica_helpers.get_relationship_info(volume)"},{"line_number":291,"context_line":"        except exception.VolumeBackendAPIException as e:"},{"line_number":292,"context_line":"            msg \u003d _(\u0027Fail to get remote copy information for %(volume)s as \u0027"},{"line_number":293,"context_line":"                    \u0027%(err)s\u0027) % {\u0027volume\u0027: volume[\u0027id\u0027], \u0027err\u0027: e}"},{"line_number":294,"context_line":"            LOG.error(msg)"},{"line_number":295,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_aa72aa0f","line":292,"updated":"2015-07-17 20:44:50.000000000","message":"Suggest \" Fail to get remote copy information for %(volume)s.  Error: \"","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        # Wait if the relationship is copying"},{"line_number":298,"context_line":"        if \u0027copying\u0027 in rel_info[\u0027state\u0027]:"},{"line_number":299,"context_line":"            msg \u003d _LE(\u0027Relationship is copying, wait until consistent\u0027)"},{"line_number":300,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        if \u0027disconnected\u0027 in rel_info[\u0027state\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_2a869adb","line":299,"updated":"2015-07-17 20:44:50.000000000","message":"\u0027.\u0027 at EOL","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        model_update \u003d {\u0027replication_status\u0027: replication_status,"},{"line_number":318,"context_line":"                        \u0027host\u0027: host,"},{"line_number":319,"context_line":"                        \u0027metadata\u0027: metadata}"},{"line_number":320,"context_line":"        LOG.debug(\u0027enter: promote_replica for volume %(vol)s on %(host)s.\u0027,"},{"line_number":321,"context_line":"                  {\u0027vol\u0027: volume[\u0027name\u0027], \u0027host\u0027: host})"},{"line_number":322,"context_line":"        return model_update"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_aa494ab9","line":320,"updated":"2015-07-17 20:44:50.000000000","message":"enter -\u003e exit","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        try:"},{"line_number":353,"context_line":"            rel_info \u003d self._helpers.get_relationship_info(volume)"},{"line_number":354,"context_line":"        except exception.VolumeBackendAPIException as e:"},{"line_number":355,"context_line":"            msg \u003d _(\u0027Fail to get remote copy information for %(volume)s as \u0027"},{"line_number":356,"context_line":"                    \u0027%(err)s\u0027) % {\u0027volume\u0027: volume[\u0027id\u0027], \u0027err\u0027: e}"},{"line_number":357,"context_line":"            LOG.error(msg)"},{"line_number":358,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_6aca621c","line":355,"updated":"2015-07-17 20:44:50.000000000","message":"Same comment here as above.","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":411,"context_line":"                   \u0027replication_extended_status\u0027: rc_attrs[\u0027status\u0027]}"},{"line_number":412,"context_line":"        elif \u0027copying\u0027 in rc_attrs[\u0027state\u0027]:"},{"line_number":413,"context_line":"            ret \u003d {\u0027replication_status\u0027: \u0027copying\u0027,"},{"line_number":414,"context_line":"                   \u0027replication_extended_status\u0027: \u0027progress: %s%%\u0027 %"},{"line_number":415,"context_line":"                   rc_attrs[\u0027progress\u0027]}"},{"line_number":416,"context_line":"        elif rc_attrs[\u0027state\u0027] \u003d\u003d \u0027consistent_synchronized\u0027:"},{"line_number":417,"context_line":"            ret \u003d {\u0027replication_status\u0027: \u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_4a951ee2","line":414,"updated":"2015-07-17 20:44:50.000000000","message":"Remove extra %% here or are they supposed to be here?","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e279a86d074f6665beba83a168373d833a6b0ba","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        host \u003d vol_utils.extract_host(volume[\u0027host\u0027], level\u003d\u0027host\u0027)"},{"line_number":434,"context_line":"        replica_backend \u003d self.conf.safe_get(\u0027replica_backend_name\u0027)"},{"line_number":435,"context_line":"        if not replica_backend:"},{"line_number":436,"context_line":"            msg \u003d _LE(\u0027Not configure replica_backend for this backend.\u0027)"},{"line_number":437,"context_line":"            LOG.error(msg)"},{"line_number":438,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":439,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_8a9326fa","line":436,"updated":"2015-07-17 20:44:50.000000000","message":"Suggest \"Replication not enabled for this backend.\"","commit_id":"c0ba488e4994aecc07015e85797b5d9995026ac0"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"f5189f18188adfd2da0f47747d56523e380bc67d","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        if rpo \u003d\u003d \u00270\u0027:"},{"line_number":241,"context_line":"            globalmirror \u003d False"},{"line_number":242,"context_line":"            metadata[\u0027replication_type\u0027: \u0027Metror Mirror\u0027]"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        name \u003d self._helpers.create_relationship(volume[\u0027name\u0027],"},{"line_number":245,"context_line":"                                                 replica_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1a979191","line":242,"updated":"2015-07-20 13:51:11.000000000","message":"Possible misspelled word. Is \"Metror\" supposed to be \"Metro\"?","commit_id":"c047d282d780ce027dbc66ad7c7b16a8ac3e83b0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"7bfa8317fbe27c68f1a029ee95b3566ff4b3fa19","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        # Wait if the relationship is copying"},{"line_number":298,"context_line":"        if \u0027copying\u0027 in rel_info[\u0027state\u0027]:"},{"line_number":299,"context_line":"            msg \u003d _LE(\u0027Relationship is copying, wait until consistent\u0027)"},{"line_number":300,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        if \u0027disconnected\u0027 in rel_info[\u0027state\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_b4e234d4","line":299,"updated":"2015-07-20 13:24:01.000000000","message":"\".\" at EOL","commit_id":"c047d282d780ce027dbc66ad7c7b16a8ac3e83b0"}]}
