1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """
17 Resource class and its manager for LB backend members in Networking V2 API
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 ('project', 'tenant_id', mapper.Resource('project')),
29 ('pool', 'pool_id', mapper.Resource('neutron.lb.pool')),
30 ('is_enabled', 'admin_state_up', mapper.Noop),
31 ('protocol_port', 'protocol_port', mapper.Noop),
32 ('weight', 'weight', mapper.Noop),
33 ('status', 'status', mapper.Noop),
34 ('address', 'address', mapper.Noop),
35 ]
36
37
39 """Resource class for LB backend members in Networking V2 API"""
40
42 """
43 Update a LB member for a pool
44
45 @keyword is_enabled: Member is enabled
46 @type is_enabled: bool
47 @rtype: None
48 """
49 pool = self.parent_resource
50 super(Resource, self).update(pool=pool, is_enabled=is_enabled)
51
52
54 """Manager class for LB backend members in Networking V2 API"""
55
56 resource_class = Resource
57 service_type = 'network'
58 _attr_mapping = ATTRIBUTE_MAPPING
59 _json_resource_key = 'member'
60 _json_resources_key = 'members'
61 _url_resource_path = '/v2.0/lb/members'
62
65 """
66 Create a LB member for a pool
67
68 @keyword address: IP address (required)
69 @type address: str
70 @keyword port: Port (required)
71 @type port: str
72 @keyword weight: Member weight
73 @type weight: int
74 @keyword is_enabled: Whether the member is enabled
75 @type is_enabled: bool
76 @return: Created member
77 @rtype: yakumo.neutron.v2.lb.member.Resource
78 """
79 pool = self.parent_resource
80 return super(Manager, self).create(pool=pool,
81 address=address,
82 port=port,
83 weight=weight,
84 is_enabled=is_enabled)
85
89