)]}'
{"nova/api/openstack/compute/plugins/v3/consoles.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8a5fb77ef8fb269c349789400c831c74862c8748","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _translate_detail_keys(cons):"},{"line_number":37,"context_line":"    \"\"\"Coerces a console instance into proper dictionary format with"},{"line_number":38,"context_line":"    correctly mapped attributes \"\"\""},{"line_number":39,"context_line":"    pool \u003d cons[\u0027pool\u0027]"},{"line_number":40,"context_line":"    info \u003d {\u0027id\u0027: cons[\u0027id\u0027],"},{"line_number":41,"context_line":"            \u0027console_type\u0027: pool[\u0027console_type\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FYA8%3D","line":38,"updated":"2013-05-13 07:20:20.000000000","message":"I think in theory we prefer these doc comments to be single line, but I\u0027m not super freaked out.","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"558b260a052a5d20de805a4bec62764f01196338","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _translate_detail_keys(cons):"},{"line_number":37,"context_line":"    \"\"\"Coerces a console instance into proper dictionary format with"},{"line_number":38,"context_line":"    correctly mapped attributes \"\"\""},{"line_number":39,"context_line":"    pool \u003d cons[\u0027pool\u0027]"},{"line_number":40,"context_line":"    info \u003d {\u0027id\u0027: cons[\u0027id\u0027],"},{"line_number":41,"context_line":"            \u0027console_type\u0027: pool[\u0027console_type\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FWBg%3D","line":38,"in_reply_to":"AAAAOn%2F%2FYA8%3D","updated":"2013-05-14 03:49:13.000000000","message":"ok will fix on the next pass. Going to have to fix some other stuff up anyway","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8a5fb77ef8fb269c349789400c831c74862c8748","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def create(self, req, server_id):"},{"line_number":99,"context_line":"        \"\"\"Creates a new console.\"\"\""},{"line_number":100,"context_line":"        self.console_api.create_console("},{"line_number":101,"context_line":"                                req.environ[\u0027nova.context\u0027],"},{"line_number":102,"context_line":"                                server_id)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @wsgi.serializers(xml\u003dConsoleTemplate)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FYAw%3D","line":101,"updated":"2013-05-13 07:20:20.000000000","message":"Why the newline before this line? It will fit above, right?","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"558b260a052a5d20de805a4bec62764f01196338","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def create(self, req, server_id):"},{"line_number":99,"context_line":"        \"\"\"Creates a new console.\"\"\""},{"line_number":100,"context_line":"        self.console_api.create_console("},{"line_number":101,"context_line":"                                req.environ[\u0027nova.context\u0027],"},{"line_number":102,"context_line":"                                server_id)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @wsgi.serializers(xml\u003dConsoleTemplate)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FWBc%3D","line":101,"in_reply_to":"AAAAOn%2F%2FYAw%3D","updated":"2013-05-14 03:49:13.000000000","message":"yea it\u0027s a port of the V2 version but we might as well put format cleanups on the TODO list as well.","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"142c3d441d989abee0502b3f1ac7dd6425f44faa","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    version \u003d 1"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def get_resources(self):"},{"line_number":136,"context_line":"        parent \u003d {\u0027member_name\u0027: \u0027servers\u0027,"},{"line_number":137,"context_line":"                  \u0027collection_name\u0027: \u0027servers\u0027}"},{"line_number":138,"context_line":"        resources \u003d ["},{"line_number":139,"context_line":"            extensions.ResourceExtension("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FXjk%3D","line":136,"updated":"2013-05-13 13:25:09.000000000","message":"I didn\u0027t test, but looking at nova/api/openstack/compute/__init__.py this should be server (singular).\nI\u0027m -1 it just to get attention, if it\u0027s ok, I\u0027ll remove it at once.","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"558b260a052a5d20de805a4bec62764f01196338","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    version \u003d 1"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def get_resources(self):"},{"line_number":136,"context_line":"        parent \u003d {\u0027member_name\u0027: \u0027servers\u0027,"},{"line_number":137,"context_line":"                  \u0027collection_name\u0027: \u0027servers\u0027}"},{"line_number":138,"context_line":"        resources \u003d ["},{"line_number":139,"context_line":"            extensions.ResourceExtension("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FWBE%3D","line":136,"in_reply_to":"AAAAOn%2F%2FXjk%3D","updated":"2013-05-14 03:49:13.000000000","message":"This works because the the member_name for servers is now plural. Its a side effect of the way that core are now plugins and the plugin architecture uses the collection name for both the member_name and collection name for a  plugin (this is how V2 has done it).\n\nBut though I don\u0027t believe its makes a difference in practice I think I\u0027ll add a bit more infrastructure plumbing so we can retain the singular/plural for member vs collection name as I think that\u0027s the convention according to the docs I\u0027ve read.","commit_id":"ccd73f19decf5c57e9d5466eae7161807e383971"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7b88883e15182760cfc3d96bd73fc21db07b9c07","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.console_api \u003d console_api.API()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @wsgi.serializers(xml\u003dConsolesTemplate)"},{"line_number":89,"context_line":"    def index(self, req, server_id):"},{"line_number":90,"context_line":"        \"\"\"Returns a list of consoles for this instance.\"\"\""},{"line_number":91,"context_line":"        consoles \u003d self.console_api.get_consoles("},{"line_number":92,"context_line":"                                    req.environ[\u0027nova.context\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fz%2Fs%3D","line":89,"updated":"2013-05-22 14:18:39.000000000","message":"I notice non of the authorisation boiler plate. Has that moved somewhere else now?","commit_id":"7ffd2b5a3fe40b2a207892b5d984bd5ea5d04d19"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"cb78133efdaae5cb43fdc83f6c95a184937cb63a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.console_api \u003d console_api.API()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @wsgi.serializers(xml\u003dConsolesTemplate)"},{"line_number":89,"context_line":"    def index(self, req, server_id):"},{"line_number":90,"context_line":"        \"\"\"Returns a list of consoles for this instance.\"\"\""},{"line_number":91,"context_line":"        consoles \u003d self.console_api.get_consoles("},{"line_number":92,"context_line":"                                    req.environ[\u0027nova.context\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FyVc%3D","line":89,"in_reply_to":"AAAAPH%2F%2Fz%2Fs%3D","updated":"2013-05-23 01:29:49.000000000","message":"No, the auth stays the same. The reason there is no auth by default at the start of each method here is that the core API has never had that. And policy is essentially enforced at a lower level. Its a bit clearer thats how things have worked now that the core API files have been restructured to look a lot more like the rest of the API code.\n\nI have no opposition to adding extra per method policy auth support for the core API methods as well at a future date if there is consensus it would be useful.","commit_id":"7ffd2b5a3fe40b2a207892b5d984bd5ea5d04d19"}]}
