)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ce61faf4f12b378974df3e7c09fa17c85f2f0ef2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"extra_specs and it\u0027s higher than the requested amount in hw_video_ram."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    glance image-update \\"},{"line_number":16,"context_line":"       --property hw_video_driver\u003dqxl \\"},{"line_number":17,"context_line":"       --property hw_video_ram\u003d64 \\"},{"line_number":18,"context_line":"       [image]"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAUH%2F9fWI%3D","line":16,"updated":"2014-02-06 15:22:46.000000000","message":"We actually called it \u0027hw_video_model\u0027","commit_id":"5c0dd91e9d844a332c3351fd3ec5bfb8d3648189"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"db595a0833c538a0c0670fa37c4d1143c090ef31","unresolved":false,"context_lines":[{"line_number":13,"context_line":"extra_specs and it\u0027s higher than the requested amount in hw_video_ram."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    glance image-update \\"},{"line_number":16,"context_line":"       --property hw_video_driver\u003dqxl \\"},{"line_number":17,"context_line":"       --property hw_video_ram\u003d64 \\"},{"line_number":18,"context_line":"       [image]"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAUH%2F9eh4%3D","line":16,"in_reply_to":"AAAAUH%2F9fWI%3D","updated":"2014-02-06 16:46:19.000000000","message":"Done","commit_id":"5c0dd91e9d844a332c3351fd3ec5bfb8d3648189"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a4a27837a47c97f43b8f78fba3575720478901f5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       --property hw_video_ram\u003d64 \\"},{"line_number":18,"context_line":"       [image]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"DocImpact"},{"line_number":21,"context_line":"Partially implements blueprint libvirt-video-driver-selection"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I125cdc2afa27986ead9a81d925125a6a3ecce145"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAUX%2F%2Fb9k%3D","line":20,"updated":"2014-02-13 08:11:39.000000000","message":"Based on the tag definition, there should be some explanation here for the docs team:\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references","commit_id":"a81ac29bd9bdccf57b74647471132653a5ce2ac1"}],"nova/compute/api.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c29d4b89d369812a51d3b746defead92bbcba946","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # Determine requested cores and ram"},{"line_number":340,"context_line":"        req_cores \u003d max_count * instance_type[\u0027vcpus\u0027]"},{"line_number":341,"context_line":"        vram_mb \u003d instance_type.get(\u0027extra_specs\u0027, {}).get(VIDEO_RAM, 0)"},{"line_number":342,"context_line":"        req_ram \u003d max_count * (instance_type[\u0027memory_mb\u0027] + vram_mb)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # Check the quota"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9d9U%3D","line":341,"updated":"2014-02-06 17:54:18.000000000","message":"question - what is the type returned by get(\u0027extra_specs\u0027) if defined? \nif it is a string, we probably need to cast it in int.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"658c85575ae446b87415767bf22d3b53d74dd0e4","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # Determine requested cores and ram"},{"line_number":340,"context_line":"        req_cores \u003d max_count * instance_type[\u0027vcpus\u0027]"},{"line_number":341,"context_line":"        vram_mb \u003d instance_type.get(\u0027extra_specs\u0027, {}).get(VIDEO_RAM, 0)"},{"line_number":342,"context_line":"        req_ram \u003d max_count * (instance_type[\u0027memory_mb\u0027] + vram_mb)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # Check the quota"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9c2E%3D","line":341,"in_reply_to":"AAAAUH%2F9d9U%3D","updated":"2014-02-06 20:33:46.000000000","message":"Thanks, agree.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"}],"nova/exception.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c29d4b89d369812a51d3b746defead92bbcba946","unresolved":false,"context_lines":[{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"class RequestedVRamTooHigh(NovaException):"},{"line_number":1500,"context_line":"    msg_fmt \u003d _(\"The requested amount of video memory %(req_vram)s is higher\""},{"line_number":1501,"context_line":"                \"than the maximum allowed by flavor %(max_vram)s.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9d94%3D","line":1500,"updated":"2014-02-06 17:54:18.000000000","message":"Because req_vram and max_vram are expected be numeric, using %(xxx)d to format the string could be better.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"}],"nova/objects/flavor.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c721248689f797363a71d08136e9c87320540617","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":40,"context_line":"        \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":41,"context_line":"        \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":42,"context_line":"        \u0027vram_mb\u0027: fields.IntegerField(),"},{"line_number":43,"context_line":"        }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FYjE%3D","line":42,"updated":"2014-01-14 11:30:19.000000000","message":"This name reads like an absolute setting (cf memory_mb) rather than just a limit on something that is set elsewhere. I think you should rename it to  vram_max_mb to make it clear that its just a limit, not actually a setting","commit_id":"33c153f1a624fa36fd5668f83f96bd7e08ea1c52"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"0f922458c007aefe8af4c8be392c5b9e9d6ed58d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":40,"context_line":"        \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":41,"context_line":"        \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":42,"context_line":"        \u0027vram_mb\u0027: fields.IntegerField(),"},{"line_number":43,"context_line":"        }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FXxo%3D","line":42,"in_reply_to":"AAAAUH%2F%2FYjE%3D","updated":"2014-01-14 15:14:10.000000000","message":"Done","commit_id":"33c153f1a624fa36fd5668f83f96bd7e08ea1c52"}],"nova/tests/virt/libvirt/test_libvirt.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c29d4b89d369812a51d3b746defead92bbcba946","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":1282,"context_line":"                                            instance_ref)"},{"line_number":1283,"context_line":"        image_meta \u003d {\"properties\": {\"hw_video_model\": \"qxl\","},{"line_number":1284,"context_line":"                                     \"hw_video_ram\": 64}}"},{"line_number":1285,"context_line":"        cfg \u003d conn.get_guest_config(instance_ref, [], image_meta, disk_info)"},{"line_number":1286,"context_line":"        self.assertEqual(len(cfg.devices), 7)"},{"line_number":1287,"context_line":"        self.assertEqual(type(cfg.devices[0]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9d8c%3D","line":1284,"updated":"2014-02-06 17:54:18.000000000","message":"I\u0027m not sure we can define a type int from the API?","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"658c85575ae446b87415767bf22d3b53d74dd0e4","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":1282,"context_line":"                                            instance_ref)"},{"line_number":1283,"context_line":"        image_meta \u003d {\"properties\": {\"hw_video_model\": \"qxl\","},{"line_number":1284,"context_line":"                                     \"hw_video_ram\": 64}}"},{"line_number":1285,"context_line":"        cfg \u003d conn.get_guest_config(instance_ref, [], image_meta, disk_info)"},{"line_number":1286,"context_line":"        self.assertEqual(len(cfg.devices), 7)"},{"line_number":1287,"context_line":"        self.assertEqual(type(cfg.devices[0]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9c3w%3D","line":1284,"in_reply_to":"AAAAUH%2F9d8c%3D","updated":"2014-02-06 20:33:46.000000000","message":"It doesn\u0027t actually matter, since these tests are checking whether the device is being added and configured or not.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"c859e5e78475ba834c6f992ecfb5608c998baf2c","unresolved":false,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"        self.assertEqual(cfg.devices[5].type, \"spice\")"},{"line_number":1344,"context_line":"        self.assertEqual(cfg.devices[6].type, \"qxl\")"},{"line_number":1345,"context_line":"        self.assertFalse(cfg.devices[6].vram)"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def test_video_driver_ram_above_flavor_limit(self):"},{"line_number":1348,"context_line":"        self.flags(virt_type\u003d\u0027kvm\u0027, group\u003d\u0027libvirt\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BncI%3D","line":1345,"updated":"2014-02-20 07:13:13.000000000","message":"Should be assertIsNone() right ?","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"ad939c22ac1e7dbbcca32e3f72cae084a424d1c0","unresolved":false,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"        self.assertEqual(cfg.devices[5].type, \"spice\")"},{"line_number":1344,"context_line":"        self.assertEqual(cfg.devices[6].type, \"qxl\")"},{"line_number":1345,"context_line":"        self.assertFalse(cfg.devices[6].vram)"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def test_video_driver_ram_above_flavor_limit(self):"},{"line_number":1348,"context_line":"        self.flags(virt_type\u003d\u0027kvm\u0027, group\u003d\u0027libvirt\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BjIs%3D","line":1345,"in_reply_to":"AAAAUX%2F%2BncI%3D","updated":"2014-02-20 15:36:52.000000000","message":"Yes, thanks, Done.","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"c859e5e78475ba834c6f992ecfb5608c998baf2c","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"                              [],"},{"line_number":1368,"context_line":"                              image_meta,"},{"line_number":1369,"context_line":"                              disk_info)"},{"line_number":1370,"context_line":""},{"line_number":1371,"context_line":"    def test_get_guest_config_without_qga_through_image_meta(self):"},{"line_number":1372,"context_line":"        self.flags(virt_type\u003d\u0027kvm\u0027, group\u003d\u0027libvirt\u0027)"},{"line_number":1373,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2Bncc%3D","line":1370,"updated":"2014-02-20 07:13:13.000000000","message":"I\u0027d like to see a test for hw_video_ram set but hw_video:ram_max_mb not set","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"ad939c22ac1e7dbbcca32e3f72cae084a424d1c0","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"                              [],"},{"line_number":1368,"context_line":"                              image_meta,"},{"line_number":1369,"context_line":"                              disk_info)"},{"line_number":1370,"context_line":""},{"line_number":1371,"context_line":"    def test_get_guest_config_without_qga_through_image_meta(self):"},{"line_number":1372,"context_line":"        self.flags(virt_type\u003d\u0027kvm\u0027, group\u003d\u0027libvirt\u0027)"},{"line_number":1373,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BjIk%3D","line":1370,"in_reply_to":"AAAAUX%2F%2Bncc%3D","updated":"2014-02-20 15:36:52.000000000","message":"Done","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a14752ce86cd75353fe9f1ff01611a96329c0a41","unresolved":false,"context_lines":[{"line_number":3221,"context_line":"            video_ram \u003d img_meta_prop.get(\u0027hw_video_ram\u0027)"},{"line_number":3222,"context_line":"            max_vram \u003d inst_type[\u0027extra_specs\u0027].get(\u0027hw_video:vram_max_mb\u0027)"},{"line_number":3223,"context_line":"            if max_vram and video_ram:"},{"line_number":3224,"context_line":"                if max_vram \u003c video_ram:"},{"line_number":3225,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3226,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3227,"context_line":"                video.vram \u003d video_ram"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BQp4%3D","line":3224,"updated":"2014-01-28 15:55:58.000000000","message":"Nitpick but this is backwards check style is pretty confusing. It is more normal to do  \u0027if video_ram \u003e max_vram\u0027","commit_id":"3f6a738321d0df424f5eb8997efa4264f150e7d8"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"55468e66867e517a82439acda2b66a525078d0ee","unresolved":false,"context_lines":[{"line_number":3221,"context_line":"            video_ram \u003d img_meta_prop.get(\u0027hw_video_ram\u0027)"},{"line_number":3222,"context_line":"            max_vram \u003d inst_type[\u0027extra_specs\u0027].get(\u0027hw_video:vram_max_mb\u0027)"},{"line_number":3223,"context_line":"            if max_vram and video_ram:"},{"line_number":3224,"context_line":"                if max_vram \u003c video_ram:"},{"line_number":3225,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3226,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3227,"context_line":"                video.vram \u003d video_ram"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BQlk%3D","line":3224,"in_reply_to":"AAAAUH%2F%2BQp4%3D","updated":"2014-01-28 16:10:57.000000000","message":"Done","commit_id":"3f6a738321d0df424f5eb8997efa4264f150e7d8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c29d4b89d369812a51d3b746defead92bbcba946","unresolved":false,"context_lines":[{"line_number":3218,"context_line":"                video.type \u003d \u0027xen\u0027"},{"line_number":3219,"context_line":""},{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d img_meta_prop.get(\u0027hw_video_ram\u0027)"},{"line_number":3222,"context_line":"            max_vram \u003d inst_type[\u0027extra_specs\u0027].get(\u0027hw_video:vram_max_mb\u0027)"},{"line_number":3223,"context_line":"            if max_vram and video_ram:"},{"line_number":3224,"context_line":"                if video_ram \u003e max_vram:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9d%2Fs%3D","line":3221,"updated":"2014-02-06 17:54:18.000000000","message":"cast video_ram and max_vram to int could be better, no?","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"658c85575ae446b87415767bf22d3b53d74dd0e4","unresolved":false,"context_lines":[{"line_number":3218,"context_line":"                video.type \u003d \u0027xen\u0027"},{"line_number":3219,"context_line":""},{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d img_meta_prop.get(\u0027hw_video_ram\u0027)"},{"line_number":3222,"context_line":"            max_vram \u003d inst_type[\u0027extra_specs\u0027].get(\u0027hw_video:vram_max_mb\u0027)"},{"line_number":3223,"context_line":"            if max_vram and video_ram:"},{"line_number":3224,"context_line":"                if video_ram \u003e max_vram:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9c0g%3D","line":3221,"in_reply_to":"AAAAUH%2F9d%2Fs%3D","updated":"2014-02-06 20:33:46.000000000","message":"sure, thanks.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c29d4b89d369812a51d3b746defead92bbcba946","unresolved":false,"context_lines":[{"line_number":3231,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"},{"line_number":3232,"context_line":"            qga_enabled \u003d False"},{"line_number":3233,"context_line":"            # Enable qga only if the \u0027hw_qemu_guest_agent\u0027 property is set"},{"line_number":3234,"context_line":"            if (image_meta is not None and image_meta.get(\u0027properties\u0027) and"},{"line_number":3235,"context_line":"                    image_meta[\u0027properties\u0027].get(\u0027hw_qemu_guest_agent\u0027)"},{"line_number":3236,"context_line":"                    is not None):"},{"line_number":3237,"context_line":"                hw_qga \u003d image_meta[\u0027properties\u0027][\u0027hw_qemu_guest_agent\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9eB8%3D","line":3234,"updated":"2014-02-06 17:54:18.000000000","message":"It could be nice to use the new \u0027img_meta_prop\u0027 you have defined, here.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"658c85575ae446b87415767bf22d3b53d74dd0e4","unresolved":false,"context_lines":[{"line_number":3231,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"},{"line_number":3232,"context_line":"            qga_enabled \u003d False"},{"line_number":3233,"context_line":"            # Enable qga only if the \u0027hw_qemu_guest_agent\u0027 property is set"},{"line_number":3234,"context_line":"            if (image_meta is not None and image_meta.get(\u0027properties\u0027) and"},{"line_number":3235,"context_line":"                    image_meta[\u0027properties\u0027].get(\u0027hw_qemu_guest_agent\u0027)"},{"line_number":3236,"context_line":"                    is not None):"},{"line_number":3237,"context_line":"                hw_qga \u003d image_meta[\u0027properties\u0027][\u0027hw_qemu_guest_agent\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9c0A%3D","line":3234,"in_reply_to":"AAAAUH%2F9eB8%3D","updated":"2014-02-06 20:33:46.000000000","message":"I think it\u0027s out of the scope of this patch.","commit_id":"f7d64476dd44d45ffeaeb49c81688b097c4f3e47"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"6b660e7dbb0102af0605f422b5ce7a77f27ce74e","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d int(img_meta_prop.get(\u0027hw_video_ram\u0027, 0))"},{"line_number":3222,"context_line":"            max_vram \u003d int(inst_type[\u0027extra_specs\u0027]"},{"line_number":3223,"context_line":"                                    .get(\u0027hw_video:vram_max_mb\u0027, 0))"},{"line_number":3224,"context_line":"            if max_vram and video_ram:"},{"line_number":3225,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3226,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9Ym0%3D","line":3223,"updated":"2014-02-07 09:42:59.000000000","message":"In your RNG patch I wondered if there was already a convention of using \u0027:\u0027 in flavour extra specs. If not then I\u0027d suggest a _ instead.  Also we don\u0027t need \u0027vram\u0027 just \u0027ram\u0027 in the name, since it is already scoped by \u0027hw_video\u0027.","commit_id":"dd8e5031197de49b77c5810e8e1d80d0ff540184"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"0fa8ec351c9498226a6e2372590fe0f5e422b657","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d int(img_meta_prop.get(\u0027hw_video_ram\u0027, 0))"},{"line_number":3222,"context_line":"            max_vram \u003d int(inst_type[\u0027extra_specs\u0027]"},{"line_number":3223,"context_line":"                                    .get(\u0027hw_video:vram_max_mb\u0027, 0))"},{"line_number":3224,"context_line":"            if max_vram and video_ram:"},{"line_number":3225,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3226,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9W0Q%3D","line":3223,"in_reply_to":"AAAAUH%2F9W3Y%3D","updated":"2014-02-07 14:10:21.000000000","message":"Sure, done.","commit_id":"dd8e5031197de49b77c5810e8e1d80d0ff540184"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b4520f503b85f66287f79459ba8add00976a4d52","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d int(img_meta_prop.get(\u0027hw_video_ram\u0027, 0))"},{"line_number":3222,"context_line":"            max_vram \u003d int(inst_type[\u0027extra_specs\u0027]"},{"line_number":3223,"context_line":"                                    .get(\u0027hw_video:vram_max_mb\u0027, 0))"},{"line_number":3224,"context_line":"            if max_vram and video_ram:"},{"line_number":3225,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3226,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9W3Y%3D","line":3223,"in_reply_to":"AAAAUH%2F9W6M%3D","updated":"2014-02-07 13:54:27.000000000","message":"Ok that\u0027s cool then. Just  s/vram/ram/ and I\u0027ll be happy","commit_id":"dd8e5031197de49b77c5810e8e1d80d0ff540184"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"a67dc3aa8b41189fe0fffaad0fc1cb390389ad3a","unresolved":false,"context_lines":[{"line_number":3220,"context_line":"            # Set video memory, only if the flavor\u0027s limit is set"},{"line_number":3221,"context_line":"            video_ram \u003d int(img_meta_prop.get(\u0027hw_video_ram\u0027, 0))"},{"line_number":3222,"context_line":"            max_vram \u003d int(inst_type[\u0027extra_specs\u0027]"},{"line_number":3223,"context_line":"                                    .get(\u0027hw_video:vram_max_mb\u0027, 0))"},{"line_number":3224,"context_line":"            if max_vram and video_ram:"},{"line_number":3225,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3226,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9W6M%3D","line":3223,"in_reply_to":"AAAAUH%2F9Ym0%3D","updated":"2014-02-07 13:50:39.000000000","message":"I think quotas are being provided in this format as well.\nAlso, I understood that I need to use \u0027:\u0027 due to the _satisfies_extra_specs() in the capabilities filter, that would try to find the extra spec in the capabilities, unless \u0027:\u0027 is provided in the name.\nI\u0027m referring to this method on line 31: \nhttps://review.openstack.org/gitweb?p\u003dopenstack/nova.git;a\u003dblob;f\u003dnova/scheduler/filters/compute_capabilities_filter.py;h\u003d6596c74e743b04e4b9a4bd7aad7a7a036c6c783f;hb\u003dHEAD#l31","commit_id":"dd8e5031197de49b77c5810e8e1d80d0ff540184"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f6cb57d859e4e80b1160288b86054be527ac19d8","unresolved":false,"context_lines":[{"line_number":3259,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3260,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3261,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3262,"context_line":"                video.vram \u003d video_ram"},{"line_number":3263,"context_line":"            guest.add_device(video)"},{"line_number":3264,"context_line":""},{"line_number":3265,"context_line":"        # Qemu guest agent only support \u0027qemu\u0027 and \u0027kvm\u0027 hypervisor"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2Fc1s%3D","line":3262,"updated":"2014-02-13 05:05:21.000000000","message":"if hw_video:ram_max_mb is not set, \nthen max_vram is 0\nand video_ram is set, let\u0027s say 64M\n\nif max_vram is 0 means you can\u0027t set max ram,\nno exception will be raised to notify \nif max_vram is 0 means there is no limit\nthen video.vram is not set correctly","commit_id":"a81ac29bd9bdccf57b74647471132653a5ce2ac1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"6d189a26f87cef6919aef1781cdd91ee95994f46","unresolved":false,"context_lines":[{"line_number":3259,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3260,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3261,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3262,"context_line":"                video.vram \u003d video_ram"},{"line_number":3263,"context_line":"            guest.add_device(video)"},{"line_number":3264,"context_line":""},{"line_number":3265,"context_line":"        # Qemu guest agent only support \u0027qemu\u0027 and \u0027kvm\u0027 hypervisor"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2Bsfw%3D","line":3262,"in_reply_to":"AAAAUX%2F%2Fc1s%3D","updated":"2014-02-19 18:52:38.000000000","message":"If I understand the question correctly, this behaviour is intended.\n\nThe idea is that only the administrator can set hw_video:ram_max_mb in the flavour.\nUsers may set the hw_video_ram parameter in the image metadata, however, it will be respected, only if it\u0027s being used with a flavour that permits it.\n\nOtherwise, libvirt will set its own default, the way it currently does.","commit_id":"a81ac29bd9bdccf57b74647471132653a5ce2ac1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"fa55ad21331afa5bd628f1815d55aa325553c6de","unresolved":false,"context_lines":[{"line_number":3266,"context_line":"        if CONF.libvirt.virt_type in (\u0027qemu\u0027, \u0027kvm\u0027):"},{"line_number":3267,"context_line":"            qga_enabled \u003d False"},{"line_number":3268,"context_line":"            # Enable qga only if the \u0027hw_qemu_guest_agent\u0027 property is set"},{"line_number":3269,"context_line":"            if (image_meta is not None and image_meta.get(\u0027properties\u0027) and"},{"line_number":3270,"context_line":"                    image_meta[\u0027properties\u0027].get(\u0027hw_qemu_guest_agent\u0027)"},{"line_number":3271,"context_line":"                    is not None):"},{"line_number":3272,"context_line":"                hw_qga \u003d image_meta[\u0027properties\u0027][\u0027hw_qemu_guest_agent\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9Vkw%3D","line":3269,"updated":"2014-02-07 16:24:16.000000000","message":"ok, i\u0027m going to push a new patchset to refactor this part.","commit_id":"a81ac29bd9bdccf57b74647471132653a5ce2ac1"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"c859e5e78475ba834c6f992ecfb5608c998baf2c","unresolved":false,"context_lines":[{"line_number":3273,"context_line":"            if max_vram and video_ram:"},{"line_number":3274,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3275,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3276,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3277,"context_line":"                video.vram \u003d video_ram"},{"line_number":3278,"context_line":"            guest.add_device(video)"},{"line_number":3279,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2Bnd4%3D","line":3276,"updated":"2014-02-20 07:13:13.000000000","message":"I\u0027d be inclined to say we should raise this exception if hw_video_ram is set but hw_video:ram_max_mb is not set e.g.\n\n  if video_ram \u003e max_vram:\n      raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,\n                                           max_vram\u003dmax_vram)\n  if max_vram and video_ram:\n      video.vram \u003d video_ram","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"623124f1ef8e851bd9c805a44136dbf8a8e6fa23","unresolved":false,"context_lines":[{"line_number":3273,"context_line":"            if max_vram and video_ram:"},{"line_number":3274,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3275,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3276,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3277,"context_line":"                video.vram \u003d video_ram"},{"line_number":3278,"context_line":"            guest.add_device(video)"},{"line_number":3279,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BizA%3D","line":3276,"in_reply_to":"AAAAUX%2F%2BjC8%3D","updated":"2014-02-20 17:25:40.000000000","message":"Ok, Done.","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"851baff0f0602d3aab53779614a9510e61c26fd7","unresolved":false,"context_lines":[{"line_number":3273,"context_line":"            if max_vram and video_ram:"},{"line_number":3274,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3275,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3276,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3277,"context_line":"                video.vram \u003d video_ram"},{"line_number":3278,"context_line":"            guest.add_device(video)"},{"line_number":3279,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BjC8%3D","line":3276,"in_reply_to":"AAAAUX%2F%2BjI4%3D","updated":"2014-02-20 15:43:28.000000000","message":"My point is that if the administrator hasn\u0027t allowed vram to be set, we shouldn\u0027t just silently ignore it - let\u0027s treat it the same way as if the user has specified a value above the max allowed by the admin","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"ad939c22ac1e7dbbcca32e3f72cae084a424d1c0","unresolved":false,"context_lines":[{"line_number":3273,"context_line":"            if max_vram and video_ram:"},{"line_number":3274,"context_line":"                if video_ram \u003e max_vram:"},{"line_number":3275,"context_line":"                    raise exception.RequestedVRamTooHigh(req_vram\u003dvideo_ram,"},{"line_number":3276,"context_line":"                                                         max_vram\u003dmax_vram)"},{"line_number":3277,"context_line":"                video.vram \u003d video_ram"},{"line_number":3278,"context_line":"            guest.add_device(video)"},{"line_number":3279,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2BjI4%3D","line":3276,"in_reply_to":"AAAAUX%2F%2Bnd4%3D","updated":"2014-02-20 15:36:52.000000000","message":"The idea was that the administrator would allow the users to set video ram by setting the hw_video:ram_max_mb parameter in the flavour.\n\nI thought that we shouldn\u0027t honour the requested hw_video_ram and let libvirt set the default, unless the administrator allows it.\n\nOr should it be a fatal exception?","commit_id":"2899e9e7847a079d9dfeb6159e1ebcbc47d8c275"}]}
