)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"2ca9cb31f676ab7a71e042041f9301d52d4e5512","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    cfg.BoolOpt(\u0027libvirt_livesnapshot\u0027,"},{"line_number":171,"context_line":"                default\u003dFalse,"},{"line_number":172,"context_line":"                help\u003d\u0027Perform snapshots without temporarily suspending the\u0027"},{"line_number":173,"context_line":"                     \u0027 instance. Requires QEMU 1.3 and Livirt 1.0 or newer.\u0027),"},{"line_number":174,"context_line":"    cfg.IntOpt(\u0027libvirt_livesnapshot_bandwidth\u0027,"},{"line_number":175,"context_line":"               default\u003d0,"},{"line_number":176,"context_line":"               help\u003d\u0027The maximum bandwidth (in MiB/s) that will be used when\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FV0w%3D","line":173,"updated":"2013-01-28 09:57:35.000000000","message":"I don\u0027t think we should have this config param. We should simply make sure we do the right thing automatically. We can find out both these version numbers from the libvirt API.","commit_id":"81af3885f7b18fca671650760c27092f6b6df323"},{"author":{"_account_id":1525,"name":"Rafi Khardalian","email":"rafi@metacloud.com","username":"rkhardalian"},"change_message_id":"1e4cbcafb3511d8d4ee7a6c6a3ef797698619d70","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    cfg.BoolOpt(\u0027libvirt_livesnapshot\u0027,"},{"line_number":171,"context_line":"                default\u003dFalse,"},{"line_number":172,"context_line":"                help\u003d\u0027Perform snapshots without temporarily suspending the\u0027"},{"line_number":173,"context_line":"                     \u0027 instance. Requires QEMU 1.3 and Livirt 1.0 or newer.\u0027),"},{"line_number":174,"context_line":"    cfg.IntOpt(\u0027libvirt_livesnapshot_bandwidth\u0027,"},{"line_number":175,"context_line":"               default\u003d0,"},{"line_number":176,"context_line":"               help\u003d\u0027The maximum bandwidth (in MiB/s) that will be used when\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FVcA%3D","line":173,"in_reply_to":"AAAAM3%2F%2FV0w%3D","updated":"2013-01-28 16:12:34.000000000","message":"I\u0027m open to this but I figured we\u0027d play this extremely safe for Grizzly and allow users to disable it (we\u0027ve found a few bugs in QEMU around block operations already), then ultimately remove the flag for H.","commit_id":"81af3885f7b18fca671650760c27092f6b6df323"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"2ca9cb31f676ab7a71e042041f9301d52d4e5512","unresolved":false,"context_lines":[{"line_number":916,"context_line":"            # NOTE (rmk): blockRebase cannot be executed on persistent"},{"line_number":917,"context_line":"            #             domains, so we need to temporarily undefine it."},{"line_number":918,"context_line":"            #             If any part of this block fails, the domain is"},{"line_number":919,"context_line":"            #             re-defined regardless."},{"line_number":920,"context_line":"            if domain.isPersistent():"},{"line_number":921,"context_line":"                domain.undefine()"},{"line_number":922,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FV0s%3D","line":919,"updated":"2013-01-28 09:57:35.000000000","message":"Huh ? AFAIK libvirt imposes no such restriction.","commit_id":"81af3885f7b18fca671650760c27092f6b6df323"},{"author":{"_account_id":1525,"name":"Rafi Khardalian","email":"rafi@metacloud.com","username":"rkhardalian"},"change_message_id":"1e4cbcafb3511d8d4ee7a6c6a3ef797698619d70","unresolved":false,"context_lines":[{"line_number":916,"context_line":"            # NOTE (rmk): blockRebase cannot be executed on persistent"},{"line_number":917,"context_line":"            #             domains, so we need to temporarily undefine it."},{"line_number":918,"context_line":"            #             If any part of this block fails, the domain is"},{"line_number":919,"context_line":"            #             re-defined regardless."},{"line_number":920,"context_line":"            if domain.isPersistent():"},{"line_number":921,"context_line":"                domain.undefine()"},{"line_number":922,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FVcg%3D","line":919,"in_reply_to":"AAAAM3%2F%2FV0s%3D","updated":"2013-01-28 16:12:34.000000000","message":"I would not have done this if it wasn\u0027t required.  It would actually be great to know why the domain needs to be transient but it certainly does:\n\nlibvir: QEMU Driver error : Requested operation is not valid: domain is not transient\nTraceback (most recent call last):\n  File \"./snapshot-via-rebase\", line 41, in \u003cmodule\u003e\n    domain.blockRebase(\u0027vda\u0027, snapshot_name, 0, libvirt.VIR_DOMAIN_BLOCK_REBASE_COPY)\n  File \"/usr/lib/python2.7/dist-packages/libvirt.py\", line 630, in blockRebase\n    if ret \u003d\u003d -1: raise libvirtError (\u0027virDomainBlockRebase() failed\u0027, dom\u003dself)\nlibvirt.libvirtError: Requested operation is not valid: domain is not transient","commit_id":"81af3885f7b18fca671650760c27092f6b6df323"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"695c4f060fe54d486d0c240764ed98237d49c092","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    cfg.BoolOpt(\u0027libvirt_livesnapshot\u0027,"},{"line_number":171,"context_line":"                default\u003dFalse,"},{"line_number":172,"context_line":"                help\u003d\u0027Perform snapshots without temporarily suspending the\u0027"},{"line_number":173,"context_line":"                     \u0027 instance. Requires QEMU 1.3 and Livirt 1.0 or newer.\u0027),"},{"line_number":174,"context_line":"    cfg.IntOpt(\u0027libvirt_livesnapshot_bandwidth\u0027,"},{"line_number":175,"context_line":"               default\u003d0,"},{"line_number":176,"context_line":"               help\u003d\u0027The maximum bandwidth (in MiB/s) that will be used when\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2FUcc%3D","line":173,"updated":"2013-01-29 03:39:45.000000000","message":"I\u0027d be happy with this flag going away. If someone has gone through the trouble to install libvirt 1.0 and qemu 1.3 i think we should go ahead and allow the better snapshot without them having to specify it. If we are really worried about uncovering a bug then we could keep it but default it to True. But as I said I\u0027m fine with it just going away completely.","commit_id":"e080818315526706dca259b000ee3b2556c37a5e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"34a69a30007e0bd83b7d6bc7929acada4cea98a5","unresolved":false,"context_lines":[{"line_number":882,"context_line":"        #            These restrictions can be relaxed as other configurations"},{"line_number":883,"context_line":"        #            can be validated."},{"line_number":884,"context_line":"        if (hypervisor_type \u003d\u003d \u0027QEMU\u0027 and hypervisor_version \u003e\u003d 1003000 and"},{"line_number":885,"context_line":"                libvirt_version \u003e\u003d 1000000):"},{"line_number":886,"context_line":"            return True"},{"line_number":887,"context_line":"        else:"},{"line_number":888,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FUK0%3D","line":885,"updated":"2013-01-29 09:32:45.000000000","message":"At the top of this file are two constants MIN_LIBVIRT_VERSION and MIN_LIBVIRT_HOST_CPU_VERSION. Instead of hardcoding the value here, please add a constant MIN_LIBVIRT_LIVE_SNAPSHOT_VERSION at the same location. Also add a MIN_QEMU_LIVE_SNAPSHOT_VERSION constant at the same place","commit_id":"53f1845cf9f7e3d4fd5b8bfcaf113295757630b5"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"d633da6ec79569efe5b94e5a99be00679a116804","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        #            can be validated."},{"line_number":884,"context_line":"        if (hypervisor_type \u003d\u003d \u0027QEMU\u0027 and hypervisor_version \u003e\u003d 1003000 and"},{"line_number":885,"context_line":"                libvirt_version \u003e\u003d 1000000):"},{"line_number":886,"context_line":"            return True"},{"line_number":887,"context_line":"        else:"},{"line_number":888,"context_line":"            return False"},{"line_number":889,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FT%2Fo%3D","line":886,"updated":"2013-01-29 13:45:26.000000000","message":"Can we please log a message that we are doing a live snapshot or the old-style cold snapshot?","commit_id":"53f1845cf9f7e3d4fd5b8bfcaf113295757630b5"}]}
