)]}'
{"nova/objects/keypair.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"acce8beac9146bbf7f121a0e6ac08d75e2f8cfef","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                  \u0027deleted_at\u0027: None}"},{"line_number":102,"context_line":"        for key in keypair.fields:"},{"line_number":103,"context_line":"            if key in ignore and not hasattr(db_keypair, key):"},{"line_number":104,"context_line":"                keypair[key] \u003d ignore[key]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                keypair[key] \u003d db_keypair[key]"},{"line_number":107,"context_line":"        keypair._context \u003d context"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_c25d957a","line":104,"updated":"2016-05-10 14:15:42.000000000","message":"A comment here explaining that this is done because the api db does not include soft delete fields might help future devs looking at this.","commit_id":"42751d2b1f3e34e399ab882b2e959dc352617058"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"acce8beac9146bbf7f121a0e6ac08d75e2f8cfef","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @staticmethod"},{"line_number":112,"context_line":"    def _get_from_db(context, user_id, name):"},{"line_number":113,"context_line":"        return _get_from_db(context, user_id, name\u003dname)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @staticmethod"},{"line_number":116,"context_line":"    def _destroy_in_db(context, user_id, name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_e28099f9","line":113,"updated":"2016-05-10 14:15:42.000000000","message":"I have a fix proposed to the fixtures library which should address this, without breaking everything like the last one did :)\n\nHopefully that can get in soon.","commit_id":"42751d2b1f3e34e399ab882b2e959dc352617058"}],"nova/tests/functional/db/test_keypair.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4c66f473582828f76814fac91a36ba2b4f4f0275","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self._main_kp(name\u003d\u0027mainkey\u0027)"},{"line_number":134,"context_line":"        count \u003d objects.KeyPairList.get_count_by_user(self.context,"},{"line_number":135,"context_line":"                                                      self.context.user_id)"},{"line_number":136,"context_line":"        self.assertEqual(2, count)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_7af2c970","line":136,"updated":"2016-05-09 15:58:24.000000000","message":"Excellent job on the above functional tests.","commit_id":"42751d2b1f3e34e399ab882b2e959dc352617058"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"acce8beac9146bbf7f121a0e6ac08d75e2f8cfef","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self._main_kp(name\u003d\u0027mainkey\u0027)"},{"line_number":134,"context_line":"        count \u003d objects.KeyPairList.get_count_by_user(self.context,"},{"line_number":135,"context_line":"                                                      self.context.user_id)"},{"line_number":136,"context_line":"        self.assertEqual(2, count)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_9dd2d05a","line":136,"in_reply_to":"dab17558_7af2c970","updated":"2016-05-10 14:15:42.000000000","message":"+1","commit_id":"42751d2b1f3e34e399ab882b2e959dc352617058"}]}
