)]}'
{"paunch/cmd.py":[{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"5844c1bfab73f42b20f8691cb14a9e9af7f74b2f","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from cliff import command"},{"line_number":17,"context_line":"from cliff import lister"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import paunch"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_c63fdb22","line":18,"updated":"2019-10-31 09:54:43.000000000","message":"Note sure with need this module anymore?","commit_id":"5df856426dc596545c92b7935a682f0d55c90178"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"1bef0a90194aa261542e52d6d1f2af19f03e3c62","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        conf_overrides \u003d []"},{"line_number":314,"context_line":"        if parsed_args.overrides:"},{"line_number":315,"context_line":"            conf_overrides \u003d json.loads(parsed_args.overrides)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        cconfig[container_name].update(conf_overrides)"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_5903cc0d","line":315,"range":{"start_line":315,"start_character":29,"end_line":315,"end_character":33},"updated":"2019-10-31 09:59:53.000000000","message":"we use json here.\n\nBTW pep8 would have complained about unused loaded modules.","commit_id":"5df856426dc596545c92b7935a682f0d55c90178"},{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"60fe2102e82628b66a2497cf5f43b130677f626c","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        conf_overrides \u003d []"},{"line_number":314,"context_line":"        if parsed_args.overrides:"},{"line_number":315,"context_line":"            conf_overrides \u003d json.loads(parsed_args.overrides)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        cconfig[container_name].update(conf_overrides)"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_394e106f","line":315,"range":{"start_line":315,"start_character":29,"end_line":315,"end_character":33},"in_reply_to":"3fa7e38b_5903cc0d","updated":"2019-10-31 10:01:11.000000000","message":"Ah right.\nAnd good to know for the pep8 check, thx","commit_id":"5df856426dc596545c92b7935a682f0d55c90178"}],"paunch/tests/test_utils_common.py":[{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"5f71761e38ddca1ba3e1af1274b0ef70d90f5ec6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.assertEqual(actual_list, expected_list)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_load_config_dir_with_name(self):"},{"line_number":40,"context_line":"        config \u003d tempfile.mkdtemp()"},{"line_number":41,"context_line":"        container \u003d \u0027haproxy\u0027"},{"line_number":42,"context_line":"        config_file \u003d {\u0027image\u0027: \u0027docker.io/haproxy\u0027}"},{"line_number":43,"context_line":"        expected_config \u003d {\u0027haproxy\u0027: {\u0027image\u0027: \u0027docker.io/haproxy\u0027}}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_2494c335","line":40,"updated":"2019-10-29 19:14:47.000000000","message":"I would add this to a setUp function so it can be torn down correctly. This leaks temp dirs. https://docs.python.org/2/library/tempfile.html#tempfile.mkdtemp","commit_id":"ef11b7fe88a51bdf12aac14bda9e4ee251e96700"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"74e889e5241ac08f6ca64c93aaa1ab489b6d0e32","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.assertEqual(actual_list, expected_list)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_load_config_dir_with_name(self):"},{"line_number":40,"context_line":"        config \u003d tempfile.mkdtemp()"},{"line_number":41,"context_line":"        container \u003d \u0027haproxy\u0027"},{"line_number":42,"context_line":"        config_file \u003d {\u0027image\u0027: \u0027docker.io/haproxy\u0027}"},{"line_number":43,"context_line":"        expected_config \u003d {\u0027haproxy\u0027: {\u0027image\u0027: \u0027docker.io/haproxy\u0027}}"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_1b731682","line":40,"in_reply_to":"3fa7e38b_2494c335","updated":"2019-10-30 14:58:41.000000000","message":"Done","commit_id":"ef11b7fe88a51bdf12aac14bda9e4ee251e96700"}],"paunch/utils/common.py":[{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"e9ba622f2d25dc4a93ad672415ff994a5cdc2ef0","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        # When the user gives a config directory and without container name,"},{"line_number":98,"context_line":"        # we return all container configs in that directory."},{"line_number":99,"context_line":"        else:"},{"line_number":100,"context_line":"            config_files \u003d [c_json for c_json in"},{"line_number":101,"context_line":"                            os.listdir(config)"},{"line_number":102,"context_line":"                            if c_json.startswith(\u0027hashed-\u0027)"},{"line_number":103,"context_line":"                            and c_json.endswith(\u0027.json\u0027)]"},{"line_number":104,"context_line":"            for cf in config_files:"},{"line_number":105,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":106,"context_line":"                    c \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(cf)[0])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_fa709fa6","line":103,"range":{"start_line":100,"start_character":12,"end_line":103,"end_character":57},"updated":"2019-10-28 10:31:26.000000000","message":"might be replaced by some \"glob\" instead?\nconfig_files \u003d glob.glob(config +\u0027/hashed-*.json\u0027)","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e559d09c6bd9c3f2f100b779ccbd342229dfa88b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        # When the user gives a config directory and without container name,"},{"line_number":98,"context_line":"        # we return all container configs in that directory."},{"line_number":99,"context_line":"        else:"},{"line_number":100,"context_line":"            config_files \u003d [c_json for c_json in"},{"line_number":101,"context_line":"                            os.listdir(config)"},{"line_number":102,"context_line":"                            if c_json.startswith(\u0027hashed-\u0027)"},{"line_number":103,"context_line":"                            and c_json.endswith(\u0027.json\u0027)]"},{"line_number":104,"context_line":"            for cf in config_files:"},{"line_number":105,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":106,"context_line":"                    c \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(cf)[0])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_5ae21332","line":103,"range":{"start_line":100,"start_character":12,"end_line":103,"end_character":57},"in_reply_to":"3fa7e38b_fa709fa6","updated":"2019-10-28 10:40:56.000000000","message":"Done","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"73b0f361a6004bde6c73b35baad296aeda824706","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                            and c_json.endswith(\u0027.json\u0027)]"},{"line_number":104,"context_line":"            for cf in config_files:"},{"line_number":105,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":106,"context_line":"                    c \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(cf)[0])"},{"line_number":107,"context_line":"                    container_config[c] \u003d {}"},{"line_number":108,"context_line":"                    container_config[c].update(yaml.safe_load(f))"},{"line_number":109,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_7a158f3c","line":106,"updated":"2019-10-28 10:27:56.000000000","message":"wouldn\u0027t something like that be less resource consuming?\nos.path.splitext(cf.replace(\u0027hashed-\u0027, \u0027\u0027))[0]","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e559d09c6bd9c3f2f100b779ccbd342229dfa88b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                            and c_json.endswith(\u0027.json\u0027)]"},{"line_number":104,"context_line":"            for cf in config_files:"},{"line_number":105,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":106,"context_line":"                    c \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(cf)[0])"},{"line_number":107,"context_line":"                    container_config[c] \u003d {}"},{"line_number":108,"context_line":"                    container_config[c].update(yaml.safe_load(f))"},{"line_number":109,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_3a895774","line":106,"in_reply_to":"3fa7e38b_7a158f3c","updated":"2019-10-28 10:40:56.000000000","message":"Done","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"73b0f361a6004bde6c73b35baad296aeda824706","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        else:"},{"line_number":135,"context_line":"            if not name:"},{"line_number":136,"context_line":"                # No name was given, we\u0027ll guess it with the file name"},{"line_number":137,"context_line":"                name \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(os.path.basename(config))[0])"},{"line_number":138,"context_line":"            with open(os.path.join(config), \u0027r\u0027) as f:"},{"line_number":139,"context_line":"                container_config[name] \u003d {}"},{"line_number":140,"context_line":"                container_config[name].update(yaml.safe_load(f))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_fa573f00","line":137,"updated":"2019-10-28 10:27:56.000000000","message":"same here","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e559d09c6bd9c3f2f100b779ccbd342229dfa88b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        else:"},{"line_number":135,"context_line":"            if not name:"},{"line_number":136,"context_line":"                # No name was given, we\u0027ll guess it with the file name"},{"line_number":137,"context_line":"                name \u003d re.sub(\u0027^hashed-\u0027, \u0027\u0027, os.path.splitext(os.path.basename(config))[0])"},{"line_number":138,"context_line":"            with open(os.path.join(config), \u0027r\u0027) as f:"},{"line_number":139,"context_line":"                container_config[name] \u003d {}"},{"line_number":140,"context_line":"                container_config[name].update(yaml.safe_load(f))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_1a849b5d","line":137,"in_reply_to":"3fa7e38b_fa573f00","updated":"2019-10-28 10:40:56.000000000","message":"Done","commit_id":"eb71f5895037a85e76367672469b911e9d1a3969"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"432e542c390f991825eb46b48f6411505b81a5bb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":"    return \"0-\" + str(psutil.cpu_count() - 1)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def load_config(config, name\u003dNone):"},{"line_number":90,"context_line":"    container_config \u003d {}"},{"line_number":91,"context_line":"    if os.path.isdir(config):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_46d2395e","line":88,"updated":"2019-10-28 17:12:58.000000000","message":"I need to find out where but the container name is wrong somewhere here:\n\n2019-10-28 13:37:20.316 62409 ERROR paunch [  ] Error running [\u0027podman\u0027, \u0027create\u0027, \u0027--name\u0027, \u0027/var/lib/tripleo-config/container-startup-config/step_1/rabbitmq\u0027, \u0027--label\u0027, \"config_id\u003d[\u0027tripleo_step1\u0027]\", \u0027--label\u0027, \u0027container_name\u003d/var/lib/tripleo-config/container-startup-config/step_1/rabbitmq\u0027, \u0027--label\u0027, \u0027managed_by\u003dtripleo-Undercloud\u0027, \u0027--label\u0027, \u0027config_data\u003d{\"start_order\": 2, \"stop_grace_period\": 60, \"healthcheck\": {\"test\": \"/openstack/healthcheck\"}, \"image\": \"192.168.24.1:8787/tripleomaster/centos-binary-rabbitmq:fb0bebe78838f7209f4502e71708450dc1e1eace_b5d86f59-updated-20191028130138\", \"environment\": {\"TRIPLEO_CONFIG_HASH\": \"d29c224b715da576dfcfbc7528ebb0b0\", \"KOLLA_CONFIG_STRATEGY\": \"COPY_ALWAYS\"}, \"volumes\": [\"/etc/hosts:/etc/hosts:ro\", \"/etc/localtime:/etc/localtime:ro\", \"/etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro\", \"/etc/pki/ca-trust/source/anchors:/etc/pki/ca-trust/source/anchors:ro\", \"/etc/pki/tls/certs/ca-bundle.crt:/etc/pki/tls/certs/ca-bundle.crt:ro\", \"/etc/pki/tls/certs/ca-bundle.trust.crt:/etc/pki/tls/certs/ca-bundle.trust.crt:ro\", \"/etc/pki/tls/cert.pem:/etc/pki/tls/cert.pem:ro\", \"/dev/log:/dev/log\", \"/etc/ssh/ssh_known_hosts:/etc/ssh/ssh_known_hosts:ro\", \"/etc/puppet:/etc/puppet:ro\", \"/var/lib/kolla/config_files/rabbitmq.json:/var/lib/kolla/config_files/config.json:ro\", \"/var/lib/config-data/puppet-generated/rabbitmq/:/var/lib/kolla/config_files/src:ro\", \"/var/lib/rabbitmq:/var/lib/rabbitmq:z\", \"/var/log/containers/rabbitmq:/var/log/rabbitmq:z\"], \"net\": \"host\", \"privileged\": false, \"restart\": \"always\"}\u0027, \u0027--conmon-pidfile\u003d/var/run//var/lib/tripleo-config/container-startup-config/step_1/rabbitmq.pid\u0027, \u0027--detach\u003dtrue\u0027, \u0027--log-driver\u0027, \u0027k8s-file\u0027, \u0027--log-opt\u0027, \u0027path\u003d/var/lib/tripleo-config/container-startup-config/step_1/rabbitmq.log\u0027, \u0027--env\u003dKOLLA_CONFIG_STRATEGY\u003dCOPY_ALWAYS\u0027, \u0027--env\u003dTRIPLEO_CONFIG_HASH\u003dd29c224b715da576dfcfbc7528ebb0b0\u0027, \u0027--net\u003dhost\u0027, \u0027--privileged\u003dfalse\u0027, \u0027--volume\u003d/etc/hosts:/etc/hosts:ro\u0027, \u0027--volume\u003d/etc/localtime:/etc/localtime:ro\u0027, \u0027--volume\u003d/etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro\u0027, \u0027--volume\u003d/etc/pki/ca-trust/source/anchors:/etc/pki/ca-trust/source/anchors:ro\u0027, \u0027--volume\u003d/etc/pki/tls/certs/ca-bundle.crt:/etc/pki/tls/certs/ca-bundle.crt:ro\u0027, \u0027--volume\u003d/etc/pki/tls/certs/ca-bundle.trust.crt:/etc/pki/tls/certs/ca-bundle.trust.crt:ro\u0027, \u0027--volume\u003d/etc/pki/tls/cert.pem:/etc/pki/tls/cert.pem:ro\u0027, \u0027--volume\u003d/dev/log:/dev/log\u0027, \u0027--volume\u003d/etc/ssh/ssh_known_hosts:/etc/ssh/ssh_known_hosts:ro\u0027, \u0027--volume\u003d/etc/puppet:/etc/puppet:ro\u0027, \u0027--volume\u003d/var/lib/kolla/config_files/rabbitmq.json:/var/lib/kolla/config_files/config.json:ro\u0027, \u0027--volume\u003d/var/lib/config-data/puppet-generated/rabbitmq/:/var/lib/kolla/config_files/src:ro\u0027, \u0027--volume\u003d/var/lib/rabbitmq:/var/lib/rabbitmq:z\u0027, \u0027--volume\u003d/var/log/containers/rabbitmq:/var/log/rabbitmq:z\u0027, \u0027--cpuset-cpus\u003d0,1,2,3,4,5,6,7\u0027, \u0027--stop-timeout\u003d60\u0027, \u0027192.168.24.1:8787/tripleomaster/centos-binary-rabbitmq:fb0bebe78838f7209f4502e71708450dc1e1eace_b5d86f59-updated-20191028130138\u0027]. [125]","commit_id":"bedf30e2b1fbb8939f37d0c4ccf1b25495ec009e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"f7c8542df9dcefccc3f3c45be6056f71c69c6c54","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        # When the user gives a config directory and without container name,"},{"line_number":99,"context_line":"        # we return all container configs in that directory."},{"line_number":100,"context_line":"        else:"},{"line_number":101,"context_line":"            config_files \u003d glob.glob(config + \u0027/hashed-*.json\u0027)"},{"line_number":102,"context_line":"            for cf in config_files:"},{"line_number":103,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":104,"context_line":"                    name \u003d os.path.basename(os.path.splitext("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_73e84315","line":101,"updated":"2019-10-29 16:46:19.000000000","message":"It can be more safer to use `os.path.join` here too, to avoid to handle path separator manually","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b8dd1794ac45529096735cddc972c294445e4430","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        # When the user gives a config directory and without container name,"},{"line_number":99,"context_line":"        # we return all container configs in that directory."},{"line_number":100,"context_line":"        else:"},{"line_number":101,"context_line":"            config_files \u003d glob.glob(config + \u0027/hashed-*.json\u0027)"},{"line_number":102,"context_line":"            for cf in config_files:"},{"line_number":103,"context_line":"                with open(os.path.join(config, cf), \u0027r\u0027) as f:"},{"line_number":104,"context_line":"                    name \u003d os.path.basename(os.path.splitext("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_6752b314","line":101,"in_reply_to":"3fa7e38b_73e84315","updated":"2019-10-30 11:12:49.000000000","message":"Done","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"f7c8542df9dcefccc3f3c45be6056f71c69c6c54","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # If a name is specified, we return the container config for that"},{"line_number":117,"context_line":"            # specific container."},{"line_number":118,"context_line":"            if name:"},{"line_number":119,"context_line":"                new_path \u003d \u0027/var/lib/tripleo-config/container_startup_\u0027 + \\"},{"line_number":120,"context_line":"                           \u0027config/\u0027 + \u0027step_\u0027 + step + \u0027/hashed-\u0027 + name + \\"},{"line_number":121,"context_line":"                           \u0027.json\u0027"},{"line_number":122,"context_line":"                with open(new_path, \u0027r\u0027) as f:"},{"line_number":123,"context_line":"                    container_config[name] \u003d {}"},{"line_number":124,"context_line":"                    container_config[name].update(yaml.safe_load(f))"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_735fe3e4","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":34},"updated":"2019-10-29 16:46:19.000000000","message":"Here too:\n\nnew_path \u003d os.path.join(\n    \u0027/var/lib/tripleo-config/container_startup_config\u0027,\n    \u0027step_\u0027 + step,\n    \u0027hashed-\u0027 + name  + \u0027.json\u0027)","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b8dd1794ac45529096735cddc972c294445e4430","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # If a name is specified, we return the container config for that"},{"line_number":117,"context_line":"            # specific container."},{"line_number":118,"context_line":"            if name:"},{"line_number":119,"context_line":"                new_path \u003d \u0027/var/lib/tripleo-config/container_startup_\u0027 + \\"},{"line_number":120,"context_line":"                           \u0027config/\u0027 + \u0027step_\u0027 + step + \u0027/hashed-\u0027 + name + \\"},{"line_number":121,"context_line":"                           \u0027.json\u0027"},{"line_number":122,"context_line":"                with open(new_path, \u0027r\u0027) as f:"},{"line_number":123,"context_line":"                    container_config[name] \u003d {}"},{"line_number":124,"context_line":"                    container_config[name].update(yaml.safe_load(f))"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_8757af01","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":34},"in_reply_to":"3fa7e38b_735fe3e4","updated":"2019-10-30 11:12:49.000000000","message":"Done","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"f7c8542df9dcefccc3f3c45be6056f71c69c6c54","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            # When no name is specified, we return all container configs in"},{"line_number":126,"context_line":"            # the file."},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                new_path \u003d \u0027/var/lib/tripleo-config/container_startup_\u0027 + \\"},{"line_number":129,"context_line":"                           \u0027config/\u0027 + \u0027step_\u0027 + step + \u0027/hashed-*.json\u0027"},{"line_number":130,"context_line":"                config_files \u003d glob.glob(new_path)"},{"line_number":131,"context_line":"                for cf in config_files:"},{"line_number":132,"context_line":"                    with open(os.path.join(config, cf), \u0027r\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_3355ebc2","line":129,"range":{"start_line":128,"start_character":16,"end_line":129,"end_character":72},"updated":"2019-10-29 16:46:19.000000000","message":"Here too","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b8dd1794ac45529096735cddc972c294445e4430","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            # When no name is specified, we return all container configs in"},{"line_number":126,"context_line":"            # the file."},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                new_path \u003d \u0027/var/lib/tripleo-config/container_startup_\u0027 + \\"},{"line_number":129,"context_line":"                           \u0027config/\u0027 + \u0027step_\u0027 + step + \u0027/hashed-*.json\u0027"},{"line_number":130,"context_line":"                config_files \u003d glob.glob(new_path)"},{"line_number":131,"context_line":"                for cf in config_files:"},{"line_number":132,"context_line":"                    with open(os.path.join(config, cf), \u0027r\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_87700fa6","line":129,"range":{"start_line":128,"start_character":16,"end_line":129,"end_character":72},"in_reply_to":"3fa7e38b_3355ebc2","updated":"2019-10-30 11:12:49.000000000","message":"Done","commit_id":"0271323c0f7e5bed7713c3a3a7ff1865f619f418"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"5f71761e38ddca1ba3e1af1274b0ef70d90f5ec6","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def load_config(config, name\u003dNone):"},{"line_number":90,"context_line":"    container_config \u003d {}"},{"line_number":91,"context_line":"    if os.path.isdir(config):"},{"line_number":92,"context_line":"        # When the user gives a config directory and specify a container name,"},{"line_number":93,"context_line":"        # we return the container config for that specific container."},{"line_number":94,"context_line":"        if name:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_c4a4cfa5","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":29},"updated":"2019-10-29 19:14:47.000000000","message":"you can test backwards compatibility by mocking os.path.isdir so it returns false.","commit_id":"ef11b7fe88a51bdf12aac14bda9e4ee251e96700"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"74e889e5241ac08f6ca64c93aaa1ab489b6d0e32","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def load_config(config, name\u003dNone):"},{"line_number":90,"context_line":"    container_config \u003d {}"},{"line_number":91,"context_line":"    if os.path.isdir(config):"},{"line_number":92,"context_line":"        # When the user gives a config directory and specify a container name,"},{"line_number":93,"context_line":"        # we return the container config for that specific container."},{"line_number":94,"context_line":"        if name:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_5b550ec1","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":29},"in_reply_to":"3fa7e38b_c4a4cfa5","updated":"2019-10-30 14:58:41.000000000","message":"Done","commit_id":"ef11b7fe88a51bdf12aac14bda9e4ee251e96700"},{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"5844c1bfab73f42b20f8691cb14a9e9af7f74b2f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        if config.startswith(old_format):"},{"line_number":114,"context_line":"            step \u003d re.search(\u0027/var/lib/tripleo-config/\u0027"},{"line_number":115,"context_line":"                             \u0027hashed-container-startup-config-step\u0027"},{"line_number":116,"context_line":"                             \u0027_(.+?)?.json\u0027, config).group(1)"},{"line_number":117,"context_line":"            # If a name is specified, we return the container config for that"},{"line_number":118,"context_line":"            # specific container."},{"line_number":119,"context_line":"            if name:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_46bf6b60","line":116,"updated":"2019-10-31 09:54:43.000000000","message":"this regex would match /var/lib/tripleo-config/hashed-container-startup-config-step_.json, which we probably want to avoid.\n\nWhy not \u0027/var/lib/tripleo-config/hashed-container-startup-config-step_(.+).json\u0027 instead?","commit_id":"5df856426dc596545c92b7935a682f0d55c90178"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"1bef0a90194aa261542e52d6d1f2af19f03e3c62","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        if config.startswith(old_format):"},{"line_number":114,"context_line":"            step \u003d re.search(\u0027/var/lib/tripleo-config/\u0027"},{"line_number":115,"context_line":"                             \u0027hashed-container-startup-config-step\u0027"},{"line_number":116,"context_line":"                             \u0027_(.+?)?.json\u0027, config).group(1)"},{"line_number":117,"context_line":"            # If a name is specified, we return the container config for that"},{"line_number":118,"context_line":"            # specific container."},{"line_number":119,"context_line":"            if name:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_592c2c98","line":116,"in_reply_to":"3fa7e38b_46bf6b60","updated":"2019-10-31 09:59:53.000000000","message":"Done","commit_id":"5df856426dc596545c92b7935a682f0d55c90178"}]}
