)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"versionedobjects: add json schema generation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_5965a8ac","line":9,"updated":"2016-04-29 20:11:37.000000000","message":"s/Versioned object has/Versioned objects have/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"versionedobjects: add json schema generation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_14c77745","line":9,"in_reply_to":"1a122d0e_5965a8ac","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"},{"line_number":13,"context_line":"the notifications it would be super awesome to have the schema"},{"line_number":14,"context_line":"defined in a easy to process and python independent way."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_b9067ccb","line":11,"updated":"2016-04-29 20:11:37.000000000","message":"Really, it\u0027s \"JSON Schema\"... i.e. the Schema should be capitalized when referring to the IETF concept.","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"},{"line_number":13,"context_line":"the notifications it would be super awesome to have the schema"},{"line_number":14,"context_line":"defined in a easy to process and python independent way."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_14ce5759","line":11,"in_reply_to":"1a122d0e_b9067ccb","updated":"2016-04-29 20:53:43.000000000","message":"Good point. I fixed every other occasion of json schema to JSON Schema.","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"},{"line_number":13,"context_line":"the notifications it would be super awesome to have the schema"},{"line_number":14,"context_line":"defined in a easy to process and python independent way."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_990900e0","line":12,"updated":"2016-04-29 20:11:37.000000000","message":"s/it\u0027s/its/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Versioned object has a well defined schema that is available"},{"line_number":10,"context_line":"as python code. This schema can also be expressed in a python"},{"line_number":11,"context_line":"independent way for example with JSON schema. Nova uses versioned"},{"line_number":12,"context_line":"object to define it\u0027s notification interface. For the consumers of"},{"line_number":13,"context_line":"the notifications it would be super awesome to have the schema"},{"line_number":14,"context_line":"defined in a easy to process and python independent way."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_b405e37a","line":12,"in_reply_to":"1a122d0e_990900e0","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"}],"specs/newton/json-schema-for-versioned-object.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net/oslo?searchtext\u003djson-schema-for-versioned-object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available as python code."},{"line_number":10,"context_line":"This schema can also be expressed in a python independent way for example"},{"line_number":11,"context_line":"with JSON schema. Nova uses versioned object to define it\u0027s notification"},{"line_number":12,"context_line":"interface. For the consumers of the notifications it would be super awesome"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_f90c74ed","line":9,"updated":"2016-04-29 20:11:37.000000000","message":"s/Versioned object has/Versioned objects have/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net/oslo?searchtext\u003djson-schema-for-versioned-object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available as python code."},{"line_number":10,"context_line":"This schema can also be expressed in a python independent way for example"},{"line_number":11,"context_line":"with JSON schema. Nova uses versioned object to define it\u0027s notification"},{"line_number":12,"context_line":"interface. For the consumers of the notifications it would be super awesome"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_f423db55","line":9,"in_reply_to":"1a122d0e_f90c74ed","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available as python code."},{"line_number":10,"context_line":"This schema can also be expressed in a python independent way for example"},{"line_number":11,"context_line":"with JSON schema. Nova uses versioned object to define it\u0027s notification"},{"line_number":12,"context_line":"interface. For the consumers of the notifications it would be super awesome"},{"line_number":13,"context_line":"to have the schema defined in a easy to process and python independent way."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_d90ff8dd","line":11,"updated":"2016-04-29 20:11:37.000000000","message":"s/versioned object/versioned objects/\ns/it\u0027s/its/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Versioned object has a well defined schema that is available as python code."},{"line_number":10,"context_line":"This schema can also be expressed in a python independent way for example"},{"line_number":11,"context_line":"with JSON schema. Nova uses versioned object to define it\u0027s notification"},{"line_number":12,"context_line":"interface. For the consumers of the notifications it would be super awesome"},{"line_number":13,"context_line":"to have the schema defined in a easy to process and python independent way."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_74186b1e","line":11,"in_reply_to":"1a122d0e_d90ff8dd","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to have the schema defined in a easy to process and python independent way."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"Versioned notifications has a well defined schema implemented with versioned"},{"line_number":18,"context_line":"objects. This schema prevents nova from changing the structure of the"},{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_39fb8cc2","line":16,"updated":"2016-04-29 20:11:37.000000000","message":"Insert a blank line here.","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to have the schema defined in a easy to process and python independent way."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"Versioned notifications has a well defined schema implemented with versioned"},{"line_number":18,"context_line":"objects. This schema prevents nova from changing the structure of the"},{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_5413af00","line":16,"in_reply_to":"1a122d0e_39fb8cc2","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"Versioned notifications has a well defined schema implemented with versioned"},{"line_number":18,"context_line":"objects. This schema prevents nova from changing the structure of the"},{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."},{"line_number":20,"context_line":"This communication is done via the version number embedded into the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_19f690d6","line":17,"updated":"2016-04-29 20:11:37.000000000","message":"s/Versioned notifications has/Versioned notifications have/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"Versioned notifications has a well defined schema implemented with versioned"},{"line_number":18,"context_line":"objects. This schema prevents nova from changing the structure of the"},{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."},{"line_number":20,"context_line":"This communication is done via the version number embedded into the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_f4dabb49","line":17,"in_reply_to":"1a122d0e_19f690d6","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."},{"line_number":20,"context_line":"This communication is done via the version number embedded into the"},{"line_number":21,"context_line":"notification payload. However this communication is limited and does not"},{"line_number":22,"context_line":"contain information about what is changed in the schema or what is the the"},{"line_number":23,"context_line":"structure of a new notification."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Notification consumers can understand the structure of the notification payload"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_790184ae","line":22,"updated":"2016-04-29 20:11:37.000000000","message":"s/the the/the/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"notification without communicating the change to the notification consumers."},{"line_number":20,"context_line":"This communication is done via the version number embedded into the"},{"line_number":21,"context_line":"notification payload. However this communication is limited and does not"},{"line_number":22,"context_line":"contain information about what is changed in the schema or what is the the"},{"line_number":23,"context_line":"structure of a new notification."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Notification consumers can understand the structure of the notification payload"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_14e4970a","line":22,"in_reply_to":"1a122d0e_790184ae","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Notification payload is a versioned object and the wire format of it is a json"},{"line_number":52,"context_line":"blob generated by the oslo.verisonedobject serialization therefore it is"},{"line_number":53,"context_line":"natural to define the structure of this json blob with a json schema [1]."},{"line_number":54,"context_line":"This way there would be a python implementation independent, machine readable"},{"line_number":55,"context_line":"description of the versioned objects."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_59fc88b4","line":52,"updated":"2016-04-29 20:11:37.000000000","message":"s/verison/version/","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Notification payload is a versioned object and the wire format of it is a json"},{"line_number":52,"context_line":"blob generated by the oslo.verisonedobject serialization therefore it is"},{"line_number":53,"context_line":"natural to define the structure of this json blob with a json schema [1]."},{"line_number":54,"context_line":"This way there would be a python implementation independent, machine readable"},{"line_number":55,"context_line":"description of the versioned objects."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_94bee7d1","line":52,"in_reply_to":"1a122d0e_59fc88b4","updated":"2016-04-29 20:53:43.000000000","message":"Done","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ede4af86268d04d64ab7761da05530ca1fcd1219","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Impact on Existing APIs"},{"line_number":76,"context_line":"-----------------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* A new class method `obj_schema(cls)` will be added to VersionedObject class"},{"line_number":79,"context_line":"  that returns a JSON schema of the class."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* A new method `get_schema(self)` will be added to the FieldType base class."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_b92ddc47","line":78,"updated":"2016-04-29 20:11:37.000000000","message":"How about instead \"to_json_schema()\"?","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79df9074b72c06bca384355e0cfb73890a5b28e6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Impact on Existing APIs"},{"line_number":76,"context_line":"-----------------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* A new class method `obj_schema(cls)` will be added to VersionedObject class"},{"line_number":79,"context_line":"  that returns a JSON schema of the class."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* A new method `get_schema(self)` will be added to the FieldType base class."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_b4904344","line":78,"in_reply_to":"1a122d0e_b92ddc47","updated":"2016-04-29 20:53:43.000000000","message":"I thought the \u0027obj_\u0027 prefix is some kind of pattern in the VersionedObject class but I\u0027m totally OK with the to_json_schema name.","commit_id":"3ae2825240debe6512c8e7dc27d36bdf0b20101f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebc2cff57ca0d72d4f0bd0b8d43194d6d4711925","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Notification payload is a versioned object and the wire format of it is a json"},{"line_number":53,"context_line":"blob generated by the oslo.versionedobject serialization therefore it is"},{"line_number":54,"context_line":"natural to define the structure of this json blob with a JSON Schema."},{"line_number":55,"context_line":"This way there would be a python implementation independent, machine readable"},{"line_number":56,"context_line":"description of the versioned objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Therefore this spec proposes to add JSON Schema generation function to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_d77a0025","line":55,"updated":"2016-05-02 16:15:03.000000000","message":"This sentence is just as good if you remove the word \"python\".","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1975d739d5d99bf1b1af0d8c22f6b809881d1b0d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Notification payload is a versioned object and the wire format of it is a json"},{"line_number":53,"context_line":"blob generated by the oslo.versionedobject serialization therefore it is"},{"line_number":54,"context_line":"natural to define the structure of this json blob with a JSON Schema."},{"line_number":55,"context_line":"This way there would be a python implementation independent, machine readable"},{"line_number":56,"context_line":"description of the versioned objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Therefore this spec proposes to add JSON Schema generation function to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_fb026771","line":55,"in_reply_to":"1a122d0e_d77a0025","updated":"2016-05-03 14:57:57.000000000","message":"Done","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebc2cff57ca0d72d4f0bd0b8d43194d6d4711925","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Therefore this spec proposes to add JSON Schema generation function to the"},{"line_number":59,"context_line":"VersionedObject base class. The implementation would iterate through the items"},{"line_number":60,"context_line":"in the `fields` field of the VersionedObject class and would use the field type"},{"line_number":61,"context_line":"to collect the schema pieces. So that every FieldType object need to have a new"},{"line_number":62,"context_line":"function `get_schema(self)` which returns the schema piece of the field."},{"line_number":63,"context_line":"The Object field type will do a recursion and generate the schema of the"},{"line_number":64,"context_line":"referred class."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_37b9b4cc","line":61,"updated":"2016-05-02 16:15:03.000000000","message":"^Every FieldType object would need to have a new...","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1975d739d5d99bf1b1af0d8c22f6b809881d1b0d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Therefore this spec proposes to add JSON Schema generation function to the"},{"line_number":59,"context_line":"VersionedObject base class. The implementation would iterate through the items"},{"line_number":60,"context_line":"in the `fields` field of the VersionedObject class and would use the field type"},{"line_number":61,"context_line":"to collect the schema pieces. So that every FieldType object need to have a new"},{"line_number":62,"context_line":"function `get_schema(self)` which returns the schema piece of the field."},{"line_number":63,"context_line":"The Object field type will do a recursion and generate the schema of the"},{"line_number":64,"context_line":"referred class."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_3b0b3f7f","line":61,"in_reply_to":"1a122d0e_37b9b4cc","updated":"2016-05-03 14:57:57.000000000","message":"Done","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebc2cff57ca0d72d4f0bd0b8d43194d6d4711925","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Developer Impact"},{"line_number":99,"context_line":"----------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Nova will use the new class method to generate the schema for validation and"},{"line_number":102,"context_line":"documentation generation purposes."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Testing Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_17c3d839","line":101,"updated":"2016-05-02 16:15:03.000000000","message":"s/Nova will/Services should/","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1975d739d5d99bf1b1af0d8c22f6b809881d1b0d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Developer Impact"},{"line_number":99,"context_line":"----------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Nova will use the new class method to generate the schema for validation and"},{"line_number":102,"context_line":"documentation generation purposes."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Testing Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_5b671b51","line":101,"in_reply_to":"1a122d0e_17c3d839","updated":"2016-05-03 14:57:57.000000000","message":"Done. Removed / replaced couple of other occasions as well.","commit_id":"4e935c590f5b4ed797c63448209cdc733db0ea87"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6dd92540dc5e49abe7f9ec2205dd077ba9d3b3c4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"I as a notification consumer want to validate that the received notification"},{"line_number":45,"context_line":"has the defined structure automatically so that I can be sure my software can"},{"line_number":46,"context_line":"consume the notification properly and detect problems earlier."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_9cf4885b","line":47,"updated":"2016-05-10 17:07:08.000000000","message":"Perhaps this isn\u0027t the right spec to put this on and it is merged already, but I as a consumer would like to be able to recreate a given Nova API versioned format from the notification versioned payload format.","commit_id":"a4280690d117f0fbf70d082c726fad9eb2150ead"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d9cf552d7cf19859242ebe40b65225acf2921db8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"I as a notification consumer want to validate that the received notification"},{"line_number":45,"context_line":"has the defined structure automatically so that I can be sure my software can"},{"line_number":46,"context_line":"consume the notification properly and detect problems earlier."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_6458f08a","line":47,"in_reply_to":"dab17558_9cf4885b","updated":"2016-05-17 15:02:13.000000000","message":"This is a quite generic spec to get a schema from any versionedobject. So the request to make a Nova API wire format is the same as the Nova notification wire format shall be raise against Nova not against versionedobject.","commit_id":"a4280690d117f0fbf70d082c726fad9eb2150ead"}]}
