)]}'
{"cinder/tests/unit/test_hp3par.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a45ccb0c06a10eedae51719ac7bf01b0c65932ba","unresolved":false,"context_lines":[{"line_number":3843,"context_line":"        }]"},{"line_number":3844,"context_line":""},{"line_number":3845,"context_line":"        with mock.patch.object(hpcommon.HP3PARCommon,"},{"line_number":3846,"context_line":"                               \u0027_create_client\u0027) as mock_create_client:"},{"line_number":3847,"context_line":"            mock_create_client.return_value \u003d mock_client"},{"line_number":3848,"context_line":"            result \u003d self.driver.initialize_connection("},{"line_number":3849,"context_line":"                self.volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_d858d533","line":3846,"updated":"2015-08-12 03:39:32.000000000","message":"Suggest you use decorator to replace with mock....","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"45ba518234ae0610fb4fb1cd2ae1e0ebd4565a37","unresolved":false,"context_lines":[{"line_number":3843,"context_line":"        }]"},{"line_number":3844,"context_line":""},{"line_number":3845,"context_line":"        with mock.patch.object(hpcommon.HP3PARCommon,"},{"line_number":3846,"context_line":"                               \u0027_create_client\u0027) as mock_create_client:"},{"line_number":3847,"context_line":"            mock_create_client.return_value \u003d mock_client"},{"line_number":3848,"context_line":"            result \u003d self.driver.initialize_connection("},{"line_number":3849,"context_line":"                self.volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_42234fbd","line":3846,"in_reply_to":"1a4dcd0f_d858d533","updated":"2015-08-12 18:10:51.000000000","message":"The reason the _create_client function is mocked here is because it gets called when self.setup_driver() is called (line 3814 for this test). The mocking is done because whenever a 3PAR driver API is called a new client is created. Instead of creating new ones we just reuse the initial one we created at the top.  By using the @mock.patch.object decorator it causes errors during setup_driver so using with was simpler.\n\nThe with statement is also used in many of the tests throughout this file so it seems best to keep it this way for consistency.","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a45ccb0c06a10eedae51719ac7bf01b0c65932ba","unresolved":false,"context_lines":[{"line_number":3870,"context_line":"                expected +"},{"line_number":3871,"context_line":"                self.standard_logout)"},{"line_number":3872,"context_line":""},{"line_number":3873,"context_line":"            self.assertDictMatch(result, self.multipath_properties)"},{"line_number":3874,"context_line":""},{"line_number":3875,"context_line":"    def test_initialize_connection_multipath_existing_nsp(self):"},{"line_number":3876,"context_line":"        # setup_mock_client drive with default configuration"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_f89b51c7","line":3873,"updated":"2015-08-12 03:39:32.000000000","message":"Please put self.multipath_properties as the first param.","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"45ba518234ae0610fb4fb1cd2ae1e0ebd4565a37","unresolved":false,"context_lines":[{"line_number":3870,"context_line":"                expected +"},{"line_number":3871,"context_line":"                self.standard_logout)"},{"line_number":3872,"context_line":""},{"line_number":3873,"context_line":"            self.assertDictMatch(result, self.multipath_properties)"},{"line_number":3874,"context_line":""},{"line_number":3875,"context_line":"    def test_initialize_connection_multipath_existing_nsp(self):"},{"line_number":3876,"context_line":"        # setup_mock_client drive with default configuration"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_ef04c418","line":3873,"in_reply_to":"1a4dcd0f_f89b51c7","updated":"2015-08-12 18:10:51.000000000","message":"Done","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a45ccb0c06a10eedae51719ac7bf01b0c65932ba","unresolved":false,"context_lines":[{"line_number":3902,"context_line":"        }]"},{"line_number":3903,"context_line":""},{"line_number":3904,"context_line":"        with mock.patch.object(hpcommon.HP3PARCommon,"},{"line_number":3905,"context_line":"                               \u0027_create_client\u0027) as mock_create_client:"},{"line_number":3906,"context_line":"            mock_create_client.return_value \u003d mock_client"},{"line_number":3907,"context_line":"            result \u003d self.driver.initialize_connection("},{"line_number":3908,"context_line":"                self.volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_7842e13f","line":3905,"updated":"2015-08-12 03:39:32.000000000","message":"Suggest you use decorator to replace with mock....","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"45ba518234ae0610fb4fb1cd2ae1e0ebd4565a37","unresolved":false,"context_lines":[{"line_number":3902,"context_line":"        }]"},{"line_number":3903,"context_line":""},{"line_number":3904,"context_line":"        with mock.patch.object(hpcommon.HP3PARCommon,"},{"line_number":3905,"context_line":"                               \u0027_create_client\u0027) as mock_create_client:"},{"line_number":3906,"context_line":"            mock_create_client.return_value \u003d mock_client"},{"line_number":3907,"context_line":"            result \u003d self.driver.initialize_connection("},{"line_number":3908,"context_line":"                self.volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_a5281d87","line":3905,"in_reply_to":"1a4dcd0f_7842e13f","updated":"2015-08-12 18:10:51.000000000","message":"same as above.","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a45ccb0c06a10eedae51719ac7bf01b0c65932ba","unresolved":false,"context_lines":[{"line_number":3923,"context_line":"                expected +"},{"line_number":3924,"context_line":"                self.standard_logout)"},{"line_number":3925,"context_line":""},{"line_number":3926,"context_line":"            self.assertDictMatch(result, self.multipath_properties)"},{"line_number":3927,"context_line":""},{"line_number":3928,"context_line":"    def test_initialize_connection_encrypted(self):"},{"line_number":3929,"context_line":"        # setup_mock_client drive with default configuration"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_d8a6950e","line":3926,"updated":"2015-08-12 03:39:32.000000000","message":"Please put self.multipath_properties as the first param.","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"45ba518234ae0610fb4fb1cd2ae1e0ebd4565a37","unresolved":false,"context_lines":[{"line_number":3923,"context_line":"                expected +"},{"line_number":3924,"context_line":"                self.standard_logout)"},{"line_number":3925,"context_line":""},{"line_number":3926,"context_line":"            self.assertDictMatch(result, self.multipath_properties)"},{"line_number":3927,"context_line":""},{"line_number":3928,"context_line":"    def test_initialize_connection_encrypted(self):"},{"line_number":3929,"context_line":"        # setup_mock_client drive with default configuration"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_0f001001","line":3926,"in_reply_to":"1a4dcd0f_d8a6950e","updated":"2015-08-12 18:10:51.000000000","message":"Done","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"}],"cinder/volume/drivers/san/hp/hp_3par_common.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a45ccb0c06a10eedae51719ac7bf01b0c65932ba","unresolved":false,"context_lines":[{"line_number":2137,"context_line":"                    break"},{"line_number":2138,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":2139,"context_line":"            # ignore, no existing VLUNs were found"},{"line_number":2140,"context_line":"            pass"},{"line_number":2141,"context_line":"        return existing_vluns"},{"line_number":2142,"context_line":""},{"line_number":2143,"context_line":"    class TaskWaiter(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_b878697f","line":2140,"updated":"2015-08-12 03:39:32.000000000","message":"Really no need to do anything here?\nEven some log information?","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"45ba518234ae0610fb4fb1cd2ae1e0ebd4565a37","unresolved":false,"context_lines":[{"line_number":2137,"context_line":"                    break"},{"line_number":2138,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":2139,"context_line":"            # ignore, no existing VLUNs were found"},{"line_number":2140,"context_line":"            pass"},{"line_number":2141,"context_line":"        return existing_vluns"},{"line_number":2142,"context_line":""},{"line_number":2143,"context_line":"    class TaskWaiter(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_18ea99db","line":2140,"in_reply_to":"1a4dcd0f_b878697f","updated":"2015-08-12 18:10:51.000000000","message":"Done","commit_id":"3171eef0881b04c279db724256c69c6e195c3152"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"40166d2bcf21cdb8c3e12d1ca2dd1d4ee378eff9","unresolved":false,"context_lines":[{"line_number":2145,"context_line":"                      \"combination: %(host)s, %(vol)s\","},{"line_number":2146,"context_line":"                      {\u0027host\u0027: host[\u0027name\u0027],"},{"line_number":2147,"context_line":"                       \u0027vol\u0027: vol_name})"},{"line_number":2148,"context_line":"            pass"},{"line_number":2149,"context_line":"        return existing_vluns"},{"line_number":2150,"context_line":""},{"line_number":2151,"context_line":"    class TaskWaiter(object):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_540ba42b","line":2148,"updated":"2015-08-14 14:59:06.000000000","message":"pass not needed here.","commit_id":"e5296c1da379c91aaa493b2e675be73c759d259a"}],"cinder/volume/drivers/san/hp/hp_3par_iscsi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c63e313a1d16e19499019034057b523ade482f9a","unresolved":false,"context_lines":[{"line_number":283,"context_line":"          * Create a host on the 3par"},{"line_number":284,"context_line":"          * create vlun on the 3par"},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        LOG.warning(\"CONNECTOR: %s\" % connector)"},{"line_number":287,"context_line":"        LOG.warning(\"VOLUME: %s\" % volume)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        use_multipath \u003d True#self.configuration.use_multipath_for_image_xfer"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_ec2c414c","line":286,"updated":"2015-05-06 23:05:56.000000000","message":"Make sure LOG.warning uses the _LW() translation marker and LOG.error uses _LE().\n\nChange all instances of formatting the string before sending to the logger (%) to just be arguments passed in to the logger so it can format it if and when needed.\n\ne.g. LOG.warning(_LW(\"CONNECTOR: %s\"), connector)","commit_id":"04021d15a07a2b388e96fd431c058243c6728aca"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"6486bf1d2af0f38a561c1e9a5d8d570be9b806c1","unresolved":false,"context_lines":[{"line_number":283,"context_line":"          * Create a host on the 3par"},{"line_number":284,"context_line":"          * create vlun on the 3par"},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        LOG.warning(\"CONNECTOR: %s\" % connector)"},{"line_number":287,"context_line":"        LOG.warning(\"VOLUME: %s\" % volume)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        use_multipath \u003d True#self.configuration.use_multipath_for_image_xfer"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_eca1e1aa","line":286,"in_reply_to":"1aca2d91_ec2c414c","updated":"2015-05-06 23:08:20.000000000","message":"Lol.  Thanks Sean.   We laughed about waiting for your -1 for this patch before we saw it happen.","commit_id":"04021d15a07a2b388e96fd431c058243c6728aca"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c63e313a1d16e19499019034057b523ade482f9a","unresolved":false,"context_lines":[{"line_number":682,"context_line":"        # return only the nsp (node:server:port)"},{"line_number":683,"context_line":"        # count the number of nsps"},{"line_number":684,"context_line":"        nsp_counts \u003d {}"},{"line_number":685,"context_line":"        LOG.warn(\"NSPSS: %s\" % nspss)"},{"line_number":686,"context_line":"        for nsp in nspss:"},{"line_number":687,"context_line":"            # initialize counts to zero"},{"line_number":688,"context_line":"            nsp_counts[nsp] \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_4c1e950d","line":685,"updated":"2015-05-06 23:05:56.000000000","message":"LOG.warn is deprecated, change to LOG.warning.","commit_id":"04021d15a07a2b388e96fd431c058243c6728aca"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"645f33391a2a2b48aa4700fccf9650c98518e809","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                # VLUN should be created or an existing one used."},{"line_number":311,"context_line":"                for port in ready_ports:"},{"line_number":312,"context_line":"                    iscsi_ip \u003d port[\u0027IPAddr\u0027]"},{"line_number":313,"context_line":"                    if iscsi_ip in target_portal_ips:"},{"line_number":314,"context_line":"                        vlun \u003d None"},{"line_number":315,"context_line":"                        # check for an already existing VLUN matching the"},{"line_number":316,"context_line":"                        # nsp for this iSCSI IP. If one is found, use it"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_427bf87b","line":313,"updated":"2015-08-09 13:26:15.000000000","message":"what\u0027s about iscsi_ip not in target_portal_ips,I think we shoud to alert user to determin to checck the cinder.conf","commit_id":"59731bea20e4c80aa510042c221aa26bd92b41ec"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"c16d6b9e96bb871f502c8a20d1cceb4dffc9c6ba","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                # VLUN should be created or an existing one used."},{"line_number":311,"context_line":"                for port in ready_ports:"},{"line_number":312,"context_line":"                    iscsi_ip \u003d port[\u0027IPAddr\u0027]"},{"line_number":313,"context_line":"                    if iscsi_ip in target_portal_ips:"},{"line_number":314,"context_line":"                        vlun \u003d None"},{"line_number":315,"context_line":"                        # check for an already existing VLUN matching the"},{"line_number":316,"context_line":"                        # nsp for this iSCSI IP. If one is found, use it"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_a20e4130","line":313,"in_reply_to":"1a4dcd0f_427bf87b","updated":"2015-08-10 23:57:50.000000000","message":"Done","commit_id":"59731bea20e4c80aa510042c221aa26bd92b41ec"}]}
