)]}'
{"cinder/tests/unit/volume/drivers/solidfire/test_solidfire.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ccbf90b4f3a97562ff59fa3e6adb1e6fd2d7b30a","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.fake_sfaccount \u003d {\u0027accountID\u0027: 25,"},{"line_number":120,"context_line":"                               \u0027targetSecret\u0027: \u0027shhhh\u0027,"},{"line_number":121,"context_line":"                               \u0027username\u0027: \u0027prefix-testprjid\u0027,"},{"line_number":122,"context_line":"                               \u0027volumes\u0027: [6, 7, 20]}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        self.fake_sfvol \u003d {\u0027volumeID\u0027: 6,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_279b6917","line":121,"range":{"start_line":121,"start_character":44,"end_line":121,"end_character":60},"updated":"2019-02-13 14:49:30.000000000","message":"any significance to all the name changes?\ncouldn\u0027t find any reason in the commit message.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":29650,"name":"Thiago Correa","email":"thiagoc@netapp.com","username":"thgcorrea"},"change_message_id":"48e899b574d4d54f7ffcd0dd6800ee8f114998ee","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.fake_sfaccount \u003d {\u0027accountID\u0027: 25,"},{"line_number":120,"context_line":"                               \u0027targetSecret\u0027: \u0027shhhh\u0027,"},{"line_number":121,"context_line":"                               \u0027username\u0027: \u0027prefix-testprjid\u0027,"},{"line_number":122,"context_line":"                               \u0027volumes\u0027: [6, 7, 20]}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        self.fake_sfvol \u003d {\u0027volumeID\u0027: 6,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_89a6e4c0","line":121,"range":{"start_line":121,"start_character":44,"end_line":121,"end_character":60},"in_reply_to":"9fdfeff1_279b6917","updated":"2019-02-13 18:12:03.000000000","message":"The property \u0027name\u0027 didn\u0027t exist and I think it was causing some confusion with \u0027username\u0027, so I changed it to reflect better the username generated when creating a new sfaccount.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5679048b4a67c2ad7d38a6753b0c838e029b5eea","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.fake_sfaccount \u003d {\u0027accountID\u0027: 25,"},{"line_number":120,"context_line":"                               \u0027targetSecret\u0027: \u0027shhhh\u0027,"},{"line_number":121,"context_line":"                               \u0027username\u0027: \u0027prefix-testprjid\u0027,"},{"line_number":122,"context_line":"                               \u0027volumes\u0027: [6, 7, 20]}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        self.fake_sfvol \u003d {\u0027volumeID\u0027: 6,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_216563b5","line":121,"range":{"start_line":121,"start_character":44,"end_line":121,"end_character":60},"in_reply_to":"9fdfeff1_89a6e4c0","updated":"2019-02-15 15:10:55.000000000","message":"My question was regarding changing the username value.\nIf this one makes more sense from production scenario then i\u0027m good with it.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ccbf90b4f3a97562ff59fa3e6adb1e6fd2d7b30a","unresolved":false,"context_lines":[{"line_number":316,"context_line":"    def fake_issue_api_request_fails(obj, method,"},{"line_number":317,"context_line":"                                     params, version\u003d\u00271.0\u0027,"},{"line_number":318,"context_line":"                                     endpoint\u003dNone):"},{"line_number":319,"context_line":"        response \u003d {\u0027error\u0027: {\u0027code\u0027: 000,"},{"line_number":320,"context_line":"                              \u0027name\u0027: \u0027DummyError\u0027,"},{"line_number":321,"context_line":"                              \u0027message\u0027: \u0027This is a fake error response\u0027},"},{"line_number":322,"context_line":"                    \u0027id\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_87f57559","line":319,"range":{"start_line":319,"start_character":38,"end_line":319,"end_character":41},"updated":"2019-02-13 14:49:30.000000000","message":"should this be a string?\nas an integer it will be same as 0 (single)","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5679048b4a67c2ad7d38a6753b0c838e029b5eea","unresolved":false,"context_lines":[{"line_number":316,"context_line":"    def fake_issue_api_request_fails(obj, method,"},{"line_number":317,"context_line":"                                     params, version\u003d\u00271.0\u0027,"},{"line_number":318,"context_line":"                                     endpoint\u003dNone):"},{"line_number":319,"context_line":"        response \u003d {\u0027error\u0027: {\u0027code\u0027: 000,"},{"line_number":320,"context_line":"                              \u0027name\u0027: \u0027DummyError\u0027,"},{"line_number":321,"context_line":"                              \u0027message\u0027: \u0027This is a fake error response\u0027},"},{"line_number":322,"context_line":"                    \u0027id\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_50609c01","line":319,"range":{"start_line":319,"start_character":38,"end_line":319,"end_character":41},"in_reply_to":"9fdfeff1_09f674d8","updated":"2019-02-15 15:10:55.000000000","message":"yes not related to the patch, thought i would mention it since a lot of minor changes are going on in this patch.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":29650,"name":"Thiago Correa","email":"thiagoc@netapp.com","username":"thgcorrea"},"change_message_id":"48e899b574d4d54f7ffcd0dd6800ee8f114998ee","unresolved":false,"context_lines":[{"line_number":316,"context_line":"    def fake_issue_api_request_fails(obj, method,"},{"line_number":317,"context_line":"                                     params, version\u003d\u00271.0\u0027,"},{"line_number":318,"context_line":"                                     endpoint\u003dNone):"},{"line_number":319,"context_line":"        response \u003d {\u0027error\u0027: {\u0027code\u0027: 000,"},{"line_number":320,"context_line":"                              \u0027name\u0027: \u0027DummyError\u0027,"},{"line_number":321,"context_line":"                              \u0027message\u0027: \u0027This is a fake error response\u0027},"},{"line_number":322,"context_line":"                    \u0027id\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_09f674d8","line":319,"range":{"start_line":319,"start_character":38,"end_line":319,"end_character":41},"in_reply_to":"9fdfeff1_87f57559","updated":"2019-02-13 18:12:03.000000000","message":"This is indeed an integer and could be 0 (single). But I think it is not related to this patch.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"}],"cinder/volume/drivers/solidfire.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6ae42051ed5940156f9232bf3c81c95c6b5abc9c","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"        # available."},{"line_number":1122,"context_line":"        for acc in accounts:"},{"line_number":1123,"context_line":"            if self._get_volumes_for_account("},{"line_number":1124,"context_line":"                    acc[\u0027accountID\u0027]) \u003e self.max_volumes_per_account:"},{"line_number":1125,"context_line":"                return acc"},{"line_number":1126,"context_line":"        if len(accounts) \u003d\u003d 1:"},{"line_number":1127,"context_line":"            sfaccount \u003d self._create_sfaccount(accounts[0][\u0027name\u0027] + \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_badf6c64","side":"PARENT","line":1124,"updated":"2019-02-13 14:48:13.000000000","message":"Did this work correctly before?","commit_id":"a714ac1ec15e9359e226a6d5dadc5fc33c4fafa2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ccbf90b4f3a97562ff59fa3e6adb1e6fd2d7b30a","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"        # if it exists and return whichever one has count"},{"line_number":1121,"context_line":"        # available."},{"line_number":1122,"context_line":"        for acc in accounts:"},{"line_number":1123,"context_line":"            if self._get_volumes_for_account("},{"line_number":1124,"context_line":"                    acc[\u0027accountID\u0027]) \u003e self.max_volumes_per_account:"},{"line_number":1125,"context_line":"                return acc"},{"line_number":1126,"context_line":"        if len(accounts) \u003d\u003d 1:"},{"line_number":1127,"context_line":"            sfaccount \u003d self._create_sfaccount(accounts[0][\u0027name\u0027] + \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_677971fa","side":"PARENT","line":1124,"range":{"start_line":1123,"start_character":15,"end_line":1124,"end_character":68},"updated":"2019-02-13 14:49:30.000000000","message":"This syntax seems wrong for python2 also,\nwhen comparing different types (here list with numeric), their types are compared and not the value\n(num \u003c list \u003c str \u003c tuple)\nso it will always be true when the list is empty also","commit_id":"a714ac1ec15e9359e226a6d5dadc5fc33c4fafa2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5679048b4a67c2ad7d38a6753b0c838e029b5eea","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"        # if it exists and return whichever one has count"},{"line_number":1121,"context_line":"        # available."},{"line_number":1122,"context_line":"        for acc in accounts:"},{"line_number":1123,"context_line":"            if self._get_volumes_for_account("},{"line_number":1124,"context_line":"                    acc[\u0027accountID\u0027]) \u003e self.max_volumes_per_account:"},{"line_number":1125,"context_line":"                return acc"},{"line_number":1126,"context_line":"        if len(accounts) \u003d\u003d 1:"},{"line_number":1127,"context_line":"            sfaccount \u003d self._create_sfaccount(accounts[0][\u0027name\u0027] + \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_e128bb33","side":"PARENT","line":1124,"range":{"start_line":1123,"start_character":15,"end_line":1124,"end_character":68},"in_reply_to":"9fdfeff1_0d6aff7f","updated":"2019-02-15 15:10:55.000000000","message":"A lot of wrong\u0027s with this statement but looks like everything is fixed now.","commit_id":"a714ac1ec15e9359e226a6d5dadc5fc33c4fafa2"},{"author":{"_account_id":29650,"name":"Thiago Correa","email":"thiagoc@netapp.com","username":"thgcorrea"},"change_message_id":"48e899b574d4d54f7ffcd0dd6800ee8f114998ee","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"        # if it exists and return whichever one has count"},{"line_number":1121,"context_line":"        # available."},{"line_number":1122,"context_line":"        for acc in accounts:"},{"line_number":1123,"context_line":"            if self._get_volumes_for_account("},{"line_number":1124,"context_line":"                    acc[\u0027accountID\u0027]) \u003e self.max_volumes_per_account:"},{"line_number":1125,"context_line":"                return acc"},{"line_number":1126,"context_line":"        if len(accounts) \u003d\u003d 1:"},{"line_number":1127,"context_line":"            sfaccount \u003d self._create_sfaccount(accounts[0][\u0027name\u0027] + \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_0d6aff7f","side":"PARENT","line":1124,"range":{"start_line":1123,"start_character":15,"end_line":1124,"end_character":68},"in_reply_to":"9fdfeff1_677971fa","updated":"2019-02-13 18:12:03.000000000","message":"Precisely. This was not working properly before. However this error was never caught because \u0027accounts\u0027 was either empty and the method would return None or it had at least one account and this statement would always be true, returning the first account in the list. The operator \u0027\u003e\u0027 was also, logically, wrong once the idea is to check whether the account has reached its volumes limit.","commit_id":"a714ac1ec15e9359e226a6d5dadc5fc33c4fafa2"},{"author":{"_account_id":29650,"name":"Thiago Correa","email":"thiagoc@netapp.com","username":"thgcorrea"},"change_message_id":"48e899b574d4d54f7ffcd0dd6800ee8f114998ee","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"        # available."},{"line_number":1122,"context_line":"        for acc in accounts:"},{"line_number":1123,"context_line":"            if self._get_volumes_for_account("},{"line_number":1124,"context_line":"                    acc[\u0027accountID\u0027]) \u003e self.max_volumes_per_account:"},{"line_number":1125,"context_line":"                return acc"},{"line_number":1126,"context_line":"        if len(accounts) \u003d\u003d 1:"},{"line_number":1127,"context_line":"            sfaccount \u003d self._create_sfaccount(accounts[0][\u0027name\u0027] + \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_ed0a1bd0","side":"PARENT","line":1124,"in_reply_to":"9fdfeff1_badf6c64","updated":"2019-02-13 18:12:03.000000000","message":"Answered below.","commit_id":"a714ac1ec15e9359e226a6d5dadc5fc33c4fafa2"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ccbf90b4f3a97562ff59fa3e6adb1e6fd2d7b30a","unresolved":false,"context_lines":[{"line_number":1090,"context_line":"        # in the list"},{"line_number":1091,"context_line":"        return sorted([acc for acc in accounts if"},{"line_number":1092,"context_line":"                       cinder_project_id in acc[\u0027username\u0027]],"},{"line_number":1093,"context_line":"                      key\u003dlambda k: k[\u0027accountID\u0027])"},{"line_number":1094,"context_line":""},{"line_number":1095,"context_line":"    def _get_all_active_volumes(self, cinder_uuid\u003dNone):"},{"line_number":1096,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_dadcb075","line":1093,"range":{"start_line":1093,"start_character":22,"end_line":1093,"end_character":50},"updated":"2019-02-13 14:49:30.000000000","message":"please explain where this \u0027key\u0027 is being used?","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5679048b4a67c2ad7d38a6753b0c838e029b5eea","unresolved":false,"context_lines":[{"line_number":1090,"context_line":"        # in the list"},{"line_number":1091,"context_line":"        return sorted([acc for acc in accounts if"},{"line_number":1092,"context_line":"                       cinder_project_id in acc[\u0027username\u0027]],"},{"line_number":1093,"context_line":"                      key\u003dlambda k: k[\u0027accountID\u0027])"},{"line_number":1094,"context_line":""},{"line_number":1095,"context_line":"    def _get_all_active_volumes(self, cinder_uuid\u003dNone):"},{"line_number":1096,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_6114cbe9","line":1093,"range":{"start_line":1093,"start_character":22,"end_line":1093,"end_character":50},"in_reply_to":"9fdfeff1_8d6cafd0","updated":"2019-02-15 15:10:55.000000000","message":"makes sense.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"},{"author":{"_account_id":29650,"name":"Thiago Correa","email":"thiagoc@netapp.com","username":"thgcorrea"},"change_message_id":"48e899b574d4d54f7ffcd0dd6800ee8f114998ee","unresolved":false,"context_lines":[{"line_number":1090,"context_line":"        # in the list"},{"line_number":1091,"context_line":"        return sorted([acc for acc in accounts if"},{"line_number":1092,"context_line":"                       cinder_project_id in acc[\u0027username\u0027]],"},{"line_number":1093,"context_line":"                      key\u003dlambda k: k[\u0027accountID\u0027])"},{"line_number":1094,"context_line":""},{"line_number":1095,"context_line":"    def _get_all_active_volumes(self, cinder_uuid\u003dNone):"},{"line_number":1096,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_8d6cafd0","line":1093,"range":{"start_line":1093,"start_character":22,"end_line":1093,"end_character":50},"in_reply_to":"9fdfeff1_dadcb075","updated":"2019-02-13 18:12:03.000000000","message":"Differently from python2, python3 only supports ordering on types that actually have a natural ordering (like integer or string), so it was throwing an error when sorting this list of dicts. The parameter \u0027key\u0027 is used to explicitly define an ordering.","commit_id":"003efd80df868941d7a13ddc81842c48c0e3810b"}]}
