)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This change extends the VideoModel field"},{"line_number":10,"context_line":"  object to allow 3 new values"},{"line_number":11,"context_line":"  (virtio, gop, none)"},{"line_number":12,"context_line":"- This change makes the libvirt driver use"},{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_cd250bad","line":11,"updated":"2019-05-23 16:12:31.000000000","message":"What on earth are you wrapping this with? :D I blame emacs","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This change extends the VideoModel field"},{"line_number":10,"context_line":"  object to allow 3 new values"},{"line_number":11,"context_line":"  (virtio, gop, none)"},{"line_number":12,"context_line":"- This change makes the libvirt driver use"},{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_1dcec381","line":11,"in_reply_to":"bfb3d3c7_cd250bad","updated":"2019-05-27 22:51:21.000000000","message":"maybe :)","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  object to allow 3 new values"},{"line_number":11,"context_line":"  (virtio, gop, none)"},{"line_number":12,"context_line":"- This change makes the libvirt driver use"},{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_7644201c","line":13,"range":{"start_line":13,"start_character":12,"end_line":13,"end_character":16},"updated":"2019-05-21 15:04:04.000000000","message":"from","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  object to allow 3 new values"},{"line_number":11,"context_line":"  (virtio, gop, none)"},{"line_number":12,"context_line":"- This change makes the libvirt driver use"},{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_bdc69767","line":13,"range":{"start_line":13,"start_character":12,"end_line":13,"end_character":16},"in_reply_to":"bfb3d3c7_7644201c","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_3646a823","line":16,"range":{"start_line":16,"start_character":14,"end_line":16,"end_character":19},"updated":"2019-05-21 15:04:04.000000000","message":"allows","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  ALL tuple form the nova.fields.VideoModel"},{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_ddc34b56","line":16,"range":{"start_line":16,"start_character":14,"end_line":16,"end_character":19},"in_reply_to":"bfb3d3c7_3646a823","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_d654eccc","line":17,"range":{"start_line":17,"start_character":41,"end_line":17,"end_character":45},"updated":"2019-05-21 15:04:04.000000000","message":"than","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  object instead of declaring a second"},{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_7da25fb0","line":17,"range":{"start_line":17,"start_character":41,"end_line":17,"end_character":45},"in_reply_to":"bfb3d3c7_d654eccc","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"},{"line_number":21,"context_line":"  release note for the new capablities."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_8d3713e4","line":18,"range":{"start_line":18,"start_character":15,"end_line":18,"end_character":24},"updated":"2019-05-23 16:12:31.000000000","message":"explicitly","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  tuple inline for validation."},{"line_number":16,"context_line":"- This change allow the virtio video model"},{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"},{"line_number":21,"context_line":"  release note for the new capablities."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_9da713be","line":18,"range":{"start_line":18,"start_character":15,"end_line":18,"end_character":24},"in_reply_to":"bfb3d3c7_8d3713e4","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"},{"line_number":21,"context_line":"  release note for the new capablities."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I2830ccfc81cfa9654cfeac7ad5effc294f523552"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_b66378b1","line":20,"range":{"start_line":20,"start_character":14,"end_line":20,"end_character":23},"updated":"2019-05-21 15:04:04.000000000","message":"introduces","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  to now be used for architectures other then"},{"line_number":18,"context_line":"  AArch64 when explcitly requested via the"},{"line_number":19,"context_line":"  hw_video_model image metadata property"},{"line_number":20,"context_line":"- This change intoduces unit tests and a"},{"line_number":21,"context_line":"  release note for the new capablities."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I2830ccfc81cfa9654cfeac7ad5effc294f523552"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_3da8678a","line":20,"range":{"start_line":20,"start_character":14,"end_line":20,"end_character":23},"in_reply_to":"bfb3d3c7_b66378b1","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"}],"nova/objects/fields.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":509,"context_line":"    GOP \u003d \u0027gop\u0027"},{"line_number":510,"context_line":"    NONE \u003d \u0027none\u0027"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    ALL \u003d (CIRRUS, QXL, VGA, VMVGA, XEN,"},{"line_number":513,"context_line":"           VIRTIO, GOP, NONE)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_56b23ce8","line":512,"updated":"2019-05-21 15:04:04.000000000","message":"nit, could be same line","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":509,"context_line":"    GOP \u003d \u0027gop\u0027"},{"line_number":510,"context_line":"    NONE \u003d \u0027none\u0027"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    ALL \u003d (CIRRUS, QXL, VGA, VMVGA, XEN,"},{"line_number":513,"context_line":"           VIRTIO, GOP, NONE)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_5db8bbe3","line":512,"in_reply_to":"bfb3d3c7_2d3627e8","updated":"2019-05-27 22:51:21.000000000","message":"i may have been or i was in a rush and did not enable column\nnumbers :) i tend to wrap things more for safty if i dont have it displayed. \nill fix it up with nano :P","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":509,"context_line":"    GOP \u003d \u0027gop\u0027"},{"line_number":510,"context_line":"    NONE \u003d \u0027none\u0027"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    ALL \u003d (CIRRUS, QXL, VGA, VMVGA, XEN,"},{"line_number":513,"context_line":"           VIRTIO, GOP, NONE)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_2d3627e8","line":512,"in_reply_to":"bfb3d3c7_56b23ce8","updated":"2019-05-23 16:12:31.000000000","message":"emacs.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"}],"nova/objects/image_meta.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cdd65ef5ce14ae9606ce02fa6335e614ca85e041","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("},{"line_number":187,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":188,"context_line":"                    reason\u003d\u0027hw_video_model\u003d%s not supported in version %s\u0027 % ("},{"line_number":189,"context_line":"                        video, target_version))"},{"line_number":190,"context_line":"        if target_version \u003c (1, 21):"},{"line_number":191,"context_line":"            primitive.pop(\u0027hw_time_hpet\u0027, None)"},{"line_number":192,"context_line":"        if target_version \u003c (1, 20):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_9b806948","line":189,"range":{"start_line":186,"start_character":0,"end_line":189,"end_character":47},"updated":"2019-05-28 21:07:46.000000000","message":"I think it would be more consistent to simply pop \u0027hw_video_model\u0027 when its an invalid value.\n\nI am worried about breaking our upgrade rules here. It seems like being consistent here wouldn\u0027t loose us any protections.\n\nThat said... I am willing to be told I have this all upside down somehow.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed2d2e1366f90b2dcedda8bb00e8288e94e8aac5","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("},{"line_number":187,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":188,"context_line":"                    reason\u003d\u0027hw_video_model\u003d%s not supported in version %s\u0027 % ("},{"line_number":189,"context_line":"                        video, target_version))"},{"line_number":190,"context_line":"        if target_version \u003c (1, 21):"},{"line_number":191,"context_line":"            primitive.pop(\u0027hw_time_hpet\u0027, None)"},{"line_number":192,"context_line":"        if target_version \u003c (1, 20):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_e6db024c","line":189,"range":{"start_line":186,"start_character":0,"end_line":189,"end_character":47},"in_reply_to":"bfb3d3c7_03df283a","updated":"2019-05-29 12:01:13.000000000","message":"yes i did it this way to match line 227-233 below\nsince this filed already exisits we do not want to actully pop the value we want to raise and exception becasue you requested something in the flavor that the host this is being serialsed too cannot support.\n\nif you said hw_video_model\u003dnone and we schduled you to a host that did not support it then we want to fail in the conductor when we try backlevel the object at spawn as it woudl not be correct to pop the value entirely and spawn the vm with a emulated dispaly device which is what would happen if we just popped the value.\n\nso unlike hw_watchdog_action on line 197 below simply popping the value does not have the same behavior and therefor we raise the exception instead.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"efd8a931d70f899e81bd73c695c9b1f536ff1d39","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("},{"line_number":187,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":188,"context_line":"                    reason\u003d\u0027hw_video_model\u003d%s not supported in version %s\u0027 % ("},{"line_number":189,"context_line":"                        video, target_version))"},{"line_number":190,"context_line":"        if target_version \u003c (1, 21):"},{"line_number":191,"context_line":"            primitive.pop(\u0027hw_time_hpet\u0027, None)"},{"line_number":192,"context_line":"        if target_version \u003c (1, 20):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_03df283a","line":189,"range":{"start_line":186,"start_character":0,"end_line":189,"end_character":47},"in_reply_to":"bfb3d3c7_9b806948","updated":"2019-05-29 10:38:20.000000000","message":"This raised my eyebrow too, but see L227-233, suspect it was done for consistency with that.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d8746d22cca6b7bf1be80dba97a84e490a758eb8","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("},{"line_number":187,"context_line":"                    action\u003d\u0027obj_make_compatible\u0027,"},{"line_number":188,"context_line":"                    reason\u003d\u0027hw_video_model\u003d%s not supported in version %s\u0027 % ("},{"line_number":189,"context_line":"                        video, target_version))"},{"line_number":190,"context_line":"        if target_version \u003c (1, 21):"},{"line_number":191,"context_line":"            primitive.pop(\u0027hw_time_hpet\u0027, None)"},{"line_number":192,"context_line":"        if target_version \u003c (1, 20):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_792f9e87","line":189,"range":{"start_line":186,"start_character":0,"end_line":189,"end_character":47},"in_reply_to":"bfb3d3c7_e6db024c","updated":"2019-05-30 09:39:40.000000000","message":"Ah... OK. Lets just raise.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":181,"context_line":"        # NOTE(sean-k-mooney): unlike other nova object we version this object"},{"line_number":182,"context_line":"        # when composed object are updated."},{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_7f659ce0","line":183,"updated":"2019-06-07 18:40:42.000000000","message":"You don\u0027t have a test for this compat check.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"15553acffd02a0bf008b41c936ea8c232b393c1d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":181,"context_line":"        # NOTE(sean-k-mooney): unlike other nova object we version this object"},{"line_number":182,"context_line":"        # when composed object are updated."},{"line_number":183,"context_line":"        if target_version \u003c (1, 22):"},{"line_number":184,"context_line":"            video \u003d primitive.get(\u0027hw_video_model\u0027, None)"},{"line_number":185,"context_line":"            if video in (\u0027gop\u0027, \u0027virtio\u0027, \u0027none\u0027):"},{"line_number":186,"context_line":"                raise exception.ObjectActionError("}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_1e737982","line":183,"in_reply_to":"9fb8cfa7_7f659ce0","updated":"2019-06-20 01:39:01.000000000","message":"i still need to adress this so ill fix it in v8","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"}],"nova/tests/unit/objects/test_image_meta.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                              obj.obj_to_primitive, \u00271.0\u0027)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def test_obj_make_compatible_video_model(self):"},{"line_number":353,"context_line":"        # assert that older video models are not  preserved."},{"line_number":354,"context_line":"        obj \u003d objects.ImageMetaProps("},{"line_number":355,"context_line":"            hw_video_model\u003dobjects.fields.VideoModel.QXL)"},{"line_number":356,"context_line":"        primitive \u003d obj.obj_to_primitive(\u00271.0\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_54ac518b","line":353,"range":{"start_line":353,"start_character":48,"end_line":353,"end_character":50},"updated":"2019-06-21 18:20:47.000000000","message":"one space","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def test_obj_make_compatible_video_model(self):"},{"line_number":353,"context_line":"        # assert that older video models are not  preserved."},{"line_number":354,"context_line":"        obj \u003d objects.ImageMetaProps("},{"line_number":355,"context_line":"            hw_video_model\u003dobjects.fields.VideoModel.QXL)"},{"line_number":356,"context_line":"        primitive \u003d obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":357,"context_line":"        self.assertIn(\"hw_video_model\", primitive[\u0027nova_object.data\u0027])"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_94a2c999","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":57},"updated":"2019-06-21 18:20:47.000000000","message":"nit: throw another field in this object that won\u0027t get removed when you backport it to 1.0 and assert it\u0027s still in there.","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        obj \u003d objects.ImageMetaProps("},{"line_number":355,"context_line":"            hw_video_model\u003dobjects.fields.VideoModel.QXL)"},{"line_number":356,"context_line":"        primitive \u003d obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":357,"context_line":"        self.assertIn(\"hw_video_model\", primitive[\u0027nova_object.data\u0027])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Virtio, GOP and None were added in 1.22 and should raise and"},{"line_number":360,"context_line":"        # exception when backleveling."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_f4b465d3","line":357,"updated":"2019-06-21 18:20:47.000000000","message":"I\u0027m confused - the comment above says assert older video models are *not* preserved - is that \"not\" a typo? Since QXL was around before 1.22, shouldn\u0027t you assert it\u0027s still in the list?","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5c226f39a79b33a326df0963eff861174c8afa0b","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        obj \u003d objects.ImageMetaProps("},{"line_number":355,"context_line":"            hw_video_model\u003dobjects.fields.VideoModel.QXL)"},{"line_number":356,"context_line":"        primitive \u003d obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":357,"context_line":"        self.assertIn(\"hw_video_model\", primitive[\u0027nova_object.data\u0027])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Virtio, GOP and None were added in 1.22 and should raise and"},{"line_number":360,"context_line":"        # exception when backleveling."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_6afdeeaf","line":357,"in_reply_to":"9fb8cfa7_f4b465d3","updated":"2019-06-22 12:59:25.000000000","message":"ya sorry i stared typeing not removed and change it preserved or the other way around ill fix this.","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        primitive \u003d obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":357,"context_line":"        self.assertIn(\"hw_video_model\", primitive[\u0027nova_object.data\u0027])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Virtio, GOP and None were added in 1.22 and should raise and"},{"line_number":360,"context_line":"        # exception when backleveling."},{"line_number":361,"context_line":"        models \u003d [objects.fields.VideoModel.VIRTIO,"},{"line_number":362,"context_line":"                  objects.fields.VideoModel.GOP,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_b49d8d58","line":359,"range":{"start_line":359,"start_character":67,"end_line":359,"end_character":70},"updated":"2019-06-21 18:20:47.000000000","message":"an","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                  objects.fields.VideoModel.NONE]"},{"line_number":364,"context_line":"        for model in models:"},{"line_number":365,"context_line":"            obj \u003d objects.ImageMetaProps(hw_video_model\u003dmodel)"},{"line_number":366,"context_line":"            self.assertRaises(exception.ObjectActionError,"},{"line_number":367,"context_line":"                              obj.obj_to_primitive, \u00271.0\u0027)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def test_obj_make_compatible_watchdog_action_not_disabled(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_74c0752b","line":366,"updated":"2019-06-21 18:20:47.000000000","message":"You can assert you\u0027re getting this for the reason you expect by checking the error string has \"hw_video_model\" in it, e.g.:\n\nex \u003d self.assertRaises(...)\nself.assertIn(\u0027hw_video_model\u0027, six.text_type(ex))","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a52a897d8991fd7390b6db7e394f1971de034c01","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        for model in models:"},{"line_number":365,"context_line":"            obj \u003d objects.ImageMetaProps(hw_video_model\u003dmodel)"},{"line_number":366,"context_line":"            self.assertRaises(exception.ObjectActionError,"},{"line_number":367,"context_line":"                              obj.obj_to_primitive, \u00271.0\u0027)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def test_obj_make_compatible_watchdog_action_not_disabled(self):"},{"line_number":370,"context_line":"        \"\"\"Tests that we don\u0027t pop the hw_watchdog_action if the value is not"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_54c5313b","line":367,"range":{"start_line":367,"start_character":53,"end_line":367,"end_character":56},"updated":"2019-06-21 18:20:47.000000000","message":"I think going to 1.22 would be a bit better since it\u0027s a boundary test.","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"},{"line_number":5434,"context_line":""},{"line_number":5435,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_supports_gop_video\u0027)"},{"line_number":5436,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"},{"line_number":5437,"context_line":"        _supports_gop_video.return_value \u003d True"},{"line_number":5438,"context_line":"        self._test_add_video_driver(\u0027gop\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_16d124fc","line":5435,"range":{"start_line":5435,"start_character":4,"end_line":5435,"end_character":75},"updated":"2019-05-21 15:04:04.000000000","message":"These should be done by spoofing the libvirt version rather than mocking the helper. Otherwise we\u0027re missing unit testing that penetrates the helper itself (trivial though it is).","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"775fbeb3676d3460b811693f51116ac36ebaee14","unresolved":false,"context_lines":[{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"},{"line_number":5434,"context_line":""},{"line_number":5435,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_supports_gop_video\u0027)"},{"line_number":5436,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"},{"line_number":5437,"context_line":"        _supports_gop_video.return_value \u003d True"},{"line_number":5438,"context_line":"        self._test_add_video_driver(\u0027gop\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_bb8bed1c","line":5435,"range":{"start_line":5435,"start_character":4,"end_line":5435,"end_character":75},"in_reply_to":"bfb3d3c7_084c4340","updated":"2019-05-28 21:10:14.000000000","message":"FWIW, I am +1 Eric here. Feels like over mocking too me.\n\nStill feels like we are missing coverage now, as noted in my review.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"},{"line_number":5434,"context_line":""},{"line_number":5435,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_supports_gop_video\u0027)"},{"line_number":5436,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"},{"line_number":5437,"context_line":"        _supports_gop_video.return_value \u003d True"},{"line_number":5438,"context_line":"        self._test_add_video_driver(\u0027gop\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_084c4340","line":5435,"range":{"start_line":5435,"start_character":4,"end_line":5435,"end_character":75},"in_reply_to":"bfb3d3c7_16d124fc","updated":"2019-05-27 22:51:21.000000000","message":"thats debatable. since they are in the same class/module that would also be ok\nif this was in a different moule then the mock approch would be more correct but i went with your suggested refactor so ill update the test to reflect the new\n_video_model_supported function.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":5447,"context_line":"        _supports_none_video.return_value \u003d False"},{"line_number":5448,"context_line":"        self.assertRaises(exception.InvalidVideoMode,"},{"line_number":5449,"context_line":"                          self._test_add_video_driver, \u0027none\u0027)"},{"line_number":5450,"context_line":""},{"line_number":5451,"context_line":"    @mock.patch(\u0027nova.virt.disk.api.teardown_container\u0027)"},{"line_number":5452,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver.get_info\u0027)"},{"line_number":5453,"context_line":"    @mock.patch(\u0027nova.virt.disk.api.setup_container\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_16fa8474","line":5450,"updated":"2019-05-21 15:04:04.000000000","message":"We don\u0027t seem to have a test for InvalidVideoMode when a \u0027model\u0027 outside of VideoModels.ALL is given. This was a deficit before your patch, but since you\u0027re nearby and touched the VALID_VIDEO_DEVICES var, you might as well add it :)","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":5447,"context_line":"        _supports_none_video.return_value \u003d False"},{"line_number":5448,"context_line":"        self.assertRaises(exception.InvalidVideoMode,"},{"line_number":5449,"context_line":"                          self._test_add_video_driver, \u0027none\u0027)"},{"line_number":5450,"context_line":""},{"line_number":5451,"context_line":"    @mock.patch(\u0027nova.virt.disk.api.teardown_container\u0027)"},{"line_number":5452,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver.get_info\u0027)"},{"line_number":5453,"context_line":"    @mock.patch(\u0027nova.virt.disk.api.setup_container\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_fdd08f21","line":5450,"in_reply_to":"bfb3d3c7_16fa8474","updated":"2019-05-27 22:51:21.000000000","message":"yes good point ill add a negitiv tests","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cdd65ef5ce14ae9606ce02fa6335e614ca85e041","unresolved":false,"context_lines":[{"line_number":5442,"context_line":"        self.assertFalse(drvr._video_model_supported(\"fake\"))"},{"line_number":5443,"context_line":"        # if the min version is not supproted assert that it is not supported"},{"line_number":5444,"context_line":"        min_version_mock.return_value \u003d False"},{"line_number":5445,"context_line":"        self.assertFalse(drvr._video_model_supported(\"gop\"))"},{"line_number":5446,"context_line":""},{"line_number":5447,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_video_model_supported\u0027)"},{"line_number":5448,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_dbc26159","line":5445,"updated":"2019-05-28 21:07:46.000000000","message":"Feels like we should assert the correct versions are passed for both \"gop\" and None?\n\nIt would be nice to confirm it is not called for a supported case like \"virtio\").","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d8746d22cca6b7bf1be80dba97a84e490a758eb8","unresolved":false,"context_lines":[{"line_number":5442,"context_line":"        self.assertFalse(drvr._video_model_supported(\"fake\"))"},{"line_number":5443,"context_line":"        # if the min version is not supproted assert that it is not supported"},{"line_number":5444,"context_line":"        min_version_mock.return_value \u003d False"},{"line_number":5445,"context_line":"        self.assertFalse(drvr._video_model_supported(\"gop\"))"},{"line_number":5446,"context_line":""},{"line_number":5447,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_video_model_supported\u0027)"},{"line_number":5448,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_d9556afb","line":5445,"in_reply_to":"bfb3d3c7_662072f8","updated":"2019-05-30 09:39:40.000000000","message":"cool.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed2d2e1366f90b2dcedda8bb00e8288e94e8aac5","unresolved":false,"context_lines":[{"line_number":5442,"context_line":"        self.assertFalse(drvr._video_model_supported(\"fake\"))"},{"line_number":5443,"context_line":"        # if the min version is not supproted assert that it is not supported"},{"line_number":5444,"context_line":"        min_version_mock.return_value \u003d False"},{"line_number":5445,"context_line":"        self.assertFalse(drvr._video_model_supported(\"gop\"))"},{"line_number":5446,"context_line":""},{"line_number":5447,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver, \u0027_video_model_supported\u0027)"},{"line_number":5448,"context_line":"    def test__add_video_driver_gop(self, _supports_gop_video):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_662072f8","line":5445,"in_reply_to":"bfb3d3c7_dbc26159","updated":"2019-05-29 12:01:13.000000000","message":"ok i can add that.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":5427,"context_line":"        self.assertTrue(drvr._guest_add_video_device(guest))"},{"line_number":5428,"context_line":"        video \u003d drvr._add_video_driver(guest, image_meta,"},{"line_number":5429,"context_line":"                                       flavor)"},{"line_number":5430,"context_line":"        self.assertEqual(video.type, model)"},{"line_number":5431,"context_line":""},{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ff2bcc7e","line":5430,"range":{"start_line":5430,"start_character":13,"end_line":5430,"end_character":24},"updated":"2019-06-07 18:40:42.000000000","message":"Swap these args (expected, actual) which matters if it fails because the MismatchError will be confusing.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4c6424887c059a37f59c95da5723319be2d74ddf","unresolved":false,"context_lines":[{"line_number":5427,"context_line":"        self.assertTrue(drvr._guest_add_video_device(guest))"},{"line_number":5428,"context_line":"        video \u003d drvr._add_video_driver(guest, image_meta,"},{"line_number":5429,"context_line":"                                       flavor)"},{"line_number":5430,"context_line":"        self.assertEqual(video.type, model)"},{"line_number":5431,"context_line":""},{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_f848545c","line":5430,"range":{"start_line":5430,"start_character":13,"end_line":5430,"end_character":24},"in_reply_to":"9fb8cfa7_ff2bcc7e","updated":"2019-06-19 12:15:55.000000000","message":"ya i never rememebr the ordering but i fix it when a test fails and i notice its wrong. done","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"},{"line_number":5434,"context_line":""},{"line_number":5435,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":5436,"context_line":"    def test__video_model_supported(self, min_version_mock):"},{"line_number":5437,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":5438,"context_line":"        # assert that all known vif models pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_3f3164ed","line":5435,"updated":"2019-06-07 18:40:42.000000000","message":"nit: I\u0027ve seen issues in the libvirt tests where these has_min_version checks collide between tests, likely because of a bad global mock. As such I\u0027d recommend mocking drvr._host directly since it\u0027s unique to this test case alone.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4c6424887c059a37f59c95da5723319be2d74ddf","unresolved":false,"context_lines":[{"line_number":5432,"context_line":"    def test__add_video_driver(self):"},{"line_number":5433,"context_line":"        self._test_add_video_driver(\u0027qxl\u0027)"},{"line_number":5434,"context_line":""},{"line_number":5435,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":5436,"context_line":"    def test__video_model_supported(self, min_version_mock):"},{"line_number":5437,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":5438,"context_line":"        # assert that all known vif models pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_987118ab","line":5435,"in_reply_to":"9fb8cfa7_3f3164ed","updated":"2019-06-19 12:15:55.000000000","message":"ok ill have to mock thiswihtout a decorator to do that but sure.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":5440,"context_line":"            min_version_mock.reset_mock()"},{"line_number":5441,"context_line":"            self.assertTrue(drvr._video_model_supported(model))"},{"line_number":5442,"context_line":"            # and that vif models with minium versions are checked"},{"line_number":5443,"context_line":"            if model in libvirt_driver.MIN_LIBVIRT_VIDEO_MODEL_VERSIONS:"},{"line_number":5444,"context_line":"                ver \u003d libvirt_driver.MIN_LIBVIRT_VIDEO_MODEL_VERSIONS[model]"},{"line_number":5445,"context_line":"                min_version_mock.assert_called_with(lv_ver\u003dver)"},{"line_number":5446,"context_line":"        # then assert that fake models fail"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_9f7090a7","line":5443,"updated":"2019-06-07 18:40:42.000000000","message":"Throw an else on this to assert that the min version check doesn\u0027t happen otherwise.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"96e0d9a9d7a98bf59580ea8a05631b619bf5d213","unresolved":false,"context_lines":[{"line_number":5442,"context_line":"            # and that vif models with minium versions are checked"},{"line_number":5443,"context_line":"            if model in libvirt_driver.MIN_LIBVIRT_VIDEO_MODEL_VERSIONS:"},{"line_number":5444,"context_line":"                ver \u003d libvirt_driver.MIN_LIBVIRT_VIDEO_MODEL_VERSIONS[model]"},{"line_number":5445,"context_line":"                min_version_mock.assert_called_with(lv_ver\u003dver)"},{"line_number":5446,"context_line":"        # then assert that fake models fail"},{"line_number":5447,"context_line":"        self.assertFalse(drvr._video_model_supported(\"fake\"))"},{"line_number":5448,"context_line":"        # finally if the min version is not met assert that"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_da72ade3","line":5445,"range":{"start_line":5445,"start_character":16,"end_line":5445,"end_character":63},"updated":"2019-06-06 19:10:45.000000000","message":"✔","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_b6d61827","line":289,"range":{"start_line":288,"start_character":0,"end_line":289,"end_character":34},"updated":"2019-05-21 15:04:04.000000000","message":"Should these be suffixed with _VERSION? I see a couple above that aren\u0027t, but they seem to be the exception.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_cd5aeb28","line":289,"range":{"start_line":288,"start_character":0,"end_line":289,"end_character":34},"in_reply_to":"bfb3d3c7_b6d61827","updated":"2019-05-23 16:12:31.000000000","message":"Yeah, they should","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_5dad1b99","line":289,"range":{"start_line":288,"start_character":0,"end_line":289,"end_character":34},"in_reply_to":"bfb3d3c7_cd5aeb28","updated":"2019-05-27 22:51:21.000000000","message":"i dropped the sufix to avoid line wrapping later","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"},{"line_number":293,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_d3071e1c","line":290,"updated":"2019-05-21 15:04:04.000000000","message":"We don\u0027t need\n\n MIN_LIBVIRT_VIRTIO_VIDEO \u003d (1, 3, 0)\n\nbecause of\n\n MIN_LIBVIRT_VERSION \u003d (3, 0, 0)\n\non L225, right?","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"},{"line_number":293,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_bd9bf770","line":290,"in_reply_to":"bfb3d3c7_6d417f39","updated":"2019-05-27 22:51:21.000000000","message":"yep all version we support are above teh version that intoduces it so we dont need a test.\n\nwe have an warning in the init_host fuction i belive that warns if you try to use a libvirt version below our minium so that we can assume in the code that you have at least that minium version.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_GOP_VIDEO \u003d (3, 2, 0)"},{"line_number":289,"context_line":"MIN_LIBVIRT_NONE_VIDEO \u003d (4, 6, 0)"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class LibvirtDriver(driver.ComputeDriver):"},{"line_number":293,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_6d417f39","line":290,"in_reply_to":"bfb3d3c7_d3071e1c","updated":"2019-05-23 16:12:31.000000000","message":"Correct","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":4783,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_GOP_VIDEO)"},{"line_number":4784,"context_line":""},{"line_number":4785,"context_line":"    def _supports_none_video(self):"},{"line_number":4786,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_NONE_VIDEO)"},{"line_number":4787,"context_line":""},{"line_number":4788,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4789,"context_line":"        VALID_VIDEO_DEVICES \u003d fields.VideoModel.ALL"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_53148e4e","line":4786,"updated":"2019-05-21 15:04:04.000000000","message":"This is kind of messy. I think I would rather see the video model versions declared in a dict and a single generic method to validate:\n\n MIN_LIBVIRT_VIDEO_MODEL_VERSIONS \u003d {\n     fields.VideoModel.GOP: (3, 2, 0),\n     fields.VideoModel.NONE: (4, 6, 0),\n }\n ...\n def _video_model_supported(self, model):\n     if model not in fields.VideoModel.ALL:\n         return False\n     min_ver \u003d MIN_LIBVIRT_VIDEO_MODEL_VERSIONS.get(model)\n     if min_ver and not self._host.has_min_version(lv_ver\u003dmin_ver):\n         return False\n     return True\n ...\n if not self._video_model_supported(video.type):\n     raise ...","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":4783,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_GOP_VIDEO)"},{"line_number":4784,"context_line":""},{"line_number":4785,"context_line":"    def _supports_none_video(self):"},{"line_number":4786,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_NONE_VIDEO)"},{"line_number":4787,"context_line":""},{"line_number":4788,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4789,"context_line":"        VALID_VIDEO_DEVICES \u003d fields.VideoModel.ALL"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_1d0c833f","line":4786,"in_reply_to":"bfb3d3c7_53148e4e","updated":"2019-05-27 22:51:21.000000000","message":"ok ill just do this.\n\ni dont actully think this is much cleaner but i only added the functions above due to pep8 line limits so i dont mind removing them","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":4786,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_NONE_VIDEO)"},{"line_number":4787,"context_line":""},{"line_number":4788,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4789,"context_line":"        VALID_VIDEO_DEVICES \u003d fields.VideoModel.ALL"},{"line_number":4790,"context_line":""},{"line_number":4791,"context_line":"        video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":4792,"context_line":"        # NOTE(ldbragst): The following logic sets the video.type"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_7638a03c","line":4789,"range":{"start_line":4789,"start_character":8,"end_line":4789,"end_character":27},"updated":"2019-05-21 15:04:04.000000000","message":"this could go away (whether you take the above suggestion or not)","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":4786,"context_line":"        return self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_NONE_VIDEO)"},{"line_number":4787,"context_line":""},{"line_number":4788,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4789,"context_line":"        VALID_VIDEO_DEVICES \u003d fields.VideoModel.ALL"},{"line_number":4790,"context_line":""},{"line_number":4791,"context_line":"        video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":4792,"context_line":"        # NOTE(ldbragst): The following logic sets the video.type"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_7d8b3f1e","line":4789,"range":{"start_line":4789,"start_character":8,"end_line":4789,"end_character":27},"in_reply_to":"bfb3d3c7_7638a03c","updated":"2019-05-27 22:51:21.000000000","message":"ya this is not needed it was more to avoid code curn/ i was lazy ill just use field.videoModels.All directly.","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cdd65ef5ce14ae9606ce02fa6335e614ca85e041","unresolved":false,"context_lines":[{"line_number":4830,"context_line":""},{"line_number":4831,"context_line":"        # NOTE(sean-k-mooney): return the video device we added"},{"line_number":4832,"context_line":"        # for simpler testing."},{"line_number":4833,"context_line":"        return video"},{"line_number":4834,"context_line":""},{"line_number":4835,"context_line":"    def _add_qga_device(self, guest, instance):"},{"line_number":4836,"context_line":"        qga \u003d vconfig.LibvirtConfigGuestChannel()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_1bba3909","line":4833,"updated":"2019-05-28 21:07:46.000000000","message":"Nit: wouldn\u0027t it be easier to move guest.add_device() outside this function too? I guess that isn\u0027t the local pattern... hmm.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed2d2e1366f90b2dcedda8bb00e8288e94e8aac5","unresolved":false,"context_lines":[{"line_number":4830,"context_line":""},{"line_number":4831,"context_line":"        # NOTE(sean-k-mooney): return the video device we added"},{"line_number":4832,"context_line":"        # for simpler testing."},{"line_number":4833,"context_line":"        return video"},{"line_number":4834,"context_line":""},{"line_number":4835,"context_line":"    def _add_qga_device(self, guest, instance):"},{"line_number":4836,"context_line":"        qga \u003d vconfig.LibvirtConfigGuestChannel()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_460c4ea4","line":4833,"in_reply_to":"bfb3d3c7_1bba3909","updated":"2019-05-29 12:01:13.000000000","message":"it might be.\nreturning a value we had already computed, i.e. the video device object, is basically a no-op from a performance point of view so i felt it was fine to do that for testing.\n\nif i factor out guest.add_device and make it the callers job to do that this function becomes a pure or semi pure function \nas it no longer has a side effect of modifying the guest but then i would have to also change the name from \n\n_add_video_driver to _get_video_driver or _construct_video_driver to signal that it does not add it to the guest.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d8746d22cca6b7bf1be80dba97a84e490a758eb8","unresolved":false,"context_lines":[{"line_number":4830,"context_line":""},{"line_number":4831,"context_line":"        # NOTE(sean-k-mooney): return the video device we added"},{"line_number":4832,"context_line":"        # for simpler testing."},{"line_number":4833,"context_line":"        return video"},{"line_number":4834,"context_line":""},{"line_number":4835,"context_line":"    def _add_qga_device(self, guest, instance):"},{"line_number":4836,"context_line":"        qga \u003d vconfig.LibvirtConfigGuestChannel()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfb3d3c7_d9a32aff","line":4833,"in_reply_to":"bfb3d3c7_460c4ea4","updated":"2019-05-30 09:39:40.000000000","message":"actually, I think as long as we do the extra assert in the unit test, I am cool with this.","commit_id":"5a0bd856df91940e3765c9e1b0760a4587406b28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":4776,"context_line":"                allowed\u003dALLOWED_QEMU_SERIAL_PORTS, virt_type\u003dvirt_type)"},{"line_number":4777,"context_line":""},{"line_number":4778,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4779,"context_line":"        VALID_VIDEO_DEVICES \u003d (\"vga\", \"cirrus\", \"vmvga\","},{"line_number":4780,"context_line":"                               \"xen\", \"qxl\", \"virtio\")"},{"line_number":4781,"context_line":"        video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":4782,"context_line":"        # NOTE(ldbragst): The following logic sets the video.type"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_bced628c","side":"PARENT","line":4779,"updated":"2019-06-07 18:40:42.000000000","message":"Interesting that vbox is in https://libvirt.org/formatdomain.html#elementsVideo but not in this list, nor in fields.VideoModel.ALL.","commit_id":"53d42de9d970abc290064ab86df272b4d933abc9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"717c5919b8f1588bbf3667badd21537a728a31d1","unresolved":false,"context_lines":[{"line_number":4776,"context_line":"                allowed\u003dALLOWED_QEMU_SERIAL_PORTS, virt_type\u003dvirt_type)"},{"line_number":4777,"context_line":""},{"line_number":4778,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4779,"context_line":"        VALID_VIDEO_DEVICES \u003d (\"vga\", \"cirrus\", \"vmvga\","},{"line_number":4780,"context_line":"                               \"xen\", \"qxl\", \"virtio\")"},{"line_number":4781,"context_line":"        video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":4782,"context_line":"        # NOTE(ldbragst): The following logic sets the video.type"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_5faf78e2","side":"PARENT","line":4779,"in_reply_to":"9fb8cfa7_bced628c","updated":"2019-06-07 18:41:59.000000000","message":"Just talking to myself here.","commit_id":"53d42de9d970abc290064ab86df272b4d933abc9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_VIDEO_MODEL_VERSIONS \u003d {"},{"line_number":289,"context_line":"    fields.VideoModel.GOP: (3, 2, 0),"},{"line_number":290,"context_line":"    fields.VideoModel.NONE: (4, 6, 0),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_fccafa17","line":287,"updated":"2019-06-07 18:40:42.000000000","message":"And virtio isn\u0027t in the list because that was added in 1.3.0 and we require at least 3.0.0.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"717c5919b8f1588bbf3667badd21537a728a31d1","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_VIDEO_MODEL_VERSIONS \u003d {"},{"line_number":289,"context_line":"    fields.VideoModel.GOP: (3, 2, 0),"},{"line_number":290,"context_line":"    fields.VideoModel.NONE: (4, 6, 0),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_7faa7cd2","line":287,"in_reply_to":"9fb8cfa7_fccafa17","updated":"2019-06-07 18:41:59.000000000","message":"Just making notes to myself.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"96e0d9a9d7a98bf59580ea8a05631b619bf5d213","unresolved":false,"context_lines":[{"line_number":4787,"context_line":"        min_ver \u003d MIN_LIBVIRT_VIDEO_MODEL_VERSIONS.get(model)"},{"line_number":4788,"context_line":"        if min_ver and not self._host.has_min_version(lv_ver\u003dmin_ver):"},{"line_number":4789,"context_line":"            return False"},{"line_number":4790,"context_line":"        return True"},{"line_number":4791,"context_line":""},{"line_number":4792,"context_line":"    def _add_video_driver(self, guest, image_meta, flavor):"},{"line_number":4793,"context_line":"        video \u003d vconfig.LibvirtConfigGuestVideo()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_7a81418f","line":4790,"updated":"2019-06-06 19:10:45.000000000","message":"Thanks, I like this a lot better.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":4808,"context_line":"            # so use \u0027vga\u0027 instead when running on Power hardware."},{"line_number":4809,"context_line":"            video.type \u003d \u0027vga\u0027"},{"line_number":4810,"context_line":"        elif guestarch in (fields.Architecture.AARCH64):"},{"line_number":4811,"context_line":"            # NOTE(kevinz): Only virtio device type is supported by AARCH64"},{"line_number":4812,"context_line":"            # so use \u0027virtio\u0027 instead when running on AArch64 hardware."},{"line_number":4813,"context_line":"            video.type \u003d \u0027virtio\u0027"},{"line_number":4814,"context_line":"        elif CONF.spice.enabled:"},{"line_number":4815,"context_line":"            video.type \u003d \u0027qxl\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ff02ec08","line":4812,"range":{"start_line":4811,"start_character":12,"end_line":4812,"end_character":71},"updated":"2019-06-07 18:40:42.000000000","message":"So does this mean if I have an image with hw_architecture \u003d aarch64 and hw_video_model \u003d vga then the guest is going to fail, or at least the video device won\u0027t work?\n\nSimilar for ppc above and when spice is used.\n\nI mean I realize people should be testing their images, but I\u0027m just wondering if we\u0027re potentially overriding what is in the code for what is in the image, and if that should be reversed, i.e. move the image property handling above and then do the arch/config-specific checks in case the image is wrong. The issue I could see with that is these assertions about support could change over time and if the user knows better and has a working combination in the image, then we\u0027d be ignoring their request, which is probably equally bad as them using an invalid combination.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4c6424887c059a37f59c95da5723319be2d74ddf","unresolved":false,"context_lines":[{"line_number":4808,"context_line":"            # so use \u0027vga\u0027 instead when running on Power hardware."},{"line_number":4809,"context_line":"            video.type \u003d \u0027vga\u0027"},{"line_number":4810,"context_line":"        elif guestarch in (fields.Architecture.AARCH64):"},{"line_number":4811,"context_line":"            # NOTE(kevinz): Only virtio device type is supported by AARCH64"},{"line_number":4812,"context_line":"            # so use \u0027virtio\u0027 instead when running on AArch64 hardware."},{"line_number":4813,"context_line":"            video.type \u003d \u0027virtio\u0027"},{"line_number":4814,"context_line":"        elif CONF.spice.enabled:"},{"line_number":4815,"context_line":"            video.type \u003d \u0027qxl\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_8e10f201","line":4812,"range":{"start_line":4811,"start_character":12,"end_line":4812,"end_character":71},"in_reply_to":"9fb8cfa7_ff02ec08","updated":"2019-06-19 12:15:55.000000000","message":"we might want to add validation for aarch64 that the value set in the image is allowed for that architecture.\ni think i that is a sperate change however.\n\nwe have always allowed the image to override teh default so\ni would prefer not to change that behavior in this patch but this could be a latent bug or at least a sharp conor that we might want to blunt later.","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"044b4e05195a6c8e466002e6feaddb53b2cc3f33","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_VIDEO_MODEL_VERSIONS \u003d {"},{"line_number":289,"context_line":"    fields.VideoModel.GOP: (3, 2, 0),"},{"line_number":290,"context_line":"    fields.VideoModel.NONE: (4, 6, 0),"},{"line_number":291,"context_line":"}"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_94ae49e5","line":291,"range":{"start_line":287,"start_character":0,"end_line":291,"end_character":1},"updated":"2019-06-21 17:52:20.000000000","message":"I\u0027m not personally a fan of doing this because it\u0027s different to what we normally do any just adds a little more congnitive load. Certainly nothing to block on though","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5c226f39a79b33a326df0963eff861174c8afa0b","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"VGPU_RESOURCE_SEMAPHORE \u003d \"vgpu_resources\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"# see https://libvirt.org/formatdomain.html#elementsVideo"},{"line_number":288,"context_line":"MIN_LIBVIRT_VIDEO_MODEL_VERSIONS \u003d {"},{"line_number":289,"context_line":"    fields.VideoModel.GOP: (3, 2, 0),"},{"line_number":290,"context_line":"    fields.VideoModel.NONE: (4, 6, 0),"},{"line_number":291,"context_line":"}"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fb8cfa7_b4390d40","line":291,"range":{"start_line":287,"start_character":0,"end_line":291,"end_character":1},"in_reply_to":"9fb8cfa7_94ae49e5","updated":"2019-06-22 12:59:25.000000000","message":"erric asked me not to add the constance as we normally do and use this form istead. they are more or less the same level of complexity so i was fine with it.\n\nmy original patches had constants for each.","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"}],"releasenotes/notes/extend-libvirt-video-model-support-d630b99ef5039f51.yaml":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"6a21fb9c1f84957ccc690f4f1002ba6064cf4440","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ffb9cba7_b4dd9471","line":5,"range":{"start_line":5,"start_character":68,"end_line":5,"end_character":72},"updated":"2019-04-25 13:26:04.000000000","message":"Please describe each of these models in one sentence in the blueprint.\n\nAnd you might want to explain _what_ this \"none\" is.  Quoting the libvirt release note:\n\n\"The \u0027none\u0027 video model type disables the automatic addition of a video device to domains with \u0027graphics\u0027 specified in their XML.  This can be useful with GPU mediated devices which can serve as the only rendering devices within the guest.\"","commit_id":"39f645792c562497771fc570a68bda4d9a35f38b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1b8751c7e21d405cf65c3ba5c6198f5dc51c28c2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ffb9cba7_340684d0","line":5,"range":{"start_line":5,"start_character":68,"end_line":5,"end_character":72},"in_reply_to":"ffb9cba7_b4dd9471","updated":"2019-04-25 13:30:54.000000000","message":"yep i have that at the end of the relsease note :)\n\nand it not just for mediated devices you can use it with pci passthough of gpus too.","commit_id":"39f645792c562497771fc570a68bda4d9a35f38b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_36d8e87d","line":4,"updated":"2019-05-21 15:04:04.000000000","message":"How about some punctuation here?\n\n\"...video models: ``gop``, the uefi graphic output protocol device model; and the ``none`` device model.\"","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_28f7c7d5","line":4,"in_reply_to":"bfb3d3c7_36d8e87d","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60925c1a14ae98f9f85ae6961a457b3ef0bcdf62","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_0d7a4387","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":20},"updated":"2019-05-23 16:12:31.000000000","message":"UEFI","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_360ea832","line":5,"range":{"start_line":5,"start_character":36,"end_line":5,"end_character":44},"updated":"2019-05-21 15:04:04.000000000","message":"protocol","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_c8ff0ba9","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":20},"in_reply_to":"bfb3d3c7_0d7a4387","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_e8fc4fb6","line":5,"range":{"start_line":5,"start_character":36,"end_line":5,"end_character":44},"in_reply_to":"bfb3d3c7_360ea832","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_d6e62c45","line":6,"range":{"start_line":6,"start_character":18,"end_line":6,"end_character":19},"updated":"2019-05-21 15:04:04.000000000","message":"E","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_882fd33d","line":6,"range":{"start_line":6,"start_character":18,"end_line":6,"end_character":19},"in_reply_to":"bfb3d3c7_d6e62c45","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_76cf40b0","line":7,"range":{"start_line":7,"start_character":51,"end_line":7,"end_character":65},"updated":"2019-05-21 15:04:04.000000000","message":"``literal``","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_b6d5b845","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":17},"updated":"2019-05-21 15:04:04.000000000","message":"architectures","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_a8341794","line":7,"range":{"start_line":7,"start_character":51,"end_line":7,"end_character":65},"in_reply_to":"bfb3d3c7_76cf40b0","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models"},{"line_number":5,"context_line":"    ``gop`` the uefi graphic output protocal device model and the ``none``"},{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_48255b5b","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":17},"in_reply_to":"bfb3d3c7_b6d5b845","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"},{"line_number":11,"context_line":"    model can be used to disable emulated video devices when using pGPU or"},{"line_number":12,"context_line":"    vGPU passthrough."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_36c1c881","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":45},"updated":"2019-05-21 15:04:04.000000000","message":". T","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    device model. existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"},{"line_number":11,"context_line":"    model can be used to disable emulated video devices when using pGPU or"},{"line_number":12,"context_line":"    vGPU passthrough."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_0823e357","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":45},"in_reply_to":"bfb3d3c7_36c1c881","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f731e412a2f39ca48b040ed1cd2f9f664a9cbb12","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"},{"line_number":11,"context_line":"    model can be used to disable emulated video devices when using pGPU or"},{"line_number":12,"context_line":"    vGPU passthrough."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_f6ba5008","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":15},"updated":"2019-05-21 15:04:04.000000000","message":"explicitly","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d8980a9c7ed25affe8c43ded46dcc9b324b4a7d5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    acrhitecutres and may now be requested via the hw_video_model image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``, this is unchanged but it can now"},{"line_number":10,"context_line":"    be explctly enabled on all supported architectures. The ``none`` video"},{"line_number":11,"context_line":"    model can be used to disable emulated video devices when using pGPU or"},{"line_number":12,"context_line":"    vGPU passthrough."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_28202748","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":15},"in_reply_to":"bfb3d3c7_f6ba5008","updated":"2019-05-27 22:51:21.000000000","message":"Done","commit_id":"3c68ab2708fc820dd711493b045b2cff2f156d85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two addtional libvirt video models:"},{"line_number":5,"context_line":"    ``gop``, the UEFI graphic output protocol device model; and the ``none``"},{"line_number":6,"context_line":"    device model. Existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    architectures and may now be requested via the ``hw_video_model`` image"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_fcc19ae5","line":4,"range":{"start_line":4,"start_character":46,"end_line":4,"end_character":55},"updated":"2019-06-07 18:40:42.000000000","message":"additional","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d38e0ee5d76e0af0919eac052ebc6b0d3ad796f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    device model. Existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    architectures and may now be requested via the ``hw_video_model`` image"},{"line_number":8,"context_line":"    metadata property. Prior to this release the ``virtio`` video model was"},{"line_number":9,"context_line":"    uncondtionally enabled for ``AARCH64``. This is unchanged but it can now"},{"line_number":10,"context_line":"    be explicitly enabled on all supported architectures. The ``none`` video"},{"line_number":11,"context_line":"    model can be used to disable emulated video devices when using pGPU or"},{"line_number":12,"context_line":"    vGPU passthrough."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_bcbb2270","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":18},"updated":"2019-06-07 18:40:42.000000000","message":"unconditionally","commit_id":"aeb82a1472eeccc3aee1fc1cf56e886b8127e57c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"044b4e05195a6c8e466002e6feaddb53b2cc3f33","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release support was added for two additional libvirt video models:"},{"line_number":5,"context_line":"    ``gop``, the UEFI graphic output protocol device model; and the ``none``"},{"line_number":6,"context_line":"    device model. Existing support for ``virtio`` has been extended to all"},{"line_number":7,"context_line":"    architectures and may now be requested via the ``hw_video_model`` image"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fb8cfa7_745e3513","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":20},"updated":"2019-06-21 17:52:20.000000000","message":"nit: You don\u0027t need this (we know we\u0027re talking about a release because these are release notes)","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"044b4e05195a6c8e466002e6feaddb53b2cc3f33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9fb8cfa7_5463f1dc","line":14,"updated":"2019-06-21 17:52:20.000000000","message":"nit: extra line","commit_id":"35a591d33d8b1a6c30bf40ddc48a07715fd87339"}]}
