)]}'
{"doc/source/extension_development.rst":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"7b406eb456fb8812eda27c9d4ec674273869f369","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"                         \\\\\\  __init__.py          (mandatory)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"                         \\\\\\  configuration.rst    (mandatory)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"                         \\\\\\  core.py              (mandatory)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUH%2F%2B%2FRw%3D","line":41,"updated":"2014-01-20 01:40:53.000000000","message":"The configuration.rst should really be placed in the keystone/doc location like oauth, etc and linked from the main configuration.rst.  The example one is in contrib/example because it is convienent.  Since we are doing the cleanup here, we likely should also make sure new extensions are linked in as expected.  Likely this can be made a separate \"specific\" update to the documentation (as it is not in the scope as outlined by the commit message)","commit_id":"7ddc5cd1a316234b27997921a1f8c4c9bd22b1aa"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"219609d81e9afb82b3ce353164d6dd1b331041b3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  ``keystone.conf.sample`` file, these should be kept disabled as default and"},{"line_number":59,"context_line":"  have their own section."},{"line_number":60,"context_line":"- If configuration changes are required/introduced in the"},{"line_number":61,"context_line":"  ``keystone-paste.ini``, the new filter must be declared."},{"line_number":62,"context_line":"- The module may register to listen to events by declaring the corresponding"},{"line_number":63,"context_line":"  callbacks in the ``core.py`` file."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAUH%2F%2BXXU%3D","line":61,"updated":"2014-01-27 17:36:35.000000000","message":"Also write, `whenever possible, the new extension should not be included in any pipeline by default.`  ... just read a bit further down that it\u0027s mentioned at line 109ish, but i think it\u0027s worth mentioning again, i\u0027ve seen it happen a few times now.","commit_id":"ae9992f1882d97d010f47ff6c8998b8aa2296d0e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"219609d81e9afb82b3ce353164d6dd1b331041b3","unresolved":false,"context_lines":[{"line_number":62,"context_line":"- The module may register to listen to events by declaring the corresponding"},{"line_number":63,"context_line":"  callbacks in the ``core.py`` file."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"`keystone.conf.sample` File"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"In the case an Extension needs to change the ``keystone.conf.sample`` file, it"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAUH%2F%2BXX0%3D","line":65,"updated":"2014-01-27 17:36:35.000000000","message":"suggest \"Modifying `keystone.conf.sample`\" instead?\nsame for line 95","commit_id":"ae9992f1882d97d010f47ff6c8998b8aa2296d0e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"219609d81e9afb82b3ce353164d6dd1b331041b3","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"``routers.py`` have the objective of routing the HTTP requests and direct them to"},{"line_number":149,"context_line":"the right method within the ``Controllers``. Extension routers are extending the"},{"line_number":150,"context_line":"``wsgi.ExtensionRouter``."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Example:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAUH%2F%2BXWc%3D","line":149,"updated":"2014-01-27 17:36:35.000000000","message":"nit: s/right/correct.","commit_id":"ae9992f1882d97d010f47ff6c8998b8aa2296d0e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"219609d81e9afb82b3ce353164d6dd1b331041b3","unresolved":false,"context_lines":[{"line_number":249,"context_line":"- ``group``"},{"line_number":250,"context_line":"- ``project``"},{"line_number":251,"context_line":"- ``role``"},{"line_number":252,"context_line":"- ``user``"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"The extension\u0027s ``Manager`` class must contain the"},{"line_number":255,"context_line":"``event_callbacks`` attribute. It is a dictionary listing as keys"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAUH%2F%2BXVU%3D","line":252,"updated":"2014-01-27 17:36:35.000000000","message":"trusts too, now","commit_id":"ae9992f1882d97d010f47ff6c8998b8aa2296d0e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"219609d81e9afb82b3ce353164d6dd1b331041b3","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Example:"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":".. code:: python"},{"line_number":310,"context_line":"      def project_deleted_callback(self, service, resource_type, operation,"},{"line_number":311,"context_line":"                                   payload):"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAUH%2F%2BXVk%3D","line":309,"updated":"2014-01-27 17:36:35.000000000","message":"this code is not showing up on the webpage that jenkins produced for patch 3 - http://docs-draft.openstack.org/42/66642/3/check/gate-keystone-docs/e3cfc2a/doc/build/html/extension_development.html","commit_id":"ae9992f1882d97d010f47ff6c8998b8aa2296d0e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fd5da26a568a16162bd58730b0c6b71c8bc498e0","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"In case the Extension is overriding or re-implementing an existing portion of"},{"line_number":90,"context_line":"Keystone, the required change should be commented in the ``configuration.rst``"},{"line_number":91,"context_line":"but not placed in the `keystone.conf.sample` file to avoid unnecessary"},{"line_number":92,"context_line":"confusion."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Modifying the ``keystone-paste.ini`` File"}],"source_content_type":"text/x-rst","patch_set":5,"id":"AAAAUH%2F%2BHfs%3D","line":91,"updated":"2014-01-29 23:54:31.000000000","message":"could add `` around keystone.conf.sample here for consistency.","commit_id":"40f13df249b6e5e2331b8bc2f54657e64783a7e3"}]}
