deb build system
[opencloud-plugin.git] / nat.py
1 from neutron.api.v2 import attributes
2
3 FORWARD_PORTS = 'nat:forward_ports'
4
5 EXTENDED_ATTRIBUTES_2_0 = {
6     'ports': {
7         FORWARD_PORTS: {'allow_post': True, 'allow_put': True,
8                        'default': attributes.ATTR_NOT_SPECIFIED,
9                        'is_visible': True},
10     }
11 }
12
13
14 class Nat(object):
15     """Extension class supporting OpenCloud NAT networking
16
17     This class is used by Quantum's extension framework to make
18     metadata about the OpenCloud Port extension available to
19     clients. No new resources are defined by this extension. Instead,
20     the existing Port resource's request and response messages are
21     extended with attributes in the OpenCloud namespace.
22     """
23
24     @classmethod
25     def get_name(cls):
26         return "OpenCloud NAT Networking Extension"
27
28     @classmethod
29     def get_alias(cls):
30         return "nat"
31
32     @classmethod
33     def get_description(cls):
34         return "Add TCP/UDP port forwarding through NAT to Quantum Port objects"
35
36     @classmethod
37     def get_namespace(cls):
38         # return "http://docs.openstack.org/ext/provider/api/v1.0"
39         # Nothing there right now
40         return "http://www.vicci.org/ext/opencloud/nat/api/v0.1"
41
42     @classmethod
43     def get_updated(cls):
44         return "2013-09-12T10:00:00-00:00"
45
46     def get_extended_resources(self, version):
47         if version == "2.0":
48             return EXTENDED_ATTRIBUTES_2_0
49         else:
50             return {}