Cyclades/Network API Guide

Introduction

The Network Service of Synnefo is implemented as part of Cyclades. It exposes the OpenStack Networking (“Neutron”) API and some extensions with minor modifications if needed.

This document’s goals are:

  • Define the Cyclades/Network REST API
  • Clarify the differences between Cyclades/Network and OpenStack Neutron

API Operations

Networks

Description URI Method Cyclades/Network OS/Neutron
List /networks GET  
Get details /networks/<network-id> GET  
Create /networks POST  
Bulk creation /networks POST  
Update /networks/<network-id> PUT  
Delete /networks/<network id> DELETE  
Reassign /networks/<network-id>/action POST

Subnets

Description URI Method Cyclades/Network OS/Neutron
List /subnets GET  
Get details /subnets/<subnet-id> GET  
Create /subnets POST  
Bulk creation /subnets POST  
Update /subnets/<subnet-id> PUT  
Delete /subnets/<subnet-id> DELETE

Ports

Description URI Method Cyclades/Network OS/Neutron
List /ports GET  
Get details /ports/<port-id> GET  
Create /ports POST  
Bulk creation /ports POST  
Update /ports/<port-id> PUT  
Delete /ports/<port id> DELETE

Floating IPs

Description URI Method Cyclades/Network OS/Neutron Extensions
List /floatingips GET
Get details /floatingips/<floatingip-id> GET
Create /floatingips POST
Update /floatingips/<floatingip-id> PUT
Delete /floatingips/<floatingip id> DELETE
Reassign /floatingips/<floatingip-id>/action POST

List networks

List networks accessible by the user

Request

URI Method Cyclades/Network OS/Neutron
/networks GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token

Response body contents:

networks: [
  {
    <network attribute>: <value>,
    ...
  }, ...
]

The attributes of a network are listed here.

Example List Networks: JSON

GET https://example.org/network/v2.0/networks


{
  "networks": [
    {
      "id": 2718
      "name": "Public IPv6 Network"
      "status": "ACTIVE"
      "router:externa"l: true
      "updated": "2013-12-18T11:11:12.272389+00:00"
      "user_id": None
      "links":[
        {
          "href": "https://example.org/network/v2.0/networks/2718"
          "rel": "self"
        }, {
          "href": "https://example.org/network/v2.0/networks/2718"
          "rel": "bookmark"
        }
      ]
      "created": "2013-12-17T17:15:48.617049+00:00"
      "tenant_id": None
      "admin_state_up": true
      "SNF:floating_ip_pool": false
      "public": true
      "subnets":[
        28
      ]
      "type": "IP_LESS_ROUTED",
      "public": true
    }, {
      "id": "3141",
      "name": "My Private Network",
      "status": "ACTIVE",
      "router:external": false,
      "updated": "2014-02-13T09:40:05.195945+00:00",
      "user_id": "s0m3-u5e7-1d",
      "links": [
        {
            "href": "https://example.org/network/v2.0/networks/3141",
            "rel": "self"
        },
        {
            "href": "https://example.org/network/v2.0/networks/3141",
            "rel": "bookmark"
        }
      ],
      "created": "2014-02-13T09:40:05.101008+00:00",
      "tenant_id": "s0m3-u5e7-1d",
      "admin_state_up": true,
      "type": "MAC_FILTERED",
      "subnets": [],
      "SNF:floating_ip_pool": false,
      "public": false
    }
  ]
}

Get network details

Request

URI Method Cyclades/Network OS/Neutron
/networks/<network id> GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Network not found

Response body contents:

network: {
  <network attribute>: <value>,
  ...
}

The attributes of a network are listed here.

Example Get Network Details: JSON

GET https://example.org/network/v2.0/networks/3141


