)]}'
{"quantum/api/api_common.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b519757f3460b9ded1f599a07ea71aab22dc14c7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                raise exc.HTTPBadRequest(msg)"},{"line_number":62,"context_line":"            results[param_name] \u003d param_value or param.get(\u0027default-value\u0027)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # There may be other parameters (data extensions), so we"},{"line_number":65,"context_line":"        # should include those in the results dict as well."},{"line_number":66,"context_line":"        for key in data.keys():"},{"line_number":67,"context_line":"            if key not in params:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F8GM%3D","line":64,"updated":"2011-10-18 11:07:17.000000000","message":"This is a good solution for allowing arbitrary parameters to be dispatched to the plugin.\nNevertheless, I think we should get rid of this _parse_request_params at all and have deserializer objects parsing the request before it gets into the controller, as it is in Openstack API","commit_id":"aab44f36151ca732e2040f8a6066b99c80c2a04a"}],"quantum/api/networks.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b519757f3460b9ded1f599a07ea71aab22dc14c7","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                                           self._network_ops_param_list)"},{"line_number":102,"context_line":"        except exc.HTTPError as e:"},{"line_number":103,"context_line":"            return faults.Fault(e)"},{"line_number":104,"context_line":"        # NOTE(bgh): We\u0027re currently passing both request_params[\u0027name\u0027] and"},{"line_number":105,"context_line":"        # the entire request_params dict because their may be pieces of"},{"line_number":106,"context_line":"        # information (data extensions) inside the request params that the"},{"line_number":107,"context_line":"        # actual plugin will want to parse.  We could just pass only"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F8GI%3D","line":104,"updated":"2011-10-18 11:07:17.000000000","message":"IMHO that is fine. It clearly separates what\u0027s \u0027core\u0027 from what\u0027s an \u0027extension\u0027","commit_id":"aab44f36151ca732e2040f8a6066b99c80c2a04a"}],"quantum/quantum_plugin_base.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b519757f3460b9ded1f599a07ea71aab22dc14c7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @abstractmethod"},{"line_number":57,"context_line":"    def create_network(self, tenant_id, net_name, **kwargs):"},{"line_number":58,"context_line":"        \"\"\""},{"line_number":59,"context_line":"        Creates a new Virtual Network, and assigns it"},{"line_number":60,"context_line":"        a symbolic name."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAACX%2F%2F8GE%3D","line":57,"updated":"2011-10-18 11:07:17.000000000","message":"another benefit of kwargs is that is does not even break the __subclasshook__ routine which verifies plugin compatibility","commit_id":"aab44f36151ca732e2040f8a6066b99c80c2a04a"}]}
