)]}'
{"tripleoclient/constants.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e2061521ef05dfba3226bc887c350e953e85421e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                     \u0027pre-upgrade\u0027,"},{"line_number":94,"context_line":"                     \u0027post-upgrade\u0027]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"TRIPLEO_PLAYBOOKS_DIR \u003d \\"},{"line_number":97,"context_line":"    \u0027/usr/share/ansible/tripleo-platbooks\u0027"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# ctlplane network defaults"},{"line_number":100,"context_line":"CTLPLANE_CIDR_DEFAULT \u003d \u0027192.168.24.0/24\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_3674dbce","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":42},"updated":"2020-04-02 02:12:10.000000000","message":"I\u0027m not sure how much it matters, but this is named slightly different in master: \n\nhttps://opendev.org/openstack/python-tripleoclient/src/branch/master/tripleoclient/constants.py#L92-L93","commit_id":"8408168aa7bd80da94efe0ea9ad1ed9e4c78e0e9"}],"tripleoclient/tests/v1/overcloud_delete/test_overcloud_delete.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1d1339852a53a0a1f8b09ba2c4d3973ba8885c8d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @mock.patch(\u0027tripleoclient.utils.get_tripleo_ansible_inventory\u0027)"},{"line_number":107,"context_line":"    @mock.patch(\u0027tripleoclient.utils.run_ansible_playbook\u0027)"},{"line_number":108,"context_line":"    @mock.patch(\u0027tripleo_common.actions.ansible.write_default_ansible_cfg\u0027)"},{"line_number":109,"context_line":"    def test_cleanup_ipa_cleans_up_after_failure("},{"line_number":110,"context_line":"            self, ansible_mock, pb_mock, inv_mock, os_mock):"},{"line_number":111,"context_line":"        os_mock.return_value \u003d True"},{"line_number":112,"context_line":"        pb_mock.return_value \u003d (1, \u0027fake output\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_86489587","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":48},"updated":"2020-04-08 00:08:53.000000000","message":"need to mock shutil.rmtree as well.","commit_id":"bf195121d50d4ad372001df06f012f14f8a10995"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3480153f8810805093361558e4dc05d0dfb58ff4","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @mock.patch(\u0027tripleoclient.utils.get_tripleo_ansible_inventory\u0027)"},{"line_number":107,"context_line":"    @mock.patch(\u0027tripleoclient.utils.run_ansible_playbook\u0027)"},{"line_number":108,"context_line":"    @mock.patch(\u0027tripleo_common.actions.ansible.write_default_ansible_cfg\u0027)"},{"line_number":109,"context_line":"    def test_cleanup_ipa_cleans_up_after_failure("},{"line_number":110,"context_line":"            self, ansible_mock, pb_mock, inv_mock, os_mock):"},{"line_number":111,"context_line":"        os_mock.return_value \u003d True"},{"line_number":112,"context_line":"        pb_mock.return_value \u003d (1, \u0027fake output\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_1584a85d","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":48},"in_reply_to":"df33271e_86489587","updated":"2020-04-08 12:46:28.000000000","message":"Weird, that didn\u0027t fail for me locally.","commit_id":"bf195121d50d4ad372001df06f012f14f8a10995"}],"tripleoclient/v1/overcloud_delete.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bb57d69f88be93b87a1d460026803a7552c05268","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        playbook \u003d \u0027/usr/share/ansible/tripleo-playbooks/cli-cleanup-ipa.yml\u0027"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("},{"line_number":91,"context_line":"            ssh_user\u003d\u0027heat-admin\u0027,"},{"line_number":92,"context_line":"            stack\u003dstack_name,"},{"line_number":93,"context_line":"            undercloud_connection\u003d\u0027local\u0027,"},{"line_number":94,"context_line":"            return_inventory_file_path\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_f3c70f95","line":91,"range":{"start_line":91,"start_character":11,"end_line":91,"end_character":34},"updated":"2020-04-02 19:38:48.000000000","message":"I was able to remove this without breaking anything.","commit_id":"8408168aa7bd80da94efe0ea9ad1ed9e4c78e0e9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e2061521ef05dfba3226bc887c350e953e85421e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            workdir\u003dconstants.TRIPLEO_PLAYBOOKS_DIR,"},{"line_number":99,"context_line":"            playbook\u003dplaybook,"},{"line_number":100,"context_line":"            inventory\u003dstatic_inventory,"},{"line_number":101,"context_line":"            log_path_dir\u003dpwd.getpwuid(os.getuid()).pw_dir,"},{"line_number":102,"context_line":"            python_interpreter\u003dpython_interpreter)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        LOG.debug(_(\u0027Removing static tripleo ansible inventory file\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_59cef062","line":101,"updated":"2020-04-02 02:12:10.000000000","message":"I needed to add the following line here to get this to run when I tested it locally:\n\n  ansible_config\u003d\u0027/etc/ansible/ansible.cfg\u0027,\n\nI think the crux of the issue is that the default value is None, in which case run_ansible_playbook attempts to create a temp ansible.cfg. Creating a temp file in the workdir we\u0027re passing isn\u0027t going to work since the workdir is owned by the root user (I\u0027m not invoking `openstack overcloud delete overcloud` as the root user).\n\nI don\u0027t know if what I did is the right solution. It\u0027s really just a short-circuit so that run_ansible_playbook doesn\u0027t attempt to create files in that directory.","commit_id":"8408168aa7bd80da94efe0ea9ad1ed9e4c78e0e9"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"01eb4a6e5799d2e3f4899fd5a6a169bb7f9bf893","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("},{"line_number":92,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # We don\u0027t technically need this to generate an ansible.cfg for stack. The"},{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_dc75b765","line":94,"updated":"2020-04-02 22:29:40.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1f9dc1b43791aed98ee63b4033b0e05249d180a5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("},{"line_number":92,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # We don\u0027t technically need this to generate an ansible.cfg for stack. The"},{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_0d69948a","line":94,"in_reply_to":"df33271e_dc75b765","updated":"2020-04-03 18:21:33.000000000","message":"Done","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"01eb4a6e5799d2e3f4899fd5a6a169bb7f9bf893","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # We don\u0027t technically need this to generate an ansible.cfg for stack. The"},{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_bc70b373","line":95,"updated":"2020-04-02 22:29:40.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1f9dc1b43791aed98ee63b4033b0e05249d180a5","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # We don\u0027t technically need this to generate an ansible.cfg for stack. The"},{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_2d6c589b","line":95,"in_reply_to":"df33271e_bc70b373","updated":"2020-04-03 18:21:33.000000000","message":"Done","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"1d7408750bb6ee84549b07fe2f2787b9e50842e2","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"},{"line_number":99,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg(user_home, remote_user)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        rc, output \u003d utils.run_ansible_playbook("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_13e392a5","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":46},"updated":"2020-04-02 19:52:45.000000000","message":"I would use a disposable tmp folder as you might overwrite one in the home dir.","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1f9dc1b43791aed98ee63b4033b0e05249d180a5","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        # write_default_ansible_cfg() method treats this as an optional parameter"},{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"},{"line_number":99,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg(user_home, remote_user)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        rc, output \u003d utils.run_ansible_playbook("}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_ed927058","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":46},"in_reply_to":"df33271e_13e392a5","updated":"2020-04-03 18:21:33.000000000","message":"Done","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"01eb4a6e5799d2e3f4899fd5a6a169bb7f9bf893","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"},{"line_number":99,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg(user_home, remote_user)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":102,"context_line":"            self.log,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_1c6c3f9a","line":99,"updated":"2020-04-02 22:29:40.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1f9dc1b43791aed98ee63b4033b0e05249d180a5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        # even though the method signature requires it."},{"line_number":97,"context_line":"        remote_user \u003d None"},{"line_number":98,"context_line":"        user_home \u003d os.environ.get(\u0027HOME\u0027, \u0027\u0027)"},{"line_number":99,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg(user_home, remote_user)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":102,"context_line":"            self.log,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_cd6e8c95","line":99,"in_reply_to":"df33271e_1c6c3f9a","updated":"2020-04-03 18:21:33.000000000","message":"Done","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"01eb4a6e5799d2e3f4899fd5a6a169bb7f9bf893","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            python_interpreter\u003dpython_interpreter)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.log.debug(_(\u0027Removing static tripleo ansible inventory file\u0027))"},{"line_number":111,"context_line":"        utils.cleanup_tripleo_ansible_inventory_file( static_inventory)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def take_action(self, parsed_args):"},{"line_number":114,"context_line":"        self.log.debug(\"take_action({args})\".format(args\u003dparsed_args))"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_fc66bbba","line":111,"updated":"2020-04-02 22:29:40.000000000","message":"pep8: E201 whitespace after \u0027(\u0027","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1f9dc1b43791aed98ee63b4033b0e05249d180a5","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            python_interpreter\u003dpython_interpreter)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.log.debug(_(\u0027Removing static tripleo ansible inventory file\u0027))"},{"line_number":111,"context_line":"        utils.cleanup_tripleo_ansible_inventory_file( static_inventory)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def take_action(self, parsed_args):"},{"line_number":114,"context_line":"        self.log.debug(\"take_action({args})\".format(args\u003dparsed_args))"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_ed71d079","line":111,"in_reply_to":"df33271e_fc66bbba","updated":"2020-04-03 18:21:33.000000000","message":"Done","commit_id":"0f2c343743bf2261a5dec4631a7bed28639c2b20"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c101bef76d67ec511b52cf3706d634a63d5c007e","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            return"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("},{"line_number":101,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # We don\u0027t technically need remote_user to generate an ansible.cfg for"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_3e2da0a8","line":100,"updated":"2020-04-03 21:46:12.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bddc9b2a645c5ab58884cfd0568a45013678a337","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            return"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("},{"line_number":101,"context_line":"            return_inventory_file_path\u003dTrue)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # We don\u0027t technically need remote_user to generate an ansible.cfg for"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_1fb7d1da","line":100,"in_reply_to":"df33271e_3e2da0a8","updated":"2020-04-06 17:40:44.000000000","message":"Done","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"02ebb20282f3fb3ca4436c9a3f51f545421769d8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg("},{"line_number":112,"context_line":"            tmp_tripleoclient_dir, remote_user)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":115,"context_line":"            self.log,"},{"line_number":116,"context_line":"            constants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":117,"context_line":"            playbook,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_835a9527","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":10},"updated":"2020-04-03 19:56:24.000000000","message":"Might want to check this to see if it succeeded and if not, throw some messaging indicating it failed","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bddc9b2a645c5ab58884cfd0568a45013678a337","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg("},{"line_number":112,"context_line":"            tmp_tripleoclient_dir, remote_user)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":115,"context_line":"            self.log,"},{"line_number":116,"context_line":"            constants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":117,"context_line":"            playbook,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_7f3a5d34","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":10},"in_reply_to":"df33271e_835a9527","updated":"2020-04-06 17:40:44.000000000","message":"Good call. Took a stab at this in the latest patch set.","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"02ebb20282f3fb3ca4436c9a3f51f545421769d8","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # optional parameter even though the method signature requires it."},{"line_number":106,"context_line":"        remote_user \u003d None"},{"line_number":107,"context_line":"        tmp_tripleoclient_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027tripleoclient-\u0027)"},{"line_number":108,"context_line":"        self.log.debug(\"Creating temporary directory for ansible config in %s\""},{"line_number":109,"context_line":"                       % tmp_tripleoclient_dir)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg("},{"line_number":112,"context_line":"            tmp_tripleoclient_dir, remote_user)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":115,"context_line":"            self.log,"},{"line_number":116,"context_line":"            constants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":117,"context_line":"            playbook,"},{"line_number":118,"context_line":"            static_inventory,"},{"line_number":119,"context_line":"            log_path_dir\u003dpwd.getpwuid(os.getuid()).pw_dir,"},{"line_number":120,"context_line":"            ansible_config\u003dansible_config,"},{"line_number":121,"context_line":"            python_interpreter\u003dpython_interpreter)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.log.debug(_(\u0027Removing static tripleo ansible inventory file\u0027))"},{"line_number":124,"context_line":"        utils.cleanup_tripleo_ansible_inventory_file(static_inventory)"},{"line_number":125,"context_line":"        self.log.debug(_(\u0027Removing tmp ansible configuration directory\u0027))"},{"line_number":126,"context_line":"        shutil.rm_tree(tmp_tripleoclient_dir)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_03468550","line":125,"range":{"start_line":108,"start_character":0,"end_line":125,"end_character":73},"updated":"2020-04-03 19:56:24.000000000","message":"I would try/catch/finally to prevent the tmpdir from sticking around","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bddc9b2a645c5ab58884cfd0568a45013678a337","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # optional parameter even though the method signature requires it."},{"line_number":106,"context_line":"        remote_user \u003d None"},{"line_number":107,"context_line":"        tmp_tripleoclient_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027tripleoclient-\u0027)"},{"line_number":108,"context_line":"        self.log.debug(\"Creating temporary directory for ansible config in %s\""},{"line_number":109,"context_line":"                       % tmp_tripleoclient_dir)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg("},{"line_number":112,"context_line":"            tmp_tripleoclient_dir, remote_user)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        rc, output \u003d utils.run_ansible_playbook("},{"line_number":115,"context_line":"            self.log,"},{"line_number":116,"context_line":"            constants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":117,"context_line":"            playbook,"},{"line_number":118,"context_line":"            static_inventory,"},{"line_number":119,"context_line":"            log_path_dir\u003dpwd.getpwuid(os.getuid()).pw_dir,"},{"line_number":120,"context_line":"            ansible_config\u003dansible_config,"},{"line_number":121,"context_line":"            python_interpreter\u003dpython_interpreter)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.log.debug(_(\u0027Removing static tripleo ansible inventory file\u0027))"},{"line_number":124,"context_line":"        utils.cleanup_tripleo_ansible_inventory_file(static_inventory)"},{"line_number":125,"context_line":"        self.log.debug(_(\u0027Removing tmp ansible configuration directory\u0027))"},{"line_number":126,"context_line":"        shutil.rm_tree(tmp_tripleoclient_dir)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_df4729bc","line":125,"range":{"start_line":108,"start_character":0,"end_line":125,"end_character":73},"in_reply_to":"df33271e_03468550","updated":"2020-04-06 17:40:44.000000000","message":"++\n\nI wasn\u0027t sure what exception to look for specifically, so I stuck with a try/finally.\n\nLet me know if you think that will work.","commit_id":"ec198a621c8bb10eeee6088d652c50693df99183"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"dd69e678db6295aa61dfb03b54fd542aa1caaa50","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                python_interpreter\u003dpython_interpreter)"},{"line_number":122,"context_line":"            if rc !\u003d 0:"},{"line_number":123,"context_line":"                self.log.warning("},{"line_number":124,"context_line":"                    _(\"%s did not complete successfully.\" % playbook)"},{"line_number":125,"context_line":"                )"},{"line_number":126,"context_line":"        finally:"},{"line_number":127,"context_line":"            self.log.debug(_(\"Removing static tripleo ansible inventory file\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_b75089d6","line":124,"updated":"2020-04-06 21:49:44.000000000","message":"pep8: H702  Formatting operation should be outside of localization method call","commit_id":"db115b944e6f826d4fd4ee21ac1ece60dc3addd9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3b91f8930d01eb74a59a1d28ab403a605fba7fa2","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                python_interpreter\u003dpython_interpreter)"},{"line_number":122,"context_line":"            if rc !\u003d 0:"},{"line_number":123,"context_line":"                self.log.warning("},{"line_number":124,"context_line":"                    _(\"%s did not complete successfully.\" % playbook)"},{"line_number":125,"context_line":"                )"},{"line_number":126,"context_line":"        finally:"},{"line_number":127,"context_line":"            self.log.debug(_(\"Removing static tripleo ansible inventory file\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_183b54d1","line":124,"in_reply_to":"df33271e_b75089d6","updated":"2020-04-07 13:23:07.000000000","message":"Done","commit_id":"db115b944e6f826d4fd4ee21ac1ece60dc3addd9"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"81824f74aa7fafde53096d344f056207217aa4d5","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        if not os.path.exists(playbook):"},{"line_number":94,"context_line":"            msg \u003d _("},{"line_number":95,"context_line":"                \"{} doesn\u0027t exist on system. \""},{"line_number":96,"context_line":"                \"Ignoring IPA cleanup.\".format(playbook)"},{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            self.log.debug(msg)"},{"line_number":99,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_0d078b1e","line":96,"updated":"2020-04-07 17:59:03.000000000","message":"pep8: H702  Argument to _, _LI, _LW, _LC, or _LE must be just a string","commit_id":"ea9923448fb00f1c84ce62931f72b222d0f815c7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"81824f74aa7fafde53096d344f056207217aa4d5","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        tmp_tripleoclient_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027tripleoclient-\u0027)"},{"line_number":109,"context_line":"        msg \u003d _("},{"line_number":110,"context_line":"            \"Creating temporary directory for \""},{"line_number":111,"context_line":"            \"ansible config in {}\".format(tmp_tripleoclient_dir)"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":"        self.log.debug(msg)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_ed018708","line":111,"updated":"2020-04-07 17:59:03.000000000","message":"pep8: H702  Argument to _, _LI, _LW, _LC, or _LE must be just a string","commit_id":"ea9923448fb00f1c84ce62931f72b222d0f815c7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"81824f74aa7fafde53096d344f056207217aa4d5","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                ansible_config\u003dansible_config,"},{"line_number":126,"context_line":"                python_interpreter\u003dpython_interpreter)"},{"line_number":127,"context_line":"            if rc !\u003d 0:"},{"line_number":128,"context_line":"                msg \u003d _(\"{} did not complete successfully.\".format(playbook))"},{"line_number":129,"context_line":"                self.log.warning(msg)"},{"line_number":130,"context_line":"        finally:"},{"line_number":131,"context_line":"            self.log.debug(_(\"Removing static tripleo ansible inventory file\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_50fe4c05","line":128,"updated":"2020-04-07 17:59:03.000000000","message":"pep8: H702  Argument to _, _LI, _LW, _LC, or _LE must be just a string","commit_id":"ea9923448fb00f1c84ce62931f72b222d0f815c7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1244864710b884442dc1b0dc3e0fbd1ed532f049","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                \"{} doesn\u0027t exist on system. \""},{"line_number":96,"context_line":"                \"Ignoring IPA cleanup.\".format(playbook)"},{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            self.log.debug(_(msg))"},{"line_number":99,"context_line":"            return"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        static_inventory \u003d utils.get_tripleo_ansible_inventory("}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_b3219da2","line":98,"updated":"2020-04-07 22:12:41.000000000","message":"pep8: H701  Empty localization string","commit_id":"bf195121d50d4ad372001df06f012f14f8a10995"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1244864710b884442dc1b0dc3e0fbd1ed532f049","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            \"Creating temporary directory for \""},{"line_number":111,"context_line":"            \"ansible config in {}\".format(tmp_tripleoclient_dir)"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":"        self.log.debug(_(msg))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        ansible_config \u003d ansible.write_default_ansible_cfg("},{"line_number":116,"context_line":"            tmp_tripleoclient_dir, remote_user)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_932459b1","line":113,"updated":"2020-04-07 22:12:41.000000000","message":"pep8: H701  Empty localization string","commit_id":"bf195121d50d4ad372001df06f012f14f8a10995"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1244864710b884442dc1b0dc3e0fbd1ed532f049","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                python_interpreter\u003dpython_interpreter)"},{"line_number":127,"context_line":"            if rc !\u003d 0:"},{"line_number":128,"context_line":"                msg \u003d \"{} did not complete successfully.\".format(playbook)"},{"line_number":129,"context_line":"                self.log.warning(_(msg))"},{"line_number":130,"context_line":"        finally:"},{"line_number":131,"context_line":"            self.log.debug(_(\"Removing static tripleo ansible inventory file\"))"},{"line_number":132,"context_line":"            utils.cleanup_tripleo_ansible_inventory_file(static_inventory)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_f33a05cb","line":129,"updated":"2020-04-07 22:12:41.000000000","message":"pep8: H701  Empty localization string","commit_id":"bf195121d50d4ad372001df06f012f14f8a10995"}]}