{
  "network": {
    "id": "3141",
    "name": "My Private Network",
    "status": "ACTIVE",
    "router:external": false,
    "updated": "2014-02-13T09:40:05.195945+00:00",
    "user_id": "s0m3-u5e7-1d",
    "links": [
      {
          "href": "https://example.org/network/v2.0/networks/3141",
          "rel": "self"
      },
      {
          "href": "https://example.org/network/v2.0/networks/3141",
          "rel": "bookmark"
      }
    ],
    "created": "2014-02-13T09:40:05.101008+00:00",
    "tenant_id": "s0m3-u5e7-1d",
    "admin_state_up": true,
    "type": "MAC_FILTERED",
    "subnets": [],
    "SNF:floating_ip_pool": false,
    "public": false
  }
}

Create network

Request

URI Method Cyclades/Network OS/Neutron
/networks POST

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

network: {
  <network attribute>: <value>,
  ...
}
Network Attribute Cyclades/Network OS/Neutron
type required
name
admin_state_up
shared
tenand_id
  • type Valid values are the same as in network_type of a network.
  • name a string
  • admin_state_up, shared and tenantd_id are accepted by Cyclades/Network, but they are ignored

Response

Return Code Description
201 (OK) Network created
400 (BadRequest) Invalid request body (invalid or missing type)
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Network not found

In case of success, the response has the same format is in get network details.

Update network

Request

URI Method Cyclades/Network OS/Neutron
/networks/<network id> PUT

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

network: {
  <network attribute>: <value>,
  ...
}
Network Attribute Cyclades/Network OS/Neutron
name
network_id
admin_state_up
shared
tenand_id
  • name a string
  • network_id, admin_state_up, shared and tenantd_id are accepted by Cyclades/Network, but they are ignored

Response

Return Code Description
200 (OK) Network is updated
401 (Unauthorized) Missing or expired user token
403 (Forbidden) You are not the owner of the network
404 (itemNoFound) Network not found

In case of success, the response has the same format is in get network details containing the updated values.

Delete network

Request

URI Method Cyclades/Network OS/Neutron
/networks/<network id> DELETE

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
204 (OK) Network is deleted
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Network not found
409 (Conflict) The network is being used

Note

409 (Confict) is raised when there are ports connected to the network or floating IPs reserved from its pool. The subnets that are connected to it, though, are automatically deleted upon network deletion.

Reassign Network

Assign a network to a different project.

Request

URI Method Cyclades/Network OS/Neutron
/networks/<network-id>/action POST

Request Header Value
X-Auth-Token User authentication token

Request body contents:

reassign: {
    project: <project-id>
 }

Response

Return Code Description
200 (OK) Request succeeded
400 (Bad Request) Malformed request
401 (Unauthorized) Missing or expired user token
403 (Forbidden) Not allowed to modify this network (e.g. public)
404 (Not Found) Network not found
500 (Internal Server Error) The request cannot be completed because of an
internal error
503 (Service Unavailable) The service is not currently available

List subnets

List subnets of networks accessible by the user

Request

URI Method Cyclades/Network OS/Neutron
/subnets GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token

Response body contents:

subnets: [
  {
    <subnet attribute>: <value>,
    ...
  }, ...
]

The attributes of a subnet are listed here.

Example List subnets: JSON

GET https://example.org/network/v2.0/subnets

{
  "subnets": [
    {
      "user_id": null,
      "name": "IPv6 Subnet of Network 2718",
      "links": [
          {
              "href": "https://example.org/network/v2.0/subnets/8172",
              "rel": "self"
          },
          {
              "href": "https://example.org/network/v2.0/subnets/8172",
              "rel": "bookmark"
          }
      ],
      "network_id": "2718",
      "tenant_id": null,
      "dns_nameservers": [],
      "enable_slaac": true,
      "public": true,
      "allocation_pools": [],
      "host_routes": [],
      "ip_version": 6,
      "gateway_ip": "2001:123:4abc:5678::9",
      "cidr": "2001:876:5cba:4321::/64",
      "enable_dhcp": true,
      "id": "8172"
    }, {
      "user_id": "s0m3-u5e7-1d",
      "name": "IPv6 Subnet of Network 3141",
      "links": [
          {
              "href": "https://example.org/network/v2.0/subnets/1413",
              "rel": "self"
          },
          {
              "href": "https://example.org/network/v2.0/subnets/1413",
              "rel": "bookmark"
          }
      ],
      "network_id": "3141",
      "tenant_id": "s0m3-u5e7-1d",
      "dns_nameservers": [],
      "enable_slaac": false,
      "public": false,
      "allocation_pools": [],
      "host_routes": [],
      "ip_version": 6,
      "gateway_ip": "2001:321:4abc:8765::9",
      "cidr": "2001:678:5cba:1234::/64",
      "enable_dhcp": true,
      "id": "1413"
    }
  ]
}

