)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"13043bc09b19790e2cc7bec767b0468acc971516","unresolved":false,"context_lines":[{"line_number":20,"context_line":"hw_rng:allowed\u003dTrue - Allow virtio-rng to be added to instances."},{"line_number":21,"context_line":"hw_rng:rate_bytes - The allowed amount of bytes for the the guest"},{"line_number":22,"context_line":"                    to read from the host’s entropy per period."},{"line_number":23,"context_line":"hw_rng:rate_period - Sets the duration of a read period in seconds."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"DocImpact"},{"line_number":26,"context_line":"Partially implements blueprint libvirt-rng-device"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAUH%2F9eG0%3D","line":23,"updated":"2014-02-06 17:31:54.000000000","message":"Is there an existing convention of using \u0027:\u0027 in flavour extra_specs ? If not, then perhaps we should use underscore as \u0027hw_rng_allowed\u0027 for consistent naming style vs image props.","commit_id":"1b9eee9c4501ff09bcd9ac199bcd2627e372c45c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4b60495ca628df718d8b9f99b0b853a4d9d1f4f4","unresolved":false,"context_lines":[{"line_number":20,"context_line":"hw_rng:allowed\u003dTrue - Allow virtio-rng to be added to instances."},{"line_number":21,"context_line":"hw_rng:rate_bytes - The allowed amount of bytes for the the guest"},{"line_number":22,"context_line":"                    to read from the host’s entropy per period."},{"line_number":23,"context_line":"hw_rng:rate_period - Sets the duration of a read period in seconds."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"DocImpact"},{"line_number":26,"context_line":"Partially implements blueprint libvirt-rng-device"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAUX%2F%2F1QM%3D","line":23,"in_reply_to":"AAAAUH%2F9eG0%3D","updated":"2014-02-10 14:43:43.000000000","message":"Per discussions elsewhere, use of \u0027:\u0027 is normal practice, so ignore my previous comment.","commit_id":"1b9eee9c4501ff09bcd9ac199bcd2627e372c45c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8892905a39740653f847ea62854459845d79b421","unresolved":false,"context_lines":[{"line_number":3020,"context_line":""},{"line_number":3021,"context_line":"            if img_meta_prop.get(\u0027hw_rng\u0027):"},{"line_number":3022,"context_line":"                if len(scope) \u003e 1 and scope[0] \u003d\u003d \u0027hw_rng\u0027:"},{"line_number":3023,"context_line":"                    rng_properties[scope[1]] \u003d value"},{"line_number":3024,"context_line":""},{"line_number":3025,"context_line":"        guest.cpu \u003d self.get_guest_cpu_config()"},{"line_number":3026,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BQig%3D","line":3023,"updated":"2014-01-28 16:17:47.000000000","message":"I don\u0027t think pulling this out into a new dict is really helping clarity of the code at all.","commit_id":"b51d1bd45f96655c167ea6ab25246b2b767aabff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d5e953762c9a6e9de93c3d0ed826727b3ce6b2ba","unresolved":false,"context_lines":[{"line_number":3020,"context_line":""},{"line_number":3021,"context_line":"            if img_meta_prop.get(\u0027hw_rng\u0027):"},{"line_number":3022,"context_line":"                if len(scope) \u003e 1 and scope[0] \u003d\u003d \u0027hw_rng\u0027:"},{"line_number":3023,"context_line":"                    rng_properties[scope[1]] \u003d value"},{"line_number":3024,"context_line":""},{"line_number":3025,"context_line":"        guest.cpu \u003d self.get_guest_cpu_config()"},{"line_number":3026,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BOjA%3D","line":3023,"in_reply_to":"AAAAUH%2F%2BQig%3D","updated":"2014-01-28 22:09:46.000000000","message":"Done","commit_id":"b51d1bd45f96655c167ea6ab25246b2b767aabff"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8892905a39740653f847ea62854459845d79b421","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            if (img_meta_prop.get(\u0027hw_rng\u0027) \u003d\u003d \u0027virtio\u0027 and"},{"line_number":3248,"context_line":"                rng_properties.get(\u0027allowed\u0027, \u0027\u0027).lower() \u003d\u003d \u0027true\u0027):"},{"line_number":3249,"context_line":"                rng_device \u003d vconfig.LibvirtConfigGuestRng()"},{"line_number":3250,"context_line":"                rate_bytes \u003d rng_properties.get(\u0027rate_bytes\u0027)"},{"line_number":3251,"context_line":"                if rate_bytes:"},{"line_number":3252,"context_line":"                    rng_device.rate_bytes \u003d rate_bytes"},{"line_number":3253,"context_line":"                    rng_device.rate_period \u003d rng_properties.get(\u0027rate_period\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BQiM%3D","line":3250,"updated":"2014-01-28 16:17:47.000000000","message":"IMHO this is clearer as inst_type[\u0027extra_specs\u0027][\"hw_rng:allowed\"]  so it is obvious that we\u0027re validating agianst the  flavour specs.","commit_id":"b51d1bd45f96655c167ea6ab25246b2b767aabff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d5e953762c9a6e9de93c3d0ed826727b3ce6b2ba","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            if (img_meta_prop.get(\u0027hw_rng\u0027) \u003d\u003d \u0027virtio\u0027 and"},{"line_number":3248,"context_line":"                rng_properties.get(\u0027allowed\u0027, \u0027\u0027).lower() \u003d\u003d \u0027true\u0027):"},{"line_number":3249,"context_line":"                rng_device \u003d vconfig.LibvirtConfigGuestRng()"},{"line_number":3250,"context_line":"                rate_bytes \u003d rng_properties.get(\u0027rate_bytes\u0027)"},{"line_number":3251,"context_line":"                if rate_bytes:"},{"line_number":3252,"context_line":"                    rng_device.rate_bytes \u003d rate_bytes"},{"line_number":3253,"context_line":"                    rng_device.rate_period \u003d rng_properties.get(\u0027rate_period\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BOek%3D","line":3250,"in_reply_to":"AAAAUH%2F%2BQiM%3D","updated":"2014-01-28 22:09:46.000000000","message":"Done. It\u0027s just hard to keep lines under 80 char. length.","commit_id":"b51d1bd45f96655c167ea6ab25246b2b767aabff"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0b534ddf4323c519d180e0278ca3bd29bf5b1f59","unresolved":false,"context_lines":[{"line_number":3263,"context_line":"                                (\"org.qemu.guest_agent.0\", instance[\u0027name\u0027]))"},{"line_number":3264,"context_line":"                guest.add_device(qga)"},{"line_number":3265,"context_line":""},{"line_number":3266,"context_line":"            if (img_meta_prop.get(\u0027hw_rng\u0027) \u003d\u003d \u0027virtio\u0027 and"},{"line_number":3267,"context_line":"                inst_type[\u0027extra_specs\u0027].get(\u0027hw_rng:allowed\u0027,"},{"line_number":3268,"context_line":"                                             \u0027\u0027).lower() \u003d\u003d \u0027true\u0027):"},{"line_number":3269,"context_line":"                rng_device \u003d vconfig.LibvirtConfigGuestRng()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9fWk%3D","line":3266,"updated":"2014-02-06 15:21:36.000000000","message":"I\u0027ve noticed that we\u0027ve actually used a \u0027model\u0027 suffix in all other places. So lets call this \u0027hw_rng_model\u0027","commit_id":"d0ff034224847d287726d340a381ee71bef809bf"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"91a30b6098d64e0c943d8442d93840aaf47c3cab","unresolved":false,"context_lines":[{"line_number":3263,"context_line":"                                (\"org.qemu.guest_agent.0\", instance[\u0027name\u0027]))"},{"line_number":3264,"context_line":"                guest.add_device(qga)"},{"line_number":3265,"context_line":""},{"line_number":3266,"context_line":"            if (img_meta_prop.get(\u0027hw_rng\u0027) \u003d\u003d \u0027virtio\u0027 and"},{"line_number":3267,"context_line":"                inst_type[\u0027extra_specs\u0027].get(\u0027hw_rng:allowed\u0027,"},{"line_number":3268,"context_line":"                                             \u0027\u0027).lower() \u003d\u003d \u0027true\u0027):"},{"line_number":3269,"context_line":"                rng_device \u003d vconfig.LibvirtConfigGuestRng()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9esI%3D","line":3266,"in_reply_to":"AAAAUH%2F9fWk%3D","updated":"2014-02-06 17:28:16.000000000","message":"Done","commit_id":"d0ff034224847d287726d340a381ee71bef809bf"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"c6707e835faca6b22bb3104e2f95b8fc07c8de21","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"                period \u003d flavor.extra_specs.get(\u0027hw_rng:rate_period\u0027)"},{"line_number":3306,"context_line":"                if rate_bytes:"},{"line_number":3307,"context_line":"                    rng_device.rate_bytes \u003d rate_bytes"},{"line_number":3308,"context_line":"                    rng_device.rate_period \u003d period"},{"line_number":3309,"context_line":"                guest.add_device(rng_device)"},{"line_number":3310,"context_line":""},{"line_number":3311,"context_line":"        if CONF.libvirt.virt_type in (\u0027xen\u0027, \u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2F5mk%3D","line":3308,"updated":"2014-02-24 07:10:53.000000000","message":"Hmm, now that I see the changes you made to the tests, I think we should convert to int here","commit_id":"78d18b74634c48b4b04844694cbf700396dbf870"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"482a2f8c07d8699c07de9b68be638b421b17ff13","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"                period \u003d flavor.extra_specs.get(\u0027hw_rng:rate_period\u0027)"},{"line_number":3306,"context_line":"                if rate_bytes:"},{"line_number":3307,"context_line":"                    rng_device.rate_bytes \u003d rate_bytes"},{"line_number":3308,"context_line":"                    rng_device.rate_period \u003d period"},{"line_number":3309,"context_line":"                guest.add_device(rng_device)"},{"line_number":3310,"context_line":""},{"line_number":3311,"context_line":"        if CONF.libvirt.virt_type in (\u0027xen\u0027, \u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2F2Uc%3D","line":3308,"in_reply_to":"AAAAU3%2F%2F3ZQ%3D","updated":"2014-02-24 14:19:35.000000000","message":"In your vram patch you do this:\n\nmax_vram \u003d int(flavor.extra_specs\n                             .get(\u0027hw_video:ram_max_mb\u0027, 0))\n\ni.e. the value in extra_specs should be a string, the value in the LibvirtConfigGuestRng should be an int and format_dom() should convert back into string again\n\nI think this will give more understandable errors if the flavor is improperly configured with something other than an integer","commit_id":"78d18b74634c48b4b04844694cbf700396dbf870"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"2d95a244d5eb9b28f62fc1b7dc104565adf262c4","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"                period \u003d flavor.extra_specs.get(\u0027hw_rng:rate_period\u0027)"},{"line_number":3306,"context_line":"                if rate_bytes:"},{"line_number":3307,"context_line":"                    rng_device.rate_bytes \u003d rate_bytes"},{"line_number":3308,"context_line":"                    rng_device.rate_period \u003d period"},{"line_number":3309,"context_line":"                guest.add_device(rng_device)"},{"line_number":3310,"context_line":""},{"line_number":3311,"context_line":"        if CONF.libvirt.virt_type in (\u0027xen\u0027, \u0027qemu\u0027, \u0027kvm\u0027):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2F3ZQ%3D","line":3308,"in_reply_to":"AAAAU3%2F%2F5mk%3D","updated":"2014-02-24 12:30:49.000000000","message":"Ok. I\u0027ve changed the tests because the flavor object returns a string. In addition, LibvirtConfigGuestRng class converts these values to string as well, if these are not None, without making any calculations. I assumed It\u0027s consistent.","commit_id":"78d18b74634c48b4b04844694cbf700396dbf870"}]}
