)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"510eba689d34c4f76e124840cf2eafb5263c65d4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ryan Rossiter \u003crlrossit@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-14 14:00:56 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ability to create custom fields for objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are a lot of fields used in cinder objects that can be one of a"},{"line_number":10,"context_line":"predefined set of values. oslo.versionedobjects has infrastructure set"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a710552_a18206c7","line":7,"updated":"2015-12-14 18:48:51.000000000","message":"There always was that ability all the time. This change just adds fields.py module… In my opinion this title is misleading and should read something along \"Add BackupStatus enum field\".","commit_id":"a7046868b0724ba3307e2585fdf3aafe908360e3"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"d19c2931dd87ca8eb67c666a29bea8fa82a9924a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ryan Rossiter \u003crlrossit@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-14 14:00:56 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ability to create custom fields for objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are a lot of fields used in cinder objects that can be one of a"},{"line_number":10,"context_line":"predefined set of values. oslo.versionedobjects has infrastructure set"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a710552_b97de8b2","line":7,"in_reply_to":"5a710552_a18206c7","updated":"2015-12-16 15:07:28.000000000","message":"Done","commit_id":"a7046868b0724ba3307e2585fdf3aafe908360e3"}],"cinder/backup/chunkeddriver.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"33003d5804cd2373c6c759b2da84f63d20c7b95d","unresolved":false,"context_lines":[{"line_number":469,"context_line":"            # has been changed to delete or has been deleted, we cancel the"},{"line_number":470,"context_line":"            # backup process to do forcing delete."},{"line_number":471,"context_line":"            backup \u003d objects.Backup.get_by_id(self.context, backup.id)"},{"line_number":472,"context_line":"            if (fields.BackupStatus.DELETING \u003d\u003d backup.status"},{"line_number":473,"context_line":"                    or fields.BackupStatus.DELETED \u003d\u003d backup.status):"},{"line_number":474,"context_line":"                is_backup_canceled \u003d True"},{"line_number":475,"context_line":"                # To avoid the chunk left when deletion complete, need to"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a710552_3da23f4c","line":472,"updated":"2015-12-16 16:28:06.000000000","message":"If you happen to put another patchset you may do it that way:\n\n if backup.status in (fields.BackupStatus.DELETING, fields.BackupStatus.DELETED)\n\nSlightly more pythonic way. ;)","commit_id":"9c652e42ebdcf04f36c441331d7eb1890542501c"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"a36c1c97f7bc7c65e30cea869a2eecf15a938c8b","unresolved":false,"context_lines":[{"line_number":469,"context_line":"            # has been changed to delete or has been deleted, we cancel the"},{"line_number":470,"context_line":"            # backup process to do forcing delete."},{"line_number":471,"context_line":"            backup \u003d objects.Backup.get_by_id(self.context, backup.id)"},{"line_number":472,"context_line":"            if (fields.BackupStatus.DELETING \u003d\u003d backup.status"},{"line_number":473,"context_line":"                    or fields.BackupStatus.DELETED \u003d\u003d backup.status):"},{"line_number":474,"context_line":"                is_backup_canceled \u003d True"},{"line_number":475,"context_line":"                # To avoid the chunk left when deletion complete, need to"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_2ceff3b1","line":472,"in_reply_to":"5a710552_3da23f4c","updated":"2015-12-16 21:00:19.000000000","message":"Done","commit_id":"9c652e42ebdcf04f36c441331d7eb1890542501c"}],"cinder/tests/unit/objects/test_fields.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"510eba689d34c4f76e124840cf2eafb5263c65d4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        return value[1:-1]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestField(test.TestCase):"},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(TestField, self).setUp()"},{"line_number":33,"context_line":"        self.field \u003d fields.Field(FakeFieldType())"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_c124f2b0","line":30,"updated":"2015-12-14 18:48:51.000000000","message":"Why do we need this particular test  case? Isn\u0027t is testing stuff from oslo.versionedobjects module?","commit_id":"a7046868b0724ba3307e2585fdf3aafe908360e3"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"d19c2931dd87ca8eb67c666a29bea8fa82a9924a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        return value[1:-1]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestField(test.TestCase):"},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(TestField, self).setUp()"},{"line_number":33,"context_line":"        self.field \u003d fields.Field(FakeFieldType())"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_7430e79e","line":30,"in_reply_to":"5a710552_c124f2b0","updated":"2015-12-16 15:07:28.000000000","message":"So, full disclosure... I grabbed this straight out of Nova and plopped it in here. But from what I know, this is here to put a check on the different fields. If you remove a valid value from one of the fields, these tests are here to keep you in check and say \"hey, you took a valid value out, things are probably going to blow up elsewhere.\"\n\nAs for the actual base tests, they\u0027re just there as placeholders (which yes, technically are just testing o.vo). But, it\u0027s all here so we don\u0027t have to rewrite the coercion tests for each new field. I could stub out the values with empty lists though if you feel that is more appropriate.","commit_id":"a7046868b0724ba3307e2585fdf3aafe908360e3"}]}