Get subnet details

Request

URI Method Cyclades/Network OS/Neutron
/subnets/<subnet id> GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
201 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Subnet not found

Response body contents:

subnet: {
  <subnet attribute>: <value>,
  ...
}

The attributes of a subnet are listed here.

Example Get subnet Details: JSON

GET https://example.org/network/v2.0/subnets/1413


{
  "subnet": {
      "user_id": "s0m3-u5e7-1d",
      "name": "IPv6 Subnet of Network 3141",
      "links": [
          {
              "href": "https://example.org/network/v2.0/subnets/1413",
              "rel": "self"
          },
          {
              "href": "https://example.org/network/v2.0/subnets/1413",
              "rel": "bookmark"
          }
      ],
      "network_id": "3141",
      "tenant_id": "s0m3-u5e7-1d",
      "dns_nameservers": [],
      "enable_slaac": false,
      "public": false,
      "allocation_pools": [],
      "host_routes": [],
      "ip_version": 6,
      "gateway_ip": "2001:321:4abc:8765::9",
      "cidr": "2001:678:5cba:1234::/64",
      "enable_dhcp": true,
      "id": "1413"
    }
}

Create subnet

Request

URI Method Cyclades/Network OS/Neutron
/subnets POST

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

subnet: {
  <subnet attribute>: <value>,
  ...
}
Subnet Attribute Cyclades/Network OS/Neutron
network_id required required
cidr required required
fixed_ips
name
tenand_id
allocation_pools
gateway_ip
ip_version
id
enable_dhcp
  • All the attributes are explained here.
  • ip_version must be set to 6 if cidr is an IPc6 subnet
  • tenand_id and id are accepted but ignored

Response

Return Code Description
201 (OK) Network created
400 (BadRequest) Invalid request body (missing network_id or cidr)
401 (Unauthorized) Missing or expired user token
403 (Forbidden) Insufficient permissions
404 (itemNoFound) Network not found
409 (Conflict) Allocation pools overlap with themselves or gateway

In case of success, the response has the same format is in get subnet details.

Update subnet

Request

URI Method Cyclades/Network OS/Neutron
/subnets/<subnet id> PUT

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

subnet: {
  <subnet attribute>: <value>,
  ...
}
Subnet Attribute Cyclades/Network OS/Neutron
network_id
cidr
fixed_ips
name
tenand_id
allocation_pools
gateway_ip
ip_version
id
enable_dhcp

Response

Return Code Description
200 (OK) Network is updated
400 (BadRequest) Field is not modifiable
401 (Unauthorized) Missing or expired user token
403 (Forbidden) You are not the owner of this subnet
404 (itemNoFound) Subnet not found

In case of success, the response has the same format as in get subnet details containing the updated values.

List ports

List ports connected on servers and networks accessible by the user

Request

URI Method Cyclades/Network OS/Neutron
/ports GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token

Response body contents:

ports: [
  {
    <port attribute>: <value>,
    ...
  }, ...
]

The attributes of a port are listed here.

Example List Ports: JSON

GET https://example.org/network/v2.0/ports

