)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"683c01562a9b202fff119ef852e92a828b83db26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ade6eade_8aed8290","updated":"2025-05-15 10:47:12.000000000","message":"What if there is no globals.yml file or a globals.d directory?","commit_id":"a5a47cd63d001554ab10ee50b582aa59bd002a57"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"3ebd0b65ad2dcb3e6aa55b42c19fdb808cf20dd9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7f8e6a8c_de08f001","in_reply_to":"2d563aa0_3c641af0","updated":"2025-06-10 19:15:28.000000000","message":"Maybe it\u0027s a good idea to add some tests?","commit_id":"a5a47cd63d001554ab10ee50b582aa59bd002a57"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"8c1beaa0e79c795de0f230df31e5f8a04c499cdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6a2e74b1_40441f5c","in_reply_to":"5382d537_3e447040","updated":"2025-07-16 20:43:26.000000000","message":"This would be great. Thanks.","commit_id":"a5a47cd63d001554ab10ee50b582aa59bd002a57"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"13bf844cd96d3b89ba64646d2e9a45a9d7bf715e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5382d537_3e447040","in_reply_to":"7f8e6a8c_de08f001","updated":"2025-07-14 05:38:38.000000000","message":"We have no tests at all for the CLI, I\u0027ll add some in a followup.","commit_id":"a5a47cd63d001554ab10ee50b582aa59bd002a57"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94d15e90b8f30fad803ce71236faed18be4763ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2d563aa0_3c641af0","in_reply_to":"ade6eade_8aed8290","updated":"2025-06-04 06:11:12.000000000","message":"It will fail - see L206","commit_id":"a5a47cd63d001554ab10ee50b582aa59bd002a57"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"80ca7122b19125f981a53e6bece599fa0977c971","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2f5d9744_c0bb991b","updated":"2026-01-15 10:30:16.000000000","message":"redundant code L247-253, the rest lgtm I think (apart from missing tests but that\u0027s todo in a subsequent patch)","commit_id":"fd13953abea95e7faa9b8573418bda7dad8385d2"}],"kolla_ansible/ansible.py":[{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"65ec91ede7b0765ad4a28e2284c6fb504a88b638","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    )"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def _get_inventory_paths(parsed_args) -\u003e List[str]:"},{"line_number":145,"context_line":"    \"\"\"Return path to the Kolla Ansible inventory.\"\"\""},{"line_number":146,"context_line":"    if parsed_args.inventory:"},{"line_number":147,"context_line":"        return parsed_args.inventory"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    default_inventory \u003d os.path.join("},{"line_number":150,"context_line":"        os.path.abspath(parsed_args.kolla_config_path),"},{"line_number":151,"context_line":"        \"ansible\", \"inventory\", \"all-in-one\")"},{"line_number":152,"context_line":"    return [default_inventory]"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"def _validate_args(parsed_args, playbooks: list) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"c6292298_b17d4c24","line":152,"range":{"start_line":144,"start_character":0,"end_line":152,"end_character":30},"updated":"2026-01-14 18:31:20.000000000","message":"maybe similar behavior to inventory?\n\ndef _get_inventory_paths(parsed_args) -\u003e List[str]:\n    \"\"\"Return path to the Kolla Ansible inventory.\"\"\"\n    if parsed_args.inventory:\n        return parsed_args.inventory\n\n    inventory_d \u003d os.path.join(\n        os.path.abspath(parsed_args.kolla_config_path), \"inventory.d\")\n\n    if os.path.exists(inventory_d) and os.path.isdir(inventory_d):\n        return [inventory_d]\n\n    default_inventory \u003d os.path.join(\n        os.path.abspath(parsed_args.kolla_config_path),\n        \"ansible\", \"inventory\", \"all-in-one\")\n    return [default_inventory]","commit_id":"fd13953abea95e7faa9b8573418bda7dad8385d2"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"65ec91ede7b0765ad4a28e2284c6fb504a88b638","unresolved":true,"context_lines":[{"line_number":204,"context_line":"    vars_files \u003d _get_vars_files("},{"line_number":205,"context_line":"        os.path.abspath(parsed_args.kolla_config_path))"},{"line_number":206,"context_line":"    if not result[\"result\"] and not vars_files:"},{"line_number":207,"context_line":"        LOG.error(\"Kolla ansible globals file %s is invalid %s\","},{"line_number":208,"context_line":"                  globals_file, result[\"message\"])"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ee2c8ac7_c8274d17","line":207,"range":{"start_line":207,"start_character":8,"end_line":207,"end_character":64},"updated":"2026-01-14 18:31:20.000000000","message":"LOG.error(\"Neither globals.yml nor any files in globals.d were found.\n?","commit_id":"fd13953abea95e7faa9b8573418bda7dad8385d2"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"80ca7122b19125f981a53e6bece599fa0977c971","unresolved":true,"context_lines":[{"line_number":248,"context_line":"        os.path.abspath(parsed_args.kolla_config_path),"},{"line_number":249,"context_line":"        \"globals.yml\")"},{"line_number":250,"context_line":"    if utils.is_readable_file(globals_file)[\"result\"]:"},{"line_number":251,"context_line":"        args +\u003d [\"-e\", \"@%s\" % os.path.join("},{"line_number":252,"context_line":"            os.path.abspath(parsed_args.kolla_config_path),"},{"line_number":253,"context_line":"            \"globals.yml\")]"},{"line_number":254,"context_line":"    args +\u003d [\"-e\", \"@%s\" % os.path.join("},{"line_number":255,"context_line":"        os.path.abspath(parsed_args.kolla_config_path),"},{"line_number":256,"context_line":"        \"passwords.yml\")]"}],"source_content_type":"text/x-python","patch_set":5,"id":"954936b5_c6899057","line":253,"range":{"start_line":251,"start_character":32,"end_line":253,"end_character":26},"updated":"2026-01-15 10:30:16.000000000","message":"reuse globals_file instead of re-constructing the path ?","commit_id":"fd13953abea95e7faa9b8573418bda7dad8385d2"}]}
