)]}'
{"nova/spice/__init__.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0f2ca92c62dd0e089bc0ec5dea0a2f3f9b73fe2f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               help\u003d\u0027vram for spice\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027heads\u0027,"},{"line_number":48,"context_line":"               default\u003d1,"},{"line_number":49,"context_line":"               help\u003d\u0027number of heads for spice\u0027),"},{"line_number":50,"context_line":"    ]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BU8o%3D","line":49,"updated":"2013-11-27 10:57:53.000000000","message":"Please don\u0027t add these as host level parameters. They are the kind of parameter where one size does not fit all use cases. They need to be dealt with as metadata properties against the glance image, as we do with default disk bus / nic models.\n\nThe default should be intelligently set by the libvirt driver depending on whether spice is enabled or not.\n\nAlso \u0027heads\u0027 is totally ignored for qxl graphics.","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"e6b22159cecbfb74cc0d389c4eaeecf24ef4b668","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               help\u003d\u0027vram for spice\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027heads\u0027,"},{"line_number":48,"context_line":"               default\u003d1,"},{"line_number":49,"context_line":"               help\u003d\u0027number of heads for spice\u0027),"},{"line_number":50,"context_line":"    ]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BTLQ%3D","line":49,"in_reply_to":"AAAATn%2F%2BU8o%3D","updated":"2013-11-27 20:15:06.000000000","message":"Done","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0f2ca92c62dd0e089bc0ec5dea0a2f3f9b73fe2f","unresolved":false,"context_lines":[{"line_number":2967,"context_line":"            if graphics \u003d\u003d \u0027spice\u0027:"},{"line_number":2968,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2969,"context_line":"                video.vram \u003d str(CONF.spice.vram)"},{"line_number":2970,"context_line":"                video.heads \u003d str(CONF.spice.heads)"},{"line_number":2971,"context_line":"            elif graphics \u003d\u003d \u0027vnc\u0027:"},{"line_number":2972,"context_line":"                video.type \u003d CONF.vnc_video_driver"},{"line_number":2973,"context_line":"            return video"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BU8E%3D","line":2970,"updated":"2013-11-27 10:57:53.000000000","message":"Leave vram defaults up to libvirt here and remove heads entirely, it is ignored.\n\nYou can do a 3rd patch to make this all configurable via glance metadata properties\n\n eg \n\n    hw_video_model\u003dqxl|cirrus|....\n    hw_video_vram\u003d12421421","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"e6b22159cecbfb74cc0d389c4eaeecf24ef4b668","unresolved":false,"context_lines":[{"line_number":2967,"context_line":"            if graphics \u003d\u003d \u0027spice\u0027:"},{"line_number":2968,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2969,"context_line":"                video.vram \u003d str(CONF.spice.vram)"},{"line_number":2970,"context_line":"                video.heads \u003d str(CONF.spice.heads)"},{"line_number":2971,"context_line":"            elif graphics \u003d\u003d \u0027vnc\u0027:"},{"line_number":2972,"context_line":"                video.type \u003d CONF.vnc_video_driver"},{"line_number":2973,"context_line":"            return video"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BSf4%3D","line":2970,"in_reply_to":"AAAATn%2F%2BU8E%3D","updated":"2013-11-27 20:15:06.000000000","message":"Thanks. This is much better. \nJust, how to handle it when both spice and vnc are enabled.\nor should hw_video_model set only the primary?","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0f2ca92c62dd0e089bc0ec5dea0a2f3f9b73fe2f","unresolved":false,"context_lines":[{"line_number":3181,"context_line":"            graphics.listen \u003d CONF.spice.server_listen"},{"line_number":3182,"context_line":"            guest.add_device(graphics)"},{"line_number":3183,"context_line":"            video \u003d _add_video_driver(graphics.type)"},{"line_number":3184,"context_line":"            guest.add_device(video)"},{"line_number":3185,"context_line":""},{"line_number":3186,"context_line":"        # Qemu guest agent only support \u0027qemu\u0027 and \u0027kvm\u0027 hypervisor"},{"line_number":3187,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BU78%3D","line":3184,"updated":"2013-11-27 10:57:53.000000000","message":"This code is wrong - both VNC and SPICE can be enabled at the same time. You need to add the video device in a common codepath.","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"98bbf2cecdc8b2471955627df733bd8f78874ca0","unresolved":false,"context_lines":[{"line_number":3181,"context_line":"            graphics.listen \u003d CONF.spice.server_listen"},{"line_number":3182,"context_line":"            guest.add_device(graphics)"},{"line_number":3183,"context_line":"            video \u003d _add_video_driver(graphics.type)"},{"line_number":3184,"context_line":"            guest.add_device(video)"},{"line_number":3185,"context_line":""},{"line_number":3186,"context_line":"        # Qemu guest agent only support \u0027qemu\u0027 and \u0027kvm\u0027 hypervisor"},{"line_number":3187,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BQGc%3D","line":3184,"in_reply_to":"AAAATn%2F%2BSe4%3D","updated":"2013-11-28 10:09:57.000000000","message":"No, VNC and SPICE are just two different protocols for viewing the same virtual display. They are not associated with different video devices.","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"e6b22159cecbfb74cc0d389c4eaeecf24ef4b668","unresolved":false,"context_lines":[{"line_number":3181,"context_line":"            graphics.listen \u003d CONF.spice.server_listen"},{"line_number":3182,"context_line":"            guest.add_device(graphics)"},{"line_number":3183,"context_line":"            video \u003d _add_video_driver(graphics.type)"},{"line_number":3184,"context_line":"            guest.add_device(video)"},{"line_number":3185,"context_line":""},{"line_number":3186,"context_line":"        # Qemu guest agent only support \u0027qemu\u0027 and \u0027kvm\u0027 hypervisor"},{"line_number":3187,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BSe4%3D","line":3184,"in_reply_to":"AAAATn%2F%2BU78%3D","updated":"2013-11-27 20:15:06.000000000","message":"Ok.. Shouldn\u0027t there be two video devices specified, when there are two graphics devices?","commit_id":"e43e745a3a8cc9b81dddf42ebe1b33e90b0c2a3a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"2d82421e66504160449dc5e9a9caed7d335914c5","unresolved":false,"context_lines":[{"line_number":2965,"context_line":"            video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":2966,"context_line":"            if CONF.spice.enabled:"},{"line_number":2967,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2968,"context_line":"                video.vram \u003d \u002765536\u0027"},{"line_number":2969,"context_line":"            return video"},{"line_number":2970,"context_line":""},{"line_number":2971,"context_line":"        inst_type \u003d self.virtapi.flavor_get("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BMSE%3D","line":2968,"updated":"2013-11-29 12:29:47.000000000","message":"Don\u0027t set vram here - just left libvirt use its built-in default for QXL","commit_id":"d80fb54f9eed6657b2e695e670fe5b113b1fb848"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"55cf6d0142c65086f9e6fe2c8bd69a0f70037111","unresolved":false,"context_lines":[{"line_number":2965,"context_line":"            video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":2966,"context_line":"            if CONF.spice.enabled:"},{"line_number":2967,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2968,"context_line":"                video.vram \u003d \u002765536\u0027"},{"line_number":2969,"context_line":"            return video"},{"line_number":2970,"context_line":""},{"line_number":2971,"context_line":"        inst_type \u003d self.virtapi.flavor_get("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BLyE%3D","line":2968,"in_reply_to":"AAAATn%2F%2BMSE%3D","updated":"2013-11-29 15:25:17.000000000","message":"Done","commit_id":"d80fb54f9eed6657b2e695e670fe5b113b1fb848"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ea0cc136279214a23e0a701d3cb387dc2ea7f32b","unresolved":false,"context_lines":[{"line_number":2964,"context_line":"        def _add_video_driver():"},{"line_number":2965,"context_line":"            video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":2966,"context_line":"            if CONF.spice.enabled:"},{"line_number":2967,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2968,"context_line":"            return video"},{"line_number":2969,"context_line":""},{"line_number":2970,"context_line":"        inst_type \u003d self.virtapi.flavor_get("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BLoo%3D","line":2967,"updated":"2013-11-29 15:31:19.000000000","message":"Oh I remember that neither \u0027cirrus\u0027 or \u0027qxl\u0027 will work for Xen paravirt guests.\n\nSo you\u0027ll need to always override with  type\u003d\u0027xen\u0027 if guest.os_type \u003d\u003d vm_mode.XEN.","commit_id":"0f5e9f1776acdcf016e6f3bed1b985f05bc273a5"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"21d6100b5453c9bcb742a485ae3092e19f35118e","unresolved":false,"context_lines":[{"line_number":2964,"context_line":"        def _add_video_driver():"},{"line_number":2965,"context_line":"            video \u003d vconfig.LibvirtConfigGuestVideo()"},{"line_number":2966,"context_line":"            if CONF.spice.enabled:"},{"line_number":2967,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2968,"context_line":"            return video"},{"line_number":2969,"context_line":""},{"line_number":2970,"context_line":"        inst_type \u003d self.virtapi.flavor_get("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BLeE%3D","line":2967,"in_reply_to":"AAAATn%2F%2BLoo%3D","updated":"2013-11-29 16:35:24.000000000","message":"Done","commit_id":"0f5e9f1776acdcf016e6f3bed1b985f05bc273a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a12c1961a72b64bf9e257696c74cfb1ff715569a","unresolved":false,"context_lines":[{"line_number":2967,"context_line":"                video.type \u003d \u0027qxl\u0027"},{"line_number":2968,"context_line":"            if guest.os_type \u003d\u003d vm_mode.XEN:"},{"line_number":2969,"context_line":"                video.type \u003d \u0027xen\u0027"},{"line_number":2970,"context_line":"            return video"},{"line_number":2971,"context_line":""},{"line_number":2972,"context_line":"        inst_type \u003d self.virtapi.flavor_get("},{"line_number":2973,"context_line":"            nova_context.get_admin_context(read_deleted\u003d\u0027yes\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F96Kw%3D","line":2970,"updated":"2013-12-04 16:12:35.000000000","message":"This method is pretty pointless now, since it is only called from one place. Just inline the code at the place of use.","commit_id":"93f1c1f68dd1433c966458b6d5be573f18594637"}]}
