)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement validation on Credential V3"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use jsonschema to validate create and update operations on V3"},{"line_number":10,"context_line":"Credentials."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp api-validation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_3fd4b6e7","line":9,"updated":"2014-06-13 21:29:34.000000000","message":"nit: JSONSchema","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement validation on Credential V3"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use jsonschema to validate create and update operations on V3"},{"line_number":10,"context_line":"Credentials."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp api-validation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_8ac47c0f","line":9,"in_reply_to":"1ae5cdf2_3fd4b6e7","updated":"2014-06-23 18:49:10.000000000","message":"Followed the naming of the Pypi package: \n\nhttps://pypi.python.org/pypi/jsonschema","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Use jsonschema to validate create and update operations on V3"},{"line_number":10,"context_line":"Credentials."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp api-validation"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib61902ce6bf037b2185c405de7b407ad49ed423b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_5f06e286","line":12,"updated":"2014-06-13 21:29:34.000000000","message":"nit: bp:","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Use jsonschema to validate create and update operations on V3"},{"line_number":10,"context_line":"Credentials."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp api-validation"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib61902ce6bf037b2185c405de7b407ad49ed423b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_2a67e852","line":12,"in_reply_to":"1ae5cdf2_5f06e286","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"}],"keystone/credential/schema.py":[{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"696dd009dabf39af3064b49557ef5c7bf294bdb5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        }"},{"line_number":30,"context_line":"    },"},{"line_number":31,"context_line":"    \u0027required\u0027: [\u0027blob\u0027, \u0027type\u0027, \u0027user_id\u0027],"},{"line_number":32,"context_line":"    \u0027additionalProperties\u0027: False"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"credential_update \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_74d54ab6","line":32,"updated":"2014-06-24 00:24:17.000000000","message":"Why its False instead of True? Some other V3 entities like project have \u0027additionalProperties\u0027 as True which allows data model extensibility if operator needs it for some reason. A deployment may want to have additional field like status to indicate credential current status. Those fields can be just pass through to DB without requiring any validation.","commit_id":"65fca1f51ecf6f943888c4fe3b03c5ee63ad127e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ac8d98ffa0c48187487cea85ad3da88b84d6dad4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        }"},{"line_number":30,"context_line":"    },"},{"line_number":31,"context_line":"    \u0027required\u0027: [\u0027blob\u0027, \u0027type\u0027, \u0027user_id\u0027],"},{"line_number":32,"context_line":"    \u0027additionalProperties\u0027: False"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"credential_update \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_2877bd09","line":32,"in_reply_to":"1ae5cdf2_74d54ab6","updated":"2014-06-24 21:37:34.000000000","message":"Done","commit_id":"65fca1f51ecf6f943888c4fe3b03c5ee63ad127e"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"696dd009dabf39af3064b49557ef5c7bf294bdb5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        }"},{"line_number":51,"context_line":"    },"},{"line_number":52,"context_line":"    \u0027minProperties\u0027: 1,"},{"line_number":53,"context_line":"    \u0027additionalProperties\u0027: False"},{"line_number":54,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_94e2d69e","line":53,"updated":"2014-06-24 00:24:17.000000000","message":"Same comment as above.","commit_id":"65fca1f51ecf6f943888c4fe3b03c5ee63ad127e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ac8d98ffa0c48187487cea85ad3da88b84d6dad4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        }"},{"line_number":51,"context_line":"    },"},{"line_number":52,"context_line":"    \u0027minProperties\u0027: 1,"},{"line_number":53,"context_line":"    \u0027additionalProperties\u0027: False"},{"line_number":54,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_487a49f1","line":53,"in_reply_to":"1ae5cdf2_94e2d69e","updated":"2014-06-24 21:37:34.000000000","message":"Done","commit_id":"65fca1f51ecf6f943888c4fe3b03c5ee63ad127e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"219535bafae8ae398da3d369987c1a3f5e4f1bdc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    },"},{"line_number":21,"context_line":"    \u0027type\u0027: {"},{"line_number":22,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":23,"context_line":"        \u0027enum\u0027: [\u0027ec2\u0027, \u0027cert\u0027]"},{"line_number":24,"context_line":"    },"},{"line_number":25,"context_line":"    \u0027user_id\u0027: {"},{"line_number":26,"context_line":"        \u0027type\u0027: \u0027string\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1abeadc6_6d832b56","line":23,"updated":"2014-08-28 21:38:18.000000000","message":"hmm... i\u0027m not sure we want to be strict about expected type values. people may already be using this API for something else","commit_id":"502654816b8e3a232facfe541ac8f1729acc7ab5"}],"keystone/tests/test_v3.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"af3369c1239a919f744d57e19dd01fc3fd7ba971","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    def new_credential_ref(self, user_id, project_id\u003dNone, cred_type\u003dNone):"},{"line_number":242,"context_line":"        ref \u003d dict()"},{"line_number":243,"context_line":"        ref[\u0027user_id\u0027] \u003d user_id"},{"line_number":244,"context_line":"        if cred_type \u003d\u003d \u0027cert\u0027:"},{"line_number":245,"context_line":"            ref[\u0027type\u0027] \u003d \u0027cert\u0027"},{"line_number":246,"context_line":"            ref[\u0027blob\u0027] \u003d uuid.uuid4().hex"},{"line_number":247,"context_line":"        elif cred_type \u003d\u003d \u0027ec2\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d9dca449","line":244,"updated":"2014-06-07 21:58:17.000000000","message":"why can\u0027t this whole section simply be written as:\n\nif cred_type \u003d\u003d \u0027ec2\u0027:\n    ref[\u0027type\u0027] \u003d \u0027ec2\n    ref[\u0027blob\u0027] \u003d {\u0027blah\u0027: \u0027test\u0027}\nelse:\n    ref[\u0027type\u0027] \u003d \u0027cert\u0027\t\n    ref[\u0027blob\u0027] \u003d uuid.uuid4().hex","commit_id":"7b680605b869f86ba88843c892548fcc0c0f59c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d18259e3beb73d8b95b32e5ba05980fae16436c4","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    def new_credential_ref(self, user_id, project_id\u003dNone, cred_type\u003dNone):"},{"line_number":242,"context_line":"        ref \u003d dict()"},{"line_number":243,"context_line":"        ref[\u0027user_id\u0027] \u003d user_id"},{"line_number":244,"context_line":"        if cred_type \u003d\u003d \u0027cert\u0027:"},{"line_number":245,"context_line":"            ref[\u0027type\u0027] \u003d \u0027cert\u0027"},{"line_number":246,"context_line":"            ref[\u0027blob\u0027] \u003d uuid.uuid4().hex"},{"line_number":247,"context_line":"        elif cred_type \u003d\u003d \u0027ec2\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_ccfdc470","line":244,"in_reply_to":"1ae5cdf2_d9dca449","updated":"2014-06-08 05:02:16.000000000","message":"Good point, thanks!","commit_id":"7b680605b869f86ba88843c892548fcc0c0f59c6"}],"keystone/tests/test_v3_credential.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"af3369c1239a919f744d57e19dd01fc3fd7ba971","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \"\"\"Call ``PATCH /credentials/{credential_id}``.\"\"\""},{"line_number":110,"context_line":"        ref \u003d self.new_credential_ref("},{"line_number":111,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":112,"context_line":"            project_id\u003dself.project_id)"},{"line_number":113,"context_line":"        r \u003d self.patch("},{"line_number":114,"context_line":"            \u0027/credentials/%(credential_id)s\u0027 % {"},{"line_number":115,"context_line":"                \u0027credential_id\u0027: self.credential_id},"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_79ed50ef","line":112,"updated":"2014-06-07 21:58:17.000000000","message":"why did you remove del ref[\u0027id\u0027] a comment?","commit_id":"7b680605b869f86ba88843c892548fcc0c0f59c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d18259e3beb73d8b95b32e5ba05980fae16436c4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \"\"\"Call ``PATCH /credentials/{credential_id}``.\"\"\""},{"line_number":110,"context_line":"        ref \u003d self.new_credential_ref("},{"line_number":111,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":112,"context_line":"            project_id\u003dself.project_id)"},{"line_number":113,"context_line":"        r \u003d self.patch("},{"line_number":114,"context_line":"            \u0027/credentials/%(credential_id)s\u0027 % {"},{"line_number":115,"context_line":"                \u0027credential_id\u0027: self.credential_id},"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_6cee70b6","line":112,"in_reply_to":"1ae5cdf2_79ed50ef","updated":"2014-06-08 05:02:16.000000000","message":"The new_ref() method doesn\u0027t return anything we really need for attributes from a cert perspective: \n\nhttps://github.com/openstack/keystone/blob/master/keystone/tests/test_v3.py#L184-L190\n\nI removed the call to create a new ref in new_credential_ref() and added the logic that we needed to determine what the attributes should be for the cert request. \n\nThe\n\n    del ref[\u0027id\u0027]\n\nwas clean up from new_ref(), since we didn\u0027t need the \u0027id\u0027 in the request and now that we are building the request from an empty dictionary, deleting an attribute from the dict that doesn\u0027t exist results in a KeyError.","commit_id":"7b680605b869f86ba88843c892548fcc0c0f59c6"}],"keystone/tests/test_v3_identity.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"851ae27cf266a5950c55f416646a01639af71eb5","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":283,"context_line":"            user_id\u003dself.user2[\u0027id\u0027],"},{"line_number":284,"context_line":"            project_id\u003dself.project2[\u0027id\u0027])"},{"line_number":285,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":286,"context_line":"        self.credential_api.create_credential("},{"line_number":287,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":288,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_a28e322c","line":285,"updated":"2014-08-28 20:09:42.000000000","message":"remove this","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"08f5031a22677e0d7cfae4ac4f9e355db75f86cc","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":283,"context_line":"            user_id\u003dself.user2[\u0027id\u0027],"},{"line_number":284,"context_line":"            project_id\u003dself.project2[\u0027id\u0027])"},{"line_number":285,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":286,"context_line":"        self.credential_api.create_credential("},{"line_number":287,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":288,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_c296ce3d","line":285,"in_reply_to":"1abeadc6_a28e322c","updated":"2014-08-28 20:10:10.000000000","message":"Done","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"851ae27cf266a5950c55f416646a01639af71eb5","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":510,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":511,"context_line":"            project_id\u003dself.project2[\u0027id\u0027])"},{"line_number":512,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":513,"context_line":"        self.credential_api.create_credential("},{"line_number":514,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":515,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_c27fae15","line":512,"updated":"2014-08-28 20:09:42.000000000","message":"remove this","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"08f5031a22677e0d7cfae4ac4f9e355db75f86cc","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":510,"context_line":"            user_id\u003dself.user[\u0027id\u0027],"},{"line_number":511,"context_line":"            project_id\u003dself.project2[\u0027id\u0027])"},{"line_number":512,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":513,"context_line":"        self.credential_api.create_credential("},{"line_number":514,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":515,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_02a446a4","line":512,"in_reply_to":"1abeadc6_c27fae15","updated":"2014-08-28 20:10:10.000000000","message":"Done","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"851ae27cf266a5950c55f416646a01639af71eb5","unresolved":false,"context_lines":[{"line_number":799,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":800,"context_line":"            user_id\u003dself.user2[\u0027id\u0027],"},{"line_number":801,"context_line":"            project_id\u003dself.project[\u0027id\u0027])"},{"line_number":802,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":803,"context_line":"        self.credential_api.create_credential("},{"line_number":804,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":805,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_e284aa0c","line":802,"updated":"2014-08-28 20:09:42.000000000","message":"remove this","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"08f5031a22677e0d7cfae4ac4f9e355db75f86cc","unresolved":false,"context_lines":[{"line_number":799,"context_line":"        self.credential2 \u003d self.new_credential_ref("},{"line_number":800,"context_line":"            user_id\u003dself.user2[\u0027id\u0027],"},{"line_number":801,"context_line":"            project_id\u003dself.project[\u0027id\u0027])"},{"line_number":802,"context_line":"        self.credential2[\u0027id\u0027] \u003d uuid.uuid4().hex"},{"line_number":803,"context_line":"        self.credential_api.create_credential("},{"line_number":804,"context_line":"            self.credential2[\u0027id\u0027],"},{"line_number":805,"context_line":"            self.credential2)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_22a14294","line":802,"in_reply_to":"1abeadc6_e284aa0c","updated":"2014-08-28 20:10:10.000000000","message":"Done","commit_id":"edbc107ecb035f3bb70793a42a5c4c2fd988da7b"}],"keystone/tests/test_validation.py":[{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        self.create_credential_validator \u003d validators.SchemaValidator(create)"},{"line_number":638,"context_line":"        self.update_credential_validator \u003d validators.SchemaValidator(update)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def test_validate_credential_request(self):"},{"line_number":641,"context_line":"        \"\"\"Test that we validate a credential request.\"\"\""},{"line_number":642,"context_line":"        request_to_validate \u003d {\u0027blob\u0027: \u0027some string\u0027,"},{"line_number":643,"context_line":"                               \u0027project_id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_9f814ac5","line":640,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_succeeds","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        self.create_credential_validator \u003d validators.SchemaValidator(create)"},{"line_number":638,"context_line":"        self.update_credential_validator \u003d validators.SchemaValidator(update)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def test_validate_credential_request(self):"},{"line_number":641,"context_line":"        \"\"\"Test that we validate a credential request.\"\"\""},{"line_number":642,"context_line":"        request_to_validate \u003d {\u0027blob\u0027: \u0027some string\u0027,"},{"line_number":643,"context_line":"                               \u0027project_id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_cae5a4a5","line":640,"in_reply_to":"1ae5cdf2_9f814ac5","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                               \u0027user_id\u0027: uuid.uuid4().hex}"},{"line_number":646,"context_line":"        self.create_credential_validator.validate(request_to_validate)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def test_validate_credential_request_without_blob_fails(self):"},{"line_number":649,"context_line":"        \"\"\"Test that an exception is raised when `blob` isn\u0027t included in the"},{"line_number":650,"context_line":"           request to validate."},{"line_number":651,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_ff696e25","line":648,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_without_blob_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                               \u0027user_id\u0027: uuid.uuid4().hex}"},{"line_number":646,"context_line":"        self.create_credential_validator.validate(request_to_validate)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def test_validate_credential_request_without_blob_fails(self):"},{"line_number":649,"context_line":"        \"\"\"Test that an exception is raised when `blob` isn\u0027t included in the"},{"line_number":650,"context_line":"           request to validate."},{"line_number":651,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_eaea6073","line":648,"in_reply_to":"1ae5cdf2_ff696e25","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":655,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":656,"context_line":"                          request_to_validate)"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def test_validate_credential_request_without_user_id_fails(self):"},{"line_number":659,"context_line":"        \"\"\"Test that an exception is raised when `user_id` isn\u0027t included in"},{"line_number":660,"context_line":"           the request to validate."},{"line_number":661,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_9f586a8b","line":658,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_without_user_id_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":655,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":656,"context_line":"                          request_to_validate)"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def test_validate_credential_request_without_user_id_fails(self):"},{"line_number":659,"context_line":"        \"\"\"Test that an exception is raised when `user_id` isn\u0027t included in"},{"line_number":660,"context_line":"           the request to validate."},{"line_number":661,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_2afc483f","line":658,"in_reply_to":"1ae5cdf2_9f586a8b","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":666,"context_line":"                          request_to_validate)"},{"line_number":667,"context_line":""},{"line_number":668,"context_line":"    def test_validate_credential_request_without_type_fails(self):"},{"line_number":669,"context_line":"        \"\"\"Test that an exception is raised when `type` isn\u0027t included in the"},{"line_number":670,"context_line":"           request to validate."},{"line_number":671,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_bf5b6684","line":668,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_without_type_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":666,"context_line":"                          request_to_validate)"},{"line_number":667,"context_line":""},{"line_number":668,"context_line":"    def test_validate_credential_request_without_type_fails(self):"},{"line_number":669,"context_line":"        \"\"\"Test that an exception is raised when `type` isn\u0027t included in the"},{"line_number":670,"context_line":"           request to validate."},{"line_number":671,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_4af9944d","line":668,"in_reply_to":"1ae5cdf2_bf5b6684","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":675,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":676,"context_line":"                          request_to_validate)"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"    def test_validate_credential_with_types(self):"},{"line_number":679,"context_line":"        \"\"\"Test that credential type works for ec2 and cert.\"\"\""},{"line_number":680,"context_line":"        cred_types \u003d [\u0027ec2\u0027, \u0027cert\u0027]"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_ff508e5f","line":678,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_with_types_succeeds","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":675,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":676,"context_line":"                          request_to_validate)"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"    def test_validate_credential_with_types(self):"},{"line_number":679,"context_line":"        \"\"\"Test that credential type works for ec2 and cert.\"\"\""},{"line_number":680,"context_line":"        cred_types \u003d [\u0027ec2\u0027, \u0027cert\u0027]"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_2a8368aa","line":678,"in_reply_to":"1ae5cdf2_ff508e5f","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                              self.create_credential_validator.validate,"},{"line_number":699,"context_line":"                              request_to_validate)"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    def test_validate_credential_request_with_extra_parameters(self):"},{"line_number":702,"context_line":"        \"\"\"Test that an exception is raised when extra parameters are included"},{"line_number":703,"context_line":"           in the request to validate."},{"line_number":704,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_1f4c5ac7","line":701,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_with_extra_parameters_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                              self.create_credential_validator.validate,"},{"line_number":699,"context_line":"                              request_to_validate)"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    def test_validate_credential_request_with_extra_parameters(self):"},{"line_number":702,"context_line":"        \"\"\"Test that an exception is raised when extra parameters are included"},{"line_number":703,"context_line":"           in the request to validate."},{"line_number":704,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_cab3e498","line":701,"in_reply_to":"1ae5cdf2_1f4c5ac7","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":711,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":712,"context_line":"                          request_to_validate)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def test_validate_credential_update_request(self):"},{"line_number":715,"context_line":"        \"\"\"Test that a credential request is properly validated.\"\"\""},{"line_number":716,"context_line":"        request_to_validate \u003d {\u0027blob\u0027: \u0027some string\u0027,"},{"line_number":717,"context_line":"                               \u0027project_id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_3f4756a4","line":714,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_update_succeeds","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":711,"context_line":"                          self.create_credential_validator.validate,"},{"line_number":712,"context_line":"                          request_to_validate)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def test_validate_credential_update_request(self):"},{"line_number":715,"context_line":"        \"\"\"Test that a credential request is properly validated.\"\"\""},{"line_number":716,"context_line":"        request_to_validate \u003d {\u0027blob\u0027: \u0027some string\u0027,"},{"line_number":717,"context_line":"                               \u0027project_id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_6aa4904b","line":714,"in_reply_to":"1ae5cdf2_3f4756a4","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":719,"context_line":"                               \u0027user_id\u0027: uuid.uuid4().hex}"},{"line_number":720,"context_line":"        self.update_credential_validator.validate(request_to_validate)"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_validate_credential_update_fails_without_parameters(self):"},{"line_number":723,"context_line":"        \"\"\"Test that a credential update request must contain at least one"},{"line_number":724,"context_line":"           value to update."},{"line_number":725,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_5fc98224","line":722,"updated":"2014-06-13 21:29:34.000000000","message":"rename: test_validate_credential_update_without_parameters_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"64ed52b79490642ec8e1b98d265e633f2e1f9630","unresolved":false,"context_lines":[{"line_number":719,"context_line":"                               \u0027user_id\u0027: uuid.uuid4().hex}"},{"line_number":720,"context_line":"        self.update_credential_validator.validate(request_to_validate)"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_validate_credential_update_fails_without_parameters(self):"},{"line_number":723,"context_line":"        \"\"\"Test that a credential update request must contain at least one"},{"line_number":724,"context_line":"           value to update."},{"line_number":725,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_aa65b81e","line":722,"in_reply_to":"1ae5cdf2_5fc98224","updated":"2014-06-23 18:49:10.000000000","message":"Done","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"ac5bff28a64277e631c6739727378106642cdb8e","unresolved":false,"context_lines":[{"line_number":728,"context_line":"                          self.update_credential_validator.validate,"},{"line_number":729,"context_line":"                          request_to_validate)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"    def test_validate_credential_update_with_extra_parameters(self):"},{"line_number":732,"context_line":"        \"\"\"Test that an exception is raised when extra parameters are included"},{"line_number":733,"context_line":"           in the credential update request."},{"line_number":734,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_9fcf8a28","line":731,"updated":"2014-06-13 21:29:34.000000000","message":"test_validate_credential_update_with_extra_parameters_fails","commit_id":"25849decce4f8618465afb37bdb3400de1a545f3"}]}
