)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"27f840929926502620abf9d46d34c21e961392e4","unresolved":false,"context_lines":[{"line_number":5149,"context_line":"                                       filter_by(mac\u003dmac).first()"},{"line_number":5150,"context_line":""},{"line_number":5151,"context_line":"        if bw_usage:"},{"line_number":5152,"context_line":"            bw_usage.update(values)"},{"line_number":5153,"context_line":"            return bw_usage"},{"line_number":5154,"context_line":""},{"line_number":5155,"context_line":"        bwusage \u003d models.BandwidthUsage()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_ef83e154","line":5152,"updated":"2015-05-03 18:47:00.000000000","message":"previously, update was called with synchronise_session\u003dFalse. Is that no longer necessary?","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5290b12604db14710d1f60fce6daf5b772428d55","unresolved":false,"context_lines":[{"line_number":5149,"context_line":"                                       filter_by(mac\u003dmac).first()"},{"line_number":5150,"context_line":""},{"line_number":5151,"context_line":"        if bw_usage:"},{"line_number":5152,"context_line":"            bw_usage.update(values)"},{"line_number":5153,"context_line":"            return bw_usage"},{"line_number":5154,"context_line":""},{"line_number":5155,"context_line":"        bwusage \u003d models.BandwidthUsage()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_e5ef7085","line":5152,"in_reply_to":"3acd31a7_ef83e154","updated":"2015-06-08 17:35:09.000000000","message":"It wasn\u0027t necessary before.  But it was a slight performance optimization that was possible because we weren\u0027t using doing anything with the result of the query.  Now that we\u0027re going to return the result it would be better to have our model synchronized with the session.","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"}],"nova/objects/bandwidth_usage.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"27f840929926502620abf9d46d34c21e961392e4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    @staticmethod"},{"line_number":38,"context_line":"    def _from_db_object(context, bw_usage, db_bw_usage):"},{"line_number":39,"context_line":"        for field in bw_usage.fields:"},{"line_number":40,"context_line":"            if field \u003d\u003d \u0027instance_uuid\u0027:"},{"line_number":41,"context_line":"                bw_usage[field] \u003d db_bw_usage[\u0027uuid\u0027]"},{"line_number":42,"context_line":"            else:"},{"line_number":43,"context_line":"                bw_usage[field] \u003d db_bw_usage[field]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_cfedc526","line":40,"updated":"2015-05-03 18:47:00.000000000","message":"This changed seems unrelated to the bug. Plus, there is no mention about this in the commit message, which can make this commit look like it\u0027s doing more than it\u0027s saying.","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5290b12604db14710d1f60fce6daf5b772428d55","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    @staticmethod"},{"line_number":38,"context_line":"    def _from_db_object(context, bw_usage, db_bw_usage):"},{"line_number":39,"context_line":"        for field in bw_usage.fields:"},{"line_number":40,"context_line":"            if field \u003d\u003d \u0027instance_uuid\u0027:"},{"line_number":41,"context_line":"                bw_usage[field] \u003d db_bw_usage[\u0027uuid\u0027]"},{"line_number":42,"context_line":"            else:"},{"line_number":43,"context_line":"                bw_usage[field] \u003d db_bw_usage[field]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_05f96c4d","line":40,"in_reply_to":"3acd31a7_cfedc526","updated":"2015-06-08 17:35:09.000000000","message":"Fair point, I\u0027m splitting this out into a another patch that this one will depend on.","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"27f840929926502620abf9d46d34c21e961392e4","unresolved":false,"context_lines":[{"line_number":7448,"context_line":"        bw_usage \u003d db.bw_usage_get(self.ctxt, \u0027fake_uuid1\u0027, start_period,"},{"line_number":7449,"context_line":"                                   \u0027fake_mac1\u0027)"},{"line_number":7450,"context_line":"        self._assertEqualObjects(bw_usage, expected_bw_usage,"},{"line_number":7451,"context_line":"                                 ignored_keys\u003dself._ignored_keys)"},{"line_number":7452,"context_line":""},{"line_number":7453,"context_line":""},{"line_number":7454,"context_line":"class Ec2TestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_6fdfd169","line":7451,"updated":"2015-05-03 18:47:00.000000000","message":"this kind of looks like duplicate code to me. Kind of. So, how about this:\n\n    def _check_bw_usage_update(self, expected_bw_usage):\n        # REMOVE_ME: this should work because db.bw_usage_update should accept\n        # the same arguments with the same names as expected_bw_usage.\n        bw_usage \u003d db.bw_usage_update(self.ctxt, **expected_bw_usage)\n        self._assertEqualObjects(bw_usage, expected_bw_usage,\n                                 ignored_keys\u003dself._ignored_keys)\n\n        bw_usage \u003d db.bw_usage_get(self.ctxt, \u0027fake_uuid1\u0027, start_period,\n                                   \u0027fake_mac1\u0027)\n        self._assertEqualObjects(bw_usage, expected_bw_usage,\n                                 ignored_keys\u003dself._ignored_keys)\n        \n    def test_bw_usage_update_new(self):\n        now \u003d timeutils.utcnow()\n        start_period \u003d now - datetime.timedelta(seconds\u003d10)\n\n        expected_bw_usage \u003d {\u0027uuid\u0027: \u0027fake_uuid1\u0027,\n                             \u0027mac\u0027: \u0027fake_mac1\u0027,\n                             \u0027start_period\u0027: start_period,\n                             \u0027bw_in\u0027: 100,\n                             \u0027bw_out\u0027: 200,\n                             \u0027last_ctr_in\u0027: 12345,\n                             \u0027last_ctr_out\u0027: 67890,\n                             \u0027last_refreshed\u0027: now}\n        self._check_bw_usage_update(expected_bw_usage)\n        \n    def test_bw_usage_update_existing(self):\n        # REMOVE_ME: this part was pretty much the same, anyways.\n        self.test_bw_usage_update_new()\n        \n        now \u003d timeutils.utcnow()\n        start_period \u003d now - datetime.timedelta(seconds\u003d10)\n        expected_bw_usage \u003d {\u0027uuid\u0027: \u0027fake_uuid1\u0027,\n                             \u0027mac\u0027: \u0027fake_mac1\u0027,\n                             \u0027start_period\u0027: start_period,\n                             \u0027bw_in\u0027: 300,\n                             \u0027bw_out\u0027: 400,\n                             \u0027last_ctr_in\u0027: 23456,\n                             \u0027last_ctr_out\u0027: 78901,\n                             \u0027last_refreshed\u0027: now}\n        self._check_bw_usage_update(expected_bw_usage)","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5290b12604db14710d1f60fce6daf5b772428d55","unresolved":false,"context_lines":[{"line_number":7448,"context_line":"        bw_usage \u003d db.bw_usage_get(self.ctxt, \u0027fake_uuid1\u0027, start_period,"},{"line_number":7449,"context_line":"                                   \u0027fake_mac1\u0027)"},{"line_number":7450,"context_line":"        self._assertEqualObjects(bw_usage, expected_bw_usage,"},{"line_number":7451,"context_line":"                                 ignored_keys\u003dself._ignored_keys)"},{"line_number":7452,"context_line":""},{"line_number":7453,"context_line":""},{"line_number":7454,"context_line":"class Ec2TestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_057e0cae","line":7451,"in_reply_to":"3acd31a7_6fdfd169","updated":"2015-06-08 17:35:09.000000000","message":"Sure.  I tend to refactor like that once I hit three duplications, but I have no problem doing it here.","commit_id":"5746931670c20308fc042d49f1d7bc3228dc3128"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1da35f58a5cea2e85374c0c97f77a04c520c2acb","unresolved":false,"context_lines":[{"line_number":7444,"context_line":""},{"line_number":7445,"context_line":"    def _test_bw_usage_update(self, **expected_bw_usage):"},{"line_number":7446,"context_line":"        bw_usage \u003d db.bw_usage_update(self.ctxt, **expected_bw_usage)"},{"line_number":7447,"context_line":"        self._assertEqualObjects(bw_usage, expected_bw_usage,"},{"line_number":7448,"context_line":"                                 ignored_keys\u003dself._ignored_keys)"},{"line_number":7449,"context_line":""},{"line_number":7450,"context_line":"        uuid \u003d expected_bw_usage[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1af86dd1_129c7268","line":7447,"updated":"2015-06-12 00:34:19.000000000","message":"nit: expected, actual","commit_id":"9c30942cf6ddf0f7ca7bd1fccf2af7093120d75c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1da35f58a5cea2e85374c0c97f77a04c520c2acb","unresolved":false,"context_lines":[{"line_number":7451,"context_line":"        mac \u003d expected_bw_usage[\u0027mac\u0027]"},{"line_number":7452,"context_line":"        start_period \u003d expected_bw_usage[\u0027start_period\u0027]"},{"line_number":7453,"context_line":"        bw_usage \u003d db.bw_usage_get(self.ctxt, uuid, start_period, mac)"},{"line_number":7454,"context_line":"        self._assertEqualObjects(bw_usage, expected_bw_usage,"},{"line_number":7455,"context_line":"                                 ignored_keys\u003dself._ignored_keys)"},{"line_number":7456,"context_line":""},{"line_number":7457,"context_line":"    def test_bw_usage_get(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1af86dd1_92862212","line":7454,"updated":"2015-06-12 00:34:19.000000000","message":"nit: expected, actual","commit_id":"9c30942cf6ddf0f7ca7bd1fccf2af7093120d75c"}]}
