)]}'
{"keystone/common/sql/expand_repo/versions/015_expand_add_user_ignore_password_expiry.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"14d206af39e5dc9f2a1869cb0e9af95512a01343","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    meta \u003d sql.MetaData()"},{"line_number":18,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    user_table \u003d sql.Table(\u0027user\u0027, meta, autoload\u003dTrue)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    ignore_password_expire \u003d sql.Column("},{"line_number":23,"context_line":"        \u0027ignore_password_expiry\u0027, sql.Boolean, default\u003dFalse, nullable\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_d1ec4df5","line":20,"range":{"start_line":20,"start_character":28,"end_line":20,"end_character":32},"updated":"2017-01-23 15:27:25.000000000","message":"Lets add the new column to the local_user table instead, as this is only relevant to local users (sql identity backend).","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"}],"keystone/conf/security_compliance.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"05295d55a62874bc414c5fc0afed2acd2ae461e7","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"password_expires_ignore_user_ids \u003d cfg.ListOpt("},{"line_number":80,"context_line":"    \u0027password_expires_ignore_user_ids\u0027,"},{"line_number":81,"context_line":"    deprecated_name\u003d\u0027password_expires_ignore_user_ids\u0027,"},{"line_number":82,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":83,"context_line":"    deprecated_group\u003d\u0027security_compliance\u0027,"},{"line_number":84,"context_line":"    deprecated_reason\u003dutils.fmt(\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_794c7c9e","line":81,"range":{"start_line":81,"start_character":0,"end_line":81,"end_character":55},"updated":"2017-01-23 06:22:05.000000000","message":"i think you don\u0027t need this","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"79ff6828bcaaf5b10f3a715fee47120875edc15c","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"password_expires_ignore_user_ids \u003d cfg.ListOpt("},{"line_number":80,"context_line":"    \u0027password_expires_ignore_user_ids\u0027,"},{"line_number":81,"context_line":"    deprecated_name\u003d\u0027password_expires_ignore_user_ids\u0027,"},{"line_number":82,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":83,"context_line":"    deprecated_group\u003d\u0027security_compliance\u0027,"},{"line_number":84,"context_line":"    deprecated_reason\u003dutils.fmt(\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_d171ad45","line":81,"range":{"start_line":81,"start_character":0,"end_line":81,"end_character":55},"in_reply_to":"5a3905b3_794c7c9e","updated":"2017-01-23 15:21:55.000000000","message":"I\u0027ll check, if not needed I\u0027ll drop it.","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"05295d55a62874bc414c5fc0afed2acd2ae461e7","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027password_expires_ignore_user_ids\u0027,"},{"line_number":81,"context_line":"    deprecated_name\u003d\u0027password_expires_ignore_user_ids\u0027,"},{"line_number":82,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":83,"context_line":"    deprecated_group\u003d\u0027security_compliance\u0027,"},{"line_number":84,"context_line":"    deprecated_reason\u003dutils.fmt(\"\"\""},{"line_number":85,"context_line":"Functionality added as a per-user attribute \"ignore_password_expiry\" in Ocata."},{"line_number":86,"context_line":"Each user that should ignore password expiry should have the value set to"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_d9473075","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":43},"updated":"2017-01-23 06:22:05.000000000","message":"i think you don\u0027t need this","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"79ff6828bcaaf5b10f3a715fee47120875edc15c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027password_expires_ignore_user_ids\u0027,"},{"line_number":81,"context_line":"    deprecated_name\u003d\u0027password_expires_ignore_user_ids\u0027,"},{"line_number":82,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":83,"context_line":"    deprecated_group\u003d\u0027security_compliance\u0027,"},{"line_number":84,"context_line":"    deprecated_reason\u003dutils.fmt(\"\"\""},{"line_number":85,"context_line":"Functionality added as a per-user attribute \"ignore_password_expiry\" in Ocata."},{"line_number":86,"context_line":"Each user that should ignore password expiry should have the value set to"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_f1906945","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":43},"in_reply_to":"5a3905b3_d9473075","updated":"2017-01-23 15:21:55.000000000","message":"Same.","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"}],"keystone/identity/backends/sql_model.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"14d206af39e5dc9f2a1869cb0e9af95512a01343","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    _enabled \u003d sql.Column(\u0027enabled\u0027, sql.Boolean)"},{"line_number":36,"context_line":"    extra \u003d sql.Column(sql.JsonBlob())"},{"line_number":37,"context_line":"    default_project_id \u003d sql.Column(sql.String(64))"},{"line_number":38,"context_line":"    _ignore_password_expiry \u003d sql.Column("},{"line_number":39,"context_line":"        \u0027ignore_password_expiry\u0027, sql.Boolean, default\u003dFalse, nullable\u003dFalse,"},{"line_number":40,"context_line":"        server_default\u003dsqlalchemy.sql.expression.false())"},{"line_number":41,"context_line":"    local_user \u003d orm.relationship(\u0027LocalUser\u0027, uselist\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_31ae7181","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":27},"updated":"2017-01-23 15:27:25.000000000","message":"Again, this belongs in the local_user table; you could make it a hybrid property if you need to expose within the user object.","commit_id":"061cf2f9cf02bc3226849e1727f793b248bccecf"}]}