{
  "ports": [
    {
      "status": "ACTIVE",
      "updated": "2014-02-12T08:32:41.785217+00:00",
      "user_id": "s0m3-u5e7-1d",
      "name": "Port to public network",
      "links": [
          {
              "href": "https://example.org/network/v2.0/ports/18",
              "rel": "self"
          },
          {
              "href": "https://example.org/network/v2.0/ports/18",
              "rel": "bookmark"
          }
      ],
      "admin_state_up": true,
      "network_id": "2718",
      "tenant_id": "s0m3-u5e7-1d",
      "created": "2014-02-12T08:31:37.782907+00:00",
      "device_owner": "vm",
      "mac_address": "aa:01:02:6c:34:ab",
      "fixed_ips": [
          {
              "subnet": "28",
              "ip_address": "2001:443:2dfc:1232:a810:3cf:fe9b:21ab"
          }
      ],
      "id": "18",
      "security_groups": [],
      "device_id": "42"
    }, {
      "status": "ACTIVE",
      "updated": "2014-02-15T08:32:41.785217+00:00",
      "user_id": "s0m3-u5e7-1d",
      "name": "Port to public network",
      "links": [
          {
              "href": "https://example.org/network/v2.0/ports/19",
              "rel": "self"
          },
          {
              "href": "https://example.org/network/v2.0/ports/19",
              "rel": "bookmark"
          }
      ],
      "admin_state_up": true,
      "network_id": "2719",
      "tenant_id": "s0m3-u5e7-1d",
      "created": "2014-02-15T08:31:37.782907+00:00",
      "device_owner": "vm",
      "mac_address": "aa:00:0c:6d:34:bb",
      "fixed_ips": [
          {
              "subnet": "29",
              "ip_address": "192.168.1.2"
          }
      ],
      "id": "19",
      "security_groups": [],
      "device_id": "42"
    }
  ]
}

Get port details

Request

URI Method Cyclades/Network OS/Neutron
/ports/<port id> GET

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Port not found

Response body contents:

port: {
  <port attribute>: <value>,
  ...
}

The attributes of a port are listed here.

Example Get Port Details: JSON

GET https://example.org/network/v2.0/ports/18


{
  "port": {
    "status": "ACTIVE",
    "updated": "2014-02-12T08:32:41.785217+00:00",
    "user_id": "s0m3-u5e7-1d",
    "name": "Port to public network",
    "links": [
      {
          "href": "https://example.org/network/v2.0/ports/18",
          "rel": "self"
      },
      {
          "href": "https://example.org/network/v2.0/ports/18",
          "rel": "bookmark"
      }
    ],
    "admin_state_up": true,
    "network_id": "2718",
    "tenant_id": "s0m3-u5e7-1d",
    "created": "2014-02-12T08:31:37.782907+00:00",
    "device_owner": "vm",
    "mac_address": "aa:01:02:6c:34:ab",
    "fixed_ips": [
      {
          "subnet": "28",
          "ip_address": "2001:443:2dfc:1232:a810:3cf:fe9b:21ab"
      }
    ],
    "id": "18",
    "security_groups": [],
    "device_id": "42"
    }
}

Create port

Request

URI Method Cyclades/Network OS/Neutron
/ports POST ✔ ✔  

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

port: {
  <port attribute>: <value>,
  ...
}
Port Attribute Cyclades/Network OS/Neutron
network_id required required
device_id
fixed_ips
name
security_groups
admin_state_up
mac_address
tenand_id
  • network_id is the uuid of the network this port is connected to
  • device_id is the id of the device (i.e. server or router) this port is connected to
  • fixed_ips is a list of IP items. Each IP item is a dictionary containing an ip_address field. The value must be the IPv4 address of a floating IP which is reserved from the pool of the network with network_id, for the current user
  • name a string
  • security_groups is a list of security group IDs
  • admin_state_up, mac_address and tenantd_id are accepted by Cyclades/Network, but they are ignored

Response

Return Code Description
201 (OK) Network created
400 (BadRequest) Invalid request body (missing network_id)
401 (Unauthorized) Missing or expired user token
403 (Forbidden) Insufficient permissions
404 (itemNoFound) Network not found
503 (macGenerationFailure) Mac address generation failed

In case of success, the response has the same format is in get port details.

Update port

Request

URI Method Cyclades/Network OS/Neutron
/ports/<port id> PUT  

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

