)]}'
{"nova/api/openstack/placement/handlers/trait.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d65956cfe7f4496be88282dcdb1dd04c813880d2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        jsonschema.validate(name, CUSTOM_TRAIT)"},{"line_number":100,"context_line":"    except jsonschema.ValidationError:"},{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait must be within 255 \u0027"},{"line_number":103,"context_line":"              \u0027characters and include prefix \"CUSTOM_\" and use following \u0027"},{"line_number":104,"context_line":"              \u0027characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_b62652ba","line":102,"range":{"start_line":102,"start_character":59,"end_line":102,"end_character":65},"updated":"2017-11-30 20:22:51.000000000","message":"\"must be between 1 and 255 characters\"?\n\nIf you want to get specific about the actual schema.","commit_id":"a793772e0128066be2f4524cbb5e5e7392b0dd66"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"85581597fe4460266b03490e7998305ae9b0bcfe","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        jsonschema.validate(name, CUSTOM_TRAIT)"},{"line_number":100,"context_line":"    except jsonschema.ValidationError:"},{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait must be within 255 \u0027"},{"line_number":103,"context_line":"              \u0027characters and include prefix \"CUSTOM_\" and use following \u0027"},{"line_number":104,"context_line":"              \u0027characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fdefcce6","line":102,"range":{"start_line":102,"start_character":59,"end_line":102,"end_character":65},"in_reply_to":"df87a7cf_8f78d4f8","updated":"2017-12-03 22:59:55.000000000","message":"According to the schema, the minimum is 1 character.\nBut it is required to have \u0027CUSTOM_\u0027 prefix.\nThe minimum length is 8 characters actually.\nIMO, it is not necessary to mention the minimum length.","commit_id":"a793772e0128066be2f4524cbb5e5e7392b0dd66"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"e030de5b3a0df64662cd27f650f1aff011386cc6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        jsonschema.validate(name, CUSTOM_TRAIT)"},{"line_number":100,"context_line":"    except jsonschema.ValidationError:"},{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait must be within 255 \u0027"},{"line_number":103,"context_line":"              \u0027characters and include prefix \"CUSTOM_\" and use following \u0027"},{"line_number":104,"context_line":"              \u0027characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_d608b6da","line":102,"range":{"start_line":102,"start_character":59,"end_line":102,"end_character":65},"in_reply_to":"ff82abbf_b62652ba","updated":"2017-11-30 20:32:45.000000000","message":"\"... can be no longer than 255 characters ...\"","commit_id":"a793772e0128066be2f4524cbb5e5e7392b0dd66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"10abc77465c8c89e6aefb261744b0e37958ddce2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        jsonschema.validate(name, CUSTOM_TRAIT)"},{"line_number":100,"context_line":"    except jsonschema.ValidationError:"},{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait must be within 255 \u0027"},{"line_number":103,"context_line":"              \u0027characters and include prefix \"CUSTOM_\" and use following \u0027"},{"line_number":104,"context_line":"              \u0027characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_8f78d4f8","line":102,"range":{"start_line":102,"start_character":59,"end_line":102,"end_character":65},"in_reply_to":"ff82abbf_d608b6da","updated":"2017-12-02 01:26:19.000000000","message":"\"can be no longer than 255 characters\" doesn\u0027t address the minimum size restriction, which is 1, which is why I mentioned it.","commit_id":"a793772e0128066be2f4524cbb5e5e7392b0dd66"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"85581597fe4460266b03490e7998305ae9b0bcfe","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        jsonschema.validate(name, CUSTOM_TRAIT)"},{"line_number":100,"context_line":"    except jsonschema.ValidationError:"},{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait must be within 255 \u0027"},{"line_number":103,"context_line":"              \u0027characters and include prefix \"CUSTOM_\" and use following \u0027"},{"line_number":104,"context_line":"              \u0027characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fd1a6c15","line":102,"range":{"start_line":102,"start_character":59,"end_line":102,"end_character":65},"in_reply_to":"ff82abbf_d608b6da","updated":"2017-12-03 22:59:55.000000000","message":"Done","commit_id":"a793772e0128066be2f4524cbb5e5e7392b0dd66"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"54d86d138848af7aeffc64ca222fa4d85c79146f","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"TRAIT \u003d {"},{"line_number":29,"context_line":"    \"type\": \"string\","},{"line_number":30,"context_line":"    \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CUSTOM_TRAIT \u003d copy.deepcopy(TRAIT)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_e34aca7e","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":19},"updated":"2017-12-04 04:46:19.000000000","message":"maybe adjust this to 7 since CUSTOM_ is mandatory stuff?","commit_id":"b14dd0b221a91c26a47c96360dd2debab18d09a2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"15ed28fee3da256ab56b7a1612c566d5ebb8c81d","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"TRAIT \u003d {"},{"line_number":29,"context_line":"    \"type\": \"string\","},{"line_number":30,"context_line":"    \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CUSTOM_TRAIT \u003d copy.deepcopy(TRAIT)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_88e3c033","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":19},"in_reply_to":"df87a7cf_e34aca7e","updated":"2017-12-04 22:32:04.000000000","message":"It\u0027s used by SET_TRAITS_FOR_RP_SCHEMA, where CUSTOM_ is not mandatory.","commit_id":"b14dd0b221a91c26a47c96360dd2debab18d09a2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"15ed28fee3da256ab56b7a1612c566d5ebb8c81d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait can be no longer than \u0027"},{"line_number":103,"context_line":"              \u0027255 characters and must include prefix \"CUSTOM_\" and use \u0027"},{"line_number":104,"context_line":"              \u0027following characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    trait \u003d rp_obj.Trait(context)"},{"line_number":107,"context_line":"    trait.name \u003d name"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_a84a4424","line":104,"updated":"2017-12-04 22:32:04.000000000","message":"Try\n\nThe trait is invalid. A valid trait must be no longer than 255 characters, start with the prefix \"CUSTOM_\", and use the following characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\"","commit_id":"b14dd0b221a91c26a47c96360dd2debab18d09a2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1b08f073f3cbca55f68d6edcb10020b7e9e2421a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":102,"context_line":"            _(\u0027The trait is invalid. A valid trait can be no longer than \u0027"},{"line_number":103,"context_line":"              \u0027255 characters and must include prefix \"CUSTOM_\" and use \u0027"},{"line_number":104,"context_line":"              \u0027following characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\"\u0027))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    trait \u003d rp_obj.Trait(context)"},{"line_number":107,"context_line":"    trait.name \u003d name"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_59dd8b40","line":104,"in_reply_to":"df87a7cf_a84a4424","updated":"2017-12-05 02:12:53.000000000","message":"Done","commit_id":"b14dd0b221a91c26a47c96360dd2debab18d09a2"}]}
