| Home | Trees | Indices | Help |
|---|
|
|
1 # Copyright 2014-2017 by Akira Yoshiyama <akirayoshiyama@gmail.com>.
2 # All Rights Reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
14 # under the License.
15
16 """
17 Resource class and its manager for floating IPs in Compute API v2
18 """
19
20 from yakumo import base
21 from yakumo.constant import UNDEF
22 from yakumo import mapper
23 from yakumo import utils
24
25
26 ATTRIBUTE_MAPPING = [
27 ('id', 'id', mapper.Noop),
28 ('fixed_ip', 'fixed_ip', mapper.Noop),
29 ('server', 'instance_id', mapper.Resource('nova.server')),
30 ('ip', 'ip', mapper.Noop),
31 ('pool', 'pool', mapper.Noop),
32 ]
33
34
36 """Resource class for floating IPs in Compute API v2"""
37
39 """
40 Associate a floating IP
41
42 @keyword server: Server
43 @type server: yakumo.nova.v2.server.Resource
44 @rtype: None
45 """
46 self._http.post('/servers/%s/action' % server.get_id(),
47 data=utils.get_json_body(
48 'addFloatingIp', address=self.ip))
49
51 """
52 Disassociate a floating IP
53
54 @rtype: None
55 """
56 self._http.post('/servers/%s/action' % self.server.id,
57 data=utils.get_json_body(
58 'removeFloatingIp', address=self.ip))
59
67
68
70 """Manager class for floating IPs in Compute API v2"""
71
72 resource_class = Resource
73 service_type = 'compute'
74 _attr_mapping = ATTRIBUTE_MAPPING
75 _hidden_methods = ["create", "update", "delete"]
76 _json_resource_key = 'floating_ip'
77 _json_resources_key = 'floating_ips'
78 _url_resource_path = '/os-floating-ips'
79
81 """Allocate a new floating IP
82
83 @keyword pool: Pool name
84 @type pool: str
85 @return: Allocated floating IP address
86 @rtype: yakumo.nova.v2.floating_ip.Resource
87 """
88 return super(Manager, self).create(pool=pool)
89
99
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Sat Mar 4 23:02:27 2017 | http://epydoc.sourceforge.net |