)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"96903aa9abd73ffcb312fca3be99dab727044d7e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"will not be distruptive."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This code is similar to a change that has been commited to oVirt."},{"line_number":20,"context_line":"https://gerrit.ovirt.org/#/c/50426"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I2732af50aab238502ccdc067f62290fd962c8c64"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_4c4921b7","line":20,"updated":"2016-05-13 15:04:50.000000000","message":"You might want to fill a bug in launchpad as reference","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"06d6b58e97329b094303cc42643e6ba8f51f2d6d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"will not be distruptive."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This code is similar to a change that has been commited to oVirt."},{"line_number":20,"context_line":"https://gerrit.ovirt.org/#/c/50426"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I2732af50aab238502ccdc067f62290fd962c8c64"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_4fd10efb","line":20,"in_reply_to":"dab17558_4c4921b7","updated":"2016-05-13 16:42:42.000000000","message":"Thanks. Will do.","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"}],"nova/virt/libvirt/guest.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"96903aa9abd73ffcb312fca3be99dab727044d7e","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def resume(self):"},{"line_number":153,"context_line":"        \"\"\"Resumes a suspended guest.\"\"\""},{"line_number":154,"context_line":"        self._domain.resume()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def enable_hairpin(self):"},{"line_number":157,"context_line":"        \"\"\"Enables hairpin mode for this guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_0c21d9fc","side":"PARENT","line":154,"updated":"2016-05-13 15:04:50.000000000","message":"Hum this method is not async ? also don\u0027t we have to wait for the operating system to be booted ? (just wondering if we have well thought of all corner cases)","commit_id":"1801a48cc6b529272c81687f1ffd41753e5c3e9a"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"06d6b58e97329b094303cc42643e6ba8f51f2d6d","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def resume(self):"},{"line_number":153,"context_line":"        \"\"\"Resumes a suspended guest.\"\"\""},{"line_number":154,"context_line":"        self._domain.resume()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def enable_hairpin(self):"},{"line_number":157,"context_line":"        \"\"\"Enables hairpin mode for this guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8fe7763f","side":"PARENT","line":154,"in_reply_to":"dab17558_0c21d9fc","updated":"2016-05-13 16:42:42.000000000","message":"There is really no problem at all if the operating system not booted yet.\n\nThe real problem is happening when we are migrating or suspending for a long while.\nI don\u0027t see it as a concern. Also, I see that oVirt has already implemented it.","commit_id":"1801a48cc6b529272c81687f1ffd41753e5c3e9a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2720e027a8ac44889e8e94b10fdbeefabac11e7b","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def resume(self):"},{"line_number":153,"context_line":"        \"\"\"Resumes a suspended guest.\"\"\""},{"line_number":154,"context_line":"        self._domain.resume()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def enable_hairpin(self):"},{"line_number":157,"context_line":"        \"\"\"Enables hairpin mode for this guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_4af4d3ef","side":"PARENT","line":154,"in_reply_to":"dab17558_8fe5b6a9","updated":"2016-05-17 15:27:14.000000000","message":"OK so my mistake, we are talking about to resume a suspended guest, we can expect that the operating system is up and running just after the resume. If it is a boot so we don\u0027t care the guest will automatically sync the time.\n\n++","commit_id":"1801a48cc6b529272c81687f1ffd41753e5c3e9a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6d7281f8e1f42e28187257ffbd9670d2575445dc","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def resume(self):"},{"line_number":153,"context_line":"        \"\"\"Resumes a suspended guest.\"\"\""},{"line_number":154,"context_line":"        self._domain.resume()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def enable_hairpin(self):"},{"line_number":157,"context_line":"        \"\"\"Enables hairpin mode for this guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8fe5b6a9","side":"PARENT","line":154,"in_reply_to":"dab17558_8fe7763f","updated":"2016-05-13 16:47:38.000000000","message":"I said that because one of the errors you are catching line 169 is about QGA, so we are probably expecting that It will be up and running on guest, no?","commit_id":"1801a48cc6b529272c81687f1ffd41753e5c3e9a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3fbc72e8219af4d3ff04a64f968ff134790e04ac","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                       \u0027nseconds\u0027: nseconds})"},{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_c0015506","line":169,"updated":"2016-05-13 15:08:30.000000000","message":"Perhaps it\u0027s to low level to think about that but I think we have a property in image_meta which refers wether the guest is running QGA, perhaps you can use it to avoid this API call if it is not activated.\n\n  hw_qemu_guest_agent.","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6d7281f8e1f42e28187257ffbd9670d2575445dc","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                       \u0027nseconds\u0027: nseconds})"},{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8f2016f9","line":169,"in_reply_to":"dab17558_0fb0a6dc","updated":"2016-05-13 16:47:38.000000000","message":"Yes I agree","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"06d6b58e97329b094303cc42643e6ba8f51f2d6d","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                       \u0027nseconds\u0027: nseconds})"},{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_0fb0a6dc","line":169,"in_reply_to":"dab17558_c0015506","updated":"2016-05-13 16:42:42.000000000","message":"Yea. Problem is that it\u0027s not trivial to expose this property here.. Initially, I wanted to do the same, however, there are multiple places in which this class is being initiated, but no image_meta can be easily passed.. nor I\u0027m not sure why is it a concern, if we make sure that this method is not disruptive..","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e5ccca72521094048cc8b88ac9f12a84a637616c","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"},{"line_number":173,"context_line":"            else:"},{"line_number":174,"context_line":"                LOG.warning(_LW(\"Failed to set time: %s\"), e)"},{"line_number":175,"context_line":"        except Exception as ex:"},{"line_number":176,"context_line":"            # The highest priority is not to let this method crash and thus"},{"line_number":177,"context_line":"            # disrupt its caller in any way.  So we swallow this error here,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_acc2d582","line":174,"range":{"start_line":174,"start_character":60,"end_line":174,"end_character":61},"updated":"2016-06-01 13:38:39.000000000","message":"If no guest agent is configured in the guest, IIUC, you should get code \u003d\u003d VIR_ERR_ARGUMENT_UNSUPPORTED. THis code will result in a log warning message being thrown.\n\nI think that if no guest agent is configured we need to make sure nova is silent, as we don\u0027t want to spam the logs with warning messages for something we know will fail","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"7e8c7bcce54ef7a87541e11a1ae8203c746799fc","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"},{"line_number":173,"context_line":"            else:"},{"line_number":174,"context_line":"                LOG.warning(_LW(\"Failed to set time: %s\"), e)"},{"line_number":175,"context_line":"        except Exception as ex:"},{"line_number":176,"context_line":"            # The highest priority is not to let this method crash and thus"},{"line_number":177,"context_line":"            # disrupt its caller in any way.  So we swallow this error here,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_d8eb8fda","line":174,"range":{"start_line":174,"start_character":60,"end_line":174,"end_character":61},"in_reply_to":"9abb7d3a_acc2d582","updated":"2016-06-01 14:26:24.000000000","message":"Done","commit_id":"48c9328144faf9da0d6c899e7f411df34bf019c3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2b3d1d0e19895949bd45b9ef567f7438e98eeb4d","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"},{"line_number":173,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_ARGUMENT_UNSUPPORTED:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_9b45f018","line":170,"range":{"start_line":170,"start_character":20,"end_line":170,"end_character":25},"updated":"2016-06-07 11:01:51.000000000","message":"Is that not a warning?","commit_id":"e8baf7c62425b36ca9f11a4351dc4593512dd539"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8fdb295cf1fd4bccdc7e78f85891e6a1b6d7345f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"},{"line_number":173,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_ARGUMENT_UNSUPPORTED:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_afcde631","line":170,"in_reply_to":"7aa08908_9b45f018","updated":"2016-06-17 13:38:20.000000000","message":"That probably have to stay as a debug level, QGA can not to response because the operating system is booting or QGA is not available on the guest (not installed). it\u0027s an expected case. Operator can do nothing about that so I don\u0027t see any reason to warn him.","commit_id":"e8baf7c62425b36ca9f11a4351dc4593512dd539"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"52b141591717ce817feddd636ecc1b1fa218629e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":168,"context_line":"            code \u003d e.get_error_code()"},{"line_number":169,"context_line":"            if code \u003d\u003d libvirt.VIR_ERR_AGENT_UNRESPONSIVE:"},{"line_number":170,"context_line":"                LOG.debug(msg, \"QEMU agent unresponsive\")"},{"line_number":171,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":172,"context_line":"                LOG.debug(msg, \"Not supported\")"},{"line_number":173,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_ARGUMENT_UNSUPPORTED:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_2c7bc1bf","line":170,"in_reply_to":"7aa08908_afcde631","updated":"2016-06-17 14:15:08.000000000","message":"Yes, I agree with that. I think it should stay as debug.","commit_id":"e8baf7c62425b36ca9f11a4351dc4593512dd539"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"bfe0028c5f55db618bef370d89a53a09e49d99ba","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        t \u003d time.time()"},{"line_number":161,"context_line":"        seconds \u003d int(t)"},{"line_number":162,"context_line":"        nseconds \u003d int((t - seconds) * 10 ** 9)"},{"line_number":163,"context_line":"        msg \u003d \"Failed to set time: %s\""},{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            self._domain.setTime(time\u003d{\u0027seconds\u0027: seconds,"},{"line_number":166,"context_line":"                                       \u0027nseconds\u0027: nseconds})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_416db603","line":163,"updated":"2016-06-21 21:09:47.000000000","message":"Why construct the log messages like this? We\u0027d normally just have them directly in the log calls.","commit_id":"d9f15b304abe433f4e781421b93bf7641eceec71"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"ebd818481363f0d16824ee9ef667e3ffd039aeb4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        t \u003d time.time()"},{"line_number":161,"context_line":"        seconds \u003d int(t)"},{"line_number":162,"context_line":"        nseconds \u003d int((t - seconds) * 10 ** 9)"},{"line_number":163,"context_line":"        msg \u003d \"Failed to set time: %s\""},{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            self._domain.setTime(time\u003d{\u0027seconds\u0027: seconds,"},{"line_number":166,"context_line":"                                       \u0027nseconds\u0027: nseconds})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_99f26305","line":163,"in_reply_to":"3aaa91ec_416db603","updated":"2016-06-27 22:10:58.000000000","message":"Not sure what\u0027s wrong with using a variable, why to repeat 4 times the same thing?!","commit_id":"d9f15b304abe433f4e781421b93bf7641eceec71"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"33b1ee964efa21350963843faf438cf020e72bb9","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                LOG.debug(\"Failed to set time: %(reason)s,\""},{"line_number":170,"context_line":"                          \" instance_uuid\u003d%(uuid)s\" %"},{"line_number":171,"context_line":"                          {\u0027reason\u0027: \"QEMU agent unresponsive\","},{"line_number":172,"context_line":"                           \u0027uuid\u0027: self.uuid})"},{"line_number":173,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":174,"context_line":"                LOG.debug(\"Failed to set time: %(reason)s,\""},{"line_number":175,"context_line":"                          \" instance_uuid\u003d%(uuid)s\" %"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_03a58203","line":172,"updated":"2016-07-17 22:15:44.000000000","message":"Sorry, these should be like this:\n\nLOG.debug(\u0027Failed to thing the thing: %(reason)s\u0027, {\u0027reason\u0027: thing}, instance_uuid\u003dself.uuid)\n\nIn other words, the instance uuid is a kwarg, not a string substitution.","commit_id":"7f0afa7d73826aecf78d691b27f72cc22a5b5a4e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"7a506867f8fd73bada72f5af88e7e7bd9aa7fcfd","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                LOG.debug(\"Failed to set time: %(reason)s,\""},{"line_number":170,"context_line":"                          \" instance_uuid\u003d%(uuid)s\" %"},{"line_number":171,"context_line":"                          {\u0027reason\u0027: \"QEMU agent unresponsive\","},{"line_number":172,"context_line":"                           \u0027uuid\u0027: self.uuid})"},{"line_number":173,"context_line":"            elif code \u003d\u003d libvirt.VIR_ERR_NO_SUPPORT:"},{"line_number":174,"context_line":"                LOG.debug(\"Failed to set time: %(reason)s,\""},{"line_number":175,"context_line":"                          \" instance_uuid\u003d%(uuid)s\" %"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_27a5d2a1","line":172,"in_reply_to":"dada55a8_03a58203","updated":"2016-07-19 16:08:29.000000000","message":"Done","commit_id":"7f0afa7d73826aecf78d691b27f72cc22a5b5a4e"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"33b1ee964efa21350963843faf438cf020e72bb9","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                      \" instance_uuid\u003d%(uuid)s\" %"},{"line_number":193,"context_line":"                      {\u0027reason\u0027: ex, \u0027uuid\u0027: self.uuid})"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            LOG.debug(\u0027Time updated to: %d.%09d\u0027, seconds, nseconds)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def inject_nmi(self):"},{"line_number":198,"context_line":"        \"\"\"Injects an NMI to a guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_43af7ae3","line":195,"updated":"2016-07-17 22:15:44.000000000","message":"I think we want the instance uuid here too.","commit_id":"7f0afa7d73826aecf78d691b27f72cc22a5b5a4e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"7a506867f8fd73bada72f5af88e7e7bd9aa7fcfd","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                      \" instance_uuid\u003d%(uuid)s\" %"},{"line_number":193,"context_line":"                      {\u0027reason\u0027: ex, \u0027uuid\u0027: self.uuid})"},{"line_number":194,"context_line":"        else:"},{"line_number":195,"context_line":"            LOG.debug(\u0027Time updated to: %d.%09d\u0027, seconds, nseconds)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def inject_nmi(self):"},{"line_number":198,"context_line":"        \"\"\"Injects an NMI to a guest.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_67afca81","line":195,"in_reply_to":"dada55a8_43af7ae3","updated":"2016-07-19 16:08:29.000000000","message":"Done","commit_id":"7f0afa7d73826aecf78d691b27f72cc22a5b5a4e"}]}
