)]}'
{"cinder/tests/unit/test_dellscapi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":4021,"context_line":"    def test_get_user_preferences(self,"},{"line_number":4022,"context_line":"                                  mock_get,"},{"line_number":4023,"context_line":"                                  mock_get_json,"},{"line_number":4024,"context_line":"                                  mock_close_connection,"},{"line_number":4025,"context_line":"                                  mock_open_connection,"},{"line_number":4026,"context_line":"                                  mock_init):"},{"line_number":4027,"context_line":"        # Not really testing anything other than the ability to mock, but"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_cdb3c809","line":4024,"updated":"2015-07-12 05:25:16.000000000","message":"I don\u0027t see a mock patch for this.  Why is this included?","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b3fae813d9cb28c6de91328e7418df64e381fb1","unresolved":false,"context_lines":[{"line_number":4021,"context_line":"    def test_get_user_preferences(self,"},{"line_number":4022,"context_line":"                                  mock_get,"},{"line_number":4023,"context_line":"                                  mock_get_json,"},{"line_number":4024,"context_line":"                                  mock_close_connection,"},{"line_number":4025,"context_line":"                                  mock_open_connection,"},{"line_number":4026,"context_line":"                                  mock_init):"},{"line_number":4027,"context_line":"        # Not really testing anything other than the ability to mock, but"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_444d4571","line":4024,"in_reply_to":"9a41bdd9_cdb3c809","updated":"2015-07-12 17:14:15.000000000","message":"These are class-wide patches since they almost all calls made by these tests attempt to make API calls internally that need these things to be mocked out. See ~line 35.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":4022,"context_line":"                                  mock_get,"},{"line_number":4023,"context_line":"                                  mock_get_json,"},{"line_number":4024,"context_line":"                                  mock_close_connection,"},{"line_number":4025,"context_line":"                                  mock_open_connection,"},{"line_number":4026,"context_line":"                                  mock_init):"},{"line_number":4027,"context_line":"        # Not really testing anything other than the ability to mock, but"},{"line_number":4028,"context_line":"        # including for completeness."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_edb80ce8","line":4025,"updated":"2015-07-12 05:25:16.000000000","message":"Same","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":4023,"context_line":"                                  mock_get_json,"},{"line_number":4024,"context_line":"                                  mock_close_connection,"},{"line_number":4025,"context_line":"                                  mock_open_connection,"},{"line_number":4026,"context_line":"                                  mock_init):"},{"line_number":4027,"context_line":"        # Not really testing anything other than the ability to mock, but"},{"line_number":4028,"context_line":"        # including for completeness."},{"line_number":4029,"context_line":"        res \u003d self.scapi._get_user_preferences()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_8dce2082","line":4026,"updated":"2015-07-12 05:25:16.000000000","message":"Same","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":4036,"context_line":"                                          mock_get,"},{"line_number":4037,"context_line":"                                          mock_close_connection,"},{"line_number":4038,"context_line":"                                          mock_open_connection,"},{"line_number":4039,"context_line":"                                          mock_init):"},{"line_number":4040,"context_line":"        LOG \u003d self.mock_object(dell_storagecenter_api, \"LOG\")"},{"line_number":4041,"context_line":"        res \u003d self.scapi._get_user_preferences()"},{"line_number":4042,"context_line":"        self.assertEqual({}, res)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_ed86cc12","line":4039,"updated":"2015-07-12 05:25:16.000000000","message":"Same here. Why do you have mock_close_connection, mock_open_connection, and mock_init but none of them is used?  Looks like you have the same style for other tests as well.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"}],"cinder/volume/drivers/dell/dell_storagecenter_api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":1566,"context_line":"                LOG.error(_LE(\u0027Default Storage Profile was not found.\u0027))"},{"line_number":1567,"context_line":"                return False"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"        if profile:"},{"line_number":1570,"context_line":"            LOG.info(_LI(\u0027Switching volume %(vol)s to profile %(prof)s.\u0027),"},{"line_number":1571,"context_line":"                     {\u0027vol\u0027: scvolume[\u0027name\u0027],"},{"line_number":1572,"context_line":"                      \u0027prof\u0027: profile.get(\u0027name\u0027)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_2d091496","line":1569,"updated":"2015-07-12 05:25:16.000000000","message":"This check is not necessary. if profile is None, it will return False on line 1561 or 1567.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b3fae813d9cb28c6de91328e7418df64e381fb1","unresolved":false,"context_lines":[{"line_number":1566,"context_line":"                LOG.error(_LE(\u0027Default Storage Profile was not found.\u0027))"},{"line_number":1567,"context_line":"                return False"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"        if profile:"},{"line_number":1570,"context_line":"            LOG.info(_LI(\u0027Switching volume %(vol)s to profile %(prof)s.\u0027),"},{"line_number":1571,"context_line":"                     {\u0027vol\u0027: scvolume[\u0027name\u0027],"},{"line_number":1572,"context_line":"                      \u0027prof\u0027: profile.get(\u0027name\u0027)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_64a089f5","line":1569,"in_reply_to":"9a41bdd9_2d091496","updated":"2015-07-12 17:14:15.000000000","message":"Good point! Yeah, that\u0027s a little redundant. I\u0027ll remove this check.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"e610839fae3d74778eda0fd6d424427df95bd0db","unresolved":false,"context_lines":[{"line_number":1553,"context_line":"                          \u0027Storage Profile selection.\u0027))"},{"line_number":1554,"context_line":"            return False"},{"line_number":1555,"context_line":""},{"line_number":1556,"context_line":"        profile \u003d self._find_storage_profile(storage_profile)"},{"line_number":1557,"context_line":"        if storage_profile:"},{"line_number":1558,"context_line":"            if not profile:"},{"line_number":1559,"context_line":"                LOG.error(_LE(\u0027Storage Profile %s was not found.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_53d65bc6","line":1556,"updated":"2015-07-13 06:19:45.000000000","message":"Nit: This call can happen after if storage_profile check for efficiency.","commit_id":"808703f044b375c8b298bf6c3d263ced5dc0c60b"}],"cinder/volume/drivers/dell/dell_storagecenter_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":530,"context_line":"            model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"            return model_update, snapshots"},{"line_number":533,"context_line":"        return None"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":536,"context_line":"        \"\"\"Convert the volume to be of the new type."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_ede1ecff","line":533,"updated":"2015-07-12 05:25:16.000000000","message":"Why is \"return None\" added here?  It is an unrelated change.  Also delete_cgsnapshot should either return model_update, snapshots or throw an exception.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b3fae813d9cb28c6de91328e7418df64e381fb1","unresolved":false,"context_lines":[{"line_number":530,"context_line":"            model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"            return model_update, snapshots"},{"line_number":533,"context_line":"        return None"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":536,"context_line":"        \"\"\"Convert the volume to be of the new type."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_64d5e941","line":533,"in_reply_to":"9a41bdd9_ede1ecff","updated":"2015-07-12 17:14:15.000000000","message":"Good question. Not sure where that came from. Must have been from an earlier rebase.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2651d7aa9c0fe3d9d5ac8c24331a5e89619072fb","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            if storage_profiles:"},{"line_number":553,"context_line":"                # Check for the difference"},{"line_number":554,"context_line":"                current \u003d storage_profiles[0]"},{"line_number":555,"context_line":"                requested \u003d storage_profiles[1]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"                if current !\u003d requested:"},{"line_number":558,"context_line":"                    volume_name \u003d volume.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_2d17d4a4","line":555,"updated":"2015-07-12 05:25:16.000000000","message":"Should we have some validation here to see if storage_profiles contains two entries?","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b3fae813d9cb28c6de91328e7418df64e381fb1","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            if storage_profiles:"},{"line_number":553,"context_line":"                # Check for the difference"},{"line_number":554,"context_line":"                current \u003d storage_profiles[0]"},{"line_number":555,"context_line":"                requested \u003d storage_profiles[1]"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"                if current !\u003d requested:"},{"line_number":558,"context_line":"                    volume_name \u003d volume.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_e4481930","line":555,"in_reply_to":"9a41bdd9_2d17d4a4","updated":"2015-07-12 17:14:15.000000000","message":"I didn\u0027t think that was possible with the way the extra spec diffs get passed in, but I will add a check just to be safe.","commit_id":"22bc2995fa68eafbb6dcd09970b1be0a0cbdcc13"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"5b67f3e2abab918444d43f5616b2defbedc31130","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                current \u003d storage_profiles[0]"},{"line_number":639,"context_line":"                requested \u003d storage_profiles[1]"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"                if current !\u003d requested:"},{"line_number":642,"context_line":"                    volume_name \u003d volume.get(\u0027id\u0027)"},{"line_number":643,"context_line":"                    LOG.debug(\u0027Retyping volume %(vol)s to use storage \u0027"},{"line_number":644,"context_line":"                              \u0027profile %(profile)s\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_4f8d8bd1","line":641,"updated":"2015-07-23 16:44:40.000000000","message":"I think it\u0027s safe to trust thos in diff are really different from each other, otherwise, they would not be in \u0027diff\u0027.","commit_id":"4220c1d3018bab795a4dfbe7388bcb8d3027b78e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d40bf7ecb7c73d974532772cf41b8d47e10901b","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                current \u003d storage_profiles[0]"},{"line_number":639,"context_line":"                requested \u003d storage_profiles[1]"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"                if current !\u003d requested:"},{"line_number":642,"context_line":"                    volume_name \u003d volume.get(\u0027id\u0027)"},{"line_number":643,"context_line":"                    LOG.debug(\u0027Retyping volume %(vol)s to use storage \u0027"},{"line_number":644,"context_line":"                              \u0027profile %(profile)s\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_f787895e","line":641,"in_reply_to":"3a50d1a3_4f8d8bd1","updated":"2015-07-23 17:36:39.000000000","message":"OK, will take back out. That was my assumption as well.","commit_id":"4220c1d3018bab795a4dfbe7388bcb8d3027b78e"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"30789f85eaf7a11aba48610ad60bf0eb29e8773f","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                current \u003d storage_profiles[0]"},{"line_number":639,"context_line":"                requested \u003d storage_profiles[1]"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"                if current !\u003d requested:"},{"line_number":642,"context_line":"                    volume_name \u003d volume.get(\u0027id\u0027)"},{"line_number":643,"context_line":"                    LOG.debug(\u0027Retyping volume %(vol)s to use storage \u0027"},{"line_number":644,"context_line":"                              \u0027profile %(profile)s\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_8007841c","line":641,"in_reply_to":"3a50d1a3_f787895e","updated":"2015-07-27 02:42:41.000000000","message":"I\u0027m very sorry that I made a mistake.  Diff does include both keys with same value and different values.  So your version was correct.  Please consider a follow-up patch for fix this.  Sorry about that.","commit_id":"4220c1d3018bab795a4dfbe7388bcb8d3027b78e"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"5b67f3e2abab918444d43f5616b2defbedc31130","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                        if api.find_sc():"},{"line_number":649,"context_line":"                            scvolume \u003d api.find_volume(volume_name)"},{"line_number":650,"context_line":"                            return api.update_storage_profile("},{"line_number":651,"context_line":"                                scvolume, requested)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_efbed763","line":651,"updated":"2015-07-23 16:44:40.000000000","message":"Is api.update_storage_profile() able to handle the case when \u0027requested\u0027 is None?  That\u0027s a valid case in retype.","commit_id":"4220c1d3018bab795a4dfbe7388bcb8d3027b78e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d40bf7ecb7c73d974532772cf41b8d47e10901b","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                        if api.find_sc():"},{"line_number":649,"context_line":"                            scvolume \u003d api.find_volume(volume_name)"},{"line_number":650,"context_line":"                            return api.update_storage_profile("},{"line_number":651,"context_line":"                                scvolume, requested)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_378ad164","line":651,"in_reply_to":"3a50d1a3_efbed763","updated":"2015-07-23 17:36:39.000000000","message":"Yes, if requested is None it will cause it to use the default storage profile for the account.","commit_id":"4220c1d3018bab795a4dfbe7388bcb8d3027b78e"}]}
