)]}'
{"keystone/common/config.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf6f94b41e0f83857d2f2128dd15cbe3996689c6","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                        \u0027back to using default dereferencing configured by \u0027"},{"line_number":381,"context_line":"                        \u0027your ldap.conf.\u0027),"},{"line_number":382,"context_line":"        cfg.StrOpt(\u0027user_tree_dn\u0027, default\u003dNone,"},{"line_number":383,"context_line":"                   help\u003d\u0027Search base for user objects\u0027),"},{"line_number":384,"context_line":"        cfg.StrOpt(\u0027user_filter\u0027, default\u003dNone,"},{"line_number":385,"context_line":"                   help\u003d\u0027LDAP search filter for user objects\u0027),"},{"line_number":386,"context_line":"        cfg.StrOpt(\u0027user_objectclass\u0027, default\u003d\u0027inetOrgPerson\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F9DA%3D","line":383,"updated":"2014-02-23 16:19:41.000000000","message":"suggest remove \"objects\" from all these help options. Unless system administrators are schooled in object-oriented programming it\u0027s just going to confuse.","commit_id":"d69738d353e9eb7612609c583e31e7d7ff350b1d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf6f94b41e0f83857d2f2128dd15cbe3996689c6","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        cfg.ListOpt(\u0027user_attribute_ignore\u0027,"},{"line_number":401,"context_line":"                    default\u003d[\u0027default_project_id\u0027, \u0027tenants\u0027],"},{"line_number":402,"context_line":"                    help\u003d\u0027List of attributes stripped out of the user object \u0027"},{"line_number":403,"context_line":"                         \u0027on user update for LDAP backends\u0027),"},{"line_number":404,"context_line":"        cfg.StrOpt(\u0027user_default_project_id_attribute\u0027, default\u003dNone,"},{"line_number":405,"context_line":"                   help\u003d\u0027LDAP attribute mapped to default_project_id for \u0027"},{"line_number":406,"context_line":"                        \u0027users\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F9EE%3D","line":403,"updated":"2014-02-23 16:19:41.000000000","message":"suggest remove \"for LDAP backends\" -- this wasn\u0027t mentioned on any of the other options, and it really only applies to the LDAP identity backend.","commit_id":"d69738d353e9eb7612609c583e31e7d7ff350b1d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf6f94b41e0f83857d2f2128dd15cbe3996689c6","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        cfg.StrOpt(\u0027user_enabled_emulation_dn\u0027, default\u003dNone),"},{"line_number":415,"context_line":"        cfg.ListOpt(\u0027user_additional_attribute_mapping\u0027,"},{"line_number":416,"context_line":"                    default\u003d[],"},{"line_number":417,"context_line":"                    help\u003d\u0027List of additional LDAP attributes used for mapping \u0027"},{"line_number":418,"context_line":"                         \u0027values stored in the user object\u0027),"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        cfg.StrOpt(\u0027tenant_tree_dn\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F9Dc%3D","line":417,"updated":"2014-02-23 16:19:41.000000000","message":"suggest make this\n\n Additional attribute mappings for users. Attribute mapping format is\n \u003cldap_attr\u003e:\u003cuser_attr\u003e, where ldap_attr is the attribute in the LDAP entry\n and user_attr is the Identity API attribute.\n\nThis applies to the other *_additional_attribute_mapping options.","commit_id":"d69738d353e9eb7612609c583e31e7d7ff350b1d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf6f94b41e0f83857d2f2128dd15cbe3996689c6","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                         \u0027values stored in the user object\u0027),"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        cfg.StrOpt(\u0027tenant_tree_dn\u0027, default\u003dNone,"},{"line_number":421,"context_line":"                   help\u003d\u0027Search base for tenant objects\u0027),"},{"line_number":422,"context_line":"        cfg.StrOpt(\u0027tenant_filter\u0027, default\u003dNone,"},{"line_number":423,"context_line":"                   help\u003d\u0027LDAP search filter for tenant objects\u0027),"},{"line_number":424,"context_line":"        cfg.StrOpt(\u0027tenant_objectclass\u0027, default\u003d\u0027groupOfNames\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F9DY%3D","line":421,"updated":"2014-02-23 16:19:41.000000000","message":"change \"tenant\" to \"project\". This applies to all these options.","commit_id":"d69738d353e9eb7612609c583e31e7d7ff350b1d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf6f94b41e0f83857d2f2128dd15cbe3996689c6","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                         \u0027values stored in the group object\u0027),"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        cfg.StrOpt(\u0027tls_cacertfile\u0027, default\u003dNone,"},{"line_number":509,"context_line":"                   help\u003d\u0027CA Certificate File Path for communicating with \u0027"},{"line_number":510,"context_line":"                        \u0027LDAP servers\u0027),"},{"line_number":511,"context_line":"        cfg.StrOpt(\u0027tls_cacertdir\u0027, default\u003dNone,"},{"line_number":512,"context_line":"                   help\u003d\u0027CA Certificate Directory Path for communicating with \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F9C0%3D","line":509,"updated":"2014-02-23 16:19:41.000000000","message":"lowercase \"certificate file path\" -- this applies to all these options","commit_id":"d69738d353e9eb7612609c583e31e7d7ff350b1d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3e7e2be1f506f9a8f6275f45f764bd6a69061cb3","unresolved":false,"context_lines":[{"line_number":420,"context_line":"                         \u0027user_attr is the Identity API attribute.\u0027),"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        cfg.StrOpt(\u0027tenant_tree_dn\u0027, default\u003dNone,"},{"line_number":423,"context_line":"                   help\u003d\u0027Search base for project objects\u0027),"},{"line_number":424,"context_line":"        cfg.StrOpt(\u0027tenant_filter\u0027, default\u003dNone,"},{"line_number":425,"context_line":"                   help\u003d\u0027LDAP search filter for projects\u0027),"},{"line_number":426,"context_line":"        cfg.StrOpt(\u0027tenant_objectclass\u0027, default\u003d\u0027groupOfNames\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2F17E%3D","line":423,"updated":"2014-02-24 14:55:19.000000000","message":"Should this be \"Search base for projects\"?","commit_id":"415883dfa0652a93e0a44226873589be80239d30"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3e7e2be1f506f9a8f6275f45f764bd6a69061cb3","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                         \u0027user_attr is the Identity API attribute.\u0027),"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        cfg.StrOpt(\u0027group_tree_dn\u0027, default\u003dNone,"},{"line_number":488,"context_line":"                   help\u003d\u0027Search base for group objects\u0027),"},{"line_number":489,"context_line":"        cfg.StrOpt(\u0027group_filter\u0027, default\u003dNone,"},{"line_number":490,"context_line":"                   help\u003d\u0027LDAP search filter for groups\u0027),"},{"line_number":491,"context_line":"        cfg.StrOpt(\u0027group_objectclass\u0027, default\u003d\u0027groupOfNames\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAU3%2F%2F15M%3D","line":488,"updated":"2014-02-24 14:55:19.000000000","message":"Should this be \"Search base for groups\"?","commit_id":"415883dfa0652a93e0a44226873589be80239d30"}]}
