Statistics
| Branch: | Tag: | Revision:

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.