root / docs / design / cyclades-networking.rst @ fc627daa
History | View | Annotate | Download (14.1 kB)
1 | fc627daa | Christos Stavrakakis | =================== |
---|---|---|---|
2 | fc627daa | Christos Stavrakakis | Cyclades Networking |
3 | fc627daa | Christos Stavrakakis | =================== |
4 | fc627daa | Christos Stavrakakis | |
5 | fc627daa | Christos Stavrakakis | Networks |
6 | fc627daa | Christos Stavrakakis | ======== |
7 | fc627daa | Christos Stavrakakis | |
8 | fc627daa | Christos Stavrakakis | A Cyclades network is a virtual network that can be, depending on it's Network |
9 | fc627daa | Christos Stavrakakis | Flavor, either an isolated Layer-2 broadcast domain or an Layer-3 network. |
10 | fc627daa | Christos Stavrakakis | Networks can either be private or public. Private networks are reserved for the |
11 | fc627daa | Christos Stavrakakis | user who created it, while public networks are created by the administrator and |
12 | fc627daa | Christos Stavrakakis | are visible to all users. Also, networks can be marked with the |
13 | fc627daa | Christos Stavrakakis | `--router:external` attribute to indicate that are external networks (public |
14 | fc627daa | Christos Stavrakakis | interner) |
15 | fc627daa | Christos Stavrakakis | |
16 | fc627daa | Christos Stavrakakis | Currently there are four available Networks Flavors: |
17 | fc627daa | Christos Stavrakakis | |
18 | fc627daa | Christos Stavrakakis | * IP_ONLY: A Layer-3 network where host routes traffic to the external network. |
19 | fc627daa | Christos Stavrakakis | * PHYSICAL_VLAN: A Layer-2 network where a physical VLAN is assigned to the |
20 | fc627daa | Christos Stavrakakis | network. |
21 | fc627daa | Christos Stavrakakis | * MAC_FILTERED: A Layer-2 network. All networks of this type share the same |
22 | fc627daa | Christos Stavrakakis | physical VLAN, but isolation is achieved by filtering rules based on a |
23 | fc627daa | Christos Stavrakakis | unique MAC prefix that is assigned to each network. |
24 | fc627daa | Christos Stavrakakis | |
25 | fc627daa | Christos Stavrakakis | The administrator can limit which networks can be created via API with the |
26 | fc627daa | Christos Stavrakakis | `API_ENABLED_NETOWRK_FLAVORS` setting. |
27 | fc627daa | Christos Stavrakakis | |
28 | fc627daa | Christos Stavrakakis | The attributes for network objects are the following: |
29 | fc627daa | Christos Stavrakakis | |
30 | fc627daa | Christos Stavrakakis | * id: A string represeting the UUID for the network. |
31 | fc627daa | Christos Stavrakakis | * name: A human readable name |
32 | fc627daa | Christos Stavrakakis | * status: String represetng the state of the network. Possible values for the |
33 | fc627daa | Christos Stavrakakis | state include: ACTIVE, DOWN, BUILD, ERROR |
34 | fc627daa | Christos Stavrakakis | * subnets: List of subnet UUIDs that are associated with this network |
35 | fc627daa | Christos Stavrakakis | * public: Whether network is visible to other users or not. |
36 | fc627daa | Christos Stavrakakis | * user_id/tenant_id: The UUID of the owner of the network. |
37 | fc627daa | Christos Stavrakakis | * admin_state_up: Boolean value indicating the administrative state of the |
38 | fc627daa | Christos Stavrakakis | network. If 'down' the network does not forward packets. |
39 | fc627daa | Christos Stavrakakis | |
40 | fc627daa | Christos Stavrakakis | Note: The 'admin_state_up' value is used only for compatibility with Neutron |
41 | fc627daa | Christos Stavrakakis | API. It will be read-only, and will always be True. |
42 | fc627daa | Christos Stavrakakis | |
43 | fc627daa | Christos Stavrakakis | Create a new network |
44 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^^^^ |
45 | fc627daa | Christos Stavrakakis | |
46 | fc627daa | Christos Stavrakakis | Method: POST |
47 | fc627daa | Christos Stavrakakis | |
48 | fc627daa | Christos Stavrakakis | URI: /networks |
49 | fc627daa | Christos Stavrakakis | |
50 | fc627daa | Christos Stavrakakis | The body of the request must contain the 'type' of the network. Also it can |
51 | fc627daa | Christos Stavrakakis | a 'name' attribute. |
52 | fc627daa | Christos Stavrakakis | |
53 | fc627daa | Christos Stavrakakis | List Networks |
54 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^ |
55 | fc627daa | Christos Stavrakakis | |
56 | fc627daa | Christos Stavrakakis | Method: GET |
57 | fc627daa | Christos Stavrakakis | |
58 | fc627daa | Christos Stavrakakis | URI: /networks |
59 | fc627daa | Christos Stavrakakis | |
60 | fc627daa | Christos Stavrakakis | Get details about a network |
61 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
62 | fc627daa | Christos Stavrakakis | |
63 | fc627daa | Christos Stavrakakis | METHOD: GET |
64 | fc627daa | Christos Stavrakakis | |
65 | fc627daa | Christos Stavrakakis | URI: /networks/$(network_id) |
66 | fc627daa | Christos Stavrakakis | |
67 | fc627daa | Christos Stavrakakis | Example response: |
68 | fc627daa | Christos Stavrakakis | |
69 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
70 | fc627daa | Christos Stavrakakis | | Field | Value | |
71 | fc627daa | Christos Stavrakakis | +=================+===================================+ |
72 | fc627daa | Christos Stavrakakis | | admin_state_up | True | |
73 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
74 | fc627daa | Christos Stavrakakis | | id | 42 | |
75 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
76 | fc627daa | Christos Stavrakakis | | name | Test_network | |
77 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
78 | fc627daa | Christos Stavrakakis | | network_type | MAC_FILTERED | |
79 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
80 | fc627daa | Christos Stavrakakis | | router:external | False | |
81 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
82 | fc627daa | Christos Stavrakakis | | public | False | |
83 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
84 | fc627daa | Christos Stavrakakis | | status | ACTIVE | |
85 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
86 | fc627daa | Christos Stavrakakis | | subnets | [] | |
87 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
88 | fc627daa | Christos Stavrakakis | | user_id | 1012fd8c72284c00b133832cd179f896 | |
89 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
90 | fc627daa | Christos Stavrakakis | | tenant_id | 1012fd8c72284c00b133832cd179f896 | |
91 | fc627daa | Christos Stavrakakis | +-----------------+-----------------------------------+ |
92 | fc627daa | Christos Stavrakakis | |
93 | fc627daa | Christos Stavrakakis | Delete a network |
94 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
95 | fc627daa | Christos Stavrakakis | |
96 | fc627daa | Christos Stavrakakis | METHOD: DELETE |
97 | fc627daa | Christos Stavrakakis | |
98 | fc627daa | Christos Stavrakakis | URI: /networks/$(network_id) |
99 | fc627daa | Christos Stavrakakis | |
100 | fc627daa | Christos Stavrakakis | The network can not be deleted if there are any Ports connected to it or |
101 | fc627daa | Christos Stavrakakis | any FloatingIPs reserved from this network. The subnets that are connected |
102 | fc627daa | Christos Stavrakakis | to this network are automatically deleted upon network deletion. |
103 | fc627daa | Christos Stavrakakis | |
104 | fc627daa | Christos Stavrakakis | Update a network |
105 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
106 | fc627daa | Christos Stavrakakis | |
107 | fc627daa | Christos Stavrakakis | METHOD: PUT |
108 | fc627daa | Christos Stavrakakis | |
109 | fc627daa | Christos Stavrakakis | URI: /networks/$(network_id) |
110 | fc627daa | Christos Stavrakakis | |
111 | fc627daa | Christos Stavrakakis | Only the name of the network can be updated. |
112 | fc627daa | Christos Stavrakakis | |
113 | fc627daa | Christos Stavrakakis | |
114 | fc627daa | Christos Stavrakakis | Subnets |
115 | fc627daa | Christos Stavrakakis | ======= |
116 | fc627daa | Christos Stavrakakis | |
117 | fc627daa | Christos Stavrakakis | A subnet represents L3-Layer characteristics of the network that is |
118 | fc627daa | Christos Stavrakakis | associated with. Specifically it represents an IP address block that is |
119 | fc627daa | Christos Stavrakakis | used it assign addresses to virtual machines. A subnet is associated with |
120 | fc627daa | Christos Stavrakakis | a network when created. |
121 | fc627daa | Christos Stavrakakis | |
122 | fc627daa | Christos Stavrakakis | |
123 | fc627daa | Christos Stavrakakis | The attributes for subnet objects are the following: |
124 | fc627daa | Christos Stavrakakis | |
125 | fc627daa | Christos Stavrakakis | * id: A string represeting the UUID for the subnet. |
126 | fc627daa | Christos Stavrakakis | * name: A human readable name |
127 | fc627daa | Christos Stavrakakis | * network_id: The UUID of the network that the subnet is associated with. |
128 | fc627daa | Christos Stavrakakis | * ip_version: The IP version of the subnet. Can either be 4 or 6. |
129 | fc627daa | Christos Stavrakakis | * cidr: cidr representing IP range for this subnet, based on the IP version |
130 | fc627daa | Christos Stavrakakis | * gateway: Default gateway used by devices in this subnet. If not specified |
131 | fc627daa | Christos Stavrakakis | the gateway will be the first available IP address. Set to None in order to |
132 | fc627daa | Christos Stavrakakis | get no gateway. |
133 | fc627daa | Christos Stavrakakis | * enable_dhcp(CR): Boolean value indicating whether nfdhcpd is enabled for this |
134 | fc627daa | Christos Stavrakakis | subnet or not . |
135 | fc627daa | Christos Stavrakakis | * allocation_pools(CR): Subranges of cidr available for dynamic allocation. |
136 | fc627daa | Christos Stavrakakis | A list of dictionaries of the form {"start": "192.168.2.0", "end": 192.168.2.10"} |
137 | fc627daa | Christos Stavrakakis | * user_id/tenant_id: The UUID of the owner of the network. |
138 | fc627daa | Christos Stavrakakis | * host_routes(R): List of routes that should be used by devices with IPs from this |
139 | fc627daa | Christos Stavrakakis | subnet |
140 | fc627daa | Christos Stavrakakis | * dns_nameservers(R): List of DNS name servers used by hosts in this subnet. |
141 | fc627daa | Christos Stavrakakis | |
142 | fc627daa | Christos Stavrakakis | Note: 'host_routes' and 'dns_nameservers' is used only for compatibility with |
143 | fc627daa | Christos Stavrakakis | Neutron. These values will be read-only and always be []. |
144 | fc627daa | Christos Stavrakakis | |
145 | fc627daa | Christos Stavrakakis | |
146 | fc627daa | Christos Stavrakakis | Create a Subnet |
147 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^ |
148 | fc627daa | Christos Stavrakakis | |
149 | fc627daa | Christos Stavrakakis | METHOD: POST |
150 | fc627daa | Christos Stavrakakis | |
151 | fc627daa | Christos Stavrakakis | URI: /subnets/ |
152 | fc627daa | Christos Stavrakakis | |
153 | fc627daa | Christos Stavrakakis | To create a subnet the used must specify the network_id and the cidr for the |
154 | fc627daa | Christos Stavrakakis | subnet. If the CIDR is IPv6 subnet, the user must set the ip_version to 6. |
155 | fc627daa | Christos Stavrakakis | If allocation pools overlap, or gateway overlaps with allocation_pools then 409 |
156 | fc627daa | Christos Stavrakakis | conflict is returned. |
157 | fc627daa | Christos Stavrakakis | |
158 | fc627daa | Christos Stavrakakis | Finally, the user can create maximum 1 subnet of each ip_version, meaning that |
159 | fc627daa | Christos Stavrakakis | a network can have no subnets, or one IPv4 subnet or one IPv6 subnet, or one |
160 | fc627daa | Christos Stavrakakis | IPv4 and one IPv6 subnet. Also the user can not create a subnet for a network |
161 | fc627daa | Christos Stavrakakis | that has or had a port connected to it. |
162 | fc627daa | Christos Stavrakakis | |
163 | fc627daa | Christos Stavrakakis | List user subnets |
164 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^ |
165 | fc627daa | Christos Stavrakakis | |
166 | fc627daa | Christos Stavrakakis | METHOD: GET |
167 | fc627daa | Christos Stavrakakis | |
168 | fc627daa | Christos Stavrakakis | URI: /subnets/ |
169 | fc627daa | Christos Stavrakakis | |
170 | fc627daa | Christos Stavrakakis | Get details about a subnet |
171 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
172 | fc627daa | Christos Stavrakakis | |
173 | fc627daa | Christos Stavrakakis | METHOD: GET |
174 | fc627daa | Christos Stavrakakis | |
175 | fc627daa | Christos Stavrakakis | URI: /subnets/$(subnet_id) |
176 | fc627daa | Christos Stavrakakis | |
177 | fc627daa | Christos Stavrakakis | Example response: |
178 | fc627daa | Christos Stavrakakis | |
179 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
180 | fc627daa | Christos Stavrakakis | | Field | Value | |
181 | fc627daa | Christos Stavrakakis | +==================+==================================================+ |
182 | fc627daa | Christos Stavrakakis | | allocation_pools | {"start": "192.168.2.2", "end": "192.168.2.254"} | |
183 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
184 | fc627daa | Christos Stavrakakis | | cidr | 192.168.2.0/24 | |
185 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
186 | fc627daa | Christos Stavrakakis | | dns_nameservers | [] | |
187 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
188 | fc627daa | Christos Stavrakakis | | enable_dhcp | False | |
189 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
190 | fc627daa | Christos Stavrakakis | | gateway_ip | 192.168.2.1 | |
191 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
192 | fc627daa | Christos Stavrakakis | | host_routes | [] | |
193 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
194 | fc627daa | Christos Stavrakakis | | id | 49ce3872-446c-43e9-aa22-68dbc2bac0b5 | |
195 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
196 | fc627daa | Christos Stavrakakis | | ip_version | 4 | |
197 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
198 | fc627daa | Christos Stavrakakis | | name | test1 | |
199 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
200 | fc627daa | Christos Stavrakakis | | network_id | 8fc5e2bf-9c1b-4458-8f71-e38177ed23a5 | |
201 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
202 | fc627daa | Christos Stavrakakis | | tenant_id | 11a65261147d462b998eafb7f696f0ba | |
203 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
204 | fc627daa | Christos Stavrakakis | | user_id | 11a65261147d462b998eafb7f696f0ba | |
205 | fc627daa | Christos Stavrakakis | +------------------+--------------------------------------------------+ |
206 | fc627daa | Christos Stavrakakis | |
207 | fc627daa | Christos Stavrakakis | |
208 | fc627daa | Christos Stavrakakis | Delete a subnet |
209 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
210 | fc627daa | Christos Stavrakakis | |
211 | fc627daa | Christos Stavrakakis | METHOD: DELETE |
212 | fc627daa | Christos Stavrakakis | |
213 | fc627daa | Christos Stavrakakis | URI: /subnets/$(subnet_id) |
214 | fc627daa | Christos Stavrakakis | |
215 | fc627daa | Christos Stavrakakis | We will not allow deletion of subnets. Subnets will be deleted when network |
216 | fc627daa | Christos Stavrakakis | is deleted. This call will return 400 (badRequest). |
217 | fc627daa | Christos Stavrakakis | |
218 | fc627daa | Christos Stavrakakis | |
219 | fc627daa | Christos Stavrakakis | Update a subnet |
220 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
221 | fc627daa | Christos Stavrakakis | |
222 | fc627daa | Christos Stavrakakis | METHOD: PUT |
223 | fc627daa | Christos Stavrakakis | |
224 | fc627daa | Christos Stavrakakis | URI: /subnets/$(subnet_id) |
225 | fc627daa | Christos Stavrakakis | |
226 | fc627daa | Christos Stavrakakis | |
227 | fc627daa | Christos Stavrakakis | Only the name of the subnet can be updated. This call will return 400 (badRequest) |
228 | fc627daa | Christos Stavrakakis | if the user tries to update any other field. |
229 | fc627daa | Christos Stavrakakis | |
230 | fc627daa | Christos Stavrakakis | |
231 | fc627daa | Christos Stavrakakis | Ports |
232 | fc627daa | Christos Stavrakakis | ===== |
233 | fc627daa | Christos Stavrakakis | |
234 | fc627daa | Christos Stavrakakis | A port represent a virtual switch port on a network switch. Virtual machines |
235 | fc627daa | Christos Stavrakakis | attach their interefaces to ports. A port that is connected to a network |
236 | fc627daa | Christos Stavrakakis | gets an IP address for each subnet that is associated with the network. If the |
237 | fc627daa | Christos Stavrakakis | network has no subnets, then the port will have no IP. |
238 | fc627daa | Christos Stavrakakis | |
239 | fc627daa | Christos Stavrakakis | The attributes for port objects are the following: |
240 | fc627daa | Christos Stavrakakis | |
241 | fc627daa | Christos Stavrakakis | * id: A string represeting the UUID for the port. |
242 | fc627daa | Christos Stavrakakis | * network_id: The UUID of the network that this port is associated with. |
243 | fc627daa | Christos Stavrakakis | * name: A human readable name |
244 | fc627daa | Christos Stavrakakis | * status: String represetng the state of the port. Possible values for the |
245 | fc627daa | Christos Stavrakakis | state include: ACTIVE, DOWN, BUILD, ERROR |
246 | fc627daa | Christos Stavrakakis | * mac_address: MAC address |
247 | fc627daa | Christos Stavrakakis | * fixed_ips(R): List of dictionaries subnet_id->ip_address. |
248 | fc627daa | Christos Stavrakakis | * device_id(CR): Device using this port (VM id or Router id) |
249 | fc627daa | Christos Stavrakakis | * device_owner(CR): Entity using this port. e.g network:router, |
250 | fc627daa | Christos Stavrakakis | network:router_gateway |
251 | fc627daa | Christos Stavrakakis | * user_id/tenant_id: The UUID of the owner of the port. |
252 | fc627daa | Christos Stavrakakis | * security_groups(CRUD): List of security groups IDs associated with this port |
253 | fc627daa | Christos Stavrakakis | * admin_state_up: Boolean value indicating the administrative state of the |
254 | fc627daa | Christos Stavrakakis | port. If 'down' the port does not forward packets. |
255 | fc627daa | Christos Stavrakakis | |
256 | fc627daa | Christos Stavrakakis | |
257 | fc627daa | Christos Stavrakakis | Note: The 'admin_state_up' value is used only for compatibility with Neutron |
258 | fc627daa | Christos Stavrakakis | API. It will be read-only, and will always be True. |
259 | fc627daa | Christos Stavrakakis | |
260 | fc627daa | Christos Stavrakakis | Create a new Port |
261 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^^^^ |
262 | fc627daa | Christos Stavrakakis | |
263 | fc627daa | Christos Stavrakakis | Method: POST |
264 | fc627daa | Christos Stavrakakis | |
265 | fc627daa | Christos Stavrakakis | URI: /ports |
266 | fc627daa | Christos Stavrakakis | |
267 | fc627daa | Christos Stavrakakis | The body of the request must contain the 'network_id' of the network that |
268 | fc627daa | Christos Stavrakakis | this port will be associated with and the 'device_id' that the port will |
269 | fc627daa | Christos Stavrakakis | be connected to. Also it can contain the following optional |
270 | fc627daa | Christos Stavrakakis | attributes: |
271 | fc627daa | Christos Stavrakakis | * security_groups |
272 | fc627daa | Christos Stavrakakis | * name |
273 | fc627daa | Christos Stavrakakis | |
274 | fc627daa | Christos Stavrakakis | The port will not have a MAC address and an IPv6 address until the |
275 | fc627daa | Christos Stavrakakis | corresponding NIC goes to ACTIVE state. This will be fixed when Cyclades |
276 | fc627daa | Christos Stavrakakis | will do MAC allocation. If MAC allocation is implemented, we will also |
277 | fc627daa | Christos Stavrakakis | be able to create a Port without specified a device_id. |
278 | fc627daa | Christos Stavrakakis | |
279 | fc627daa | Christos Stavrakakis | List ports |
280 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^ |
281 | fc627daa | Christos Stavrakakis | |
282 | fc627daa | Christos Stavrakakis | Method: GET |
283 | fc627daa | Christos Stavrakakis | |
284 | fc627daa | Christos Stavrakakis | URI: /ports |
285 | fc627daa | Christos Stavrakakis | |
286 | fc627daa | Christos Stavrakakis | Get details about a port |
287 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
288 | fc627daa | Christos Stavrakakis | |
289 | fc627daa | Christos Stavrakakis | METHOD: GET |
290 | fc627daa | Christos Stavrakakis | |
291 | fc627daa | Christos Stavrakakis | URI: /ports/$(port_id) |
292 | fc627daa | Christos Stavrakakis | |
293 | fc627daa | Christos Stavrakakis | Example response: |
294 | fc627daa | Christos Stavrakakis | |
295 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
296 | fc627daa | Christos Stavrakakis | | Field | Value | |
297 | fc627daa | Christos Stavrakakis | +=======================+=================================================================================+ |
298 | fc627daa | Christos Stavrakakis | | admin_state_up | True | |
299 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
300 | fc627daa | Christos Stavrakakis | | device_id | 39a02a66-33be-478a-8e9f-012141258678 | |
301 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
302 | fc627daa | Christos Stavrakakis | | device_owner | network:router_interface | |
303 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
304 | fc627daa | Christos Stavrakakis | | fixed_ips | {"subnet_id": "2313705f-68c1-4e16-80e3-c9fd8c0a5170", "ip_address": "10.0.2.1"} | |
305 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
306 | fc627daa | Christos Stavrakakis | | id | ff15e3fe-7b39-4adc-ae98-a7e29588977e | |
307 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
308 | fc627daa | Christos Stavrakakis | | mac_address | fa:16:3e:c1:63:06 | |
309 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
310 | fc627daa | Christos Stavrakakis | | name | "test_port" | |
311 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
312 | fc627daa | Christos Stavrakakis | | network_id | 2f04b49f-ca49-4b93-9139-11a4eca35fdd | |
313 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
314 | fc627daa | Christos Stavrakakis | | security_groups | [] | |
315 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
316 | fc627daa | Christos Stavrakakis | | status | DOWN | |
317 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
318 | fc627daa | Christos Stavrakakis | | tenant_id | 1012fd8c72284c00b133832cd179f896 | |
319 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
320 | fc627daa | Christos Stavrakakis | | user_id | 1012fd8c72284c00b133832cd179f896 | |
321 | fc627daa | Christos Stavrakakis | +-----------------------+---------------------------------------------------------------------------------+ |
322 | fc627daa | Christos Stavrakakis | |
323 | fc627daa | Christos Stavrakakis | Delete a port |
324 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
325 | fc627daa | Christos Stavrakakis | |
326 | fc627daa | Christos Stavrakakis | METHOD: DELETE |
327 | fc627daa | Christos Stavrakakis | |
328 | fc627daa | Christos Stavrakakis | URI: /ports/$(port_id) |
329 | fc627daa | Christos Stavrakakis | |
330 | fc627daa | Christos Stavrakakis | Update a port |
331 | fc627daa | Christos Stavrakakis | ^^^^^^^^^^^^^^^^ |
332 | fc627daa | Christos Stavrakakis | |
333 | fc627daa | Christos Stavrakakis | METHOD: PUT |
334 | fc627daa | Christos Stavrakakis | |
335 | fc627daa | Christos Stavrakakis | URI: /ports/$(port_id) |
336 | fc627daa | Christos Stavrakakis | |
337 | fc627daa | Christos Stavrakakis | Only the name of the port can be updated. |
338 | fc627daa | Christos Stavrakakis | |
339 | fc627daa | Christos Stavrakakis | General Implementation Details |
340 | fc627daa | Christos Stavrakakis | ============================== |
341 | fc627daa | Christos Stavrakakis | |
342 | fc627daa | Christos Stavrakakis | Creation of a network corresponds to only creating a Network object in Cyclades |
343 | fc627daa | Christos Stavrakakis | DB. Also, creation of a subnet corresponds to creation of a Subnet in Cyclades |
344 | fc627daa | Christos Stavrakakis | DB and the corresponding allocation pools. The Ganeti network will only be |
345 | fc627daa | Christos Stavrakakis | created in the Ganeti backend when a port is connected to this network. |
346 | fc627daa | Christos Stavrakakis | Updating fields of Ganeti networks is really hard (e.g. changing the dhcp |
347 | fc627daa | Christos Stavrakakis | option) or impossible (e.g. changing the subnet). For this reason, if the |
348 | fc627daa | Christos Stavrakakis | network has been created in a Ganeti backend, then it will be marked as |
349 | fc627daa | Christos Stavrakakis | read-only! |
350 | fc627daa | Christos Stavrakakis | |
351 | fc627daa | Christos Stavrakakis | A port is directly mapped to a Ganeti NIC. The port will be created in DB in |
352 | fc627daa | Christos Stavrakakis | "BUILD" state and an OP_INSTANCE_MODIFY will be issued to Ganeti to create the |
353 | fc627daa | Christos Stavrakakis | NIC in the specified VM. When the job successfully completes, the NIC will be |
354 | fc627daa | Christos Stavrakakis | updated in DB to state "ACTIVE". Also the MAC address that was allocated from |
355 | fc627daa | Christos Stavrakakis | Ganeti will be stored in the updated NIC. |