port: {
  <port attribute>: <value>,
  ...
}
Port Attribute Cyclades/Network OS/Neutron
name
network_id
port_id
fixed_ips
security_groups
admin_state_up
mac_address
tenand_id
  • name a string
  • all other attributes are accepted but ignored

Response

Return Code Description
200 (OK) Network is updated
401 (Unauthorized) Missing or expired user token
403 (Forbidden) You are not the owner of the network
404 (itemNoFound) Network not found

In case of success, the response has the same format as in get port details containing the updated values.

Delete port

Delete a port

Request

URI Method Cyclades/Network OS/Neutron
/ports/<port id> DELETE

Request Header Value Cyclades/Network OS/Neutron
X-Auth-Token User authentication token required required

Response

Return Code Description
204 (OK) Port is being deleted
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Port not found

List floating ips

List the floating ips which are reserved by the user

Request

URI Method Cyclades/Network OS/Neutron Extensions
/floatingips GET

Request Header Value Cyclades/Network OS/Neutron Extensions
X-Auth-Token User authentication token required required

Response

Return Code Description
200 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token

Response body contents:

floatingips: [
  {
    <floating ip attribute>: <value>,
    ...
  }, ...
]

The attributes of a floating ip are listed here.

Example List Floating IPs: JSON

GET https://example.org/network/v2.0/floatingips

{
  "floatingips": [
    {
      "instance_id": 42
      "floating_network_id": 2719
      "fixed_ip_address": None
      "floating_ip_address": "192.168.1.2"
      "port_id": 19
    },
    {
      "instance_id": 84
      "floating_network_id": 4178
      "fixed_ip_address": None
      "floating_ip_address": 192.168.1.3
      "port_id": 38
    }
  ]
}

Get floating ip details

Request

URI Method Cyclades/Network OS/Neutron Extensions
/floatingips/<ip-id> GET

Request Header Value Cyclades/Network OS/Neutron Extensions
X-Auth-Token User authentication token required required

Response

Return Code Description
201 (OK) Request succeeded
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Floating IP not found

Response body contents:

floatingip: {
  <floating ip attribute>: <value>,
  ...
}

The attributes of a floating ip are listed here.

Example Get Floating IP Details: JSON

GET https://example.org/network/v2.0/floatingips/19


{
  "floatingip": {
    "instance_id": 42
    "floating_network_id": 2719
    "fixed_ip_address": None
    "floating_ip_address": "192.168.1.2"
    "port_i"d: 19
  }
}

Create floating ip

Request

URI Method Cyclades/Network OS/Neutron Extensions
/floatingips POST ✔ ✔  

Request Header Value Cyclades/Network OS/Neutron Extensions
X-Auth-Token User authentication token required required
Content-Type Type or request body required required
Content-Length Length of request body required required

Request body contents:

floating ip: {
  <floating ip attribute>: <value>,
  ...
}
Floating IP Attribute Cyclades/Network OS/Neutron Extensions
floating_network_id required
floating_ip_address
port_id
fixed_ip_address
  • In Cyclades/Network, if floating_network_id is not used, the service will automatically pick a public network with a sufficient number of available IPs
  • All the attributes are explained here.

Response

Return Code Description
201 (OK) Network created
400 (BadRequest) Invalid request body (missing floating_network_id)
401 (Unauthorized) Missing or expired user token
409 (Conflict) Insufficient resources

In case of success, the response has the same format is in get floating ip details.

Delete floating ip

Request

URI Method Cyclades/Network OS/Neutron Extensions
/floatingips/<floatingip-id> DELETE

Request Header Value Cyclades/Network OS/Neutron Extensions
X-Auth-Token User authentication token required required

Response

Return Code Description
204 (OK) Floating IP is being deleted
401 (Unauthorized) Missing or expired user token
404 (itemNoFound) Floating IP not found

Reassign floating ip

Assign a floating IP to a different project.

Request

URI Method Cyclades/Network OS/Neutron
/floatingips/<floatingip-id>/action POST

Request Header Value
X-Auth-Token User authentication token

