)]}'
{"quantum/api/api_common.py":[{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # and the third element the xml namespace"},{"line_number":45,"context_line":"    xmlns \u003d controller_dict[version][2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    headers_serializer \u003d HeadersSerializer()"},{"line_number":48,"context_line":"    xml_serializer \u003d wsgi.XMLDictSerializer(metadata, xmlns)"},{"line_number":49,"context_line":"    json_serializer \u003d wsgi.JSONDictSerializer()"},{"line_number":50,"context_line":"    xml_deserializer \u003d wsgi.XMLDeserializer(metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4uE%3D","line":47,"updated":"2011-11-03 17:13:00.000000000","message":"This sounds kind of funny when you say it.. can you rename it to HeaderSerializer? (get rid of the s)","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # and the third element the xml namespace"},{"line_number":45,"context_line":"    xmlns \u003d controller_dict[version][2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    headers_serializer \u003d HeadersSerializer()"},{"line_number":48,"context_line":"    xml_serializer \u003d wsgi.XMLDictSerializer(metadata, xmlns)"},{"line_number":49,"context_line":"    json_serializer \u003d wsgi.JSONDictSerializer()"},{"line_number":50,"context_line":"    xml_deserializer \u003d wsgi.XMLDeserializer(metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4ic%3D","line":47,"in_reply_to":"AAAACX%2F%2F4uE%3D","updated":"2011-11-04 11:05:01.000000000","message":"Sure, no problem.","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def wrapper(func, **kwargs):"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        def theFunc(*args, **kwargs):"},{"line_number":74,"context_line":"            try:"},{"line_number":75,"context_line":"                return func(*args, **kwargs)"},{"line_number":76,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4uA%3D","line":73,"updated":"2011-11-03 17:13:00.000000000","message":"This kind of violates our style conventions.. should be the_func to be consistent with everything else","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def wrapper(func, **kwargs):"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        def theFunc(*args, **kwargs):"},{"line_number":74,"context_line":"            try:"},{"line_number":75,"context_line":"                return func(*args, **kwargs)"},{"line_number":76,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4iY%3D","line":73,"in_reply_to":"AAAACX%2F%2F4uA%3D","updated":"2011-11-04 11:05:01.000000000","message":"Will be done!","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    return wrapper"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class HeadersSerializer(wsgi.ResponseHeadersSerializer):"},{"line_number":88,"context_line":"    \"\"\""},{"line_number":89,"context_line":"    Defines default respone status codes for Quantum API operations"},{"line_number":90,"context_line":"        create - 202 ACCEPTED"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4t0%3D","line":87,"updated":"2011-11-03 17:13:00.000000000","message":"Can these get renamed to HeaderSerializer too please?","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    return wrapper"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class HeadersSerializer(wsgi.ResponseHeadersSerializer):"},{"line_number":88,"context_line":"    \"\"\""},{"line_number":89,"context_line":"    Defines default respone status codes for Quantum API operations"},{"line_number":90,"context_line":"        create - 202 ACCEPTED"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4iU%3D","line":87,"in_reply_to":"AAAACX%2F%2F4t0%3D","updated":"2011-11-04 11:05:01.000000000","message":"I will make sure there are no more \"sS\"","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"}],"quantum/api/versions.py":[{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            },"},{"line_number":37,"context_line":"            {"},{"line_number":38,"context_line":"                \"id\": \"v1.1\","},{"line_number":39,"context_line":"                \"status\": \"ESSEX\","},{"line_number":40,"context_line":"            },"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4to%3D","line":39,"updated":"2011-11-03 17:13:00.000000000","message":"I\u0027m not sure we should tie these to release names .. that would mean we have to rev these numbers with each openstack release?","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            },"},{"line_number":37,"context_line":"            {"},{"line_number":38,"context_line":"                \"id\": \"v1.1\","},{"line_number":39,"context_line":"                \"status\": \"ESSEX\","},{"line_number":40,"context_line":"            },"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4iQ%3D","line":39,"in_reply_to":"AAAACX%2F%2F4to%3D","updated":"2011-11-04 11:05:01.000000000","message":"I\u0027m not sure what you mean here. Anyway Diablo and Essex do not make a lot of sense for the \"status\" field.\n\nWill rename to \"PREVIOUS\" for 1.0 and \"CURRENT\" for 1.1","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"}],"quantum/common/wsgi.py":[{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Copyright 2011, Nicira Networks, Inc."},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4tQ%3D","side":"PARENT","line":4,"updated":"2011-11-03 17:13:00.000000000","message":"Nice that we\u0027re retaining the copyright but I think most of this stuff came from nova, right? :)","commit_id":"e767b8f4631eaa66fdf4eab91e6779fe3377f046"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Copyright 2011, Nicira Networks, Inc."},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4iI%3D","side":"PARENT","line":4,"in_reply_to":"AAAACX%2F%2F4tQ%3D","updated":"2011-11-04 11:05:01.000000000","message":"I will replace the Nicira copyright with the Openstack one. \nBut we should probably file a bug to fix the copyright statements as I think they\u0027re pretty much messed up.","commit_id":"e767b8f4631eaa66fdf4eab91e6779fe3377f046"}],"server/etc/quantum.conf":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":22,"context_line":"/v1.0: quantumapi10"},{"line_number":23,"context_line":"/v1.1: quantumapi11"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[pipeline:quantumapi10]"},{"line_number":26,"context_line":"# By default, authentication is disabled."},{"line_number":27,"context_line":"# To enable Keystone integration uncomment the "},{"line_number":28,"context_line":"# following line and comment the next one"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAACn%2F%2F8Mo%3D","line":25,"updated":"2011-11-29 00:38:39.000000000","message":"I\u0027m guessing we convert \"1.0\" to \"10\" because \".\"s aren\u0027t allowed.  Just seems ambiguous to me, if we for example, ever get version numbers that approach 10 or 11.  Are underscores allowed?  I know python-novaclient uses v1_0 and v1_1 .","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":22,"context_line":"/v1.0: quantumapi10"},{"line_number":23,"context_line":"/v1.1: quantumapi11"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[pipeline:quantumapi10]"},{"line_number":26,"context_line":"# By default, authentication is disabled."},{"line_number":27,"context_line":"# To enable Keystone integration uncomment the "},{"line_number":28,"context_line":"# following line and comment the next one"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAACn%2F%2F8K4%3D","line":25,"in_reply_to":"AAAACn%2F%2F8Mo%3D","updated":"2011-11-29 01:06:39.000000000","message":"I followed nova convention. When I branched out API names where Openstack10 and Openstack11. 1_0 and 1_1 sounds better though.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":29,"context_line":"pipeline \u003d extensions quantumapiapp10"},{"line_number":30,"context_line":"#pipeline \u003d authN extensions quantumapiapp10"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[pipeline:quantumapi11]"},{"line_number":33,"context_line":"# By default, authentication is disabled."},{"line_number":34,"context_line":"# To enable Keystone integration uncomment the "},{"line_number":35,"context_line":"# following line and comment the next one"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAACn%2F%2F8NM%3D","line":32,"updated":"2011-11-29 00:38:39.000000000","message":"To be clear, this change-set doesn\u0027t actually introduce any new API functionality to go with a version 1.1 controller, does it?  Is this just to test that multiple versions are supported?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":29,"context_line":"pipeline \u003d extensions quantumapiapp10"},{"line_number":30,"context_line":"#pipeline \u003d authN extensions quantumapiapp10"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[pipeline:quantumapi11]"},{"line_number":33,"context_line":"# By default, authentication is disabled."},{"line_number":34,"context_line":"# To enable Keystone integration uncomment the "},{"line_number":35,"context_line":"# following line and comment the next one"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAACn%2F%2F8K0%3D","line":32,"in_reply_to":"AAAACn%2F%2F8NM%3D","updated":"2011-11-29 01:06:39.000000000","message":"At the moment yes.\nThe change for operational status support will introduce a difference between controllers, as the 1.1 controller will return the operation status itself.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[pipeline:quantumapi11]"},{"line_number":33,"context_line":"# By default, authentication is disabled."},{"line_number":34,"context_line":"# To enable Keystone integration uncomment the "},{"line_number":35,"context_line":"# following line and comment the next one"},{"line_number":36,"context_line":"pipeline \u003d extensions quantumapiapp11"},{"line_number":37,"context_line":"#pipeline \u003d authN extensions quantumapiapp11"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAACn%2F%2F8NI%3D","line":34,"updated":"2011-11-29 00:38:39.000000000","message":"trailing space","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/api/__init__.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    _version \u003d \u00271.0\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _setup_routes(self, mapper, options):"},{"line_number":103,"context_line":"        self._setup_base_routes(mapper, options, self._version)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"class APIRouterV11(APIRouter):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8NA%3D","line":103,"updated":"2011-11-29 00:38:39.000000000","message":"could the _setup_routes() method actually be part of the base class instead of being duplicated?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":100,"context_line":"    _version \u003d \u00271.0\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _setup_routes(self, mapper, options):"},{"line_number":103,"context_line":"        self._setup_base_routes(mapper, options, self._version)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"class APIRouterV11(APIRouter):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Kw%3D","line":103,"in_reply_to":"AAAACn%2F%2F8NA%3D","updated":"2011-11-29 01:06:39.000000000","message":"Agreed.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/api/api_common.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from quantum.api import faults"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"XML_NS_V10 \u003d \u0027http://netstack.org/quantum/api/v1.0\u0027"},{"line_number":26,"context_line":"XML_NS_V11 \u003d \u0027http://netstack.org/quantum/api/v1.1\u0027"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(\u0027quantum.api.api_common\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8M4%3D","line":26,"updated":"2011-11-29 00:38:39.000000000","message":"a little funky to use a domain that we aren\u0027t associated with.  how about using openstack.org?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":"from quantum.api import faults"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"XML_NS_V10 \u003d \u0027http://netstack.org/quantum/api/v1.0\u0027"},{"line_number":26,"context_line":"XML_NS_V11 \u003d \u0027http://netstack.org/quantum/api/v1.1\u0027"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(\u0027quantum.api.api_common\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Lw%3D","line":26,"in_reply_to":"AAAACn%2F%2F8M4%3D","updated":"2011-11-29 01:06:39.000000000","message":"This has been here since the first days of netstack.\nAs we were not using NameSpaces, it did not matter though!\n\nI definitely agree to change it to openstack.org or whatever the other Openstack projects are doing.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        \"\"\" verifies required parameters are in request body."},{"line_number":122,"context_line":"            sets default value for missing optional parameters."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            body argument muste be the deserialized body"},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        try:"},{"line_number":127,"context_line":"            if body is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8M8%3D","line":124,"updated":"2011-11-29 00:38:39.000000000","message":"muste -\u003e must","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":121,"context_line":"        \"\"\" verifies required parameters are in request body."},{"line_number":122,"context_line":"            sets default value for missing optional parameters."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            body argument muste be the deserialized body"},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        try:"},{"line_number":127,"context_line":"            if body is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Lo%3D","line":124,"in_reply_to":"AAAACn%2F%2F8M8%3D","updated":"2011-11-29 01:06:39.000000000","message":"I\u0027m inventing new verbs.\n\"muste\": be obliged to do something by somebody sporting a mustache.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/api/attachments.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        body \u003d self._prepare_request_body(body,"},{"line_number":70,"context_line":"                                          self._attachment_ops_param_list)"},{"line_number":71,"context_line":"        self._plugin.plug_interface(tenant_id, network_id, id,"},{"line_number":72,"context_line":"                                    body[\u0027attachment\u0027][\u0027id\u0027])"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @common.APIFaultWrapper([exception.NetworkNotFound,"},{"line_number":75,"context_line":"                             exception.PortNotFound])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8M0%3D","line":72,"updated":"2011-11-29 00:38:39.000000000","message":"that\u0027s cleaner :)","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/api/ports.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self._resource_name \u003d \u0027port\u0027"},{"line_number":47,"context_line":"        super(Controller, self).__init__(plugin)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _items(self, request, tenant_id, network_id,"},{"line_number":50,"context_line":"               port_details\u003dFalse):"},{"line_number":51,"context_line":"        \"\"\" Returns a list of ports. \"\"\""},{"line_number":52,"context_line":"        port_list \u003d self._plugin.get_all_ports(tenant_id, network_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Mw%3D","line":49,"updated":"2011-11-29 00:38:39.000000000","message":"I\u0027m curious why this doesn\u0027t have a APIFaultWrapper decorator, since it looks like the old version threw NetworkNotFound... was that intentional?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self._resource_name \u003d \u0027port\u0027"},{"line_number":47,"context_line":"        super(Controller, self).__init__(plugin)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _items(self, request, tenant_id, network_id,"},{"line_number":50,"context_line":"               port_details\u003dFalse):"},{"line_number":51,"context_line":"        \"\"\" Returns a list of ports. \"\"\""},{"line_number":52,"context_line":"        port_list \u003d self._plugin.get_all_ports(tenant_id, network_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8LM%3D","line":49,"in_reply_to":"AAAACn%2F%2F8Mw%3D","updated":"2011-11-29 01:06:39.000000000","message":"Yes, since it is an internal method which is called by API operations (see index, show, and detail for instance) which have a decorator.\n\nExceptions thrown here will be caught by those decorators","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/api/versions.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            },"},{"line_number":37,"context_line":"            {"},{"line_number":38,"context_line":"                \"id\": \"v1.1\","},{"line_number":39,"context_line":"                \"status\": \"CURRENT\","},{"line_number":40,"context_line":"            },"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Ms%3D","line":39,"updated":"2011-11-29 00:38:39.000000000","message":"Do we want to make this change already?  I would expect the operational status stuff to be in before we declared 1.1 as \"current\".  Or an I misunderstanding the purpose of this field?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":36,"context_line":"            },"},{"line_number":37,"context_line":"            {"},{"line_number":38,"context_line":"                \"id\": \"v1.1\","},{"line_number":39,"context_line":"                \"status\": \"CURRENT\","},{"line_number":40,"context_line":"            },"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8LI%3D","line":39,"in_reply_to":"AAAACn%2F%2F8Ms%3D","updated":"2011-11-29 01:06:39.000000000","message":"Sorry, the truth is that I already wrote the op status code, but took it away from this merge proposal.\n\nWill revert 1.0 to CURRENT and set 1.1 as PROPOSED.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/tests/unit/declare_flags.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from quantum.common import flags"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"FLAGS \u003d flags.FLAGS"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"flags.DEFINE_integer(\u0027answer\u0027, 42, \u0027test flag\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8Mg%3D","line":22,"updated":"2011-11-29 00:38:39.000000000","message":"Can you clarify the purpose of flags here, in runtime_flags.py, and in flag_tests.py?  I didn\u0027t see where they were used, as so far all config has been using quantum.conf, not a flag file.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":19,"context_line":"from quantum.common import flags"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"FLAGS \u003d flags.FLAGS"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"flags.DEFINE_integer(\u0027answer\u0027, 42, \u0027test flag\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8LA%3D","line":22,"in_reply_to":"AAAACn%2F%2F8Mg%3D","updated":"2011-11-29 01:06:39.000000000","message":"I was hoping to remove flags as well, but it seems that there are some points in Quantum which use flags. I don\u0027t have the full source code at hand at the moment, but I will come back with precise references.\n\nAn idea would be filing bugs to remove dependencies on flags and move corresponding options into quantum.conf","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"server/lib/quantum/wsgi.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"52d3acdc58b03fb6ca87d333c04774aabc689663","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        return None"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"class ActionDispatcher(object):"},{"line_number":157,"context_line":"    \"\"\"Maps method name to local methods through action name.\"\"\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def dispatch(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8MQ%3D","line":156,"updated":"2011-11-29 00:38:39.000000000","message":"A lot of this code seems pretty generic.  Is the idea that this will be part of openstack-common eventually?","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":153,"context_line":"        return None"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"class ActionDispatcher(object):"},{"line_number":157,"context_line":"    \"\"\"Maps method name to local methods through action name.\"\"\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def dispatch(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAACn%2F%2F8K8%3D","line":156,"in_reply_to":"AAAACn%2F%2F8MQ%3D","updated":"2011-11-29 01:06:39.000000000","message":"This is the plan, indeed.","commit_id":"f4924f218a6d4ab2ea7ea0801d4d10130945f812"}],"tests/unit/client_tools/stubs.py":[{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"8d9c3abae2b15f2b1dc08e587202bd8f0a018ef7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self._req \u003d None"},{"line_number":43,"context_line":"        options \u003d \\"},{"line_number":44,"context_line":"            dict(plugin_provider\u003d\u0027quantum.plugins.SamplePlugin.FakePlugin\u0027)"},{"line_number":45,"context_line":"        self._api \u003d server.APIRouterV10(options)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def request(self, method, action, body, headers):"},{"line_number":48,"context_line":"        # TODO: remove version prefix from action!"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4s0%3D","line":45,"updated":"2011-11-03 17:13:00.000000000","message":"You used v10 here nad v11 in test_cli.py.. was that intentional?","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d7eddcc453378e0f4a7a073e46a9e3c540c865ad","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self._req \u003d None"},{"line_number":43,"context_line":"        options \u003d \\"},{"line_number":44,"context_line":"            dict(plugin_provider\u003d\u0027quantum.plugins.SamplePlugin.FakePlugin\u0027)"},{"line_number":45,"context_line":"        self._api \u003d server.APIRouterV10(options)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def request(self, method, action, body, headers):"},{"line_number":48,"context_line":"        # TODO: remove version prefix from action!"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F4iM%3D","line":45,"in_reply_to":"AAAACX%2F%2F4s0%3D","updated":"2011-11-04 11:05:01.000000000","message":"Nope, that\u0027s an error!","commit_id":"ac37ebf63b89960d89c45eb36757aa52e485d9e4"}]}
