)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"35ecca101d74cce8821edc186e1504f9aafc8ea1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When we see a job type of \"NONE\", we have code to convert that"},{"line_number":10,"context_line":"to another more useful job type. Split this code out into its"},{"line_number":11,"context_line":"own method to make it easier to test it in isolation. This new"},{"line_number":12,"context_line":"testing exposed a bug in log debug messages where thre \u0027ex\u0027"},{"line_number":13,"context_line":"parameter was not being correctly passed in a dict."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint libvirt-clean-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_d8276510","line":12,"updated":"2016-06-13 01:34:24.000000000","message":"s/thre/the/","commit_id":"b21de21fb42efb5ae12386e480eea723d06dc89f"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"431aac7d677e77fe9dc7a8cdd088724a348dce0a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"libvirt_driver.libvirt \u003d fakelibvirt"},{"line_number":110,"context_line":"host.libvirt \u003d fakelibvirt"},{"line_number":111,"context_line":"libvirt_guest.libvirt \u003d fakelibvirt"},{"line_number":112,"context_line":"libvirt_migrate.libvirt \u003d fakelibvirt"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"CONF \u003d nova.conf.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_a8713246","line":112,"updated":"2016-06-24 14:22:35.000000000","message":"Aren\u0027t there tests in here where we could mock out the calls to the migration module now?","commit_id":"bcd0c67fcdbca183df85e7e9a346448b80c9d2ca"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"33d0a89cb9db76a953b4dddc8d3b2862956d66be","unresolved":false,"context_lines":[{"line_number":109,"context_line":"libvirt_driver.libvirt \u003d fakelibvirt"},{"line_number":110,"context_line":"host.libvirt \u003d fakelibvirt"},{"line_number":111,"context_line":"libvirt_guest.libvirt \u003d fakelibvirt"},{"line_number":112,"context_line":"libvirt_migrate.libvirt \u003d fakelibvirt"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"CONF \u003d nova.conf.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_28b9c279","line":112,"in_reply_to":"3aaa91ec_a8713246","updated":"2016-06-24 14:26:59.000000000","message":"Probably, but I thing its less of a mind-bender to refactor test_driver.py once the whole series here is applied.","commit_id":"bcd0c67fcdbca183df85e7e9a346448b80c9d2ca"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9ae5e726dea4ada7267a4a2454b92634458b1da7","unresolved":false,"context_lines":[{"line_number":6045,"context_line":"                                     instance\u003dinstance)"},{"line_number":6046,"context_line":"                            info.type \u003d libvirt.VIR_DOMAIN_JOB_FAILED"},{"line_number":6047,"context_line":""},{"line_number":6048,"context_line":"                if info.type !\u003d libvirt.VIR_DOMAIN_JOB_NONE:"},{"line_number":6049,"context_line":"                    LOG.debug(\"Fixed incorrect job type to be %d\","},{"line_number":6050,"context_line":"                              info.type, instance\u003dinstance)"},{"line_number":6051,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_c8bc7e08","side":"PARENT","line":6048,"range":{"start_line":6048,"start_character":16,"end_line":6048,"end_character":60},"updated":"2016-06-24 14:19:36.000000000","message":"This check isn\u0027t needed? It also changes the conditional folding.","commit_id":"0f0e092681e236e39efefeddbbda93e8f1697ba9"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a94b78bc822023da9bfc32c50e8d8f0431845923","unresolved":false,"context_lines":[{"line_number":6045,"context_line":"                                     instance\u003dinstance)"},{"line_number":6046,"context_line":"                            info.type \u003d libvirt.VIR_DOMAIN_JOB_FAILED"},{"line_number":6047,"context_line":""},{"line_number":6048,"context_line":"                if info.type !\u003d libvirt.VIR_DOMAIN_JOB_NONE:"},{"line_number":6049,"context_line":"                    LOG.debug(\"Fixed incorrect job type to be %d\","},{"line_number":6050,"context_line":"                              info.type, instance\u003dinstance)"},{"line_number":6051,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_08916647","side":"PARENT","line":6048,"range":{"start_line":6048,"start_character":16,"end_line":6048,"end_character":60},"in_reply_to":"3aaa91ec_c8bc7e08","updated":"2016-06-24 14:23:16.000000000","message":"If the \"if \u0027not finish_event.ready()\" branch was taken, info.type will still be NONE, and so we need this check","commit_id":"0f0e092681e236e39efefeddbbda93e8f1697ba9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"431aac7d677e77fe9dc7a8cdd088724a348dce0a","unresolved":false,"context_lines":[{"line_number":6055,"context_line":"                                     instance\u003dinstance)"},{"line_number":6056,"context_line":"                            info.type \u003d libvirt.VIR_DOMAIN_JOB_FAILED"},{"line_number":6057,"context_line":""},{"line_number":6058,"context_line":"                if info.type !\u003d libvirt.VIR_DOMAIN_JOB_NONE:"},{"line_number":6059,"context_line":"                    LOG.debug(\"Fixed incorrect job type to be %d\","},{"line_number":6060,"context_line":"                              info.type, instance\u003dinstance)"},{"line_number":6061,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_c8c2be33","side":"PARENT","line":6058,"range":{"start_line":6058,"start_character":16,"end_line":6058,"end_character":60},"updated":"2016-06-24 14:22:35.000000000","message":"we don\u0027t care about this before logging?","commit_id":"5730a39ed79a4b1d35d230fc9d4ba239481c9532"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"33d0a89cb9db76a953b4dddc8d3b2862956d66be","unresolved":false,"context_lines":[{"line_number":6055,"context_line":"                                     instance\u003dinstance)"},{"line_number":6056,"context_line":"                            info.type \u003d libvirt.VIR_DOMAIN_JOB_FAILED"},{"line_number":6057,"context_line":""},{"line_number":6058,"context_line":"                if info.type !\u003d libvirt.VIR_DOMAIN_JOB_NONE:"},{"line_number":6059,"context_line":"                    LOG.debug(\"Fixed incorrect job type to be %d\","},{"line_number":6060,"context_line":"                              info.type, instance\u003dinstance)"},{"line_number":6061,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_a8f77257","side":"PARENT","line":6058,"range":{"start_line":6058,"start_character":16,"end_line":6058,"end_character":60},"in_reply_to":"3aaa91ec_c8c2be33","updated":"2016-06-24 14:26:59.000000000","message":"The find_job_type method will always change the info.type, so no need to have this conditional check now - we just moved it into the else branch.","commit_id":"5730a39ed79a4b1d35d230fc9d4ba239481c9532"}],"nova/virt/libvirt/migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9ae5e726dea4ada7267a4a2454b92634458b1da7","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"libvirt \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def graphics_listen_addrs(migrate_data):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_68710a76","line":27,"updated":"2016-06-24 14:19:36.000000000","message":"Do we really want to store a global instance of libvirt in the migration module? Couldn\u0027t we just pass that into the methods that need it?","commit_id":"d0793e13146947d1bbc69535ee7f26b39901d353"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a94b78bc822023da9bfc32c50e8d8f0431845923","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"libvirt \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def graphics_listen_addrs(migrate_data):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_88d39603","line":27,"in_reply_to":"3aaa91ec_68710a76","updated":"2016-06-24 14:23:16.000000000","message":"This is the same pattern we\u0027re using in all the libvirt/*.py modules to avoid having an \"import libvirt\" statement which would break nova on platforms without libvirt.\n\nIt is kind of gross, but don\u0027t feel its worth trying to do something different for this module, given existing practice.","commit_id":"d0793e13146947d1bbc69535ee7f26b39901d353"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"656a97160eae2bb313a1750dc30320d019f43162","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"libvirt \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def graphics_listen_addrs(migrate_data):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_489d2e09","line":27,"in_reply_to":"3aaa91ec_88d39603","updated":"2016-06-24 14:26:28.000000000","message":"We don\u0027t have to break platforms without libvirt if it\u0027s a conditional import, or just pass the libvirt instance around as a parameter.","commit_id":"d0793e13146947d1bbc69535ee7f26b39901d353"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"431aac7d677e77fe9dc7a8cdd088724a348dce0a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"libvirt \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def graphics_listen_addrs(migrate_data):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_48fc0e72","line":27,"updated":"2016-06-24 14:22:35.000000000","message":"Storing a global reference to libvirt in this module seems like a bad idea, why not just pass libvirt in to the methods that need it?","commit_id":"bcd0c67fcdbca183df85e7e9a346448b80c9d2ca"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"33d0a89cb9db76a953b4dddc8d3b2862956d66be","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"libvirt \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def graphics_listen_addrs(migrate_data):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_48588e8a","line":27,"in_reply_to":"3aaa91ec_48fc0e72","updated":"2016-06-24 14:26:59.000000000","message":"See PS3 - this is the standard pattern in all libvirt modules to avoid an \"import libvirt\"","commit_id":"bcd0c67fcdbca183df85e7e9a346448b80c9d2ca"}]}