Request body contents:

reassign: {
    project: <project-id>
 }

Response

Return Code Description
200 (OK) Request succeeded
400 (Bad Request) Malformed request
401 (Unauthorized) Missing or expired user token
403 (Forbidden) Not allowed to modify this network (e.g. public)
404 (Not Found) Network not found
500 (Internal Server Error) The request cannot be completed because of an
internal error
503 (Service Unavailable) The service is not currently available

Index of Attributes

Network attributes

Network attributes Cyclades/Network OS/Neutron
admin_state_up
id
name
shared
public
status
subnets
tenant_id
user_id
network_type
router:external
SNF:floating_ip
links
  • admin_state_up The administrative state of the network (true, false)
  • shared Used for compatibility with OS/Neutron and has the same value as public
  • public If the network is publicly accessible (true, false)
  • status ACTIVE, DOWN, BUILD, ERROR, SNF:DRAINED The later means that no new ports or floating IPs can be created from this network
  • tenant_id Used for compatibility with OS/Neutron and has the same value as user_id
  • user_id The owner of the network if private or None if public
  • network_type MAC_FILTERED, IP_LESS_ROUTED, PHYSICAL_VLAN
  • router:external Whether the network is connected to an external router (true, false)

Subnet attributes

Subnet attributes Cyclades/Network OS/Neutron
id
name
network_id
ip_version
cidr
gateway_ip
enable_dhcp
allocation_pools
tenant_id
dns_nameservers
host_routes
user_id
enable_slaac
links
  • id The UUID for the subnet
  • name A human readable name
  • network_id The ID of the network associated with this subnet
  • ip_version The IP version (4, 6) of the subnet (default is 4)
  • cidr CIDR represents IP range for this subnet, based on the IP version
  • gateway_ip Default gateway used by devices in this subnet. If not specified the service will be the first available IP address. Tto get no gateway, set to None
  • enable_dhcp Wheather nfdhcpd is enabled for this subnet (true, false)
  • enable_slaac Whether SLAAC is enabled for this subnet (true, false)
  • allocation_pools(CR) Subranges of cidr available for dynamic allocation. List of dictionaries of the form: [{“start”: “192.168.2.0”, “end”: 192.168.2.10”}, ...]
  • user_id The UUID of the network owner, None if the network is public
  • tenant_id The UUID of the project that defines this resource
  • host_routes Routes that should be used by devices with IPs from this subnet (list)
  • dns_nameservers Used for compatibility with OpenStack/Neutron

Port attributes

Port attributes Cyclades/Network OS/Neutron
id
name
status
admin_state_up
network_id
tenant_id
mac_address
fixed_ips
device_id
device_owner
security_groups
port_filter
binding:vif_type
binding:capabilities
user_id
links
  • status ACTIVE, DOWN, BUILD, ERROR
  • admin_state_up The administrative state of the network (true, false). If false, the network does not forward packets
  • network_id UUID of the attached network
  • user_id The UUID of the owner of the network, or None if the network is public
  • tenant_id The UUID of the project that defines this resource
  • device_owner ID of the entity using this port. e.g., network:router, network:router_gateway
  • fixed_ips IP information for the port (list of dicts). Each IP item (dictionary) consists of a subnet and an ip_address field.
  • device_id The ID of the device that uses this port i.e., a virtual server or a router
  • security_groups List of security group IDs associated with this port

Floating ip attributes

Floating ip attributes Cyclades/Network OS/Neutron Extensions
id
floating_network_id
floating_ip_address
fixed_ip_address
port_id
user_id
tenant_id
instance_id
router_id
  • id The UUID for the floating IP
  • floating_network_id The UUID of the external network associated to this floating IP is associated.
  • floating_ip_address The IPv4 address of the floating IP
  • fixed_ip_address Used for compatibility, always None
  • port_id The port where this IP is attached, if any
  • instance_id The device using this floating IP, if any
  • user_id The UUID of the owner of the floating IP
  • tenant_id The UUID of the project that defines this resource
  • router_id The ID of the router, if any