)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a29513857e01cf0a371a6114e59d9143894a5e6e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Closes-Bug: #1314240"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This patch will also enable to fix"},{"line_number":29,"context_line":"Related-Bug: #1314401"},{"line_number":30,"context_line":"Partial-Bug: #1314401"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For that bug it will be necessary to switch of validation under"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_6cd3d938","line":29,"updated":"2014-05-07 21:59:24.000000000","message":"I assume you were intending to delete this line ;)","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"e678aeb734314ac41d664f51ea13981cc841d251","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Closes-Bug: #1314240"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This patch will also enable to fix"},{"line_number":29,"context_line":"Related-Bug: #1314401"},{"line_number":30,"context_line":"Partial-Bug: #1314401"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For that bug it will be necessary to switch of validation under"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_3562663e","line":29,"in_reply_to":"7adec928_6cd3d938","updated":"2014-05-16 23:13:10.000000000","message":"Done","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"caa403776d5f3b693855f453ec8c9edf43df79bf","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Closes-Bug: #1314240"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This patch will also enable to fix"},{"line_number":29,"context_line":"Related-Bug: #1314401"},{"line_number":30,"context_line":"Partial-Bug: #1314401"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For that bug it will be necessary to switch of validation under"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_119a5a63","line":29,"in_reply_to":"7adec928_6cd3d938","updated":"2014-05-08 15:39:14.000000000","message":"Was not sure what the convention is. It is both related and also maybe halfway fixed by this patch. I think I remember having seen this in other commit messages. But I will remove it in the next patch set.","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"ded70ed532648c2fef9cbf0635b1a615112a6f07","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Related-Bug: #1314401"},{"line_number":30,"context_line":"Partial-Bug: #1314401"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For that bug it will be necessary to switch of validation under"},{"line_number":33,"context_line":"certain conditions, which was not possible before when doing"},{"line_number":34,"context_line":"validation right in the constructor."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9ad9bd40_3e988e69","line":32,"updated":"2014-05-08 11:00:41.000000000","message":"typo s/of/off","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"e678aeb734314ac41d664f51ea13981cc841d251","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Related-Bug: #1314401"},{"line_number":30,"context_line":"Partial-Bug: #1314401"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"For that bug it will be necessary to switch of validation under"},{"line_number":33,"context_line":"certain conditions, which was not possible before when doing"},{"line_number":34,"context_line":"validation right in the constructor."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_75586e8a","line":32,"in_reply_to":"9ad9bd40_3e988e69","updated":"2014-05-16 23:13:10.000000000","message":"Done","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"}],"heat/engine/constraints.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"b7f2eb744c37470288c4238c7e23dac4e25480f7","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            else:"},{"line_number":134,"context_line":"                for nested_schema in self.schema.values():"},{"line_number":135,"context_line":"                    nested_schema.validate(context)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _validate_default(self, context):"},{"line_number":138,"context_line":"        if self.default is not None:"},{"line_number":139,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_e522a500","line":136,"updated":"2014-05-07 16:58:47.000000000","message":"This section is new, and doesn\u0027t appear to be tested.","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"e678aeb734314ac41d664f51ea13981cc841d251","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            else:"},{"line_number":134,"context_line":"                for nested_schema in self.schema.values():"},{"line_number":135,"context_line":"                    nested_schema.validate(context)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _validate_default(self, context):"},{"line_number":138,"context_line":"        if self.default is not None:"},{"line_number":139,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_55f53255","line":136,"in_reply_to":"7adec928_91dbca1a","updated":"2014-05-16 23:13:10.000000000","message":"Done","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"caa403776d5f3b693855f453ec8c9edf43df79bf","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            else:"},{"line_number":134,"context_line":"                for nested_schema in self.schema.values():"},{"line_number":135,"context_line":"                    nested_schema.validate(context)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _validate_default(self, context):"},{"line_number":138,"context_line":"        if self.default is not None:"},{"line_number":139,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_91dbca1a","line":136,"in_reply_to":"7adec928_e522a500","updated":"2014-05-08 15:39:14.000000000","message":"Yes, this is necessary now to trigger the \"lazy\" validation on nested schemata in case there are some, because validation will be triggered on the top level by the calling code.\n\nYou are right, I should add a testcase ... which I will do in the next patch set.","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"}],"heat/engine/properties.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a29513857e01cf0a371a6114e59d9143894a5e6e","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self, schema, name\u003dNone, context\u003dNone):"},{"line_number":169,"context_line":"        self.schema \u003d Schema.from_legacy(schema)"},{"line_number":170,"context_line":"        self.schema.validate(context)"},{"line_number":171,"context_line":"        self.name \u003d name"},{"line_number":172,"context_line":"        self.context \u003d context"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_cc46ad23","line":170,"updated":"2014-05-07 21:59:24.000000000","message":"I think we should be calling this from properties.Schema.__init__(). If somebody writes an invalid resource, we want it to fail fast (i.e. as soon as it is loaded), not wait until someone tries to use it.","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"e678aeb734314ac41d664f51ea13981cc841d251","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self, schema, name\u003dNone, context\u003dNone):"},{"line_number":169,"context_line":"        self.schema \u003d Schema.from_legacy(schema)"},{"line_number":170,"context_line":"        self.schema.validate(context)"},{"line_number":171,"context_line":"        self.name \u003d name"},{"line_number":172,"context_line":"        self.context \u003d context"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_955dfa7b","line":170,"in_reply_to":"7adec928_cc46ad23","updated":"2014-05-16 23:13:10.000000000","message":"Done","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"caa403776d5f3b693855f453ec8c9edf43df79bf","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self, schema, name\u003dNone, context\u003dNone):"},{"line_number":169,"context_line":"        self.schema \u003d Schema.from_legacy(schema)"},{"line_number":170,"context_line":"        self.schema.validate(context)"},{"line_number":171,"context_line":"        self.name \u003d name"},{"line_number":172,"context_line":"        self.context \u003d context"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_d112b2b3","line":170,"in_reply_to":"7adec928_cc46ad23","updated":"2014-05-08 15:39:14.000000000","message":"So help me: this code here is not executed when a resource is constructed (i.e. loaded), but only when properties are accessed?\n\nIn that case, I agree and will move this to the place you suggested. The plan is then to relax property schema validated where necessary in a follow-up patch.","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"2b338ab99bb265066be4a62fe3268a8b6d6135d1","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self, schema, name\u003dNone, context\u003dNone):"},{"line_number":169,"context_line":"        self.schema \u003d Schema.from_legacy(schema)"},{"line_number":170,"context_line":"        self.schema.validate(context)"},{"line_number":171,"context_line":"        self.name \u003d name"},{"line_number":172,"context_line":"        self.context \u003d context"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_948215c6","line":170,"in_reply_to":"7adec928_d112b2b3","updated":"2014-05-19 20:34:32.000000000","message":"Yes, the Property object is only constructed when you create an actual instance of a resource. What we want (and what you have in patch set 5) is that as soon as you write a resource with an invalid Schema, it will immediately fail on import. Plugin authors hopefully cannot fail to notice this ;)","commit_id":"8518e945de17fdfca1aafc1f0f3f3415a3a0817a"}],"heat/tests/test_constraints.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"63d9616513d9d421cbf7680b3946406c73e6cd69","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    def test_range_invalid_type(self):"},{"line_number":193,"context_line":"        schema \u003d constraints.Schema(\u0027String\u0027,"},{"line_number":194,"context_line":"                                    constraints\u003d[constraints.Range(1, 10)])"},{"line_number":195,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":196,"context_line":"                          schema.validate)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_length_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_dc8a2263","line":195,"updated":"2014-05-19 07:19:04.000000000","message":"Could you add check for error message here, like for new tests?","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"2bc25b7b66b1b04a8232c588a86acbd664a06684","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    def test_range_invalid_type(self):"},{"line_number":193,"context_line":"        schema \u003d constraints.Schema(\u0027String\u0027,"},{"line_number":194,"context_line":"                                    constraints\u003d[constraints.Range(1, 10)])"},{"line_number":195,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":196,"context_line":"                          schema.validate)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_length_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_889e8db7","line":195,"in_reply_to":"7adec928_dc8a2263","updated":"2014-05-19 08:28:32.000000000","message":"Done","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"63d9616513d9d421cbf7680b3946406c73e6cd69","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    def test_length_invalid_type(self):"},{"line_number":199,"context_line":"        schema \u003d constraints.Schema(\u0027Integer\u0027,"},{"line_number":200,"context_line":"                                    constraints\u003d[constraints.Length(1, 10)])"},{"line_number":201,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":202,"context_line":"                          schema.validate)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def test_allowed_pattern_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_5cf612fa","line":201,"updated":"2014-05-19 07:19:04.000000000","message":"same","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"2bc25b7b66b1b04a8232c588a86acbd664a06684","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    def test_length_invalid_type(self):"},{"line_number":199,"context_line":"        schema \u003d constraints.Schema(\u0027Integer\u0027,"},{"line_number":200,"context_line":"                                    constraints\u003d[constraints.Length(1, 10)])"},{"line_number":201,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":202,"context_line":"                          schema.validate)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def test_allowed_pattern_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_a8a189f9","line":201,"in_reply_to":"7adec928_5cf612fa","updated":"2014-05-19 08:28:32.000000000","message":"Done","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"63d9616513d9d421cbf7680b3946406c73e6cd69","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            \u0027Integer\u0027,"},{"line_number":207,"context_line":"            constraints\u003d[constraints.AllowedPattern(\u0027[0-9]*\u0027)]"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":210,"context_line":"                          schema.validate)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def test_range_vals_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_bce63642","line":209,"updated":"2014-05-19 07:19:04.000000000","message":"same","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"2bc25b7b66b1b04a8232c588a86acbd664a06684","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            \u0027Integer\u0027,"},{"line_number":207,"context_line":"            constraints\u003d[constraints.AllowedPattern(\u0027[0-9]*\u0027)]"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        self.assertRaises(constraints.InvalidSchemaError,"},{"line_number":210,"context_line":"                          schema.validate)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def test_range_vals_invalid_type(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_c8a4150a","line":209,"in_reply_to":"7adec928_bce63642","updated":"2014-05-19 08:28:32.000000000","message":"Done","commit_id":"d33357fdb6fa2062c907b182cb65b4c0003da3f7"}]}
