)]}'
{"ironic_python_agent/burnin.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b929ed9b573dfd0b1361b0a8668e0a9fdc4c62ce","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    all CPUs and stress them for 24 hours."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    :param node: Ironic node object"},{"line_number":29,"context_line":"    :param ports: list of Ironic port objects"},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":32,"context_line":"    cpu \u003d info.get(\u0027agent_burnin_cpu_cpu\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9cdc141e_8ab1b76b","line":29,"updated":"2021-04-30 13:03:13.000000000","message":"nit: no ports here :)\nalso missing raises for completeness","commit_id":"f5fbc7a33599830aea2c609a8642ca1bb444e9d1"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    all CPUs and stress them for 24 hours."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    :param node: Ironic node object"},{"line_number":29,"context_line":"    :param ports: list of Ironic port objects"},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":32,"context_line":"    cpu \u003d info.get(\u0027agent_burnin_cpu_cpu\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"f02b50c1_966c3bdc","line":29,"in_reply_to":"9cdc141e_8ab1b76b","updated":"2021-05-01 08:48:16.000000000","message":"Thanks, fixed!","commit_id":"f5fbc7a33599830aea2c609a8642ca1bb444e9d1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_concurrency import processutils"},{"line_number":14,"context_line":"from oslo_log import log"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from ironic_python_agent import utils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7010caea_90f7497e","line":16,"updated":"2021-04-30 12:55:03.000000000","message":"nit:\n\n from ironic_lib import utils\n\n(I\u0027d like to eventually get rid of the copy in ironic_python_agent.utils)","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_concurrency import processutils"},{"line_number":14,"context_line":"from oslo_log import log"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from ironic_python_agent import utils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"2fda57c4_2752c0fa","line":16,"in_reply_to":"7010caea_90f7497e","updated":"2021-05-01 08:48:16.000000000","message":"Done.","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    :param ports: list of Ironic port objects"},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":32,"context_line":"    cpu \u003d info.get(\u0027agent_burnin_cpu_cpu\u0027, 0)"},{"line_number":33,"context_line":"    timeout \u003d info.get(\u0027agent_burnin_cpu_timeout\u0027, 86400)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    args \u003d (\u0027stress-ng\u0027, \u0027--cpu\u0027, cpu, \u0027--timeout\u0027, timeout,"}],"source_content_type":"text/x-python","patch_set":7,"id":"85969c73_df2f1f32","line":32,"updated":"2021-04-30 12:55:03.000000000","message":"maybe replace the last \"cpu\" with something? like \"number\"? \"cpu_cpu\" looks awkward :)","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    :param ports: list of Ironic port objects"},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":32,"context_line":"    cpu \u003d info.get(\u0027agent_burnin_cpu_cpu\u0027, 0)"},{"line_number":33,"context_line":"    timeout \u003d info.get(\u0027agent_burnin_cpu_timeout\u0027, 86400)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    args \u003d (\u0027stress-ng\u0027, \u0027--cpu\u0027, cpu, \u0027--timeout\u0027, timeout,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5cf8f517_735e2dd6","line":32,"in_reply_to":"85969c73_df2f1f32","updated":"2021-05-01 08:48:16.000000000","message":"I\u0027d like to keep the parameter names consistent/the same between stress-ng and the burnin step and not introduce a mapping. I know it looks odd for this specific case, but should become clear when users look at the other options like \u0027timeout\u0027 (and more so in case we add more options).","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    try:"},{"line_number":40,"context_line":"        _, err \u003d utils.execute(*args)"},{"line_number":41,"context_line":"        # stress-ng reports on stderr only"},{"line_number":42,"context_line":"        LOG.info(err)"},{"line_number":43,"context_line":"    except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":44,"context_line":"        LOG.error(\"stress-ng (cpu) failed with error %(err)s\","},{"line_number":45,"context_line":"                  {\u0027err\u0027: e})"}],"source_content_type":"text/x-python","patch_set":7,"id":"83539af0_c12d7b85","line":42,"updated":"2021-04-30 12:55:03.000000000","message":"utils.execute already logs stdout and stderr, no need for this","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":true,"context_lines":[{"line_number":39,"context_line":"    try:"},{"line_number":40,"context_line":"        _, err \u003d utils.execute(*args)"},{"line_number":41,"context_line":"        # stress-ng reports on stderr only"},{"line_number":42,"context_line":"        LOG.info(err)"},{"line_number":43,"context_line":"    except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":44,"context_line":"        LOG.error(\"stress-ng (cpu) failed with error %(err)s\","},{"line_number":45,"context_line":"                  {\u0027err\u0027: e})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a391f56_befe2b68","line":42,"in_reply_to":"83539af0_c12d7b85","updated":"2021-05-01 08:48:16.000000000","message":"True, utils.execute logs stdout/stderr by default, but from what I see only in debug level (so this is not visible by default). This is ok in the general case, but I think for a burn-in step, which does only one thing, it\u0027d be good to have the output by default, persisted in the logs, without switching everything to debug mode.","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"}],"ironic_python_agent/tests/unit/test_burnin.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class TestBurnin(base.IronicAgentTest):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":25,"context_line":"    def test_stress_ng_cpu_default(self, mock_execute):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        node \u003d {\u0027driver_info\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":7,"id":"46cd73ea_6931716f","line":24,"updated":"2021-04-30 12:55:03.000000000","message":"nit: move to the class level","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"}],"releasenotes/notes/add_burnin_cpu-9acbb36048246a6b.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a burn-in cleaning step to stress test CPUs for a"},{"line_number":5,"context_line":"    configurable amount of time with stress-ng."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5d3774ec_64aafeaf","line":4,"updated":"2021-04-30 12:55:03.000000000","message":"nit: let\u0027s add the step name","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a burn-in cleaning step to stress test CPUs for a"},{"line_number":5,"context_line":"    configurable amount of time with stress-ng."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"001b518e_dfc5893e","line":4,"in_reply_to":"5d3774ec_64aafeaf","updated":"2021-05-01 08:48:16.000000000","message":"Done.","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2a7ec0ee6deb0688664cb3c8f40cf18d31d6231a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a burn-in cleaning step to stress test CPUs for a"},{"line_number":5,"context_line":"    configurable amount of time with stress-ng."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"e40eafce_286ffaa0","line":5,"updated":"2021-04-30 12:55:03.000000000","message":"nit: maybe mention that stress-ng has to be installed on the ramdisk?","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"16b1dbb0aaf7b89b255dd97aba0e0c8dd3c27c20","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a burn-in cleaning step to stress test CPUs for a"},{"line_number":5,"context_line":"    configurable amount of time with stress-ng."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"8a8cde93_71e27750","line":5,"in_reply_to":"e40eafce_286ffaa0","updated":"2021-05-01 08:48:16.000000000","message":"Good point, added!","commit_id":"b38049fa928456b515fdefb794d26055b120aa14"}]}
