)]}'
{"bifrost-cli":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b670a1dccabb6d3b3d55954e03d02aafe074836e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/sh"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"if ! python3 --version \u003e /dev/null; then"},{"line_number":4,"context_line":"    echo \"Python 3 not found, version 3.6 or newer is required for Bifrost\""},{"line_number":5,"context_line":"    exit 1"},{"line_number":6,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":23,"id":"bf51134e_b57190e1","line":3,"updated":"2020-06-18 10:44:49.000000000","message":"nit: maybe we can compress the tests to just one?\nusing the second one should be enough","commit_id":"12c6f7120faa14a70c089f01c904a1e731c77c66"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fa966c08e3bae7843631d98d765c56705ba2e61","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/sh"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"if ! python3 --version \u003e /dev/null; then"},{"line_number":4,"context_line":"    echo \"Python 3 not found, version 3.6 or newer is required for Bifrost\""},{"line_number":5,"context_line":"    exit 1"},{"line_number":6,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":23,"id":"bf51134e_c6557c52","line":3,"in_reply_to":"bf51134e_b57190e1","updated":"2020-06-18 11:31:07.000000000","message":"I\u0027ll try it in a follow-up","commit_id":"12c6f7120faa14a70c089f01c904a1e731c77c66"}],"bifrost/cli.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"881e448acc35b2114bdc20a6a9c2e543a07ea09f","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    enroll \u003d subparsers.add_parser(\u0027enroll\u0027, help\u003d\u0027Enroll nodes in ironic\u0027)"},{"line_number":122,"context_line":"    enroll.set_defaults(func\u003dcmd_enroll)"},{"line_number":123,"context_line":"    enroll.add_argument(\u0027inventory\u0027, required\u003dTrue,"},{"line_number":124,"context_line":"                        help\u003d\u0027Inventory in the Bifrost format\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    deploy \u003d subparsers.add_parser(\u0027deploy\u0027, help\u003d\u0027Deploy nodes in ironic\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_55dd10db","line":123,"updated":"2020-06-04 11:52:49.000000000","message":"TypeError: \u0027required\u0027 is an invalid argument for positionals","commit_id":"60400112a0cd5ffc10143913d7cad2d185da40ea"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2e9ae8f9b1bf42af80b085545646c344222baa4f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"VENV \u003d \"/opt/stack/bifrost\""},{"line_number":22,"context_line":"ANSIBLE \u003d os.path.join(VENV, \u0027bin\u0027, \u0027ansible-playbook\u0027)"},{"line_number":23,"context_line":"COMMON_ENV \u003d {"},{"line_number":24,"context_line":"    \u0027VENV\u0027: VENV,"},{"line_number":25,"context_line":"    \u0027USE_VENV\u0027: \u0027true\u0027,"},{"line_number":26,"context_line":"    \u0027ENABLE_VENV\u0027: \u0027true\u0027,"},{"line_number":27,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff570b3c_c77a1386","line":24,"updated":"2020-06-04 12:28:56.000000000","message":"need to add USER here as well to prevent unbound variable error in install-deps.sh\nos.environ will do the trick","commit_id":"c9ab71e4f780976ffe2330a4b5b6ea7aa9abec99"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2e9ae8f9b1bf42af80b085545646c344222baa4f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        print(*message, file\u003dsys.stderr)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def ansible(playbook, verbose\u003dFalse, inventory\u003d\u0027inventory/localhost\u0027,"},{"line_number":41,"context_line":"            env\u003dNone, **params):"},{"line_number":42,"context_line":"    extra \u003d COMMON_PARAMS + list(itertools.chain.from_iterable("},{"line_number":43,"context_line":"        (\u0027-e\u0027, \u0027%s\u003d%s\u0027 % pair) for pair in params.items()))"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff570b3c_07b36bea","line":40,"range":{"start_line":40,"start_character":37,"end_line":40,"end_character":68},"updated":"2020-06-04 12:28:56.000000000","message":"the inventory for an independent installation not in CI is inventory/target, so we probably want to pass this as argument as well, maybe keeping localhost as default ?","commit_id":"c9ab71e4f780976ffe2330a4b5b6ea7aa9abec99"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7b0d5cb479a5e6de0928492e918c139d3c83aa6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        print(*message, file\u003dsys.stderr)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def ansible(playbook, verbose\u003dFalse, inventory\u003d\u0027inventory/localhost\u0027,"},{"line_number":41,"context_line":"            env\u003dNone, **params):"},{"line_number":42,"context_line":"    extra \u003d COMMON_PARAMS + list(itertools.chain.from_iterable("},{"line_number":43,"context_line":"        (\u0027-e\u0027, \u0027%s\u003d%s\u0027 % pair) for pair in params.items()))"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff570b3c_2a5596fa","line":40,"range":{"start_line":40,"start_character":37,"end_line":40,"end_character":68},"in_reply_to":"ff570b3c_07b36bea","updated":"2020-06-04 12:47:05.000000000","message":"It seems that target and localhost are pretty much the same. Do you see any failures because of this?","commit_id":"c9ab71e4f780976ffe2330a4b5b6ea7aa9abec99"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0748044f1f4d845d929fd35f4a2988672da8143c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        print(*message, file\u003dsys.stderr)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def ansible(playbook, verbose\u003dFalse, inventory\u003d\u0027inventory/localhost\u0027,"},{"line_number":41,"context_line":"            env\u003dNone, **params):"},{"line_number":42,"context_line":"    extra \u003d COMMON_PARAMS + list(itertools.chain.from_iterable("},{"line_number":43,"context_line":"        (\u0027-e\u0027, \u0027%s\u003d%s\u0027 % pair) for pair in params.items()))"}],"source_content_type":"text/x-python","patch_set":6,"id":"ff570b3c_bda572b7","line":40,"range":{"start_line":40,"start_character":37,"end_line":40,"end_character":68},"in_reply_to":"ff570b3c_2a5596fa","updated":"2020-06-04 13:36:52.000000000","message":"I\u0027m seeing the message:\n[WARNING]: Could not match supplied host pattern, ignoring: target\nand then ansible exits because it can\u0027t find any suitable host\nThis is because we define hosts: target in playbooks/install.yaml, but we run with inventory/localhost here\nWe also suggest in the docs to run with inventory/target, which of course it will work\nI wonder if we should revisit that, or add the option to customize the inventory here","commit_id":"c9ab71e4f780976ffe2330a4b5b6ea7aa9abec99"}]}
