| from neutron.api.v2 import attributes |
| |
| FORWARD_PORTS = 'nat:forward_ports' |
| |
| EXTENDED_ATTRIBUTES_2_0 = { |
| 'ports': { |
| FORWARD_PORTS: {'allow_post': True, 'allow_put': True, |
| 'default': attributes.ATTR_NOT_SPECIFIED, |
| 'is_visible': True}, |
| } |
| } |
| |
| |
| class Nat(object): |
| """Extension class supporting OpenCloud NAT networking |
| |
| This class is used by Quantum's extension framework to make |
| metadata about the OpenCloud Port extension available to |
| clients. No new resources are defined by this extension. Instead, |
| the existing Port resource's request and response messages are |
| extended with attributes in the OpenCloud namespace. |
| """ |
| |
| @classmethod |
| def get_name(cls): |
| return "OpenCloud NAT Networking Extension" |
| |
| @classmethod |
| def get_alias(cls): |
| return "nat" |
| |
| @classmethod |
| def get_description(cls): |
| return "Add TCP/UDP port forwarding through NAT to Quantum Port objects" |
| |
| @classmethod |
| def get_namespace(cls): |
| # return "http://docs.openstack.org/ext/provider/api/v1.0" |
| # Nothing there right now |
| return "http://www.vicci.org/ext/opencloud/nat/api/v0.1" |
| |
| @classmethod |
| def get_updated(cls): |
| return "2013-09-12T10:00:00-00:00" |
| |
| def get_extended_resources(self, version): |
| if version == "2.0": |
| return EXTENDED_ATTRIBUTES_2_0 |
| else: |
| return {} |