Network IP interfaces endpoint overview
Overview
The following operations are supported:
-
Creation: POST network/ip/interfaces
-
Collection Get: GET network/ip/interfaces
-
Instance Get: GET network/ip/interfaces/{uuid}
-
Instance Patch: PATCH network/ip/interfaces/{uuid}
-
Instance Delete: DELETE network/ip/interfaces/{uuid}
Retrieving network interface information
The IP interfaces GET API retrieves and displays relevant information pertaining to the interfaces configured in the cluster. The response can contain a list of multiple interfaces or a specific interface. The fields returned in the response vary for different interfaces and configurations.
Examples
Retrieving all interfaces in the cluster
The following example shows the list of all interfaces configured in a cluster.
# The API: /api/network/ip/interfaces # The call: curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces" -H "accept: application/hal+json" # The response: { "records": [ { "uuid": "14531286-59fc-11e8-ba55-005056b4340f", "name": "user-cluster-01_mgmt1", "_links": { "self": { "href": "/api/network/ip/interfaces/14531286-59fc-11e8-ba55-005056b4340f" } } }, { "uuid": "145318ba-59fc-11e8-ba55-005056b4340f", "name": "user-cluster-01_clus2", "_links": { "self": { "href": "/api/network/ip/interfaces/145318ba-59fc-11e8-ba55-005056b4340f" } } }, { "uuid": "14531e45-59fc-11e8-ba55-005056b4340f", "name": "user-cluster-01_clus1", "_links": { "self": { "href": "/api/network/ip/interfaces/14531e45-59fc-11e8-ba55-005056b4340f" } } }, { "uuid": "245979de-59fc-11e8-ba55-005056b4340f", "name": "cluster_mgmt", "_links": { "self": { "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" } } }, { "uuid": "c670707c-5a11-11e8-8fcb-005056b4340f", "name": "lif1", "_links": { "self": { "href": "/api/network/ip/interfaces/c670707c-5a11-11e8-8fcb-005056b4340f" } } } ], "num_records": 5, "_links": { "self": { "href": "/api/network/ip/interfaces" } } }
Retrieving a specific Cluster-scoped interface
The following example shows the response when a specific Cluster-scoped interface is requested. The system returns an error when there is no interface with the requested UUID. SVM information is not returned for Cluster-scoped interfaces.
# The API: /api/network/ip/interfaces/{uuid} # The call: curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" -H "accept: application/hal+json" # The response: { "uuid": "245979de-59fc-11e8-ba55-005056b4340f", "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18", "family": "ipv4", }, "enabled": true, "state": "up", "scope": "cluster", "ipspace": { "uuid": "114ecfb5-59fc-11e8-ba55-005056b4340f", "name": "Default", "_links": { "self": { "href": "/api/network/ipspaces/114ecfb5-59fc-11e8-ba55-005056b4340f" } } }, "services": [ "management_core", "management_autosupport", "management_access" ], "location": { "is_home": true, "auto_revert": false, "failover": "broadcast_domain_only", "node": { "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb", "name": "user-cluster-01-a", "_links": { "self": { "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb" } } }, "port": { "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb", "name": "e0d", "node": { "name": "user-cluster-01-a" }, "_links": { "self": { "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb" } } }, "home_node": { "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb", "name": "user-cluster-01-a", "_links": { "self": { "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb" } } }, "home_port": { "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb", "name": "e0d", "node": { "name": "user-cluster-01-a" }, "_links": { "self": { "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb" } } } }, "service_policy": { "uuid": "9e0f4151-141b-11e9-851e-005056ac1ce0", "name": "default-management" }, "vip": false, "_links": { "self": { "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" } } }
Retrieving a specific SVM-scoped interface using a filter
The following example shows the response when a specific SVM-scoped interface is requested. The SVM object is only included for SVM-scoped interfaces.
# The API: /api/network/ip/interfaces # The call: curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces?name=lif1&fields=*" -H "accept: application/hal+json" # The response: { "records": [ { "uuid": "c670707c-5a11-11e8-8fcb-005056b4340f", "name": "lif1", "ip": { "address": "10.10.10.11", "netmask": "24", "family": "ipv4", }, "enabled": true, "state": "up", "scope": "svm", "ipspace": { "uuid": "114ecfb5-59fc-11e8-ba55-005056b4340f", "name": "Default", "_links": { "self": { "href": "/api/network/ipspaces/114ecfb5-59fc-11e8-ba55-005056b4340f" } } }, "svm": { "uuid": "c2134665-5a11-11e8-8fcb-005056b4340f", "name": "user_vs0", "_links": { "self": { "href": "/api/svm/svms/c2134665-5a11-11e8-8fcb-005056b4340f" } } }, "services": [ "data_core", "data_nfs", "data_cifs", "data_flexcache" ], "location": { "is_home": true, "auto_revert": false, "failover": "broadcast_domain_only", "node": { "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb", "name": "user-cluster-01-a", "_links": { "self": { "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb" } } }, "port": { "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb", "name": "e0d", "node": { "name": "user-cluster-01-a" }, "_links": { "self": { "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb" } } }, "home_node": { "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb", "name": "user-cluster-01-a", "_links": { "self": { "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb" } } }, "home_port": { "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb", "name": "e0d", "node": { "name": "user-cluster-01-a" }, "_links": { "self": { "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb" } } } }, "service_policy": { "uuid": "9e53525f-141b-11e9-851e-005056ac1ce0", "name": "default-data-files" }, "vip": false, "_links": { "self": { "href": "/api/network/ip/interfaces/c670707c-5a11-11e8-8fcb-005056b4340f" } } } ], "num_records": 1, "_links": { "self": { "href": "/api/network/ip/interfaces?name=lif1&fields=*" } } }
Retrieving specific fields and limiting the output using filters
The following example shows the response when a filter is applied (location.home_port.name=e0a) and only certain fields are requested. Filtered fields are in the output in addition to the default fields and requested fields.
# The API: /api/network/ip/interfaces # The call: curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces?location.home_port.name=e0a&fields=location.home_node.name,service_policy.name,ip.address,enabled" -H "accept: application/hal+json" # The response: { "records": [ { "uuid": "1d1c9dc8-4f17-11e9-9553-005056ac918a", "name": "user-cluster-01-a_clus1", "ip": { "address": "192.168.170.24" }, "enabled": true, "location": { "home_node": { "name": "user-cluster-01-a" }, "home_port": { "name": "e0a" } }, "service_policy": { "name": "default-cluster" }, "_links": { "self": { "href": "/api/network/ip/interfaces/1d1c9dc8-4f17-11e9-9553-005056ac918a" } } }, { "uuid": "d07782c1-4f16-11e9-86e7-005056ace7ee", "name": "user-cluster-01-b_clus1", "ip": { "address": "192.168.170.22" }, "enabled": true, "location": { "home_node": { "name": "user-cluster-01-b" }, "home_port": { "name": "e0a" } }, "service_policy": { "name": "default-cluster" }, "_links": { "self": { "href": "/api/network/ip/interfaces/d07782c1-4f16-11e9-86e7-005056ace7ee" } } } ], "num_records": 2, "_links": { "self": { "href": "/api/network/ip/interfaces?location.home_port.name=e0a&fields=location.home_node.name,service_policy.name,ip.address,enabled" } } }
Creating IP interfaces
You can use the IP interfaces POST API to create IP interfaces as shown in the following examples.
Examples
Creating a Cluster-scoped IP interface using names
The following example shows the record returned after the creation of an IP interface on "e0d".
# The API: /api/network/ip/interfaces # The call: curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "scope": "cluster", "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "failover": "broadcast_domain_only", "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } } }, "service_policy": { "name": "default-management" } }' # The response: { "num_records": 1, "records": [ { "uuid": "245979de-59fc-11e8-ba55-005056b4340f", "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "scope": "cluster", "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "failover": "broadcast_domain_only", "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } }, }, "service_policy": { "name": "default-management" }, "_links": { "self": { "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" } } } ] }
Creating a SVM-scoped IP interface using a mix of parameter types
The following example shows the record returned after the creation of a IP interface by specifying a broadcast domain as the location.
# The API: /api/network/ip/interfaces # The call: curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "255.255.240.0" }, "enabled": true, "scope": "svm", "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a" }, "location": { "auto_revert": true, "broadcast_domain": { "name": "Default" } }, "service_policy": { "name": "default-data-files" } }' # The response: { "num_records": 1, "records": [ { "uuid": "80d271c9-1f43-11e9-803e-005056a7646a", "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "20" }, "enabled": true, "scope": "svm", "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a", "name": "vs0", "_links": { "self": { "href": "/api/svm/svms/137f3618-1e89-11e9-803e-005056a7646a" } } }, "location": { "auto_revert": true }, "service_policy": { "name": "default-data-files" }, "_links": { "self": { "href": "/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" } } } ] }
Creating a Cluster-scoped IP interface without specifying the scope parameter
The following example shows the record returned after creating an IP interface on "e0d" without specifying the scope parameter. The scope is "cluster" if an "svm" is not specified.
# The API: /api/network/ip/interfaces # The call: curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } } }, "service_policy": { "name": "default-management" } }' # The response: { "num_records": 1, "records": [ { "uuid": "245979de-59fc-11e8-ba55-005056b4340f", "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "scope": "cluster", "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } } }, "service_policy": { "name": "default-management" }, "_links": { "self": { "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" } } } ] }
Creating an SVM-scoped IP interface without specifying the scope parameter
The following example shows the record returned after creating an IP interface on "e0d" without specifying the scope parameter. The scope is "svm" if the "svm" field is specified.
# The API: /api/network/ip/interfaces # The call: curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "255.255.240.0" }, "enabled": true, "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a" }, "location": { "auto_revert": true, "broadcast_domain": { "name": "Default" } }, "service_policy": { "name": "default-data-files" } }' # The response: { "num_records": 1, "records": [ { "uuid": "80d271c9-1f43-11e9-803e-005056a7646a", "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "20" }, "enabled": true, "scope": "svm", "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a", "name": "vs0", "_links": { "self": { "href": "/api/svms/137f3618-1e89-11e9-803e-005056a7646a" } } }, "location": { "auto_revert": true }, "service_policy": { "name": "default-data-files" }, "_links": { "self": { "href": "/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" } } } ] }
Updating IP interfaces
You can use the IP interfaces PATCH API to update the attributes of an IP interface.
Examples
Updating the auto revert flag of an IP interface
The following example shows how the PATCH request changes the auto revert flag to 'false'.
# The API: /api/network/ip/interfaces/{uuid} # The call: curl -X PATCH "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" -H "accept: application/hal+json" -d '{ "location": { "auto_revert": "false" } }' { }
Updating the service policy of an IP interface
The following example shows how the PATCH request changes the service policy to 'default-management'.
# The API: /api/network/ip/interfaces/{uuid} # The call: curl -X PATCH "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" -H "accept: application/hal+json" -d '{ "service_policy": { "name": "default-management" }}' { }
Deleting IP interfaces
You can use the IP interfaces DELETE API to delete an IP interface in the cluster.
Example
Deleting an IP Interface
The following DELETE request deletes a network IP interface.
# The API: /api/network/ip/interfaces/{uuid} # The call: curl -X DELETE "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" { }