)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"91e6b134e57c9f8cb552762b7abb0515fa273110","unresolved":false,"context_lines":[{"line_number":10,"context_line":"expression is valid. Also, if password regular expression is set, checks"},{"line_number":11,"context_line":"if the description is set."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: Ibdef927aec4fd2a628ddb3e438f2fe34082e9ac1"},{"line_number":14,"context_line":"Change-Id: Id4123b6a126aa57a672c5ae0428c1c5cef81cbbf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa7ab95a_da05cdc2","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":53},"updated":"2016-08-26 17:14:22.000000000","message":"you don\u0027t need this if it\u0027s in the same repo. depends-on is only used for inter-repo dependencies","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"05b288dedd3a773952c30e8f389cc18197345d7e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"expression is valid. Also, if password regular expression is set, checks"},{"line_number":11,"context_line":"if the description is set."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: Ibdef927aec4fd2a628ddb3e438f2fe34082e9ac1"},{"line_number":14,"context_line":"Change-Id: Id4123b6a126aa57a672c5ae0428c1c5cef81cbbf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa7ab95a_64d79423","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":53},"in_reply_to":"fa7ab95a_da05cdc2","updated":"2016-08-29 03:16:10.000000000","message":"++","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"}],"keystone/cmd/doctor/security_compliance.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"572f21a9ab1a722247be784ff7c6ab2d04dc8327","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    message to explain why their requested password was insufficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Ensure `[security_compliance] password_regex_description` is set with a"},{"line_number":61,"context_line":"    description of your password regular expression in a language for humans."},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    return (CONF.security_compliance.password_regex and not"},{"line_number":64,"context_line":"            CONF.security_compliance.password_regex_description)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_ac4def3f","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":76},"updated":"2016-08-29 11:51:53.000000000","message":"the \"not\" check below only verifies that \"password_regex_description\" is not empty, right? How can you be sure it is \"readable for humans\"?\n\nI guess the problem is in the affirmative, so you just may just drop everything after \"`[security_compliance] password_regex_description` is set\"","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"6ebdaf31800dcce34106f145598a06c693e62da7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    message to explain why their requested password was insufficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Ensure `[security_compliance] password_regex_description` is set with a"},{"line_number":61,"context_line":"    description of your password regular expression in a language for humans."},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    return (CONF.security_compliance.password_regex and not"},{"line_number":64,"context_line":"            CONF.security_compliance.password_regex_description)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_c7075b16","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":76},"in_reply_to":"fa7ab95a_09207f47","updated":"2016-08-29 15:43:28.000000000","message":"Yes, you can set it to garbage. I\u0027m not testing that it is human readable, I\u0027m checking that the description is set (not empty). And if not set, show a warning message that describes the password_regex_description property.\n\nThus, if the description is not set, the intended purpose of this property is to set it with a human readable description. That\u0027s the warning message.  \n\nIf you still disagree, what would you suggest?","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c75a66807b14811687ecfb7a9353c63bcfc986f1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    message to explain why their requested password was insufficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Ensure `[security_compliance] password_regex_description` is set with a"},{"line_number":61,"context_line":"    description of your password regular expression in a language for humans."},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    return (CONF.security_compliance.password_regex and not"},{"line_number":64,"context_line":"            CONF.security_compliance.password_regex_description)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_cdb14a49","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":76},"in_reply_to":"fa7ab95a_ac4def3f","updated":"2016-08-29 13:10:22.000000000","message":"Yeah, that is the check, that if you\u0027ve set the password regular expression, but not the description (empty), it will display this warning.  Thus, if the description is empty, add a description of your regular expression in a language for humans:\nhttps://github.com/openstack/keystone/blob/master/keystone/conf/security_compliance.py#L121","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1734f02544ba18e6dfb9486510fd8cfd8cdaa232","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    message to explain why their requested password was insufficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Ensure `[security_compliance] password_regex_description` is set with a"},{"line_number":61,"context_line":"    description of your password regular expression in a language for humans."},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    return (CONF.security_compliance.password_regex and not"},{"line_number":64,"context_line":"            CONF.security_compliance.password_regex_description)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_0aa6aaad","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":76},"in_reply_to":"fa7ab95a_c7075b16","updated":"2016-08-29 16:04:15.000000000","message":"I\u0027m being pick about the \"in a language for human\" sentence in the test docstring :)\n\nLooks overall anyway","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"4df1b3517378db0e1dfddae2dba4e92240be48cd","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    message to explain why their requested password was insufficient."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Ensure `[security_compliance] password_regex_description` is set with a"},{"line_number":61,"context_line":"    description of your password regular expression in a language for humans."},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    return (CONF.security_compliance.password_regex and not"},{"line_number":64,"context_line":"            CONF.security_compliance.password_regex_description)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_09207f47","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":76},"in_reply_to":"fa7ab95a_cdb14a49","updated":"2016-08-29 14:44:01.000000000","message":"although the description of the config says it should be \"readable for humans\", I can simply set \"#*!\u0026@#*(!\u0026@#*(\u0026\" it will be a valid description (not empty), but not \"readable for humans\". I admit, I\u0027m focusing in technicality :)","commit_id":"3fad275ba5c7f999f0febfb9171c618da09fb52f"}]}
