diff --git a/quark/plugin.py b/quark/plugin.py new file mode 100644 index 0000000..04062d2 --- /dev/null +++ b/quark/plugin.py @@ -0,0 +1,281 @@ +# Copyright 2011 Nicira Networks, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# @author: Dan Wendlandt, Nicira, Inc. + +""" +v2 Quantum Plug-in API Quark Implementation +""" + +from quantum.common import exceptions +from quantum import quantum_plugin_base_v2 +from quantum.db import db_base_plugin_v2 + + +class QuarkEmptyPlugin(quantum_plugin_base_v2.QuantumPluginBaseV2): + + def create_subnet(self, context, subnet): + """ + Create a subnet, which represents a range of IP addresses + that can be allocated to devices + : param context: quantum api request context + : param subnet: dictionary describing the subnet, with keys + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. All keys will be populated. + """ +# need to return a dict much like the form from +# db_base_plugin_v2._make_subnet_dict(subnet) +# we just need to pass it a jank subnet + pass + + def update_subnet(self, context, id, subnet): + """ + Update values of a subnet. + : param context: quantum api request context + : param id: UUID representing the subnet to update. + : param subnet: dictionary with keys indicating fields to update. + valid keys are those that have a value of True for 'allow_put' + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. + """ + pass + + def get_subnet(self, context, id, fields=None): + """ + Retrieve a subnet. + : param context: quantum api request context + : param id: UUID representing the subnet to fetch. + : param fields: a list of strings that are valid keys in a + subnet dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + def get_subnets(self, context, filters=None, fields=None): + """ + Retrieve a list of subnets. The contents of the list depends on + the identity of the user making the request (as indicated by the + context) as well as any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a subnet as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + : param fields: a list of strings that are valid keys in a + subnet dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + def get_subnets_count(self, context, filters=None): + """ + Return the number of subnets. The result depends on the identity of + the user making the request (as indicated by the context) as well as + any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a network as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + + NOTE: this method is optional, as it was not part of the originally + defined plugin API. + """ + raise exceptions.NotImplementedError() + + def delete_subnet(self, context, id): + """ + Delete a subnet. + : param context: quantum api request context + : param id: UUID representing the subnet to delete. + """ +#this function doesn't need to do anything + pass + + def create_network(self, context, network): + """ + Create a network, which represents an L2 network segment which + can have a set of subnets and ports associated with it. + : param context: quantum api request context + : param network: dictionary describing the network, with keys + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. All keys will be populated. + """ + pass + + def update_network(self, context, id, network): + """ + Update values of a network. + : param context: quantum api request context + : param id: UUID representing the network to update. + : param network: dictionary with keys indicating fields to update. + valid keys are those that have a value of True for 'allow_put' + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. + """ + pass + + def get_network(self, context, id, fields=None): + """ + Retrieve a network. + : param context: quantum api request context + : param id: UUID representing the network to fetch. + : param fields: a list of strings that are valid keys in a + network dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + def get_networks(self, context, filters=None, fields=None): + """ + Retrieve a list of networks. The contents of the list depends on + the identity of the user making the request (as indicated by the + context) as well as any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a network as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + : param fields: a list of strings that are valid keys in a + network dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + def get_networks_count(self, context, filters=None): + """ + Return the number of networks. The result depends on the identity + of the user making the request (as indicated by the context) as well + as any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a network as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + + NOTE: this method is optional, as it was not part of the originally + defined plugin API. + """ + raise exceptions.NotImplementedError() + + def delete_network(self, context, id): + """ + Delete a network. + : param context: quantum api request context + : param id: UUID representing the network to delete. + """ + pass + + + def create_port(self, context, port): + """ + Create a port, which is a connection point of a device (e.g., a VM + NIC) to attach to a L2 Quantum network. + : param context: quantum api request context + : param port: dictionary describing the port, with keys + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. All keys will be populated. + """ + pass + + + def update_port(self, context, id, port): + """ + Update values of a port. + : param context: quantum api request context + : param id: UUID representing the port to update. + : param port: dictionary with keys indicating fields to update. + valid keys are those that have a value of True for 'allow_put' + as listed in the RESOURCE_ATTRIBUTE_MAP object in + quantum/api/v2/attributes.py. + """ + pass + + + def get_port(self, context, id, fields=None): + """ + Retrieve a port. + : param context: quantum api request context + : param id: UUID representing the port to fetch. + : param fields: a list of strings that are valid keys in a + port dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + + def get_ports(self, context, filters=None, fields=None): + """ + Retrieve a list of ports. The contents of the list depends on + the identity of the user making the request (as indicated by the + context) as well as any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a port as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + : param fields: a list of strings that are valid keys in a + port dictionary as listed in the RESOURCE_ATTRIBUTE_MAP + object in quantum/api/v2/attributes.py. Only these fields + will be returned. + """ + pass + + def get_ports_count(self, context, filters=None): + """ + Return the number of ports. The result depends on the identity of + the user making the request (as indicated by the context) as well as + any filters. + : param context: quantum api request context + : param filters: a dictionary with keys that are valid keys for + a network as listed in the RESOURCE_ATTRIBUTE_MAP object + in quantum/api/v2/attributes.py. Values in this dictiontary + are an iterable containing values that will be used for an exact + match comparison for that value. Each result returned by this + function will have matched one of the values for each key in + filters. + + NOTE: this method is optional, as it was not part of the originally + defined plugin API. + """ + raise exceptions.NotImplementedError() + + + def delete_port(self, context, id): + """ + Delete a port. + : param context: quantum api request context + : param id: UUID representing the port to delete. + """ + pass