1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """
17 Resource class and its manager for networks in Networking V2 API
18 """
19
20 from yakumo import base
21 from yakumo.constant import UNDEF
22 from yakumo import mapper
23
24
25 ATTRIBUTE_MAPPING = [
26 ('id', 'id', mapper.Noop),
27 ('name', 'name', mapper.Noop),
28 ('status', 'status', mapper.Noop),
29 ('subnets', 'subnets',
30 mapper.List(mapper.Resource('neutron.subnet'))),
31 ('project', 'tenant_id', mapper.Resource('project')),
32 ('is_shared', 'shared', mapper.Noop),
33 ('is_enabled', 'admin_state_up', mapper.Noop),
34 ('is_external', 'router:external', mapper.Noop),
35 ('is_secured', 'port_security_enabled', mapper.Noop),
36 ('segments', 'segments', mapper.Noop),
37 ('provider_physical_network', 'provider:physical_network',
38 mapper.Noop),
39 ('provider_network_type', 'provider:network_type', mapper.Noop),
40 ('provider_segmentation_id', 'segmentation_id', mapper.Noop),
41 ('vlan_transparent', 'vlan_transparent', mapper.Noop),
42 ]
43
44
46 """Resource class for networks in Networking V2 API"""
47
48 _stable_state = ['ACTIVE', 'DOWN', 'INACTIVE', 'ERROR']
49
55 """
56 Update properties of a network
57
58 @keyword name: Network name
59 @type name: str
60 @keyword is_shared: Whether the network is shared
61 @type is_shared: bool
62 @keyword is_enabled: Whether the network is enabled
63 @type is_enabled: bool
64 @keyword is_external: Wehter the network is external
65 @type is_external: bool
66 @keyword is_port_security_enabled: Whether the network is secured
67 @type is_port_security_enabled: bool
68 @keyword segments: Segments
69 @type segments: str
70 @keyword provider_physical_network: (Provider) physical network
71 @type provider_physical_network: str
72 @keyword provider_network_type: (Provider) network type
73 @type provider_network_type: str
74 @keyword provider_segmentation_id: (Provider) segmentation ID
75 @type provider_segmentation_id: int
76 @rtype: None
77 """
78 super(Resource, self).update(
79 name=name,
80 is_shared=is_shared,
81 is_enabled=is_enabled,
82 is_external=is_external,
83 is_port_security_enabled=is_port_security_enabled,
84 segments=segments,
85 provider_physical_network=provider_physical_network,
86 provider_network_type=provider_network_type,
87 provider_segmentation_id=provider_segmentation_id)
88
89
91 """Manager class for networks in Networking V2 API"""
92
93 resource_class = Resource
94 service_type = 'network'
95 _attr_mapping = ATTRIBUTE_MAPPING
96 _json_resource_key = 'network'
97 _json_resources_key = 'networks'
98 _url_resource_path = '/v2.0/networks'
99
100 - def create(self, name=UNDEF, project=UNDEF, is_shared=UNDEF,
101 is_enabled=UNDEF, is_external=UNDEF,
102 is_port_security_enabled=UNDEF, segments=UNDEF,
103 provider_physical_network=UNDEF, provider_network_type=UNDEF,
104 provider_segmentation_id=UNDEF, vlan_transparent=UNDEF):
105 """
106 Create a network
107
108 @keyword name: Network name
109 @type name: str
110 @keyword project: Project
111 @type project: yakumo.project.Resource
112 @keyword is_shared: Whether the network is shared
113 @type is_shared: bool
114 @keyword is_enabled: Whether the network is enabled
115 @type is_enabled: bool
116 @keyword is_external: Wehter the network is external
117 @type is_external: bool
118 @keyword is_port_security_enabled: Whether the network is secured
119 @type is_port_security_enabled: bool
120 @keyword segments: Segments
121 @type segments: str
122 @keyword provider_physical_network: (Provider) physical network
123 @type provider_physical_network: str
124 @keyword provider_network_type: (Provider) network type
125 @type provider_network_type: str
126 @keyword provider_segmentation_id: (Provider) segmentation ID
127 @type provider_segmentation_id: int
128 @keyword vlan_transparent: (Provider) VLAN transparent
129 @type vlan_transparent: int
130 @return: Created network
131 @rtype: yakumo.neutron.v2.network.Resource
132 """
133 return super(Manager, self).create(
134 name=name,
135 is_shared=is_shared,
136 project=project,
137 is_enabled=is_enabled,
138 is_external=is_external,
139 is_port_security_enabled=is_port_security_enabled,
140 segments=segments,
141 provider_physical_network=provider_physical_network,
142 provider_network_type=provider_network_type,
143 provider_segmentation_id=provider_segmentation_id,
144 vlan_transparent=vlan_transparent)
145