)]}'
{"tripleo_ansible/ansible_plugins/modules/container_config_data.py":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"97998d813af5507dccba3f09238ac905ae5b7722","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            matched_configs \u003d glob.glob(os.path.join(config_path,"},{"line_number":120,"context_line":"                                                     config_pattern))"},{"line_number":121,"context_line":"        else:"},{"line_number":122,"context_line":"            self.module.debug("},{"line_number":123,"context_line":"                msg\u003d\u0027{} does not exists, skipping step\u0027.format(config_path))"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        config_dict \u003d {}"},{"line_number":126,"context_line":"        for mc in matched_configs:"}],"source_content_type":"text/x-python","patch_set":18,"id":"bf51134e_2568e7b8","line":123,"range":{"start_line":122,"start_character":0,"end_line":123,"end_character":76},"updated":"2020-07-01 13:38:05.000000000","message":"I still have this error:\n\nFind all matching configs configs for in /var/lib/tripleo-config/container-startup-config/step_5 | undercloud | error\u003d{\"censored\": \"the output has been hidden due to the fact that \u0027no_log: true\u0027 was specified for this result\", \"changed\": false}\n\nSource: https://73b414da8f4ead82f98a-a1b3a735e9c0af824100c02f6885a5ce.ssl.cf2.rackcdn.com/737644/4/check/tripleo-ci-centos-8-undercloud-containers/266e852/logs/undercloud/home/zuul/undercloud_install.log\n\nI thought I addressed it but clearly not.","commit_id":"f76f3a0b68805ad0140d8f4d2ad892157dfeb452"}],"tripleo_ansible/ansible_plugins/modules/container_startup_config.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"06b1e2eb0de0f8b1c068fddc6caae78f5952f82d","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        :param: path: string"},{"line_number":150,"context_line":"        :param: type: string"},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        if not module.check_mode:"},{"line_number":153,"context_line":"            # Maybe run it before"},{"line_number":154,"context_line":"            sefcontext \u003d seobject.fcontextRecords(\u0027\u0027)"},{"line_number":155,"context_line":"            sefcontext.set_reload(True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_b56db333","line":152,"updated":"2020-06-23 21:01:14.000000000","message":"linters: F821 undefined name \u0027module\u0027","commit_id":"067b8fbea3f56e8f46db0e287fe78065712e0106"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"33356324a3b1aab607cde2f06f6e7d3f03410389","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            self.setype \u003d False"},{"line_number":119,"context_line":"            self._setrans \u003d None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Cleanup old configs created by previous releases"},{"line_number":122,"context_line":"        self._cleanup_old_configs()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Create config_base_dir"},{"line_number":125,"context_line":"        # Note: it\u0027ll cleanup old configs before creating new ones."},{"line_number":126,"context_line":"        # TODO(emilien) add idempotency so we only remove the needed files"},{"line_number":127,"context_line":"        self._create_dir(self.config_base_dir, self.setype)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        # Generate the container configs per step"},{"line_number":130,"context_line":"        for step, step_config in self.config_data.items():"},{"line_number":131,"context_line":"            step_dir \u003d os.path.join(self.config_base_dir, step)"},{"line_number":132,"context_line":"            self._create_dir(step_dir)"},{"line_number":133,"context_line":"            for container, container_config in step_config.items():"},{"line_number":134,"context_line":"                container_config_path \u003d os.path.join(self.config_base_dir,"},{"line_number":135,"context_line":"                                                     step, container + \u0027.json\u0027)"},{"line_number":136,"context_line":"                self._create_config(container_config_path, container_config)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if self._setrans:"},{"line_number":139,"context_line":"            self._setrans.finish()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_64cd1a84","line":136,"range":{"start_line":121,"start_character":0,"end_line":136,"end_character":76},"updated":"2020-06-24 21:31:44.000000000","message":"This should probably be in a try catch and we shove an exception into the results to correctly exit if something goes south. Also we\u0027ll likely to want to self._setrans.finish() via finally","commit_id":"a55306b42ae30f0858df787beffc0516e953af55"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":67,"context_line":"class ContainerStartupManager:"},{"line_number":68,"context_line":"    \"\"\"Notes about this module."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    It will generate container startup configs that will be consumed by the"},{"line_number":71,"context_line":"    tripleo-container-manage role that is using podman_container module."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def __init__(self, module, results):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_05efc7e8","line":71,"range":{"start_line":70,"start_character":4,"end_line":71,"end_character":71},"updated":"2020-06-29 13:48:16.000000000","message":"this can be in \u0027description\u0027 of the module","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8a916038017d26ed6064df6ff70c73b3827df4e5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"class ContainerStartupManager:"},{"line_number":68,"context_line":"    \"\"\"Notes about this module."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    It will generate container startup configs that will be consumed by the"},{"line_number":71,"context_line":"    tripleo-container-manage role that is using podman_container module."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def __init__(self, module, results):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_fb4d12c4","line":71,"range":{"start_line":70,"start_character":4,"end_line":71,"end_character":71},"in_reply_to":"bf51134e_05efc7e8","updated":"2020-06-29 15:48:50.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        :param path: string"},{"line_number":110,"context_line":"        :returns: boolean"},{"line_number":111,"context_line":"        \"\"\""},{"line_number":112,"context_line":"        if os.path.exists(path):"},{"line_number":113,"context_line":"            return True"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _remove_dir(self, path):"},{"line_number":116,"context_line":"        \"\"\"Remove a directory."}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_65acc39e","line":113,"range":{"start_line":112,"start_character":8,"end_line":113,"end_character":23},"updated":"2020-06-29 13:48:16.000000000","message":"return os.path.exists(path)","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8a916038017d26ed6064df6ff70c73b3827df4e5","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        :param path: string"},{"line_number":110,"context_line":"        :returns: boolean"},{"line_number":111,"context_line":"        \"\"\""},{"line_number":112,"context_line":"        if os.path.exists(path):"},{"line_number":113,"context_line":"            return True"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _remove_dir(self, path):"},{"line_number":116,"context_line":"        \"\"\"Remove a directory."}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_3bc94a25","line":113,"range":{"start_line":112,"start_character":8,"end_line":113,"end_character":23},"in_reply_to":"bf51134e_65acc39e","updated":"2020-06-29 15:48:50.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        :param path: string"},{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        if self._exists(path):"},{"line_number":121,"context_line":"            shutil.rmtree(path)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _create_dir(self, path):"},{"line_number":124,"context_line":"        \"\"\"Creates a directory."}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_e570d342","line":121,"range":{"start_line":120,"start_character":8,"end_line":121,"end_character":31},"updated":"2020-06-29 13:48:16.000000000","message":"shutil.rmtree(path, ignore_errors\u003dTrue)","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8a916038017d26ed6064df6ff70c73b3827df4e5","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        :param path: string"},{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        if self._exists(path):"},{"line_number":121,"context_line":"            shutil.rmtree(path)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _create_dir(self, path):"},{"line_number":124,"context_line":"        \"\"\"Creates a directory."}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_9bd7b6bf","line":121,"range":{"start_line":120,"start_character":8,"end_line":121,"end_character":31},"in_reply_to":"bf51134e_e570d342","updated":"2020-06-29 15:48:50.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        :param path: string"},{"line_number":127,"context_line":"        \"\"\""},{"line_number":128,"context_line":"        if self._exists(path):"},{"line_number":129,"context_line":"            self._remove_dir(path)"},{"line_number":130,"context_line":"        os.makedirs(path)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _create_config(self, path, config):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_e5a573a0","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":34},"updated":"2020-06-29 13:48:16.000000000","message":"it actually \"re\"creates the directory","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8a916038017d26ed6064df6ff70c73b3827df4e5","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        :param path: string"},{"line_number":127,"context_line":"        \"\"\""},{"line_number":128,"context_line":"        if self._exists(path):"},{"line_number":129,"context_line":"            self._remove_dir(path)"},{"line_number":130,"context_line":"        os.makedirs(path)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _create_config(self, path, config):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_fbe2329f","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":34},"in_reply_to":"bf51134e_e5a573a0","updated":"2020-06-29 15:48:50.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        :param path: string"},{"line_number":136,"context_line":"        :param config: string"},{"line_number":137,"context_line":"        \"\"\""},{"line_number":138,"context_line":"        f \u003d open(path, \u0027wb\u0027)"},{"line_number":139,"context_line":"        f.write(json.dumps(config, indent\u003d2).encode(\u0027utf-8\u0027))"},{"line_number":140,"context_line":"        os.chmod(path, 0o600)"},{"line_number":141,"context_line":"        self.results[\u0027changed\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_a5c89b54","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":28},"updated":"2020-06-29 13:48:16.000000000","message":"fd is not closed\nno need to f.write, json.dump can dump to fd\n\nwith open(path, \"wb\") as f:\n  json.dump(obj, f)","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8a916038017d26ed6064df6ff70c73b3827df4e5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        :param path: string"},{"line_number":136,"context_line":"        :param config: string"},{"line_number":137,"context_line":"        \"\"\""},{"line_number":138,"context_line":"        f \u003d open(path, \u0027wb\u0027)"},{"line_number":139,"context_line":"        f.write(json.dumps(config, indent\u003d2).encode(\u0027utf-8\u0027))"},{"line_number":140,"context_line":"        os.chmod(path, 0o600)"},{"line_number":141,"context_line":"        self.results[\u0027changed\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_fbfb5243","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":28},"in_reply_to":"bf51134e_a5c89b54","updated":"2020-06-29 15:48:50.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"}],"tripleo_ansible/ansible_plugins/tests/molecule/container_startup_config/molecule.yml":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"309e1c44d92650117c89c420098a58be303494ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"driver:"},{"line_number":3,"context_line":"  name: delegated"},{"line_number":4,"context_line":"  options:"},{"line_number":5,"context_line":"    managed: false"},{"line_number":6,"context_line":"    login_cmd_template: \u003e-"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"bf51134e_6584c3d3","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":17},"updated":"2020-06-29 13:48:16.000000000","message":"why not in \"podman\"?","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"97998d813af5507dccba3f09238ac905ae5b7722","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"driver:"},{"line_number":3,"context_line":"  name: delegated"},{"line_number":4,"context_line":"  options:"},{"line_number":5,"context_line":"    managed: false"},{"line_number":6,"context_line":"    login_cmd_template: \u003e-"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"bf51134e_78a9018f","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":17},"in_reply_to":"bf51134e_6584c3d3","updated":"2020-07-01 13:38:05.000000000","message":"Done","commit_id":"3059801e2e23fa6e1796915bae620c0da173375b"}]}
