)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"b991900cc93ed975d66b92f27c123aa069cdf7ff","unresolved":false,"context_lines":[{"line_number":12,"context_line":"container files and and an image structure inline with the simple"},{"line_number":13,"context_line":"container generation spec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Deoends-On: https://review.opendev.org/723665"},{"line_number":16,"context_line":"Change-Id: I279e95722fe7a10148d36c99c7179c33a3a767a0"},{"line_number":17,"context_line":"Signed-off-by: Kevin Carter \u003ckecarter@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":29,"id":"1f493fa4_1c737f4f","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"updated":"2020-05-04 13:33:20.000000000","message":"Spelling error","commit_id":"51240daa1ae18dbe36819555af245481e995adb2"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"10f37d62247cd3f7360d5877b0e74e13f1db97d2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"`tripleo_container_image_build` role which will produce simplified"},{"line_number":12,"context_line":"container files and and an image structure inline with the simple"},{"line_number":13,"context_line":"container generation spec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: https://review.opendev.org/723665"},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/725721"},{"line_number":17,"context_line":"Change-Id: I279e95722fe7a10148d36c99c7179c33a3a767a0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":48,"id":"ff570b3c_4514bea0","line":14,"updated":"2020-05-13 17:36:02.000000000","message":"maybe we need to add tripleo-ansible in bindeps here? I don\u0027t know. Maybe you can test it via the tripleo-ci patch.","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"2c5d03e714415a01b667f02f17ec141a8402ae01","unresolved":false,"context_lines":[{"line_number":11,"context_line":"`tripleo_container_image_build` role which will produce simplified"},{"line_number":12,"context_line":"container files and and an image structure inline with the simple"},{"line_number":13,"context_line":"container generation spec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: https://review.opendev.org/723665"},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/725721"},{"line_number":17,"context_line":"Change-Id: I279e95722fe7a10148d36c99c7179c33a3a767a0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":48,"id":"ff570b3c_770539c2","line":14,"in_reply_to":"ff570b3c_4514bea0","updated":"2020-05-13 17:50:57.000000000","message":"Done","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"}],"tripleoclient/tests/v2/container_image/test_tripleo_container_image.py":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"d6edccc223fcf5ea414d7de4d75b9cf298326c62","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            ("},{"line_number":174,"context_line":"                \"volumes\","},{"line_number":175,"context_line":"                ["},{"line_number":176,"context_line":"                    \"/etc/yum.repos.d:/etc/yum.repos.d:z\","},{"line_number":177,"context_line":"                    \"/etc/pki/rpm-gpg:/etc/pki/rpm-gpg:z\","},{"line_number":178,"context_line":"                    \"bind/mount\","},{"line_number":179,"context_line":"                ],"}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_ff9db057","line":176,"range":{"start_line":176,"start_character":54,"end_line":176,"end_character":57},"updated":"2020-05-13 08:44:35.000000000","message":"it can be still \"ro\" - \"..:ro,z\" if it\u0027s what desired","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d7b410851d01b916ec8fc39a61b1f4e140449dec","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            ("},{"line_number":174,"context_line":"                \"volumes\","},{"line_number":175,"context_line":"                ["},{"line_number":176,"context_line":"                    \"/etc/yum.repos.d:/etc/yum.repos.d:z\","},{"line_number":177,"context_line":"                    \"/etc/pki/rpm-gpg:/etc/pki/rpm-gpg:z\","},{"line_number":178,"context_line":"                    \"bind/mount\","},{"line_number":179,"context_line":"                ],"}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_f05e7a10","line":176,"range":{"start_line":176,"start_character":54,"end_line":176,"end_character":57},"in_reply_to":"ff570b3c_ff9db057","updated":"2020-05-13 12:56:02.000000000","message":"upon further reading it seems \"ro\" is implied, so i dropped it.","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"}],"tripleoclient/v2/tripleo_container_image.py":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"3ea2db7a0a09a16524382325eb7dd278951ee342","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    log \u003d logging.getLogger(__name__ + \".Build\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def get_parser(self, prog_name):"},{"line_number":43,"context_line":"        parser \u003d super(Build, self).get_parser(prog_name)"},{"line_number":44,"context_line":"        parser.add_argument("},{"line_number":45,"context_line":"            \"--config-file\","},{"line_number":46,"context_line":"            dest\u003d\"config_file\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_f0e4580f","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":14},"updated":"2020-04-28 20:10:12.000000000","message":"I think we should work in an option for `config-only` which just produces the Containerfiles and doesn\u0027t actually kick-off a build. \n\n\u003e This was requests in review of the supporting spec: https://review.opendev.org/#/c/723665/1/specs/victoria/simple-container-generation.rst@105","commit_id":"e05823d33f42c09a33570f417c2972470817fb86"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"931b1ebbcd498649e5ec4800dfb4b8ea81328347","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    log \u003d logging.getLogger(__name__ + \".Build\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def get_parser(self, prog_name):"},{"line_number":43,"context_line":"        parser \u003d super(Build, self).get_parser(prog_name)"},{"line_number":44,"context_line":"        parser.add_argument("},{"line_number":45,"context_line":"            \"--config-file\","},{"line_number":46,"context_line":"            dest\u003d\"config_file\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_d90b4027","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":14},"in_reply_to":"1f493fa4_5090aced","updated":"2020-04-29 03:42:49.000000000","message":"+1","commit_id":"e05823d33f42c09a33570f417c2972470817fb86"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"9b12600da565251407ac12030c94788d92f3401b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    log \u003d logging.getLogger(__name__ + \".Build\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def get_parser(self, prog_name):"},{"line_number":43,"context_line":"        parser \u003d super(Build, self).get_parser(prog_name)"},{"line_number":44,"context_line":"        parser.add_argument("},{"line_number":45,"context_line":"            \"--config-file\","},{"line_number":46,"context_line":"            dest\u003d\"config_file\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_5090aced","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":14},"in_reply_to":"1f493fa4_f0e4580f","updated":"2020-04-28 20:29:06.000000000","message":"that\u0027s --skip-push","commit_id":"e05823d33f42c09a33570f417c2972470817fb86"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7c68803c10082bda203db9c771d8af1bae304100","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        # remove any tag from the end"},{"line_number":146,"context_line":"        imagename \u003d imagename.split(\":\")[0]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # remove supported base names from the start"},{"line_number":149,"context_line":"        imagename \u003d re.sub(r\"^(centos|rhel)-\", \"\", imagename)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        # remove install_type from the start"},{"line_number":152,"context_line":"        imagename \u003d re.sub(r\"^(binary|source|rdo|rhos)-\", \"\", imagename)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # what results should be acceptable as a regex to build one image"},{"line_number":155,"context_line":"        return imagename"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_6ac14b54","line":152,"range":{"start_line":148,"start_character":0,"end_line":152,"end_character":72},"updated":"2020-04-30 12:44:51.000000000","message":"I think we can nail this down into a single regex.","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7c68803c10082bda203db9c771d8af1bae304100","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return tree"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def find_image(self, name, path):"},{"line_number":182,"context_line":"        for root, dirs, files in os.walk(path):"},{"line_number":183,"context_line":"            if name + \".yaml\" in files:"},{"line_number":184,"context_line":"                return os.path.join(root, name + \".yaml\")"},{"line_number":185,"context_line":"            if name + \".yml\" in files:"},{"line_number":186,"context_line":"                return os.path.join(root, name + \".yml\")"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def take_action(self, parsed_args):"},{"line_number":189,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_aa5b53f3","line":186,"range":{"start_line":182,"start_character":0,"end_line":186,"end_character":56},"updated":"2020-04-30 12:44:51.000000000","message":"given every application must be in its own directory, maybe this should just pull in an arbitrary yaml file when found?\n\n    def find_image(self, name, path):\n        \"\"\"Find an image and load its config.\n\n        This will traverse a directory structure looking for an image\n        directory, when found all configs will be loaded lexically and\n        returned a single Dictionary.\n\n        :param name: Container name.\n        :type name: String.\n        :param path: Directory path to traverse.\n        :type path: String.\n\n        :returns: Dictionary\n        \"\"\"\n        container_vars \u003d dict()\n        for root, dirs, files in os.walk(path):\n            if os.path.basename(path) \u003d\u003d name:\n                for file_name in sorted(files):\n                    if file_name.endswith((\u0027yaml\u0027, \u0027yml\u0027)):\n                        with open(os.path.join(root, file_name)) as f:\n                            container_vars.update(yaml.safe_load(f.read()))\n        else:\n            return container_vars\n\n\nThis would allow us to have multiple arbitrary configs within a given directory which are sorted (01-config.yaml, 02-config.yaml, etc) and loaded one on top the other.","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"5dfc4935eb2456a08025fcc96f87dca40bc74949","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            if name + \".yml\" in files:"},{"line_number":186,"context_line":"                return os.path.join(root, name + \".yml\")"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def take_action(self, parsed_args):"},{"line_number":189,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":190,"context_line":"        excludes \u003d parsed_args.excludes"},{"line_number":191,"context_line":"        images_to_prepare \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_2a446346","line":188,"updated":"2020-04-30 12:28:08.000000000","message":"we probably want more logging in general (log.debug level) for the actions we do here.","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7c68803c10082bda203db9c771d8af1bae304100","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            if name + \".yml\" in files:"},{"line_number":186,"context_line":"                return os.path.join(root, name + \".yml\")"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def take_action(self, parsed_args):"},{"line_number":189,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":190,"context_line":"        excludes \u003d parsed_args.excludes"},{"line_number":191,"context_line":"        images_to_prepare \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_8a9db7bd","line":188,"in_reply_to":"1f493fa4_2a446346","updated":"2020-04-30 12:44:51.000000000","message":"+1","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"5dfc4935eb2456a08025fcc96f87dca40bc74949","unresolved":false,"context_lines":[{"line_number":231,"context_line":"                playbook_dir\u003dconstants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":232,"context_line":"                extra_vars_file\u003d{\"workdir\": work_dir},"},{"line_number":233,"context_line":"                extra_vars\u003dimage_config,"},{"line_number":234,"context_line":"                # figure out verbosity"},{"line_number":235,"context_line":"                verbosity\u003d0,"},{"line_number":236,"context_line":"            )"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if not parsed_args.skip_build:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_4a49ef5d","line":235,"range":{"start_line":234,"start_character":0,"end_line":235,"end_character":28},"updated":"2020-04-30 12:28:08.000000000","message":"verbosity\u003doooutils.playbook_verbosity(self\u003dself)","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7c68803c10082bda203db9c771d8af1bae304100","unresolved":false,"context_lines":[{"line_number":231,"context_line":"                playbook_dir\u003dconstants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":232,"context_line":"                extra_vars_file\u003d{\"workdir\": work_dir},"},{"line_number":233,"context_line":"                extra_vars\u003dimage_config,"},{"line_number":234,"context_line":"                # figure out verbosity"},{"line_number":235,"context_line":"                verbosity\u003d0,"},{"line_number":236,"context_line":"            )"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if not parsed_args.skip_build:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_2a5d8314","line":235,"range":{"start_line":234,"start_character":0,"end_line":235,"end_character":28},"in_reply_to":"1f493fa4_4a49ef5d","updated":"2020-04-30 12:44:51.000000000","message":"+1","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7c68803c10082bda203db9c771d8af1bae304100","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            # For each image we will generate Dockerfiles in the work_dir"},{"line_number":226,"context_line":"            # following a specific directory structured per image"},{"line_number":227,"context_line":"            utils.run_ansible_playbook("},{"line_number":228,"context_line":"                playbook\u003d\"cli-generate-containerfile.yaml\","},{"line_number":229,"context_line":"                inventory\u003d\"localhost,\","},{"line_number":230,"context_line":"                workdir\u003dwork_dir,"},{"line_number":231,"context_line":"                playbook_dir\u003dconstants.ANSIBLE_TRIPLEO_PLAYBOOKS,"},{"line_number":232,"context_line":"                extra_vars_file\u003d{\"workdir\": work_dir},"},{"line_number":233,"context_line":"                extra_vars\u003dimage_config,"},{"line_number":234,"context_line":"                # figure out verbosity"},{"line_number":235,"context_line":"                verbosity\u003d0,"},{"line_number":236,"context_line":"            )"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if not parsed_args.skip_build:"},{"line_number":239,"context_line":"            bb \u003d buildah.BuildahBuilder("}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_eaf55bcc","line":236,"range":{"start_line":227,"start_character":0,"end_line":236,"end_character":13},"updated":"2020-04-30 12:44:51.000000000","message":"If we make the find_image change, we can update the playbook execution like so to support the given options:\n\n            container_vars \u003d {\"workdir\": work_dir}\n            container_vars.update(image_config)\n            utils.run_ansible_playbook(\n                playbook\u003d\"cli-generate-containerfile.yaml\",\n                inventory\u003d\"localhost,\",\n                workdir\u003dwork_dir,\n                playbook_dir\u003dconstants.ANSIBLE_TRIPLEO_PLAYBOOKS,\n                extra_vars_file\u003dcontainer_vars,\n                verbosity\u003dutils.playbook_verbosity(self\u003dself),\n            )","commit_id":"bacb4c7f345b9735a86f3f38c95a8882b11c6b09"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3853c8647007d0e8ecaeb1f6efb6c98a3b0455ac","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return container_vars"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def rectify_excludes(self, images_to_prepare):"},{"line_number":209,"context_line":"        \"\"\"Build a dynamic exclude list."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        Using the identified images, we check against our expected images"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_73649f4a","line":208,"updated":"2020-04-30 17:30:33.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"8bd9db6ef2010617753425a72a5a9232acf8e548"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f08d90bf0a7bf308b5731471d58dca31796911ca","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            dest\u003d\"distro\","},{"line_number":143,"context_line":"            metavar\u003d\"\u003cdistro\u003e\","},{"line_number":144,"context_line":"            help\u003d_("},{"line_number":145,"context_line":"                \"Distro name, if undefined the system will build using the host distro.\""},{"line_number":146,"context_line":"            ),"},{"line_number":147,"context_line":"        )"},{"line_number":148,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_ba5a747f","line":145,"updated":"2020-04-30 21:41:44.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"c9063d550dd1486d395258d71f54beedbf1ce598"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f08d90bf0a7bf308b5731471d58dca31796911ca","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            # For each image we will generate Dockerfiles in the work_dir"},{"line_number":300,"context_line":"            # following a specific directory structured per image"},{"line_number":301,"context_line":"            image_config.update("},{"line_number":302,"context_line":"                {\"workdir\": work_dir, \"tcib_from\": self.image_parents[image],}"},{"line_number":303,"context_line":"            )"},{"line_number":304,"context_line":"            utils.run_ansible_playbook("},{"line_number":305,"context_line":"                playbook\u003d\"cli-generate-containerfile.yaml\","}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_9a5df87a","line":302,"updated":"2020-04-30 21:41:44.000000000","message":"pep8: E231 missing whitespace after \u0027,\u0027","commit_id":"c9063d550dd1486d395258d71f54beedbf1ce598"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4c9a40b6b343f9d990226be5caafb0d2acade049","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            metavar\u003d\"\u003cbase-image\u003e\","},{"line_number":100,"context_line":"            default\u003d\"ubi8\","},{"line_number":101,"context_line":"            help\u003d_(\"Base image name, with optional version (default: ubi8). \""},{"line_number":102,"context_line":"                \"Can be centos:8, base name image will be \u0027centos\u0027 but \""},{"line_number":103,"context_line":"                \"centos:8 will be pulled to build the base image.\"),"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":28,"id":"1f493fa4_241758a6","line":102,"updated":"2020-05-02 08:03:45.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"e13e72fe19b3e5a4e3072169db0ccb05575becb6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4c9a40b6b343f9d990226be5caafb0d2acade049","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            default\u003d\"ubi8\","},{"line_number":101,"context_line":"            help\u003d_(\"Base image name, with optional version (default: ubi8). \""},{"line_number":102,"context_line":"                \"Can be centos:8, base name image will be \u0027centos\u0027 but \""},{"line_number":103,"context_line":"                \"centos:8 will be pulled to build the base image.\"),"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        parser.add_argument("},{"line_number":106,"context_line":"            \"--type\","}],"source_content_type":"text/x-python","patch_set":28,"id":"1f493fa4_840c6c95","line":103,"updated":"2020-05-02 08:03:45.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"e13e72fe19b3e5a4e3072169db0ccb05575becb6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4c9a40b6b343f9d990226be5caafb0d2acade049","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":288,"context_line":"        excludes \u003d parsed_args.excludes"},{"line_number":289,"context_line":"        images_to_prepare \u003d []"},{"line_number":290,"context_line":"        "},{"line_number":291,"context_line":"        # Generate an unique work directory so we can keep configs and logs"},{"line_number":292,"context_line":"        # each time we run the command; they\u0027ll be stored in work_dir."},{"line_number":293,"context_line":"        work_dir \u003d os.path.join(parsed_args.work_dir, str(uuid.uuid4()))"}],"source_content_type":"text/x-python","patch_set":28,"id":"1f493fa4_641160ad","line":290,"updated":"2020-05-02 08:03:45.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"e13e72fe19b3e5a4e3072169db0ccb05575becb6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"473dfce30b6a3ded07fe134ce31971cfff8b126d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from tripleo_common.image.builder import buildah"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from tripleoclient import command"},{"line_number":31,"context_line":"from tripleoclient import constants"},{"line_number":32,"context_line":"from tripleoclient import utils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"1f493fa4_b35ff50c","line":31,"updated":"2020-05-05 21:39:44.000000000","message":"pep8: F401 \u0027tripleoclient.constants\u0027 imported but unused","commit_id":"c4c3668c9f2952c7a276c8e8295844b946dd8a26"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"473dfce30b6a3ded07fe134ce31971cfff8b126d","unresolved":false,"context_lines":[{"line_number":351,"context_line":"            )"},{"line_number":352,"context_line":"            task \u003d {"},{"line_number":353,"context_line":"                \u0027name\u0027: \u0027Generate container file(s): {}\u0027.format(image),"},{"line_number":354,"context_line":"                \u0027include_role\u0027:{"},{"line_number":355,"context_line":"                    \u0027name\u0027: \u0027tripleo_container_image_build\u0027"},{"line_number":356,"context_line":"                },"},{"line_number":357,"context_line":"                \u0027vars\u0027: image_config"}],"source_content_type":"text/x-python","patch_set":31,"id":"1f493fa4_139a29c4","line":354,"updated":"2020-05-05 21:39:44.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"c4c3668c9f2952c7a276c8e8295844b946dd8a26"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"473dfce30b6a3ded07fe134ce31971cfff8b126d","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                }"},{"line_number":372,"context_line":"            ]"},{"line_number":373,"context_line":"            with open(playbook, \u0027w\u0027) as f:"},{"line_number":374,"context_line":"                f.write(yaml.safe_dump(containers_play, default_flow_style\u003dFalse))"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"            utils.run_ansible_playbook("},{"line_number":377,"context_line":"                playbook\u003dplaybook,"}],"source_content_type":"text/x-python","patch_set":31,"id":"1f493fa4_f39e9db6","line":374,"updated":"2020-05-05 21:39:44.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"c4c3668c9f2952c7a276c8e8295844b946dd8a26"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cb14519416a329de68c158ec44cf8968055f7bc8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                \"\u0027centos:8\u0027 will be pulled to build the base image.\""},{"line_number":104,"context_line":"            ),"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \"--type\","},{"line_number":108,"context_line":"            dest\u003d\"type\","},{"line_number":109,"context_line":"            metavar\u003d\"\u003cimage-type\u003e\","},{"line_number":110,"context_line":"            default\u003d\"openstack\","},{"line_number":111,"context_line":"            help\u003d_(\"Image type (default: openstack).\"),"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":"        parser.add_argument("},{"line_number":114,"context_line":"            \"--tag\","},{"line_number":115,"context_line":"            dest\u003d\"tag\","}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_12b17590","line":112,"range":{"start_line":106,"start_character":0,"end_line":112,"end_character":9},"updated":"2020-05-06 16:43:48.000000000","message":"I would rename --type to --prefix (default to \"openstack\")","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a53087984d2177ac53f6b15d762a29d555223581","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                \"\u0027centos:8\u0027 will be pulled to build the base image.\""},{"line_number":104,"context_line":"            ),"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \"--type\","},{"line_number":108,"context_line":"            dest\u003d\"type\","},{"line_number":109,"context_line":"            metavar\u003d\"\u003cimage-type\u003e\","},{"line_number":110,"context_line":"            default\u003d\"openstack\","},{"line_number":111,"context_line":"            help\u003d_(\"Image type (default: openstack).\"),"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":"        parser.add_argument("},{"line_number":114,"context_line":"            \"--tag\","},{"line_number":115,"context_line":"            dest\u003d\"tag\","}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_55b80729","line":112,"range":{"start_line":106,"start_character":0,"end_line":112,"end_character":9},"in_reply_to":"1f493fa4_12b17590","updated":"2020-05-06 16:49:05.000000000","message":"Done","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cb14519416a329de68c158ec44cf8968055f7bc8","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                image_name \u003d self.image_parents.get(image, image)"},{"line_number":331,"context_line":"                image_from \u003d ("},{"line_number":332,"context_line":"                    \"{registry}/{namespace}\""},{"line_number":333,"context_line":"                    \"/{type}-{image}:{tag}\".format("},{"line_number":334,"context_line":"                        registry\u003dparsed_args.registry,"},{"line_number":335,"context_line":"                        namespace\u003dparsed_args.namespace,"},{"line_number":336,"context_line":"                        type\u003dparsed_args.type,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_f27049dd","line":333,"range":{"start_line":333,"start_character":23,"end_line":333,"end_character":27},"updated":"2020-05-06 16:43:48.000000000","message":"s/type/prefix/","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a53087984d2177ac53f6b15d762a29d555223581","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                image_name \u003d self.image_parents.get(image, image)"},{"line_number":331,"context_line":"                image_from \u003d ("},{"line_number":332,"context_line":"                    \"{registry}/{namespace}\""},{"line_number":333,"context_line":"                    \"/{type}-{image}:{tag}\".format("},{"line_number":334,"context_line":"                        registry\u003dparsed_args.registry,"},{"line_number":335,"context_line":"                        namespace\u003dparsed_args.namespace,"},{"line_number":336,"context_line":"                        type\u003dparsed_args.type,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_7586e367","line":333,"range":{"start_line":333,"start_character":23,"end_line":333,"end_character":27},"in_reply_to":"1f493fa4_f27049dd","updated":"2020-05-06 16:49:05.000000000","message":"Done","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cb14519416a329de68c158ec44cf8968055f7bc8","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            bb \u003d buildah.BuildahBuilder("},{"line_number":388,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":389,"context_line":"                deps\u003dimages_tree,"},{"line_number":390,"context_line":"                base\u003dparsed_args.base.split(\":\")[0],"},{"line_number":391,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":392,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":393,"context_line":"                namespace\u003dparsed_args.namespace,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_3229119b","line":390,"range":{"start_line":390,"start_character":21,"end_line":390,"end_character":52},"updated":"2020-05-06 16:43:48.000000000","message":"base\u003dparsed_args.type,","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a53087984d2177ac53f6b15d762a29d555223581","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            bb \u003d buildah.BuildahBuilder("},{"line_number":388,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":389,"context_line":"                deps\u003dimages_tree,"},{"line_number":390,"context_line":"                base\u003dparsed_args.base.split(\":\")[0],"},{"line_number":391,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":392,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":393,"context_line":"                namespace\u003dparsed_args.namespace,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_55e64746","line":390,"range":{"start_line":390,"start_character":21,"end_line":390,"end_character":52},"in_reply_to":"1f493fa4_3229119b","updated":"2020-05-06 16:49:05.000000000","message":"Done","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cb14519416a329de68c158ec44cf8968055f7bc8","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":389,"context_line":"                deps\u003dimages_tree,"},{"line_number":390,"context_line":"                base\u003dparsed_args.base.split(\":\")[0],"},{"line_number":391,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":392,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":393,"context_line":"                namespace\u003dparsed_args.namespace,"},{"line_number":394,"context_line":"                registry_address\u003dparsed_args.registry,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_f259695b","line":391,"range":{"start_line":391,"start_character":25,"end_line":391,"end_character":41},"updated":"2020-05-06 16:43:48.000000000","message":"False","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a53087984d2177ac53f6b15d762a29d555223581","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":389,"context_line":"                deps\u003dimages_tree,"},{"line_number":390,"context_line":"                base\u003dparsed_args.base.split(\":\")[0],"},{"line_number":391,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":392,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":393,"context_line":"                namespace\u003dparsed_args.namespace,"},{"line_number":394,"context_line":"                registry_address\u003dparsed_args.registry,"}],"source_content_type":"text/x-python","patch_set":33,"id":"1f493fa4_f5d67353","line":391,"range":{"start_line":391,"start_character":25,"end_line":391,"end_character":41},"in_reply_to":"1f493fa4_f259695b","updated":"2020-05-06 16:49:05.000000000","message":"Done","commit_id":"188181faf17b12cef89ef6dfa2572dece9742be5"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"59ff88b172fd01230ddedc08f626399cbdac6661","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":396,"context_line":"                deps\u003dimages_tree,"},{"line_number":397,"context_line":"                base\u003dparsed_args.prefix,"},{"line_number":398,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":399,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":400,"context_line":"                namespace\u003dparsed_args.namespace,"},{"line_number":401,"context_line":"                registry_address\u003dparsed_args.registry,"}],"source_content_type":"text/x-python","patch_set":34,"id":"1f493fa4_95044fc8","line":398,"range":{"start_line":398,"start_character":16,"end_line":398,"end_character":42},"updated":"2020-05-06 16:52:29.000000000","message":"this will fail if someone changes the type. Because Dockerfiles won\u0027t be generated with a type in the name; so later when asking Buildah to build/push them it\u0027ll fail finding the name.\n\nlet\u0027s just hardcode it to False for now and remove the argument in parsed_args. If things change we\u0027ll re-add it but I think we\u0027ll end up without it.","commit_id":"7c9782509939fc18bd7e42bf1259eb7128c6cfc3"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e589d5a1784f1d2dbdc509e6ab00849e547695f2","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                work_dir\u003dwork_dir,"},{"line_number":396,"context_line":"                deps\u003dimages_tree,"},{"line_number":397,"context_line":"                base\u003dparsed_args.prefix,"},{"line_number":398,"context_line":"                img_type\u003dparsed_args.type,"},{"line_number":399,"context_line":"                tag\u003dparsed_args.tag,"},{"line_number":400,"context_line":"                namespace\u003dparsed_args.namespace,"},{"line_number":401,"context_line":"                registry_address\u003dparsed_args.registry,"}],"source_content_type":"text/x-python","patch_set":34,"id":"1f493fa4_35fd7bb1","line":398,"range":{"start_line":398,"start_character":16,"end_line":398,"end_character":42},"in_reply_to":"1f493fa4_95044fc8","updated":"2020-05-06 16:53:56.000000000","message":"Done","commit_id":"7c9782509939fc18bd7e42bf1259eb7128c6cfc3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"788a0a109b8ed608b85c36b97127d31adb993b35","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \"--volume\","},{"line_number":151,"context_line":"            dest\u003d\"volumes\","},{"line_number":152,"context_line":"            metavar\u003d\"\u003cvolume-path\u003e\","},{"line_number":153,"context_line":"            default\u003d[\"/etc/yum.repos.d:/etc/yum.repos.d:ro\"],"},{"line_number":154,"context_line":"            action\u003d\"append\","},{"line_number":155,"context_line":"            help\u003d_("},{"line_number":156,"context_line":"                \"Container bind mount used when building the image. Should \""}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_14aeb3e6","line":153,"range":{"start_line":153,"start_character":56,"end_line":153,"end_character":59},"updated":"2020-05-11 20:25:34.000000000","message":"maybe worth to add \",z\" for selinux","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"82a82bbbe22191a83ea97f89910f56faececc649","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \"--volume\","},{"line_number":151,"context_line":"            dest\u003d\"volumes\","},{"line_number":152,"context_line":"            metavar\u003d\"\u003cvolume-path\u003e\","},{"line_number":153,"context_line":"            default\u003d[\"/etc/yum.repos.d:/etc/yum.repos.d:ro\"],"},{"line_number":154,"context_line":"            action\u003d\"append\","},{"line_number":155,"context_line":"            help\u003d_("},{"line_number":156,"context_line":"                \"Container bind mount used when building the image. Should \""}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_bc936d4f","line":153,"range":{"start_line":153,"start_character":56,"end_line":153,"end_character":59},"in_reply_to":"ff570b3c_14aeb3e6","updated":"2020-05-11 21:56:07.000000000","message":"Done","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"788a0a109b8ed608b85c36b97127d31adb993b35","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            )"},{"line_number":386,"context_line":"            utils.makedirs(os.path.dirname(var_file))"},{"line_number":387,"context_line":"            with open(var_file, \"w\") as f:"},{"line_number":388,"context_line":"                f.write("},{"line_number":389,"context_line":"                    yaml.dump("},{"line_number":390,"context_line":"                        image_config, default_flow_style\u003dFalse, width\u003d4096"},{"line_number":391,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_9935dbdd","line":388,"range":{"start_line":388,"start_character":16,"end_line":388,"end_character":23},"updated":"2020-05-11 20:25:34.000000000","message":"no need to use write(), just:\n\n  yaml.safe_dump(..., f)","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"82a82bbbe22191a83ea97f89910f56faececc649","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            )"},{"line_number":386,"context_line":"            utils.makedirs(os.path.dirname(var_file))"},{"line_number":387,"context_line":"            with open(var_file, \"w\") as f:"},{"line_number":388,"context_line":"                f.write("},{"line_number":389,"context_line":"                    yaml.dump("},{"line_number":390,"context_line":"                        image_config, default_flow_style\u003dFalse, width\u003d4096"},{"line_number":391,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_3cf63d91","line":388,"range":{"start_line":388,"start_character":16,"end_line":388,"end_character":23},"in_reply_to":"ff570b3c_9935dbdd","updated":"2020-05-11 21:56:07.000000000","message":"Done","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"788a0a109b8ed608b85c36b97127d31adb993b35","unresolved":false,"context_lines":[{"line_number":386,"context_line":"            utils.makedirs(os.path.dirname(var_file))"},{"line_number":387,"context_line":"            with open(var_file, \"w\") as f:"},{"line_number":388,"context_line":"                f.write("},{"line_number":389,"context_line":"                    yaml.dump("},{"line_number":390,"context_line":"                        image_config, default_flow_style\u003dFalse, width\u003d4096"},{"line_number":391,"context_line":"                    )"},{"line_number":392,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_d9fe3304","line":389,"range":{"start_line":389,"start_character":25,"end_line":389,"end_character":29},"updated":"2020-05-11 20:25:34.000000000","message":"shouldn\u0027t be \"safe_dump\" like in line 407?","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"82a82bbbe22191a83ea97f89910f56faececc649","unresolved":false,"context_lines":[{"line_number":386,"context_line":"            utils.makedirs(os.path.dirname(var_file))"},{"line_number":387,"context_line":"            with open(var_file, \"w\") as f:"},{"line_number":388,"context_line":"                f.write("},{"line_number":389,"context_line":"                    yaml.dump("},{"line_number":390,"context_line":"                        image_config, default_flow_style\u003dFalse, width\u003d4096"},{"line_number":391,"context_line":"                    )"},{"line_number":392,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_bca52db8","line":389,"range":{"start_line":389,"start_character":25,"end_line":389,"end_character":29},"in_reply_to":"ff570b3c_d9fe3304","updated":"2020-05-11 21:56:07.000000000","message":"Done","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"788a0a109b8ed608b85c36b97127d31adb993b35","unresolved":false,"context_lines":[{"line_number":403,"context_line":"                }"},{"line_number":404,"context_line":"            ]"},{"line_number":405,"context_line":"            with open(playbook, \"w\") as f:"},{"line_number":406,"context_line":"                f.write("},{"line_number":407,"context_line":"                    yaml.safe_dump(containers_play, default_flow_style\u003dFalse)"},{"line_number":408,"context_line":"                )"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_d94c7378","line":406,"range":{"start_line":406,"start_character":16,"end_line":406,"end_character":24},"updated":"2020-05-11 20:25:34.000000000","message":"ditto","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"82a82bbbe22191a83ea97f89910f56faececc649","unresolved":false,"context_lines":[{"line_number":403,"context_line":"                }"},{"line_number":404,"context_line":"            ]"},{"line_number":405,"context_line":"            with open(playbook, \"w\") as f:"},{"line_number":406,"context_line":"                f.write("},{"line_number":407,"context_line":"                    yaml.safe_dump(containers_play, default_flow_style\u003dFalse)"},{"line_number":408,"context_line":"                )"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_9cf3099f","line":406,"range":{"start_line":406,"start_character":16,"end_line":406,"end_character":24},"in_reply_to":"ff570b3c_d94c7378","updated":"2020-05-11 21:56:07.000000000","message":"Done","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"788a0a109b8ed608b85c36b97127d31adb993b35","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                inventory\u003d\"localhost,\","},{"line_number":413,"context_line":"                workdir\u003dtmp,"},{"line_number":414,"context_line":"                playbook_dir\u003dtmp,"},{"line_number":415,"context_line":"                verbosity\u003dutils.playbook_verbosity(self\u003dself),"},{"line_number":416,"context_line":"            )"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        # Ensure anything not intended to be built is excluded"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_393dafbb","line":415,"range":{"start_line":415,"start_character":51,"end_line":415,"end_character":60},"updated":"2020-05-11 20:25:34.000000000","message":"is it correct?","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"82a82bbbe22191a83ea97f89910f56faececc649","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                inventory\u003d\"localhost,\","},{"line_number":413,"context_line":"                workdir\u003dtmp,"},{"line_number":414,"context_line":"                playbook_dir\u003dtmp,"},{"line_number":415,"context_line":"                verbosity\u003dutils.playbook_verbosity(self\u003dself),"},{"line_number":416,"context_line":"            )"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        # Ensure anything not intended to be built is excluded"}],"source_content_type":"text/x-python","patch_set":44,"id":"ff570b3c_dca0e1a8","line":415,"range":{"start_line":415,"start_character":51,"end_line":415,"end_character":60},"in_reply_to":"ff570b3c_393dafbb","updated":"2020-05-11 21:56:07.000000000","message":"yes.","commit_id":"8115a68b40f9a3559b1b31056ec048f105b51678"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e215c4d3efa21e6858afce75d679666f4b725787","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \"/usr\", \"share\", \"tripleo-common\", \"container-images\""},{"line_number":41,"context_line":"    )"},{"line_number":42,"context_line":"DEFAULT_CONFIG \u003d os.path.join(BASE_CONFIG, \"tripleo_containers.yaml\")"},{"line_number":43,"context_line":"DEFAULT_TCIB_CONFIG_BASE \u003d os.path.join(BASE_CONFIG, \"tcib\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class Build(command.Command):"}],"source_content_type":"text/x-python","patch_set":45,"id":"ff570b3c_d9ac5d8e","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":24},"updated":"2020-05-12 15:58:53.000000000","message":"we\u0027ll want a parameter for that so a third party can build their own images without tripleo-common.","commit_id":"1ce51e4b39476f8e7492f872655e020ab31d9570"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"098f737a25d6ab956a230a3a2b5a9fa5fb206f71","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        )"},{"line_number":116,"context_line":"        parser.add_argument("},{"line_number":117,"context_line":"            \"--options-apply\","},{"line_number":118,"context_line":"            dest\u003d\"options_apply\","},{"line_number":119,"context_line":"            metavar\u003d\"\u003coptions-apply\u003e\","},{"line_number":120,"context_line":"            help\u003d_("},{"line_number":121,"context_line":"                \"Apply options from within a given configuration YAML file \""}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_a59dda58","line":118,"range":{"start_line":118,"start_character":17,"end_line":118,"end_character":18},"updated":"2020-05-13 17:33:15.000000000","message":"i wonder if there is a better name for this one... --extra-config or something; I don\u0027t know. But \"options-apply\" doesn\u0027t sound familiar to me.","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"dec30c7e4490aa62c3c45ebe51c1304f1af2d8a3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        )"},{"line_number":116,"context_line":"        parser.add_argument("},{"line_number":117,"context_line":"            \"--options-apply\","},{"line_number":118,"context_line":"            dest\u003d\"options_apply\","},{"line_number":119,"context_line":"            metavar\u003d\"\u003coptions-apply\u003e\","},{"line_number":120,"context_line":"            help\u003d_("},{"line_number":121,"context_line":"                \"Apply options from within a given configuration YAML file \""}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_b7f3510a","line":118,"range":{"start_line":118,"start_character":17,"end_line":118,"end_character":18},"in_reply_to":"ff570b3c_a59dda58","updated":"2020-05-13 17:49:39.000000000","message":"Done","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"098f737a25d6ab956a230a3a2b5a9fa5fb206f71","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \"--tcib-config-path\","},{"line_number":149,"context_line":"            dest\u003d\"tcib_config_path\","},{"line_number":150,"context_line":"            metavar\u003d\"\u003ctcib-config-path\u003e\","},{"line_number":151,"context_line":"            default\u003dDEFAULT_TCIB_CONFIG_BASE,"},{"line_number":152,"context_line":"            help\u003d_("},{"line_number":153,"context_line":"                \"TripleO container build config path. Path to variable file \""},{"line_number":154,"context_line":"                \"collection used to construct container files.\""}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_45b83ec7","line":151,"updated":"2020-05-13 17:33:15.000000000","message":"let it be --config-path where we default to BASE_CONFIG.\nThe reason is that, as a third party I want my own directory of configs.\nI\u0027ll end up with 2 sub directories:\n* kolla\n* tcib","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"dec30c7e4490aa62c3c45ebe51c1304f1af2d8a3","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            \"--tcib-config-path\","},{"line_number":149,"context_line":"            dest\u003d\"tcib_config_path\","},{"line_number":150,"context_line":"            metavar\u003d\"\u003ctcib-config-path\u003e\","},{"line_number":151,"context_line":"            default\u003dDEFAULT_TCIB_CONFIG_BASE,"},{"line_number":152,"context_line":"            help\u003d_("},{"line_number":153,"context_line":"                \"TripleO container build config path. Path to variable file \""},{"line_number":154,"context_line":"                \"collection used to construct container files.\""}],"source_content_type":"text/x-python","patch_set":48,"id":"ff570b3c_97f60df9","line":151,"in_reply_to":"ff570b3c_45b83ec7","updated":"2020-05-13 17:49:39.000000000","message":"Done","commit_id":"5c67072fde6ee38d1557360df370a747ea9acff0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b2050abb28f431c2541fc7e11d24e5a22264a5bc","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            default\u003d\"latest\","},{"line_number":144,"context_line":"            help\u003d_(\"Image tag (default: latest).\"),"},{"line_number":145,"context_line":"        )"},{"line_number":146,"context_line":"        parser.add_argument("},{"line_number":147,"context_line":"            \"--tcib-config-path\","},{"line_number":148,"context_line":"            dest\u003d\"tcib_config_path\","},{"line_number":149,"context_line":"            metavar\u003d\"\u003ctcib-config-path\u003e\","},{"line_number":150,"context_line":"            default\u003dDEFAULT_TCIB_CONFIG_BASE,"},{"line_number":151,"context_line":"            help\u003d_("},{"line_number":152,"context_line":"                \"TripleO container build config path. Path to variable file \""},{"line_number":153,"context_line":"                \"collection used to construct container files.\""},{"line_number":154,"context_line":"            ),"},{"line_number":155,"context_line":"        )"},{"line_number":156,"context_line":"        parser.add_argument("},{"line_number":157,"context_line":"            \"--prefix\","},{"line_number":158,"context_line":"            dest\u003d\"prefix\","}],"source_content_type":"text/x-python","patch_set":49,"id":"ff570b3c_571755a4","line":155,"range":{"start_line":146,"start_character":0,"end_line":155,"end_character":9},"updated":"2020-05-13 18:13:22.000000000","message":"i think this is too complex.\nIMHO it would be enough to have:\n\n        parser.add_argument(\n            \"--base-config\",\n            dest\u003d\"base_config\",\n            metavar\u003d\"\u003cbase-config\u003e\",\n            default\u003dBASE_CONFIG,\n            help\u003d_(\n                \"Base configuration path. This directory must have the image configs and optional kolla files.\"\n            ),\n        )","commit_id":"6106b9a3f4195d1fdeab7493c57efbb0ab9b9832"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b2050abb28f431c2541fc7e11d24e5a22264a5bc","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            utils.makedirs(dir_path\u003dself.image_paths[tree])"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def take_action(self, parsed_args):"},{"line_number":325,"context_line":"        if parsed_args.base_config_path !\u003d BASE_CONFIG:"},{"line_number":326,"context_line":"            if parsed_args.config_file !\u003d DEFAULT_CONFIG:"},{"line_number":327,"context_line":"                parsed_args.config_file \u003d os.path.join("},{"line_number":328,"context_line":"                    parsed_args.base_config_path, \"tripleo_containers.yaml\""},{"line_number":329,"context_line":"                )"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"            if parsed_args.tcib_config_path !\u003d DEFAULT_TCIB_CONFIG_BASE:"},{"line_number":332,"context_line":"                parsed_args.tcib_config_path \u003d os.path.join("},{"line_number":333,"context_line":"                    parsed_args.base_config_path, \"tcib\""},{"line_number":334,"context_line":"                )"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":337,"context_line":"        excludes \u003d parsed_args.excludes"}],"source_content_type":"text/x-python","patch_set":49,"id":"ff570b3c_f76ca937","line":334,"range":{"start_line":325,"start_character":0,"end_line":334,"end_character":17},"updated":"2020-05-13 18:13:22.000000000","message":"i want to avoid this. I don\u0027t think it\u0027s needed.\nWe basically have 2 use cases to support:\n\n1) Someone who wants to build from the tripleo defaults\n2) Someone who has their own directory which itself has kolla/tcib directories and files needed to build their images.","commit_id":"6106b9a3f4195d1fdeab7493c57efbb0ab9b9832"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"9685be2568aff819996b065d8effe79648204d41","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        files_config_path \u003d os.path.join("},{"line_number":338,"context_line":"            parsed_args.config_path, DEFAULT_TCIB_FILES_BASE"},{"line_number":339,"context_line":"        )"},{"line_number":340,"context_line":"        if not os.path.isdir(files_config_path):"},{"line_number":341,"context_line":"            raise IOError("},{"line_number":342,"context_line":"                \"Configuration directory {} was not found.\".format("},{"line_number":343,"context_line":"                    files_config_path"},{"line_number":344,"context_line":"                )"},{"line_number":345,"context_line":"            )"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        self.log.debug(\"take_action({})\".format(parsed_args))"},{"line_number":348,"context_line":"        excludes \u003d parsed_args.excludes"}],"source_content_type":"text/x-python","patch_set":51,"id":"ff570b3c_cda914de","line":345,"range":{"start_line":340,"start_character":0,"end_line":345,"end_character":13},"updated":"2020-05-13 19:29:52.000000000","message":"I think we don\u0027t need that because not all containers would have kolla files. Unless tripleo-ansible role or client requires the directory for some reason, do you think we can remove that check?","commit_id":"26ac0151adc25b0e1ed7b6afac380cfd4f359e4e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"1f4b0e92f55352762a9c3c77afad13b8a2b53dbe","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        files_config_path \u003d os.path.join("},{"line_number":338,"context_line":"            parsed_args.config_path, DEFAULT_TCIB_FILES_BASE"},{"line_number":339,"context_line":"        )"},{"line_number":340,"context_line":"        if not os.path.isdir(files_config_path):"},{"line_number":341,"context_line":"            raise IOError("},{"line_number":342,"context_line":"                \"Configuration directory {} was not found.\".format("},{"line_number":343,"context_line":"                    files_config_path"},{"line_number":344,"context_line":"                )"},{"line_number":345,"context_line":"            )"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        self.log.debug(\"take_action({})\".format(parsed_args))"},{"line_number":348,"context_line":"        excludes \u003d parsed_args.excludes"}],"source_content_type":"text/x-python","patch_set":51,"id":"ff570b3c_cd92b49f","line":345,"range":{"start_line":340,"start_character":0,"end_line":345,"end_character":13},"in_reply_to":"ff570b3c_cda914de","updated":"2020-05-13 19:31:08.000000000","message":"done.","commit_id":"26ac0151adc25b0e1ed7b6afac380cfd4f359e4e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6049ea5253cefe01327b8e0022a4489d065508be","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                for file_name in sorted(files):"},{"line_number":247,"context_line":"                    if file_name.endswith((\"yaml\", \"yml\")):"},{"line_number":248,"context_line":"                        _option_file \u003d os.path.join(root, file_name)"},{"line_number":249,"context_line":"                        self.log.debug(\"reading option file: {}\".format(_option_file))"},{"line_number":250,"context_line":"                        with open(_option_file) as f:"},{"line_number":251,"context_line":"                            _options \u003d yaml.safe_load(f)"},{"line_number":252,"context_line":"                        if _options:"}],"source_content_type":"text/x-python","patch_set":54,"id":"ff570b3c_a6831dcc","line":249,"updated":"2020-05-13 22:53:54.000000000","message":"pep8: E501 line too long (86 \u003e 79 characters)","commit_id":"de19d0fd99383356bd462dcdea14d0ade5c63d0d"}]}
