)]}'
{"anchor/app.py":[{"author":{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},"change_message_id":"838e7600ad5f2eacb7a952aee633506c97c022cd","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":88,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":89,"context_line":"        print(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":90,"context_line":"        if len(validator_set) \u003d\u003d 0:"},{"line_number":91,"context_line":"            raise ConfigValidationException("},{"line_number":92,"context_line":"                \"Validator set \u003c{}\u003e is empty\".format(name))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_338d1f7c","line":89,"updated":"2015-04-27 16:54:34.000000000","message":"Would logger not be preferable to directly calling print here?","commit_id":"300273c43727426dce536a5c6272017f78a0f7ba"},{"author":{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},"change_message_id":"b73280d8c416fa4e4dc9cdb0bbb3ea8cc163f28a","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":88,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":89,"context_line":"        print(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":90,"context_line":"        if len(validator_set) \u003d\u003d 0:"},{"line_number":91,"context_line":"            raise ConfigValidationException("},{"line_number":92,"context_line":"                \"Validator set \u003c{}\u003e is empty\".format(name))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_b3a36f4f","line":89,"in_reply_to":"7ad32947_331d1fbe","updated":"2015-04-27 16:58:38.000000000","message":"In that case is this preferable to using the default logger? Which could be setup before the configuration is loaded?","commit_id":"300273c43727426dce536a5c6272017f78a0f7ba"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"5d5f88f0d68196050f02351385011b240295dbad","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":88,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":89,"context_line":"        print(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":90,"context_line":"        if len(validator_set) \u003d\u003d 0:"},{"line_number":91,"context_line":"            raise ConfigValidationException("},{"line_number":92,"context_line":"                \"Validator set \u003c{}\u003e is empty\".format(name))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_331d1fbe","line":89,"in_reply_to":"7ad32947_338d1f7c","updated":"2015-04-27 16:56:59.000000000","message":"it would be, but its not configured at this point. This check is part of validating the config that also configures logging","commit_id":"300273c43727426dce536a5c6272017f78a0f7ba"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"05ba0ec29c753f68e66bea1186d776ddaa949c31","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":88,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":89,"context_line":"        print(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":90,"context_line":"        if len(validator_set) \u003d\u003d 0:"},{"line_number":91,"context_line":"            raise ConfigValidationException("},{"line_number":92,"context_line":"                \"Validator set \u003c{}\u003e is empty\".format(name))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_d61ff959","line":89,"in_reply_to":"7ad32947_b3a36f4f","updated":"2015-04-27 17:03:38.000000000","message":"yes, your absolutely right. I\u0027ll make the change, thanks!","commit_id":"300273c43727426dce536a5c6272017f78a0f7ba"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"c73572dc6cae222ecaf03af4f69cbda9dd902942","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    if not hasattr(conf, \"validators\"):"},{"line_number":88,"context_line":"        raise ConfigValidationException(\"No validators configured\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":91,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":92,"context_line":"        logger.info(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":93,"context_line":"        if len(validator_set) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_a64f6fbc","line":90,"updated":"2015-05-01 11:03:35.000000000","message":"This should be log not print","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"b1c2a3bcf060a66c0b8efe2bb6d793261f9d7779","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    if not hasattr(conf, \"validators\"):"},{"line_number":88,"context_line":"        raise ConfigValidationException(\"No validators configured\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    print(\"Found {} validator sets.\".format(len(conf.validators)))"},{"line_number":91,"context_line":"    for name, validator_set in conf.validators.iteritems():"},{"line_number":92,"context_line":"        logger.info(\"Checking validator set \u003c{}\u003e ....\".format(name))"},{"line_number":93,"context_line":"        if len(validator_set) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_25de6add","line":90,"in_reply_to":"3acd31a7_a64f6fbc","updated":"2015-05-05 11:44:59.000000000","message":"Done, good catch!","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"c73572dc6cae222ecaf03af4f69cbda9dd902942","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    \"unknown validator \u003c{}\u003e\".format(name, step))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    config_check_domains(validator_set)"},{"line_number":104,"context_line":"    logger.info(\"OK\")"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def check_default_auth(conf):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_c6502b61","line":104,"updated":"2015-05-01 11:03:35.000000000","message":"\"OK\" - can we elaborate on this, won\u0027t make much sense in context of a log file otherwise.","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"b1c2a3bcf060a66c0b8efe2bb6d793261f9d7779","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    \"unknown validator \u003c{}\u003e\".format(name, step))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    config_check_domains(validator_set)"},{"line_number":104,"context_line":"    logger.info(\"OK\")"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def check_default_auth(conf):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_45d4c6bb","line":104,"in_reply_to":"3acd31a7_c6502b61","updated":"2015-05-05 11:44:59.000000000","message":"Done","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"}],"anchor/certificate_ops.py":[{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"c73572dc6cae222ecaf03af4f69cbda9dd902942","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"Parse the validator tuple, call the validator, and return result."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"       :param name: the validator name"},{"line_number":67,"context_line":"       :param step: validator body, directly from config"},{"line_number":68,"context_line":"       :param args: additional arguments to pass to the validator function"},{"line_number":69,"context_line":"       :return: True on success, else False"},{"line_number":70,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_e6dc47e6","line":67,"updated":"2015-05-01 11:03:35.000000000","message":"s/step/body/","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"b1c2a3bcf060a66c0b8efe2bb6d793261f9d7779","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"Parse the validator tuple, call the validator, and return result."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"       :param name: the validator name"},{"line_number":67,"context_line":"       :param step: validator body, directly from config"},{"line_number":68,"context_line":"       :param args: additional arguments to pass to the validator function"},{"line_number":69,"context_line":"       :return: True on success, else False"},{"line_number":70,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_e54cf2c9","line":67,"in_reply_to":"3acd31a7_e6dc47e6","updated":"2015-05-05 11:44:59.000000000","message":"Done","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"c73572dc6cae222ecaf03af4f69cbda9dd902942","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    for name, vset in jsonloader.conf.validators.iteritems():"},{"line_number":110,"context_line":"        logger.debug(\"validate_csr: checking {}\".format(name))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        results \u003d [_run_validator(x, y, args) for x, y in vset.iteritems()]"},{"line_number":113,"context_line":"        results.append(valid)  # track previous failures"},{"line_number":114,"context_line":"        valid \u003d all(results)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_86e1139d","line":112,"updated":"2015-05-01 11:03:35.000000000","message":"better names than x and y would be preferable.","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"b1c2a3bcf060a66c0b8efe2bb6d793261f9d7779","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    for name, vset in jsonloader.conf.validators.iteritems():"},{"line_number":110,"context_line":"        logger.debug(\"validate_csr: checking {}\".format(name))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        results \u003d [_run_validator(x, y, args) for x, y in vset.iteritems()]"},{"line_number":113,"context_line":"        results.append(valid)  # track previous failures"},{"line_number":114,"context_line":"        valid \u003d all(results)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_65cfc229","line":112,"in_reply_to":"3acd31a7_86e1139d","updated":"2015-05-05 11:44:59.000000000","message":"this is replaced in the patch following this one, so no need to change it here.","commit_id":"bd7063af5c03d0a3a92494fd3bba46f02b1cea49"}]}
