)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2656ff8b6444a1a97de53318e61c0a6e5fedc7ae","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Note that there is no object compat shim for this change since before"},{"line_number":14,"context_line":"ImageMetaProps, the image metadata properties could have any key/value"},{"line_number":15,"context_line":"pairs, including whatever was using for disk_bus which may or may not"},{"line_number":16,"context_line":"have been validated by the virt driver.  With the introduction of the"},{"line_number":17,"context_line":"ImageMetaProps object, if some image properties have \u0027lxc\u0027 or \u0027uml\u0027"},{"line_number":18,"context_line":"disk_bus values we\u0027ll get a ValueError trying to construct the object"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a50d1a3_ecae5b2d","line":15,"updated":"2015-07-27 18:49:08.000000000","message":"s/using/used/","commit_id":"adb044d6e50af7fe44bd5fc73a63e37f94115c42"}],"nova/objects/image_meta.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d995a3062f4fe6c3d4000d6d3befaf00f8ab416f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"class ImageMetaProps(base.NovaObject):"},{"line_number":109,"context_line":"    # Version 1.0: Initial version"},{"line_number":110,"context_line":"    # Version 1.1: added os_require_quiesce field"},{"line_number":111,"context_line":"    # Version 1.2: Added \u0027lxc\u0027 and \u0027uml\u0027 enum types to DiskBusField"},{"line_number":112,"context_line":"    VERSION \u003d ImageMeta.VERSION"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    # Maximum number of NUMA nodes permitted for the guest topology"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_eced8225","line":111,"updated":"2015-07-09 21:56:58.000000000","message":"I\u0027m not exactly sure how to handle this in obj_make_compatible.  In image_meta \u003c 1.2, a hw_cdrom_bus, hw_disk_bus or hw_floppy_bus with value \u0027lxc\u0027 or \u0027uml\u0027 wouldn\u0027t happen since the DiskBus enum didn\u0027t have those.","commit_id":"f6373b03f2d469ec3bd22cb56c7f7be2b2228240"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"05e0dc869e4cf3db1a48a59b77ff698808d694cc","unresolved":false,"context_lines":[{"line_number":108,"context_line":"class ImageMetaProps(base.NovaObject):"},{"line_number":109,"context_line":"    # Version 1.0: Initial version"},{"line_number":110,"context_line":"    # Version 1.1: added os_require_quiesce field"},{"line_number":111,"context_line":"    # Version 1.2: Added \u0027lxc\u0027 and \u0027uml\u0027 enum types to DiskBusField"},{"line_number":112,"context_line":"    VERSION \u003d ImageMeta.VERSION"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    # Maximum number of NUMA nodes permitted for the guest topology"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_6c48922d","line":111,"in_reply_to":"ba3cc151_eced8225","updated":"2015-07-09 21:59:39.000000000","message":"Oh, maybe I answered my own question - if you\u0027re backporting to \u003c 1.2, then those enum fields won\u0027t work and we have to explode?","commit_id":"f6373b03f2d469ec3bd22cb56c7f7be2b2228240"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"ce4a6c1469e411e2b51d47d5a91d488fb6e5e4fd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class ImageMeta(base.NovaObject):"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    # Version 1.1: updated ImageMetaProps"},{"line_number":28,"context_line":"    # Version 1.2: updated ImageMetaProps"},{"line_number":29,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # These are driven by what the image client API returns"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_6a6767b7","line":28,"updated":"2015-07-22 13:36:05.000000000","message":"Could you put the explicit version number here for ImageMetaProps? So something like \"ImageMetaProps version 1.2\". I know you can get the same information below from obj_relationships, but doing it up here too makes things easier to read as you go through what exactly changed each version.\n\nAlso not sure if it\u0027s acceptable to touch the line above, but it would be nice to change the Version 1.1 comment to \"ImageMetaProps version 1.1\" also.","commit_id":"2ebe16d8303719de79a1aff2d65e717264a864b6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9827e4b87c8fae34c933ed9efa8eb874dc574a6f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class ImageMeta(base.NovaObject):"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    # Version 1.1: updated ImageMetaProps"},{"line_number":28,"context_line":"    # Version 1.2: updated ImageMetaProps"},{"line_number":29,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # These are driven by what the image client API returns"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_658f8e2a","line":28,"in_reply_to":"3a50d1a3_6a6767b7","updated":"2015-07-22 16:01:57.000000000","message":"I\u0027ll add it for 1.2.","commit_id":"2ebe16d8303719de79a1aff2d65e717264a864b6"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"7d7c873a1c578e5baab57d26c097ab93bd4796b7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    # Version 1.1: updated ImageMetaProps"},{"line_number":28,"context_line":"    # Version 1.2: ImageMetaProps version 1.2"},{"line_number":29,"context_line":"    # Version 1.3: updated ImageMetaProps to 1.3"},{"line_number":30,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # These are driven by what the image client API returns"},{"line_number":33,"context_line":"    # to Nova from Glance. This is defined in the glance"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_4a12d60a","line":30,"range":{"start_line":30,"start_character":17,"end_line":30,"end_character":18},"updated":"2015-07-27 18:01:38.000000000","message":"So we\u0027re bumping the versions here because there are new values in an enum field. That\u0027s understandable because 1.2 and 1.3 are now different, but there is no divergence from a compatibility standpoint because 1.2 and 1.3 both just have DiskBusField. We need to have some sort of way for a backport to know \u0027lxc\u0027 didn\u0027t exist if we\u0027re backporting from 1.3 to 1.2.\n\nIf we do need to bump the version, it would\u0027ve been possible to make this change without bumping the version and tests wouldn\u0027t have caught it, so if this did need the bump, we should be testing against things like this (but that can be handled outside of this change).","commit_id":"2ae65a1158280eb9b302d1083e13a797f7021e2e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a6b399b8cfa8b8b3f94bf5b03124c5b543b50f9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    # Version 1.1: updated ImageMetaProps"},{"line_number":28,"context_line":"    # Version 1.2: ImageMetaProps version 1.2"},{"line_number":29,"context_line":"    # Version 1.3: updated ImageMetaProps to 1.3"},{"line_number":30,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # These are driven by what the image client API returns"},{"line_number":33,"context_line":"    # to Nova from Glance. This is defined in the glance"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_f6ab871c","line":30,"in_reply_to":"3a50d1a3_1b12de62","updated":"2015-07-27 18:24:55.000000000","message":"So this might apply:\n\nhttps://review.openstack.org/#/c/184311/22/nova/tests/unit/objects/test_objects.py\n\nMy thinking was, before this ImageMetaProps object, the image metadata properties was just a random dict of key value pairs that may or may not have been validated.  Turns out that we do validate disk_bus values in the libvirt driver, but without this change we\u0027d blow up trying to create this object if any of the fields using DiskBusField got an lxc or uml field value, which could be in some image properties stored in glance.  So before this object things were OK (maybe not validated), then the object was added with the problem, and now we have the enum values.  So would we want to backport to \u003c 1.3 and fail saying you can\u0027t have those values, when you actually should be able to?  Especially since we\u0027re not removing the values from the DiskBusField (it\u0027s not versioned).","commit_id":"2ae65a1158280eb9b302d1083e13a797f7021e2e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eca32fdab4bd05faf6679828acf407aff876b975","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    # Version 1.1: updated ImageMetaProps"},{"line_number":28,"context_line":"    # Version 1.2: ImageMetaProps version 1.2"},{"line_number":29,"context_line":"    # Version 1.3: updated ImageMetaProps to 1.3"},{"line_number":30,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # These are driven by what the image client API returns"},{"line_number":33,"context_line":"    # to Nova from Glance. This is defined in the glance"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1b12de62","line":30,"in_reply_to":"3a50d1a3_4a12d60a","updated":"2015-07-27 18:04:36.000000000","message":"See my comments in patch set 1.  Basically I\u0027m not sure and hope dansmith has answers.","commit_id":"2ae65a1158280eb9b302d1083e13a797f7021e2e"}]}
