)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"db0d27a30427ae2df9ec45c389fb00a617da5316","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Markus Zoeller \u003cmzoeller@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-11 18:05:57 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt: Use the virtlogd deamon for logs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the *serial console* feature is enabled on a compute node with"},{"line_number":10,"context_line":"``[serial_console].enabled \u003d True`` it deactivates the logging of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da85f559_9f2a118f","line":7,"updated":"2015-11-11 17:10:42.000000000","message":"After a second thought, is it confusing that I talk about \"logs\" here although the tcp device gets replaced too?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b21e03ff54960e962ef32f2e7bf0b4b5a52d8570","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Markus Zoeller \u003cmzoeller@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-11 18:05:57 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt: Use the virtlogd deamon for logs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the *serial console* feature is enabled on a compute node with"},{"line_number":10,"context_line":"``[serial_console].enabled \u003d True`` it deactivates the logging of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a740942_9044981b","line":7,"in_reply_to":"da85f559_9f2a118f","updated":"2015-12-10 19:58:35.000000000","message":"If you have a reason to respin, you can fix it.  Or if you don\u0027t prefer to lose +2s, you can let it be and maybe submit a subsequent fix to the spec.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"7f995e47bdbe53e5fb07d84e1efcc5b70726e3ea","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Markus Zoeller \u003cmzoeller@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-02 16:55:43 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt: Use the virtlogd deamon"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the *serial console* feature is enabled on a compute node with"},{"line_number":10,"context_line":"``[serial_console].enabled \u003d True`` it deactivates the logging of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9abb7d3a_a31f3b08","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":32},"updated":"2016-06-02 15:01:08.000000000","message":"s/deamon/daemon","commit_id":"55ca148976917afc8d96105f1542a541fef291cc"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"6903527445e587a55ddee88511eb5438aeef6fa4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Markus Zoeller \u003cmzoeller@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-02 16:55:43 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt: Use the virtlogd deamon"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the *serial console* feature is enabled on a compute node with"},{"line_number":10,"context_line":"``[serial_console].enabled \u003d True`` it deactivates the logging of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9abb7d3a_def052cc","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":32},"in_reply_to":"9abb7d3a_a31f3b08","updated":"2016-06-02 15:12:45.000000000","message":"@Maxim: I write that wrong my whole life. :/ I\u0027d like to avoid a new ps because of a typo. FF is tomorrow.","commit_id":"55ca148976917afc8d96105f1542a541fef291cc"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"8eed06d7d6f0f38accd4c7c26dc11bc2b4f8e14b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Markus Zoeller \u003cmzoeller@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-02 16:55:43 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt: Use the virtlogd deamon"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the *serial console* feature is enabled on a compute node with"},{"line_number":10,"context_line":"``[serial_console].enabled \u003d True`` it deactivates the logging of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9abb7d3a_2b679d26","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":32},"in_reply_to":"9abb7d3a_def052cc","updated":"2016-06-02 16:16:49.000000000","message":"I don\u0027t insist. And that\u0027s why I didn\u0027t -1 this","commit_id":"55ca148976917afc8d96105f1542a541fef291cc"}],"specs/mitaka/approved/libvirt-virtlogd.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"``/var/log/virtlogd/qemu/$GUEST.log`` on the host but truncates/rotates that"},{"line_number":79,"context_line":"log so that it doesn\u0027t exhaust the hosts disk space (this would solve an old"},{"line_number":80,"context_line":"bug [3]. This log file can be fetched and used as content for the"},{"line_number":81,"context_line":"``get_console_output`` method."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Open Questions"},{"line_number":84,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_54fa8676","line":81,"updated":"2015-10-30 05:04:43.000000000","message":"Nova would generate:\n\n  \u003cserial type\u003d\"logd\"\u003e\n      \u003csource listen\u003d\"0.0.0.0\" autoport\u003d\"yes\"/\u003e\n  \u003c/serial\u003e\n\nAnd when querying libvirt, it will get back this from dumpxml\n\n  \u003cserial type\u003d\"logd\"\u003e\n      \u003csource listen\u003d\"0.0.0.0\" port\u003d\"1235\" autoport\u003d\"yes\"/\u003e\n  \u003c/serial\u003e\n\nThe permitted port range used for automatic port allocation will be defined in /etc/libvirt/virtlogd.conf\n\nFor providing the console log data, nova would not need to read the console log file from disk directly. Instead libvirt would provide an API  virDomainGetConsoleLog(virDomainPtr, virStreamPtr). In python we\u0027d call dom.getConsoleLog(stream). \n\nFor the interactive serial console,  the nova console proxy will connect directly to the TCP host/port provided by virtlogd.","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":99,"context_line":"          migrated to a target node which cannot utilize the *virtlogd*"},{"line_number":100,"context_line":"          output. If the serial console is enable on the target node, do"},{"line_number":101,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":102,"context_line":"          node?"},{"line_number":103,"context_line":"       #. ``N+1 -\u003e N+1``: Source and target node are patched. Will libvirt"},{"line_number":104,"context_line":"          migrate the existing log from the source node too, which would"},{"line_number":105,"context_line":"          solve another open bug [4]."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_d47a16f1","line":102,"updated":"2015-10-30 05:04:43.000000000","message":"In the case of migration to an old host, we should copy the existing log file across, and configure the guest with the type\u003dtcp backend. This provides ongoing support for interactive console. The log file will remain unchanged.","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"          solve another open bug [4]."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"#. Could a stalling of the guest happen if *nova-compute* is reading the log"},{"line_number":108,"context_line":"   file and *virtlogd* tries to write to the file but is blocked?"},{"line_number":109,"context_line":"#. IIUC the *virtlogd* deamon has a ``1:1`` relationship to a compute node."},{"line_number":110,"context_line":"   It would be interesting how well it performs when, for example,"},{"line_number":111,"context_line":"   hundreds of instances are running on one compute node."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_3474aafb","line":108,"updated":"2015-10-30 05:04:43.000000000","message":"No, virtlogd will ensure things are fully parallized.","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"   file and *virtlogd* tries to write to the file but is blocked?"},{"line_number":109,"context_line":"#. IIUC the *virtlogd* deamon has a ``1:1`` relationship to a compute node."},{"line_number":110,"context_line":"   It would be interesting how well it performs when, for example,"},{"line_number":111,"context_line":"   hundreds of instances are running on one compute node."},{"line_number":112,"context_line":"#. Are there architecture dependencies? Right now, a nova-compute node on a"},{"line_number":113,"context_line":"   s390 architecture depends on the *serial console* feature because it"},{"line_number":114,"context_line":"   cannot provide the other console types (VNC, SPICE, RDP). Which means it"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_5456065d","line":111,"updated":"2015-10-30 05:04:43.000000000","message":"We could add a I/O rate limit to virtlogd so it refuses to read data too quickly from a single guest. This prevents a single guest DOS\u0027ing the host.","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"   cannot provide the other console types (VNC, SPICE, RDP). Which means it"},{"line_number":115,"context_line":"   would benefit from having both."},{"line_number":116,"context_line":"#. How are restarts of the *virtlogd* deamon handled? Do we lose information"},{"line_number":117,"context_line":"   in the timeframe between stop and start?"},{"line_number":118,"context_line":"#. Do we need a version check of libvirt to detect if the *virtlodg* is"},{"line_number":119,"context_line":"   available on the host? Or is it sufficient to check if the folder"},{"line_number":120,"context_line":"   ``/var/log/virtlogd/`` is present?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_d4ef7685","line":117,"updated":"2015-10-30 05:04:43.000000000","message":"The virtlogd daemon will be able to re-exec() itself while keeping file handles open. This will ensure no data loss during restasrt of virtlogd.","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d882a5a86ff05e7a40984861f054f616ee03bef0","unresolved":false,"context_lines":[{"line_number":117,"context_line":"   in the timeframe between stop and start?"},{"line_number":118,"context_line":"#. Do we need a version check of libvirt to detect if the *virtlodg* is"},{"line_number":119,"context_line":"   available on the host? Or is it sufficient to check if the folder"},{"line_number":120,"context_line":"   ``/var/log/virtlogd/`` is present?"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Alternatives"},{"line_number":123,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_f4f2b26e","line":120,"updated":"2015-10-30 05:04:43.000000000","message":"We\u0027ll just do a version number check","commit_id":"a1416e5cf6f68e63078ef144bf16ff79b1b9d7da"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7d43d8433deb089097707e5a0196fab8e296ee5d","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   A: We will do a version number check on libvirt to figure out if it is"},{"line_number":172,"context_line":"   capable to use it."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Alternatives"},{"line_number":175,"context_line":"------------"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_b573b114","line":173,"updated":"2015-11-10 16:37:55.000000000","message":"I am wondering what happens with older versions here.\n\nMaybe we want to deprecate the old console method, and eventually only support listing the console log using this new method at some point?\n\nMaybe I am missing something here.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e9127524f6a03210497abe8938b736c14596d460","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   A: We will do a version number check on libvirt to figure out if it is"},{"line_number":172,"context_line":"   capable to use it."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Alternatives"},{"line_number":175,"context_line":"------------"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_f1da76e7","line":173,"in_reply_to":"da85f559_b573b114","updated":"2015-11-11 17:03:44.000000000","message":"@John: I think we have to carry around the \"old console method\" for as long as the minimum libvirt version for the driver doesn\u0027t contain the virtlogd functionality. Then we can deprecate it. \n\nWhen release N-1 contains the necessary minimum libvirt version then we can remove the code which creates the \"log file device\" and the \"tcp device\".\n\nTo answer your question, yes, the new method (virtlogd) is going to *replace* the old methods (file device + tcp device).","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"868f0721c39654b5f514e69f539fc4714ff8ed16","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   A: We will do a version number check on libvirt to figure out if it is"},{"line_number":172,"context_line":"   capable to use it."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Alternatives"},{"line_number":175,"context_line":"------------"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_50905343","line":173,"in_reply_to":"da85f559_b573b114","updated":"2015-11-10 16:48:13.000000000","message":"Yes, if libvirt is not new enough, we\u0027ll carry on the current approach, so there\u0027ll be no functional change vs Liberty or earlier.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7d43d8433deb089097707e5a0196fab8e296ee5d","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Other deployer impact"},{"line_number":230,"context_line":"---------------------"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"None"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Developer impact"},{"line_number":235,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_b5ee51b2","line":232,"updated":"2015-11-10 16:37:55.000000000","message":"maybe need to mention the virtlogd as a new moving part they might need to monitor, etc?","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e9127524f6a03210497abe8938b736c14596d460","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Other deployer impact"},{"line_number":230,"context_line":"---------------------"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"None"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Developer impact"},{"line_number":235,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_5401f003","line":232,"in_reply_to":"da85f559_b5ee51b2","updated":"2015-11-11 17:03:44.000000000","message":"Ok, the next patch set mentions this.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"868f0721c39654b5f514e69f539fc4714ff8ed16","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Other deployer impact"},{"line_number":230,"context_line":"---------------------"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"None"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Developer impact"},{"line_number":235,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_10b16be1","line":232,"in_reply_to":"da85f559_b5ee51b2","updated":"2015-11-10 16:48:13.000000000","message":"Yep, they\u0027ll have to at least make sure it is running.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7d43d8433deb089097707e5a0196fab8e296ee5d","unresolved":false,"context_lines":[{"line_number":250,"context_line":"Work Items"},{"line_number":251,"context_line":"----------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* get a gate job running which has the *serial console* activated?"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_15acfd9e","line":253,"updated":"2015-11-10 16:37:55.000000000","message":"This normally also includes the work to add the support for the serial console using the new libvirt method.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e9127524f6a03210497abe8938b736c14596d460","unresolved":false,"context_lines":[{"line_number":250,"context_line":"Work Items"},{"line_number":251,"context_line":"----------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* get a gate job running which has the *serial console* activated?"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_94a8b821","line":253,"in_reply_to":"da85f559_15acfd9e","updated":"2015-11-11 17:03:44.000000000","message":"A more detailed list is in the next patch set.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7d43d8433deb089097707e5a0196fab8e296ee5d","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Dependencies"},{"line_number":257,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* the *libvirt virtlod logging deamon* described in [1]."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_d521954e","line":259,"updated":"2015-11-10 16:37:55.000000000","message":"I think we should know the released version required before we merge this spec.\n\nI want to know it is possible to test this in the gate, before we merge the spec, ideally at least","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e9127524f6a03210497abe8938b736c14596d460","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Dependencies"},{"line_number":257,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* the *libvirt virtlod logging deamon* described in [1]."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_3f14459e","line":259,"in_reply_to":"da85f559_100deb8f","updated":"2015-11-11 17:03:44.000000000","message":"@John: As Daniel said, \"virtlogd\" is not released yet. It\u0027s a parallel development in libvirt and its utilization in Nova. I could create a patch series which starts with a patch which does the libvirt version/feature check. This patch will then be marked with W-1 to prevent a premature merge of the code which follows and utilizes the \"virtlogd\" functionality. When the version in libvirt is known I can remove the W-1 again. Is that a valid approach?\n\nI still have to figure out how a gate job is created and what the preconditions are. If you have a pointer for me, that would help me a lot.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"868f0721c39654b5f514e69f539fc4714ff8ed16","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Dependencies"},{"line_number":257,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* the *libvirt virtlod logging deamon* described in [1]."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_100deb8f","line":259,"in_reply_to":"da85f559_d521954e","updated":"2015-11-10 16:48:13.000000000","message":"So the virtlogd is not in any libvirt release yet. It is something I\u0027m actively implemented, but don\u0027t have a predicted version number. Obviously the intent is for it to be available before feature freeze deadline.\n\nIs is reasonable to approve it and then if the libvirt dep isn\u0027t ready before feature freeze, then punt to Nxxx","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7d43d8433deb089097707e5a0196fab8e296ee5d","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* has the dependency to the *virtlogd deamon* resolved."},{"line_number":270,"context_line":"* AND has the serial console feature enabled (AFAIK there is not job right"},{"line_number":271,"context_line":"  now which has this enabled)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_35e101ff","line":271,"updated":"2015-11-10 16:37:55.000000000","message":"I think we also need the bleeding edge libvirt test running.","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e9127524f6a03210497abe8938b736c14596d460","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* has the dependency to the *virtlogd deamon* resolved."},{"line_number":270,"context_line":"* AND has the serial console feature enabled (AFAIK there is not job right"},{"line_number":271,"context_line":"  now which has this enabled)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_ff06bd1a","line":271,"in_reply_to":"da85f559_35e101ff","updated":"2015-11-11 17:03:44.000000000","message":"@John: This is a test which makes sense independently from the changes proposed in this spec, right? Or do you suggest that this should be part of this spec?","commit_id":"5dd5e11f3e3214c3b40d58b7ac18328b1391454c"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"e43599ca810023ad65923e0257044689340805c0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"-----------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"None"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Proposed change"},{"line_number":71,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_269af0b9","line":69,"updated":"2015-11-27 15:39:48.000000000","message":"If you need to respin, please get rid of that section.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"f8c625f1aba3668edd72d7e23114b5fc16bce876","unresolved":false,"context_lines":[{"line_number":66,"context_line":"-----------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"None"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Proposed change"},{"line_number":71,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_83f2a904","line":69,"in_reply_to":"9a8ffd7b_269af0b9","updated":"2015-11-27 16:08:59.000000000","message":"@Andrea: OK, the next patch set (if necessary) will contain the change.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"34c1816081d358b0c65d74e697fcab264bb139f1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"from the guest\u0027s console and writes it into the file"},{"line_number":78,"context_line":"``/var/log/virtlogd/qemu/$GUEST.log`` on the host but truncates/rotates that"},{"line_number":79,"context_line":"log so that it doesn\u0027t exhaust the hosts disk space (this would solve an old"},{"line_number":80,"context_line":"bug [3]."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Nova would generate::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_12c21634","line":80,"updated":"2015-11-18 03:14:04.000000000","message":"This sounds really cool, but we\u0027ve been historically very hesitant to use newly minted libvirt features. I certainly think it would be premature to approve this spec before the feature has been _released_ by libvirt.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e28932d1d5359390bbd08001be905e19810e5a27","unresolved":false,"context_lines":[{"line_number":77,"context_line":"from the guest\u0027s console and writes it into the file"},{"line_number":78,"context_line":"``/var/log/virtlogd/qemu/$GUEST.log`` on the host but truncates/rotates that"},{"line_number":79,"context_line":"log so that it doesn\u0027t exhaust the hosts disk space (this would solve an old"},{"line_number":80,"context_line":"bug [3]."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Nova would generate::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_42991b7b","line":80,"in_reply_to":"ba8a016a_12c21634","updated":"2015-11-19 14:20:06.000000000","message":"Assumed, the libvirt feature will be available between spec freeze at mitaka-1 and feature freeze at mitaka-2, it couldn\u0027t be exploited in Mitaka at all and we have to wait 6 months for the next release. Would an \"approval with reservation\" make sense? Getting a gate job running which uses the latest libvirt is a precondition, I think. That\u0027s under discussion on the ML: http://lists.openstack.org/pipermail/openstack-dev/2015-November/079679.html","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"34c1816081d358b0c65d74e697fcab264bb139f1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Nova would generate::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    \u003cserial type\u003d\"logd\"\u003e"},{"line_number":85,"context_line":"        \u003csource listen\u003d\"0.0.0.0\" autoport\u003d\"yes\"/\u003e"},{"line_number":86,"context_line":"    \u003c/serial\u003e"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"And when querying libvirt, it will get back this from ``dumpxml``::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_52cf3e56","line":85,"updated":"2015-11-18 03:14:04.000000000","message":"What is the impact of the wild card IP here? Is that going to be a security concern later?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9fc0623769edebb766123fb0fbccfae27e6fc969","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Nova would generate::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    \u003cserial type\u003d\"logd\"\u003e"},{"line_number":85,"context_line":"        \u003csource listen\u003d\"0.0.0.0\" autoport\u003d\"yes\"/\u003e"},{"line_number":86,"context_line":"    \u003c/serial\u003e"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"And when querying libvirt, it will get back this from ``dumpxml``::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_e9cd9231","line":85,"in_reply_to":"ba8a016a_131a8317","updated":"2015-11-19 14:41:05.000000000","message":"Yes, obviously this is just an example - the actual listening IP addr should be the same we use for VNC in general, since we have the same need with a serial console proxy offnode being able to access it.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e28932d1d5359390bbd08001be905e19810e5a27","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Nova would generate::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    \u003cserial type\u003d\"logd\"\u003e"},{"line_number":85,"context_line":"        \u003csource listen\u003d\"0.0.0.0\" autoport\u003d\"yes\"/\u003e"},{"line_number":86,"context_line":"    \u003c/serial\u003e"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"And when querying libvirt, it will get back this from ``dumpxml``::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_131a8317","line":85,"in_reply_to":"ba8a016a_52cf3e56","updated":"2015-11-19 14:20:06.000000000","message":"I guess it makes sense to use the IP address of the host to limit this. I\u0027ve used the example from danpb but I guess he wanted to just signalize that here is *any* IP address.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"34c1816081d358b0c65d74e697fcab264bb139f1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"For providing the console log data, nova would not need to read the console"},{"line_number":98,"context_line":"log file from disk directly. Instead libvirt would provide an API"},{"line_number":99,"context_line":"``virDomainGetConsoleLog(virDomainPtr, virStreamPtr)``. In Python we\u0027d call"},{"line_number":100,"context_line":"``dom.getConsoleLog(stream)``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"For the interactive serial console, the nova console proxy will connect"},{"line_number":103,"context_line":"directly to the TCP host/port provided by virtlogd."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_dfff79a8","line":100,"updated":"2015-11-18 03:14:04.000000000","message":"Our API is to return the last N bytes of the console log. Is that something which can be efficiently done with the libvirt API?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"555cb4cf199fa11ec562827d65dd7aab345f5dbd","unresolved":false,"context_lines":[{"line_number":97,"context_line":"For providing the console log data, nova would not need to read the console"},{"line_number":98,"context_line":"log file from disk directly. Instead libvirt would provide an API"},{"line_number":99,"context_line":"``virDomainGetConsoleLog(virDomainPtr, virStreamPtr)``. In Python we\u0027d call"},{"line_number":100,"context_line":"``dom.getConsoleLog(stream)``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"For the interactive serial console, the nova console proxy will connect"},{"line_number":103,"context_line":"directly to the TCP host/port provided by virtlogd."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_cf113d5f","line":100,"in_reply_to":"ba8a016a_49061e53","updated":"2015-12-10 12:04:15.000000000","message":"So I thought we agreed to not merging specs until the libvirt support has merged?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9fc0623769edebb766123fb0fbccfae27e6fc969","unresolved":false,"context_lines":[{"line_number":97,"context_line":"For providing the console log data, nova would not need to read the console"},{"line_number":98,"context_line":"log file from disk directly. Instead libvirt would provide an API"},{"line_number":99,"context_line":"``virDomainGetConsoleLog(virDomainPtr, virStreamPtr)``. In Python we\u0027d call"},{"line_number":100,"context_line":"``dom.getConsoleLog(stream)``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"For the interactive serial console, the nova console proxy will connect"},{"line_number":103,"context_line":"directly to the TCP host/port provided by virtlogd."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_49061e53","line":100,"in_reply_to":"ba8a016a_dfff79a8","updated":"2015-11-19 14:41:05.000000000","message":"Given that the libvirt API doesn\u0027t exist yet, we\u0027ll be able to make it do this efficiently.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e28932d1d5359390bbd08001be905e19810e5a27","unresolved":false,"context_lines":[{"line_number":97,"context_line":"For providing the console log data, nova would not need to read the console"},{"line_number":98,"context_line":"log file from disk directly. Instead libvirt would provide an API"},{"line_number":99,"context_line":"``virDomainGetConsoleLog(virDomainPtr, virStreamPtr)``. In Python we\u0027d call"},{"line_number":100,"context_line":"``dom.getConsoleLog(stream)``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"For the interactive serial console, the nova console proxy will connect"},{"line_number":103,"context_line":"directly to the TCP host/port provided by virtlogd."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_3529af9e","line":100,"in_reply_to":"ba8a016a_dfff79a8","updated":"2015-11-19 14:20:06.000000000","message":"It\u0027s the last N lines, isn\u0027t it? At least that\u0027s what [1] is telling me. Nevertheless, do you suggest to add some kind of performance test? IOW, who\u0027s saying it efficient (enough)?\n\n[1] http://developer.openstack.org/api-ref-compute-v2.1.html#getConsoleOutput","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"e43599ca810023ad65923e0257044689340805c0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":129,"context_line":"          node"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"          A: In the case of migration to an old host, we should copy the"},{"line_number":132,"context_line":"          existing log file across, and configure the guest with the"},{"line_number":133,"context_line":"          ``type\u003dtcp`` backend. This provides ongoing support for interactive"},{"line_number":134,"context_line":"          console. The log file will remain unchanged."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_ecf12796","line":131,"updated":"2015-11-27 15:39:48.000000000","message":"how do we want to copy the file ?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"dea4ce214ad81d34579c07281d487fd7d7ab9652","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":129,"context_line":"          node"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"          A: In the case of migration to an old host, we should copy the"},{"line_number":132,"context_line":"          existing log file across, and configure the guest with the"},{"line_number":133,"context_line":"          ``type\u003dtcp`` backend. This provides ongoing support for interactive"},{"line_number":134,"context_line":"          console. The log file will remain unchanged."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_6c72d24b","line":131,"in_reply_to":"9a8ffd7b_3401b106","updated":"2015-11-30 15:54:38.000000000","message":"@Andrea Rosa: Yes, a successful migration of the guest has priority over the log file copy operation. Given the near spec freeze, I\u0027d like to avoid pushing new patch sets which will remove the existing +2. I can add you to the upcoming code reviews to ensure I don\u0027t screw things up :)","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"29ffa0b9701ebb71694942081492069ed10ec1af","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":129,"context_line":"          node"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"          A: In the case of migration to an old host, we should copy the"},{"line_number":132,"context_line":"          existing log file across, and configure the guest with the"},{"line_number":133,"context_line":"          ``type\u003dtcp`` backend. This provides ongoing support for interactive"},{"line_number":134,"context_line":"          console. The log file will remain unchanged."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_3401b106","line":131,"in_reply_to":"9a8ffd7b_6301c537","updated":"2015-11-27 17:15:56.000000000","message":"ok so no magic.\nWhen some operators disable the SSH access we need to make the code robust to that and to not stop the migration, that means that when the instance is migrated we start with an empty log, which is not optimal but it is what we have at the moment.\nIf you agree with me it could be worth to specify that the file will be copied if possible.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"2f074e8a1e0c03d7c4637812ac5b8de2c3069f47","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":129,"context_line":"          node"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"          A: In the case of migration to an old host, we should copy the"},{"line_number":132,"context_line":"          existing log file across, and configure the guest with the"},{"line_number":133,"context_line":"          ``type\u003dtcp`` backend. This provides ongoing support for interactive"},{"line_number":134,"context_line":"          console. The log file will remain unchanged."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_e286cbda","line":131,"in_reply_to":"9a8ffd7b_6c72d24b","updated":"2015-11-30 16:25:19.000000000","message":"it makes sense to me, thanks","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"f8c625f1aba3668edd72d7e23114b5fc16bce876","unresolved":false,"context_lines":[{"line_number":128,"context_line":"          we throw away the log because we cannot update it on the target"},{"line_number":129,"context_line":"          node"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"          A: In the case of migration to an old host, we should copy the"},{"line_number":132,"context_line":"          existing log file across, and configure the guest with the"},{"line_number":133,"context_line":"          ``type\u003dtcp`` backend. This provides ongoing support for interactive"},{"line_number":134,"context_line":"          console. The log file will remain unchanged."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_6301c537","line":131,"in_reply_to":"9a8ffd7b_ecf12796","updated":"2015-11-27 16:08:59.000000000","message":"AFAIK we still have the prerequisite that the compute nodes are able to SSH to each other, so I would use SCP for the copy process, I guess.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"34c1816081d358b0c65d74e697fcab264bb139f1","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"   A: We could add a I/O rate limit to *virtlogd* so it refuses to read data"},{"line_number":150,"context_line":"   too quickly from a single guest. This prevents a single guest DOS\u0027ing"},{"line_number":151,"context_line":"   the host."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"#. Q: Are there architecture dependencies? Right now, a nova-compute node on a"},{"line_number":154,"context_line":"   s390 architecture depends on the *serial console* feature because it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_1fe4210b","line":151,"updated":"2015-11-18 03:14:04.000000000","message":"Could? Is this currently possible with virtlogd? If so I think we want this.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e28932d1d5359390bbd08001be905e19810e5a27","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"   A: We could add a I/O rate limit to *virtlogd* so it refuses to read data"},{"line_number":150,"context_line":"   too quickly from a single guest. This prevents a single guest DOS\u0027ing"},{"line_number":151,"context_line":"   the host."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"#. Q: Are there architecture dependencies? Right now, a nova-compute node on a"},{"line_number":154,"context_line":"   s390 architecture depends on the *serial console* feature because it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_6e4a0828","line":151,"in_reply_to":"ba8a016a_1fe4210b","updated":"2015-11-19 14:20:06.000000000","message":"If I understand [1] correctly, then the current implementation proposal doesn\u0027t have that yet. But I\u0027ll ask danpb to be sure.\n\n[1] https://www.redhat.com/archives/libvir-list/2015-November/msg00413.html","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9fc0623769edebb766123fb0fbccfae27e6fc969","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"   A: We could add a I/O rate limit to *virtlogd* so it refuses to read data"},{"line_number":150,"context_line":"   too quickly from a single guest. This prevents a single guest DOS\u0027ing"},{"line_number":151,"context_line":"   the host."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"#. Q: Are there architecture dependencies? Right now, a nova-compute node on a"},{"line_number":154,"context_line":"   s390 architecture depends on the *serial console* feature because it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_a946aa78","line":151,"in_reply_to":"ba8a016a_1fe4210b","updated":"2015-11-19 14:41:05.000000000","message":"Yes, that\u0027s in scope for virtlogd - not implemented yet, but clearly needed.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"34c1816081d358b0c65d74e697fcab264bb139f1","unresolved":false,"context_lines":[{"line_number":230,"context_line":"---------------------"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The *virtlogd* service has to run for this functionality and should be"},{"line_number":233,"context_line":"monitored."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_92b5a6ce","line":233,"updated":"2015-11-18 03:14:04.000000000","message":"I think you should include that this would resolve https://bugs.launchpad.net/nova/+bug/832507, which is by far one of our longest running (and most embarrassing) bugs. I\u0027m excited by that prospect.\n\nI think you also need to address the impact on live migration as well. Will the new log daemon on the destination host know about the console logs from before the migration? Or are those lost?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"e28932d1d5359390bbd08001be905e19810e5a27","unresolved":false,"context_lines":[{"line_number":230,"context_line":"---------------------"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The *virtlogd* service has to run for this functionality and should be"},{"line_number":233,"context_line":"monitored."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_35768f70","line":233,"in_reply_to":"ba8a016a_92b5a6ce","updated":"2015-11-19 14:20:06.000000000","message":"This bug is mentioned at the beginning (at line 80) but I\u0027ll include it in the next patch set.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"db0d27a30427ae2df9ec45c389fb00a617da5316","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* the TBD *libvirt virtlod logging deamon* as described in [1]."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_ba436341","line":265,"updated":"2015-11-11 17:10:42.000000000","message":"To make sure that this comment from patch set 2 doesn\u0027t go down:\n\n@John: As Daniel said, \"virtlogd\" is not released yet. It\u0027s a parallel development in libvirt and its utilization in Nova. I could create a patch series which starts with a patch which does the libvirt version/feature check. This patch will then be marked with W-1 to prevent a premature merge of the code which follows and utilizes the \"virtlogd\" functionality. When the version in libvirt is known I can remove the W-1 again. Is that a valid approach?\n\nI still have to figure out how a gate job is created and what the preconditions are. If you have a pointer for me, that would help me a lot.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"555cb4cf199fa11ec562827d65dd7aab345f5dbd","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* the TBD *libvirt virtlod logging deamon* as described in [1]."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_5a342ddd","line":265,"in_reply_to":"ba8a016a_b63ebeb6","updated":"2015-12-10 12:04:15.000000000","message":"I really think we need to wait until the libvirt feature is approved.\n\nGiven this is largely a bug fix, we could add that later.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"b71707a48a9f341e3c655b6d0f52666b423f5d84","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* the TBD *libvirt virtlod logging deamon* as described in [1]."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_b63ebeb6","line":265,"in_reply_to":"da85f559_aa34c849","updated":"2015-11-16 15:21:20.000000000","message":"I\u0027m not aware of another way to hold up the patches until they can be tested in the (TBD) bleeding edge libvirt gate. If I would use the \"depends-on\" and point to this spec, then I could miss the spec freeze date because the needed libvirt version could be available between Mitaka-1 (spec-freeze) and Mitaka-2 (code-freeze). The only last possibility that comes to my mind is a -2 on the first patch in the patch series. When the libvirt version is available, test it in the gate and lift the -2 if the tests pass.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e1a207217379584b18275c3c69958e6dec0741c7","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* the TBD *libvirt virtlod logging deamon* as described in [1]."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_aa34c849","line":265,"in_reply_to":"da85f559_ba436341","updated":"2015-11-16 03:36:32.000000000","message":"So I don\u0027t think the -W approach will work well.  Once the code lands in libvirt we\u0027ll know what version will be required and can have the appropriate version checks installed.\n\nI\u0027d be happy to use this spec as motivation to get me gate job to run with versions of qemu/libvirt closer to upstream.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e1a207217379584b18275c3c69958e6dec0741c7","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* has the dependency to the *virtlogd deamon* resolved."},{"line_number":276,"context_line":"* AND has the serial console feature enabled (AFAIK there is not job right"},{"line_number":277,"context_line":"  now which has this enabled)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_0a2e34fa","line":277,"updated":"2015-11-16 03:36:32.000000000","message":"Again I\u0027m happy to help you with some of this but we\u0027ll need some help from tempest folks as there this will change the way we get console output.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"555cb4cf199fa11ec562827d65dd7aab345f5dbd","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* has the dependency to the *virtlogd deamon* resolved."},{"line_number":276,"context_line":"* AND has the serial console feature enabled (AFAIK there is not job right"},{"line_number":277,"context_line":"  now which has this enabled)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_5a62edd9","line":277,"in_reply_to":"ba8a016a_4b048f14","updated":"2015-12-10 12:04:15.000000000","message":"OK, we totally need a way to test this, with bleeding edge libvirt, etc. I feel we should wait till we work out how to test this really.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"b71707a48a9f341e3c655b6d0f52666b423f5d84","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* has the dependency to the *virtlogd deamon* resolved."},{"line_number":276,"context_line":"* AND has the serial console feature enabled (AFAIK there is not job right"},{"line_number":277,"context_line":"  now which has this enabled)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_4b048f14","line":277,"in_reply_to":"da85f559_0a2e34fa","updated":"2015-11-16 15:21:20.000000000","message":"I\u0027m happy to take this offer :) \n\nThere shouldn\u0027t be a change from a REST API point of view. What makes you think that we need changes in tempest?","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e1a207217379584b18275c3c69958e6dec0741c7","unresolved":false,"context_lines":[{"line_number":297,"context_line":"[4] Launchpad; \"live block migration results in loss of console log\":"},{"line_number":298,"context_line":"    https://bugs.launchpad.net/nova/+bug/1203193"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"[5] A set of patches on the libvirt/qemu ML:"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"* [PATCH 0/5] Initial patches to introduce a virtlogd daemon"},{"line_number":303,"context_line":"* [PATCH 1/5] util: add API for writing to rotating files"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_2a20d8f6","line":300,"updated":"2015-11-16 03:36:32.000000000","message":"Probably worth linking to: https://www.redhat.com/archives/libvir-list/2015-November/msg00412.html","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"b71707a48a9f341e3c655b6d0f52666b423f5d84","unresolved":false,"context_lines":[{"line_number":297,"context_line":"[4] Launchpad; \"live block migration results in loss of console log\":"},{"line_number":298,"context_line":"    https://bugs.launchpad.net/nova/+bug/1203193"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"[5] A set of patches on the libvirt/qemu ML:"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"* [PATCH 0/5] Initial patches to introduce a virtlogd daemon"},{"line_number":303,"context_line":"* [PATCH 1/5] util: add API for writing to rotating files"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba8a016a_6b9f1360","line":300,"in_reply_to":"da85f559_2a20d8f6","updated":"2015-11-16 15:21:20.000000000","message":"Jepp, thanks, the next patch set will contain the link.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"faa4aaaa1c87b3f0e9980854146c0cadfe950a16","unresolved":false,"context_lines":[{"line_number":304,"context_line":"* [PATCH 2/5] Import stripped down virtlockd code as basis of virtlogd"},{"line_number":305,"context_line":"* [PATCH 3/5] logging: introduce log handling protocol"},{"line_number":306,"context_line":"* [PATCH 4/5] logging: add client for virtlogd daemon"},{"line_number":307,"context_line":"* [PATCH 5/5] qemu: add support for sending QEMU stdout/stderr to virtlogd"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"History"},{"line_number":310,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_202f3389","line":307,"updated":"2015-11-27 15:42:12.000000000","message":"FYI, these pahes are now all merged for libvirt 1.3.0.  This provides initial virtlogd functionality for QEMU stderr. The 1.3.1 release in January will have the remaining plumbing for serial console handling.","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"29ffa0b9701ebb71694942081492069ed10ec1af","unresolved":false,"context_lines":[{"line_number":304,"context_line":"* [PATCH 2/5] Import stripped down virtlockd code as basis of virtlogd"},{"line_number":305,"context_line":"* [PATCH 3/5] logging: introduce log handling protocol"},{"line_number":306,"context_line":"* [PATCH 4/5] logging: add client for virtlogd daemon"},{"line_number":307,"context_line":"* [PATCH 5/5] qemu: add support for sending QEMU stdout/stderr to virtlogd"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"History"},{"line_number":310,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_ef883473","line":307,"in_reply_to":"9a8ffd7b_202f3389","updated":"2015-11-27 17:15:56.000000000","message":"Good thanks for the info","commit_id":"b773a98100d54c77817b4e5eae412399044724c8"}],"specs/newton/approved/libvirt-virtlogd.rst":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"67e438f3d707f5a29b69e8e4549ae68d0bfdc2e6","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Proposed change"},{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"I\u0027d like to switch from the log file to the ``virtlogd`` deamon. This logging"},{"line_number":70,"context_line":"deamon was announced on the libvirt ML [1] and is available with libvirt"},{"line_number":71,"context_line":"version 1.3.0. This logging deamon handles the output from the guest\u0027s console"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa0719c6_12a6ce52","line":68,"updated":"2016-03-23 12:52:47.000000000","message":"The input from danpb [1] should be worked in here.\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-03-23.log.html#t2016-03-23T12:13:33","commit_id":"5f84877c2db88cd29fc5658a685a6f7d8f5dd8ab"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"66a61b18fde05fd3dda84de5e00272c52c61fc27","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    \u003cserial type\u003d\"logd\"\u003e"},{"line_number":79,"context_line":"        \u003csource listen\u003d\"0.0.0.0\" autoport\u003d\"yes\"/\u003e"},{"line_number":80,"context_line":"    \u003c/serial\u003e"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"And when querying libvirt, it will get back this from ``dumpxml``::"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_b5577625","line":80,"range":{"start_line":80,"start_character":12,"end_line":80,"end_character":13},"updated":"2016-06-02 13:37:58.000000000","message":"So things changed slightly during implementation since I outlined to you what i planned. We can still get the same end result, and in fact its probably a bit simpler overall.\n\nWe did *not* introduce any new type\u003d\"logd\" backend at all. Instead, we made it possible for all existing backends to have an associated log file. With this approach, nova would just always use \u003cserial type\u003d\"tcp\"\u003e and then simply ask for its output to be logged to a file. For example, overall\n\n    \u003cserial type\u003d\"tcp\"\u003e\n      \u003csource mode\u003d\"connect\" host\u003d\"0.0.0.0\" service\u003d\"2445\"/\u003e\n      \u003clog file\u003d\"/var/log/libvirt/qemu/guestname-serial0.log\" append\u003d\"on\"/\u003e\n      \u003cprotocol type\u003d\"raw\"/\u003e\n      \u003ctarget port\u003d\"1\"/\u003e\n    \u003c/serial\u003e\n\nThere is no need to explicitly ask for virtlogd to be used - libvirt will always use it if it is available.\n\nThis syntax descried here required QEMU 2.6 or newer and libvirt 1.3.3\n\nSo we\u0027d want todo something like\n\n            console \u003d vconfig.LibvirtConfigGuestSerial()\n            console.type \u003d \"tcp\"\n            console.logfile \u003d \"/the/file/path\"","commit_id":"5f84877c2db88cd29fc5658a685a6f7d8f5dd8ab"}]}
