)]}'
{"specs/approved/nova-compatible-serial-console-log.rst":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"837321e72e5d06755e854e99819b137b4be9d94f","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvert kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_83dc2019","line":22,"range":{"start_line":22,"start_character":40,"end_line":22,"end_character":47},"updated":"2017-04-05 13:25:58.000000000","message":"Typo: libvirt","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvert kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_303d912c","line":22,"range":{"start_line":22,"start_character":40,"end_line":22,"end_character":47},"in_reply_to":"bff0334d_83dc2019","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"edc4fae4ae766818594d5620d2a1a08fa6766303","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cUUID\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_310d8f3e","line":30,"range":{"start_line":30,"start_character":24,"end_line":30,"end_character":30},"updated":"2017-04-05 18:24:56.000000000","message":"node ident (uuid or name)","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cUUID\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_30d911f4","line":30,"range":{"start_line":30,"start_character":24,"end_line":30,"end_character":30},"in_reply_to":"bff0334d_310d8f3e","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"edc4fae4ae766818594d5620d2a1a08fa6766303","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"},{"line_number":34,"context_line":"    ``length``, as maximum size in bytes of the data to retrieve."},{"line_number":35,"context_line":"    The response is a dictionary with two fields, ``type`` is the content"},{"line_number":36,"context_line":"    type of the console log, and ``content`` is the console log data."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_cc46cc50","line":34,"range":{"start_line":34,"start_character":27,"end_line":34,"end_character":40},"updated":"2017-04-05 18:24:56.000000000","message":"For logs better to use number of lines.","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"},{"line_number":34,"context_line":"    ``length``, as maximum size in bytes of the data to retrieve."},{"line_number":35,"context_line":"    The response is a dictionary with two fields, ``type`` is the content"},{"line_number":36,"context_line":"    type of the console log, and ``content`` is the console log data."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_410cc13a","line":34,"range":{"start_line":34,"start_character":27,"end_line":34,"end_character":40},"in_reply_to":"bff0334d_cc46cc50","updated":"2017-07-20 12:33:08.000000000","message":"I think there are pros and cons of using \"number of lines\". That may require extra procedure to truncate the data by bytes if the whole size is too big. Currently, libvirt-kvm use the constant MAX_LOG_BYTES \u003d 100kb when read log from file.\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L2834\n\nSo I would want to see more discussion about this issue before making change.","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"edc4fae4ae766818594d5620d2a1a08fa6766303","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    To support console log, the above command will be changed to::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      socat TCP-LISTEN:\u003cHOST\u003e SYSTEM:\"ipmitool \u003cARGS\u003e sol activate | tee -a \u003cLOG_FILE_PATH\u003e\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_cc55ac1f","line":101,"range":{"start_line":101,"start_character":76,"end_line":101,"end_character":92},"updated":"2017-04-05 18:24:56.000000000","message":"How ironic understand that this file correspond to node with \u003cuuid\u003e?","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    To support console log, the above command will be changed to::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      socat TCP-LISTEN:\u003cHOST\u003e SYSTEM:\"ipmitool \u003cARGS\u003e sol activate | tee -a \u003cLOG_FILE_PATH\u003e\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_eb484c5d","line":101,"range":{"start_line":101,"start_character":76,"end_line":101,"end_character":92},"in_reply_to":"bff0334d_be3b9c9a","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    To support console log, the above command will be changed to::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      socat TCP-LISTEN:\u003cHOST\u003e SYSTEM:\"ipmitool \u003cARGS\u003e sol activate | tee -a \u003cLOG_FILE_PATH\u003e\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_2b3f64b6","line":101,"range":{"start_line":101,"start_character":76,"end_line":101,"end_character":92},"in_reply_to":"bff0334d_cc55ac1f","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"89543393c4d985a1aa29da7ef8f243b3bf335f32","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    To support console log, the above command will be changed to::"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"      socat TCP-LISTEN:\u003cHOST\u003e SYSTEM:\"ipmitool \u003cARGS\u003e sol activate | tee -a \u003cLOG_FILE_PATH\u003e\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_be3b9c9a","line":101,"range":{"start_line":101,"start_character":76,"end_line":101,"end_character":92},"in_reply_to":"bff0334d_cc55ac1f","updated":"2017-04-06 02:59:02.000000000","message":"This works only if a) console enabled b) there is incoming tcp connection (see man example). Otherwise log is not collected.","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"edc4fae4ae766818594d5620d2a1a08fa6766303","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  This could be a local file system path or a network storage path."},{"line_number":118,"context_line":"  Default to **None** to disable saving console log."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* ``max_log_filesize`` - the maximum size in bytes that a console log file"},{"line_number":121,"context_line":"  can reach. Default to **1 * units.Mi**."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_acbdc869","line":120,"updated":"2017-04-05 18:24:56.000000000","message":"What should happens if max size reached?","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  This could be a local file system path or a network storage path."},{"line_number":118,"context_line":"  Default to **None** to disable saving console log."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* ``max_log_filesize`` - the maximum size in bytes that a console log file"},{"line_number":121,"context_line":"  can reach. Default to **1 * units.Mi**."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_0bc70848","line":120,"in_reply_to":"bff0334d_acbdc869","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"89543393c4d985a1aa29da7ef8f243b3bf335f32","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  This could be a local file system path or a network storage path."},{"line_number":118,"context_line":"  Default to **None** to disable saving console log."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* ``max_log_filesize`` - the maximum size in bytes that a console log file"},{"line_number":121,"context_line":"  can reach. Default to **1 * units.Mi**."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_de75409a","line":120,"in_reply_to":"bff0334d_acbdc869","updated":"2017-04-06 02:59:02.000000000","message":"What is mechanism of measuring of file size on ironic side?","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  This could be a local file system path or a network storage path."},{"line_number":118,"context_line":"  Default to **None** to disable saving console log."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* ``max_log_filesize`` - the maximum size in bytes that a console log file"},{"line_number":121,"context_line":"  can reach. Default to **1 * units.Mi**."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_ebc3ac37","line":120,"in_reply_to":"bff0334d_de75409a","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"edc4fae4ae766818594d5620d2a1a08fa6766303","unresolved":false,"context_lines":[{"line_number":235,"context_line":"The console log data will be stored in plain text files. These data should"},{"line_number":236,"context_line":"be isolated from unauthorized accesses by the security model of the system"},{"line_number":237,"context_line":"Openstack running in."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Other end user impact"},{"line_number":240,"context_line":"---------------------"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bff0334d_f2fe06ad","line":238,"updated":"2017-04-05 18:24:56.000000000","message":"If we plan to use these logs in nova we should mandatory clear node logs in tear down procedure. Also security issue is possible if conductor dies before tear down (in ACTIVE node state for example), node moved to available and redeployed with new instance and died conductor started. Log can be accessible from other tenant via nova.","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"8bf82e1fb55d9bea46cb89828c98205ac6c45f16","unresolved":false,"context_lines":[{"line_number":235,"context_line":"The console log data will be stored in plain text files. These data should"},{"line_number":236,"context_line":"be isolated from unauthorized accesses by the security model of the system"},{"line_number":237,"context_line":"Openstack running in."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Other end user impact"},{"line_number":240,"context_line":"---------------------"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_4b3e20db","line":238,"in_reply_to":"bff0334d_f2fe06ad","updated":"2017-07-20 12:33:08.000000000","message":"Done","commit_id":"7e5e854146df8f14f8de7db0612ad93366acf21c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"dbe9a121871b11f4bbbf48209e40be084484c54d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_55f89747","line":20,"updated":"2017-09-14 20:19:21.000000000","message":"s/the //g\n\n Nova has a feature for providing users console log data to allow","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_cbb670da","line":20,"in_reply_to":"5f2577a7_55f89747","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c7089ee223f2308047884e2f5c93f5047329fbf2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_1a1e3f0c","line":21,"range":{"start_line":20,"start_character":69,"end_line":21,"end_character":5},"updated":"2017-09-22 08:49:28.000000000","message":"redundant.\n\ns/the users/them/","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_6bc53c3c","line":21,"range":{"start_line":20,"start_character":69,"end_line":21,"end_character":5},"in_reply_to":"7f515b1d_1a1e3f0c","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"21cd0a5543746908fbb9332e82cc4725cc54fbef","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_78f711d5","line":23,"updated":"2017-08-26 13:00:29.000000000","message":"It is worth noting, nova might not let us claim support for this if it is only available through the ipmi driven socat console. If we supported the same socat mechanisms with something like redfish, then we would likely be in really good shape for claiming support.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"dbe9a121871b11f4bbbf48209e40be084484c54d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_b5b33b98","line":23,"range":{"start_line":23,"start_character":59,"end_line":23,"end_character":63},"updated":"2017-09-14 20:19:21.000000000","message":"s/from Ironic/in Ironic/","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_cbeb10ae","line":23,"range":{"start_line":23,"start_character":59,"end_line":23,"end_character":63},"in_reply_to":"5f2577a7_b5b33b98","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":659,"name":"Akira Yoshiyama","email":"akirayoshiyama@gmail.com","username":"yosshy"},"change_message_id":"857e3e18f1676bdce37e681b29e47774bbed6455","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova has a feature for providing the users console log data to allow the"},{"line_number":21,"context_line":"users to review the serial console interaction history. Some Nova hypervisor"},{"line_number":22,"context_line":"drivers support this feature, such as ``libvirt kvm``, ``hyper-v``, and"},{"line_number":23,"context_line":"``xen``. However, there is missing support for the feature from Ironic."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_99d271d0","line":23,"in_reply_to":"7f287b81_78f711d5","updated":"2017-08-30 10:57:11.000000000","message":"Other Ironic drivers can support serial console if there are ways. IMO, this spec is not about IPMI driver but about Ironic itself.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c7089ee223f2308047884e2f5c93f5047329fbf2","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_dad667f2","line":27,"updated":"2017-09-22 08:49:28.000000000","message":"It\u0027s better to add a line about what is the proposed change here like \"Add a new API to get console log from ironic nodes\" or similar.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_55688485","line":27,"in_reply_to":"7f515b1d_dad667f2","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_162a2b8f","line":30,"updated":"2017-09-14 05:46:37.000000000","message":"if the console hasn\u0027t been enabled (no console log), what will this return?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c7089ee223f2308047884e2f5c93f5047329fbf2","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_7a83f305","line":30,"in_reply_to":"5f2577a7_162a2b8f","updated":"2017-09-22 08:49:28.000000000","message":"I guess a 400 or 403 status stating that the console is not enabled.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_287715a3","line":30,"in_reply_to":"5f2577a7_162a2b8f","updated":"2017-10-24 11:52:43.000000000","message":"I use code 403.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Change REST API for the console log:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id, length)`` to get and"},{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_883cc9bf","line":30,"in_reply_to":"7f515b1d_7a83f305","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c7089ee223f2308047884e2f5c93f5047329fbf2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    return the console log for a node. It takes an optional argument,"},{"line_number":34,"context_line":"    ``length``, as maximum size in bytes of the data to retrieve."},{"line_number":35,"context_line":"    The response is a dictionary with two fields, ``type`` is the content"},{"line_number":36,"context_line":"    type of the console log, and ``content`` is the console log data."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    An example of the response body::"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_fae363a3","line":36,"updated":"2017-09-22 08:49:28.000000000","message":"Could you add a request example also?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    ``length``, as maximum size in bytes of the data to retrieve."},{"line_number":35,"context_line":"    The response is a dictionary with two fields, ``type`` is the content"},{"line_number":36,"context_line":"    type of the console log, and ``content`` is the console log data."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    An example of the response body::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_f61aff7a","line":37,"updated":"2017-09-14 05:46:37.000000000","message":"HTTP status?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    ``length``, as maximum size in bytes of the data to retrieve."},{"line_number":35,"context_line":"    The response is a dictionary with two fields, ``type`` is the content"},{"line_number":36,"context_line":"    type of the console log, and ``content`` is the console log data."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    An example of the response body::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_089fb9b4","line":37,"in_reply_to":"5f2577a7_f61aff7a","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"929ac37ac17169a3cf69b220afccf0cf085738f9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    An example of the response body::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_2c5f52e6","line":41,"updated":"2017-09-04 12:22:59.000000000","message":"Typical way is using \"Content-Type\" response header.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    An example of the response body::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_e8f33d09","line":41,"in_reply_to":"7f287b81_2c5f52e6","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"21cd0a5543746908fbb9332e82cc4725cc54fbef","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b82a1929","line":43,"updated":"2017-08-26 13:00:29.000000000","message":"Out of curiosity, why return the data in a json structure, when we could just return the raw content?  Is the intention to possibly support additional fields later on?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c7089ee223f2308047884e2f5c93f5047329fbf2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f515b1d_5ad5d7b8","line":43,"in_reply_to":"5f2577a7_79416039","updated":"2017-09-22 08:49:28.000000000","message":"+1 to be consistent with Nova as this API will be consumed by Nova.\nNova returns only the content [1]\n[1] https://developer.openstack.org/api-ref/compute/#show-console-output-os-getconsoleoutput-action","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":659,"name":"Akira Yoshiyama","email":"akirayoshiyama@gmail.com","username":"yosshy"},"change_message_id":"857e3e18f1676bdce37e681b29e47774bbed6455","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_d9d7d94a","line":43,"in_reply_to":"7f287b81_b82a1929","updated":"2017-08-30 10:57:11.000000000","message":"For example, gziped text is good for console-log. Of course, other compressions are good too. So, the response body should contains its content type information.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_79416039","line":43,"in_reply_to":"7f287b81_d9d7d94a","updated":"2017-09-14 05:46:37.000000000","message":"what does nova return in its response for console log data? we might as well try to be consistent with that if it makes sense.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      {"},{"line_number":41,"context_line":"        \"type\": \"text/plain\","},{"line_number":42,"context_line":"        \"content\": \"Here is console log data in plain text\""},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_68c06d7c","line":43,"in_reply_to":"7f515b1d_5ad5d7b8","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    Call the RPC method ``clear_console_log(ctx, node_id)`` to clear the"},{"line_number":48,"context_line":"    console log for a node. The response has no body."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Change Conductor manager class:"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_b614774f","line":48,"updated":"2017-09-14 05:46:37.000000000","message":"HTTP status?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    Call the RPC method ``clear_console_log(ctx, node_id)`` to clear the"},{"line_number":48,"context_line":"    console log for a node. The response has no body."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Change Conductor manager class:"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_e841fd0c","line":48,"in_reply_to":"5f2577a7_b614774f","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"929ac37ac17169a3cf69b220afccf0cf085738f9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    A console driver can implement this method to clear the console log of"},{"line_number":72,"context_line":"    a node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  These two methods will be non-abstract, so the existing console classes"},{"line_number":75,"context_line":"  won\u0027t need to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Change Socat console class. This spec only proposes supporting console log"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_acc46293","line":74,"updated":"2017-09-04 12:22:59.000000000","message":"This is breaking change. It\u0027s require that console should be permanently started (at least in some states), and start/stop operation via API will be blocked.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    A console driver can implement this method to clear the console log of"},{"line_number":72,"context_line":"    a node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  These two methods will be non-abstract, so the existing console classes"},{"line_number":75,"context_line":"  won\u0027t need to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Change Socat console class. This spec only proposes supporting console log"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_3964f8e3","line":74,"in_reply_to":"7f287b81_acc46293","updated":"2017-09-14 05:46:37.000000000","message":"@Yuriy; I\u0027m not sure what you mean (but then, I\u0027m also very tired.)","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    a node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  These two methods will be non-abstract, so the existing console classes"},{"line_number":75,"context_line":"  won\u0027t need to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Change Socat console class. This spec only proposes supporting console log"},{"line_number":78,"context_line":"  for the Socat console."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_596584e0","line":75,"updated":"2017-09-14 05:46:37.000000000","message":"If they are non-abstract, what will they actually do/return?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    a node."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  These two methods will be non-abstract, so the existing console classes"},{"line_number":75,"context_line":"  won\u0027t need to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Change Socat console class. This spec only proposes supporting console log"},{"line_number":78,"context_line":"  for the Socat console."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_2cb2bb95","line":75,"in_reply_to":"5f2577a7_596584e0","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    connection to the node. Otherwise log is not collected. Node uuid"},{"line_number":106,"context_line":"    is used for naming the log file."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  * Implement ``get_console_output(ctx, instance)``."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_56ad532f","line":108,"updated":"2017-09-14 05:46:37.000000000","message":"this would need a nova blueprint?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    connection to the node. Otherwise log is not collected. Node uuid"},{"line_number":106,"context_line":"    is used for naming the log file."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  * Implement ``get_console_output(ctx, instance)``."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_6c46737f","line":108,"in_reply_to":"5f2577a7_56ad532f","updated":"2017-10-24 11:52:43.000000000","message":"Yes. Please see https://blueprints.launchpad.net/nova/+spec/console-log-for-ironic.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  * Implement ``get_console_output(ctx, instance)``."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    Call the relevant Ironic REST API to retrieve the console log for an"},{"line_number":113,"context_line":"    instance and return to the caller."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_b66d9705","line":110,"updated":"2017-09-14 05:46:37.000000000","message":"just curious; there isn\u0027t any \u0027length\u0027 here, but the ironic methods have \u0027length\u0027. How big is the console log?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  * Implement ``get_console_output(ctx, instance)``."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    Call the relevant Ironic REST API to retrieve the console log for an"},{"line_number":113,"context_line":"    instance and return to the caller."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_48a81176","line":110,"in_reply_to":"5f2577a7_457b3cf4","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"b3c2d41d3edb2a69671b1a15b542b7b4767de158","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Change Ironic Nova virt driver:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  * Implement ``get_console_output(ctx, instance)``."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    Call the relevant Ironic REST API to retrieve the console log for an"},{"line_number":113,"context_line":"    instance and return to the caller."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_457b3cf4","line":110,"in_reply_to":"5f2577a7_b66d9705","updated":"2017-09-15 02:20:52.000000000","message":"quickly peek at nova driver, nova does not define the length, the content size is up to driver implementation. libvirt driver only reads latest 100K log (for each file), while xenapi and hyperv just read them all.\nso i suggest the log size will be returned is configurable from ironic side.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  URL parameters:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  * ``length`` (integer, optional) - if provided, only return the console"},{"line_number":170,"context_line":"    log data with size up to the value. Default to 100 * units.Ki."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  Response fields:"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_f631df0c","line":170,"updated":"2017-09-14 05:46:37.000000000","message":"If there is 100 bytes of console log data, and this value is 10 -- do you return the last 10 bytes or the first 10 bytes?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  URL parameters:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  * ``length`` (integer, optional) - if provided, only return the console"},{"line_number":170,"context_line":"    log data with size up to the value. Default to 100 * units.Ki."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  Response fields:"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_8bd758c0","line":170,"in_reply_to":"5f2577a7_f631df0c","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"eaf483fcba703c05c39d7b2ad946e765dc386ffe","unresolved":false,"context_lines":[{"line_number":189,"context_line":"\"ironic\" CLI"},{"line_number":190,"context_line":"~~~~~~~~~~~~"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Add the following commands:"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* ``ironic node-get-console-log [--length numbytes] \u003cnode_ident\u003e``"},{"line_number":195,"context_line":"* ``ironic node-clear-console-log \u003cnode_ident\u003e``"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"\"openstack baremetal\" CLI"},{"line_number":198,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_400a708a","line":195,"range":{"start_line":192,"start_character":0,"end_line":195,"end_character":47},"updated":"2017-09-03 13:31:46.000000000","message":"Ironic CLI would be obsoleted shortly, we need not enhance this CLI. OSC would be only supported CLI.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":189,"context_line":"\"ironic\" CLI"},{"line_number":190,"context_line":"~~~~~~~~~~~~"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Add the following commands:"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* ``ironic node-get-console-log [--length numbytes] \u003cnode_ident\u003e``"},{"line_number":195,"context_line":"* ``ironic node-clear-console-log \u003cnode_ident\u003e``"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"\"openstack baremetal\" CLI"},{"line_number":198,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_0b1928d6","line":195,"range":{"start_line":192,"start_character":0,"end_line":195,"end_character":47},"in_reply_to":"7f287b81_400a708a","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"21cd0a5543746908fbb9332e82cc4725cc54fbef","unresolved":false,"context_lines":[{"line_number":223,"context_line":"* Update the Socat console class:"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"  * Add implementation for the two above methods."},{"line_number":226,"context_line":"  * Update method ``start_console()`` to enable saving the console log."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Nova driver impact"},{"line_number":229,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_98e87de2","line":226,"updated":"2017-08-26 13:00:29.000000000","message":"It might be worth detailing, although semi-redundant after reading below, that it is to begin when the user calls for console access.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":659,"name":"Akira Yoshiyama","email":"akirayoshiyama@gmail.com","username":"yosshy"},"change_message_id":"857e3e18f1676bdce37e681b29e47774bbed6455","unresolved":false,"context_lines":[{"line_number":223,"context_line":"* Update the Socat console class:"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"  * Add implementation for the two above methods."},{"line_number":226,"context_line":"  * Update method ``start_console()`` to enable saving the console log."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Nova driver impact"},{"line_number":229,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b9588df9","line":226,"in_reply_to":"7f287b81_98e87de2","updated":"2017-08-30 10:57:11.000000000","message":"Hmm... IMO, console logging should start when node state becomes active or deploying and stop on deleting. See https://review.openstack.org/#/c/306754/ for details.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"21cd0a5543746908fbb9332e82cc4725cc54fbef","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"The console log data will be stored in plain text files. These data should"},{"line_number":243,"context_line":"be isolated from unauthorized accesses by the security model of the system"},{"line_number":244,"context_line":"Openstack running in."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Node console log will be cleared before both the deployment and tear down"},{"line_number":247,"context_line":"procedure by the conductor. Clear node console log before the deployment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_f8d9c156","line":244,"range":{"start_line":244,"start_character":4,"end_line":244,"end_character":5},"updated":"2017-08-26 13:00:29.000000000","message":"s/s/S/ :)","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"The console log data will be stored in plain text files. These data should"},{"line_number":243,"context_line":"be isolated from unauthorized accesses by the security model of the system"},{"line_number":244,"context_line":"Openstack running in."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Node console log will be cleared before both the deployment and tear down"},{"line_number":247,"context_line":"procedure by the conductor. Clear node console log before the deployment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_cbee7087","line":244,"range":{"start_line":244,"start_character":4,"end_line":244,"end_character":5},"in_reply_to":"7f287b81_f8d9c156","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5847008a9dc16e8ca1799cbf2b15d98a4cda962","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Node console log will be cleared before both the deployment and tear down"},{"line_number":247,"context_line":"procedure by the conductor. Clear node console log before the deployment"},{"line_number":248,"context_line":"is necessary to cover the case it is not cleared properly on tear down."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Other end user impact"},{"line_number":251,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f2577a7_590ea432","line":248,"updated":"2017-09-14 05:46:37.000000000","message":"can you provide an example of how it is possible that it isn\u0027t cleared properly on tear down, yet will be cleared properly before deployment?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Node console log will be cleared before both the deployment and tear down"},{"line_number":247,"context_line":"procedure by the conductor. Clear node console log before the deployment"},{"line_number":248,"context_line":"is necessary to cover the case it is not cleared properly on tear down."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Other end user impact"},{"line_number":251,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_3530689f","line":248,"in_reply_to":"5f2577a7_590ea432","updated":"2017-10-24 11:52:43.000000000","message":"There is a case from Yuriy in PS2:\n\n\"If we plan to use these logs in nova we should mandatory clear node logs in tear down procedure. Also security issue is possible if conductor dies before tear down (in ACTIVE node state for example), node moved to available and redeployed with new instance and died conductor started. Log can be accessible from other tenant via nova.\"","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"21cd0a5543746908fbb9332e82cc4725cc54fbef","unresolved":false,"context_lines":[{"line_number":258,"context_line":"Scalability impact"},{"line_number":259,"context_line":"------------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For multiple Ironic conductors model, the console log data should be stored"},{"line_number":262,"context_line":"in a network storage directory, such as a CIFS or NFS mounted one."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Performance Impact"},{"line_number":265,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b8b8d9e4","line":262,"range":{"start_line":261,"start_character":0,"end_line":262,"end_character":66},"updated":"2017-08-26 13:00:29.000000000","message":"This might be a bad idea and I\u0027d prefer not to suggest it in a specification.\n\nIn the event the VFS layer looses access, unexpected behavior can occur include basically operations being blocked. It may be worth noting that this is only to preserve console log access across conductor failover, which should, ideally, stop logging.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":258,"context_line":"Scalability impact"},{"line_number":259,"context_line":"------------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For multiple Ironic conductors model, the console log data should be stored"},{"line_number":262,"context_line":"in a network storage directory, such as a CIFS or NFS mounted one."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Performance Impact"},{"line_number":265,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_ab7694d7","line":262,"range":{"start_line":261,"start_character":0,"end_line":262,"end_character":66},"in_reply_to":"7f287b81_59a08990","updated":"2017-10-24 11:52:43.000000000","message":"Yes","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":659,"name":"Akira Yoshiyama","email":"akirayoshiyama@gmail.com","username":"yosshy"},"change_message_id":"857e3e18f1676bdce37e681b29e47774bbed6455","unresolved":false,"context_lines":[{"line_number":258,"context_line":"Scalability impact"},{"line_number":259,"context_line":"------------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For multiple Ironic conductors model, the console log data should be stored"},{"line_number":262,"context_line":"in a network storage directory, such as a CIFS or NFS mounted one."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Performance Impact"},{"line_number":265,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_59a08990","line":262,"range":{"start_line":261,"start_character":0,"end_line":262,"end_character":66},"in_reply_to":"7f287b81_b8b8d9e4","updated":"2017-08-30 10:57:11.000000000","message":"As a solution, we can use redis for shared console log storage.\n\nJust one question: can we have an option non-shared storage like local storage of the ironic-conductor node?","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":258,"context_line":"Scalability impact"},{"line_number":259,"context_line":"------------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For multiple Ironic conductors model, the console log data should be stored"},{"line_number":262,"context_line":"in a network storage directory, such as a CIFS or NFS mounted one."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Performance Impact"},{"line_number":265,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_cb4af07e","line":262,"range":{"start_line":261,"start_character":0,"end_line":262,"end_character":66},"in_reply_to":"7f287b81_b8b8d9e4","updated":"2017-10-24 11:52:43.000000000","message":"Done","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"eaf483fcba703c05c39d7b2ad946e765dc386ffe","unresolved":false,"context_lines":[{"line_number":307,"context_line":"Testing"},{"line_number":308,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Unit testing needs to add."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":313,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_00390840","line":310,"range":{"start_line":310,"start_character":0,"end_line":310,"end_character":26},"updated":"2017-09-03 13:31:46.000000000","message":"Also need to add CI support for the same.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"28c5c308394f97aa2e676177e9ec4793d4f2279f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"Testing"},{"line_number":308,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Unit testing needs to add."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":313,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_6b2e5ca6","line":310,"range":{"start_line":310,"start_character":0,"end_line":310,"end_character":26},"in_reply_to":"7f287b81_00390840","updated":"2017-10-24 11:52:43.000000000","message":"As I know, the vbmc does not support console currently. So it\u0027s unable to test this feature via CI.","commit_id":"a2b71ae2ea0a7e20f134817f7f2a8554b7062691"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Change REST API for the console log:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  * Add ``GET /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    Call the RPC method ``get_console_log(ctx, node_id)`` to get"},{"line_number":36,"context_line":"    and return the console log for a node."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_232a8f8f","line":33,"updated":"2017-11-15 09:43:50.000000000","message":"I\u0027d prefer /v1/nodes/\u003c\u003e/states/console/log","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"      and the response status code will be 200 (OK)."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    * If the console is not enabled or console log is not supported by the"},{"line_number":44,"context_line":"      referenced console driver, the response status code will be 403"},{"line_number":45,"context_line":"      (FORBIDDEN)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_031b1381","line":44,"updated":"2017-11-15 09:43:50.000000000","message":"it should be 400, 403 is for access failures","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      referenced console driver, the response status code will be 403"},{"line_number":45,"context_line":"      (FORBIDDEN)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  * Add ``DELETE /v1/nodes/\u003cnode_ident\u003e/states/console_log``."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    Call the RPC method ``clear_console_log(ctx, node_id)`` to clear the"},{"line_number":50,"context_line":"    console log for a node."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_e31d9773","line":47,"updated":"2017-11-15 09:43:50.000000000","message":"ditto","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"      The response has no body."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    * If console log is not supported by the referenced console driver,"},{"line_number":58,"context_line":"      the response status code will be 403 (FORBIDDEN)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Change Conductor manager class:"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_c314db50","line":58,"updated":"2017-11-15 09:43:50.000000000","message":"ditto","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    * If console log is not supported by the referenced console driver,"},{"line_number":58,"context_line":"      the response status code will be 403 (FORBIDDEN)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Change Conductor manager class:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  * Add method ``get_console_log(ctx, node_id)``."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_a3179f51","line":60,"updated":"2017-11-15 09:43:50.000000000","message":"nit: this is too detailed, can be removed","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ee6455f03dea2baaeba437c6ff4b9186d63350d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  * Update ``start_console(task)``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Here is the technical method used to get the feature supported within"},{"line_number":101,"context_line":"    the Socat console:"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    Currently Socat console uses **socat** command in combination with"},{"line_number":104,"context_line":"    **ipmitool** command like below::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_830ee338","line":101,"updated":"2017-11-15 09:43:50.000000000","message":"I think what we agreed on at the PTG is to start the console log at the instance start up. With your suggested approach the console log will only be available after a console is enabled, which may not be desired. I suspect, if socat console is used, we\u0027ll have to somehow start it on instance start-up","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":659,"name":"Akira Yoshiyama","email":"akirayoshiyama@gmail.com","username":"yosshy"},"change_message_id":"1e8ff8c2e270e1bf4965f841657aaa2da0a22c6b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  * Update ``start_console(task)``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Here is the technical method used to get the feature supported within"},{"line_number":101,"context_line":"    the Socat console:"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    Currently Socat console uses **socat** command in combination with"},{"line_number":104,"context_line":"    **ipmitool** command like below::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f485f77_7baa2719","line":101,"in_reply_to":"1f485f77_830ee338","updated":"2017-11-17 08:40:10.000000000","message":"+1","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"419afc75c9fd229bcf9591de07e91e290a928ddd","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* ``terminal_log_dir`` - the directory for holding the console log data."},{"line_number":131,"context_line":"  This could be a local file system path or a network storage path."},{"line_number":132,"context_line":"  Default to **None** to disable saving console log."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* ``max_log_filesize`` - the maximum size in bytes that a console log file"},{"line_number":135,"context_line":"  can reach. Default to **1 * units.Mi**. The log file size will be checked"},{"line_number":136,"context_line":"  each time the console is started and an amount of 25% of the file content"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_d750bed7","line":133,"updated":"2017-11-20 09:27:01.000000000","message":"I don\u0027t know how others think, but I feel using a dir path option to control the behavior of enabled/disabled is not so common. I would use something boolean option like enable_console_log, and a terminal_log_dir with default path to /var/log/ironic/ (optionally with a subdirectory).","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"419afc75c9fd229bcf9591de07e91e290a928ddd","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* ``max_log_retrieval_size`` - the maximum size in bytes of console log"},{"line_number":140,"context_line":"  data returned to client when requested. Default to **100 * units.Ki**."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Alternatives"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_97c0f652","line":141,"updated":"2017-11-20 09:27:01.000000000","message":"How the log will be retrieved, is it segmented from head to tail or tailed every time? I think we need to make it clear in the context.","commit_id":"bb773f80c8037ee21534172258a24cee9b84806e"}]}
