Environments REST API
- Description – manages logical environments and allow users to group servers, networks, and more within an environment
- Request URL – GET /ufmRest/resources/environments
- Main operations
- Get all environments
- Get an environment by name
- Create an environment
- Update an environment
- Delete an environment
Get All Environments
- Description – lists all environments in the logical model
- Request URL – GET /ufmRest/resources/environments
- Request Content Type – Application/json
Response
[ { "logical_servers": [], "severity": "Info", "total_servers": 0, "description": null, "state": "created", "error": "none", "total_alarms": 0, "networks": [], "name": "environment-cluster-1" } ]
Status Codes
200 – OK
Get Environment by Name
- Description – get a specific environment using its name
- Request URL – GET /ufmRest/resources/environments/<name>
<name> – name of environment. If not used, all environments will be listed. - Request Content Type – Application/json
Response
{ "logical_servers": [], "severity": "Info", "total_servers": 0, "description": null, "state": "created", "error": "none", "total_alarms": 0, "networks": [], "name": "environment-cluster-1" }
Status Codes
200 – OK
404 – NOT FOUND
Create Environment
- Description – create a new environment
- Request URL – POST /ufmRest/resources/environments
- Request Content Type – Application/json
Request Data
{ "name": "ufm-environment", "description": "cluster 1 environment" }
Request Data
{ "name": "ufm-environment" }
Status Codes
200 – OK
404 – BAD_REQUEST
Update Environment
- Description
- Update an environment’s details
- Request URL
- PUT /ufmRest/resources/environments/<name>
- Request Content Type
- Application/json
Request Data
{ "description": "cluster 2 environment" }
Response
{ "name": "ufm-environment" }
Status Codes
200 – OK
404 – BAD_REQUEST
Delete Environment
- Description – delete an existing environment
- Request URL – DELETE /ufmRest/resources/environments/<name>
- Request Content Type – Application/json
- Response – N/A
Status Codes
204 – no content
404 – BAD_REQUEST
Logical Servers REST API
- Description – manages logical servers within an environment. These interfaces allow users to retrieve information on, create, update, delete, allocate to and free resources from logical servers.
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers
- Main operations
- Get all logical servers
- Get a logical server by name
- Create a logical server
- Allocate computes manually to a logical server
- Allocate computes automatically to a logical server
- Free computes manually from a logical server
- Free computes automatically from a logical server
- Delete a logical server
Get All Logical Servers
- Description – lists all logical servers in the model
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers
- Request Content Type – Application/json
Response
[ { "description": null, "computes": [ "0002c903000e0b72" ], "total_computes": 1, "severity": "Info", "network_interfaces": [ "env1_server1_management" ], "total_interfaces": 1, "environment": "env1", "state": "allocated", "error": "none", "total_active_computes": 1, "os": "Linux", "name": "server1" } ]
Status Codes
200 – OK
Get Logical Server by Name
- Description – get a specific logical server by its name
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers/<name>
<name> – name of a logical server. If not used, all logical servers will be listed. - Request Content Type – Application/json
Response
{ "description": null, "computes": [ "0002c903000e0b72" ], "total_computes": 1, "severity": "Info", "network_interfaces": [ "env1_server1_management" ], "total_interfaces": 1, "environment": "env1", "state": "allocated", "error": "none", "total_active_computes": 1, "os": "Linux", "name": "server1" }
Status Codes
200 – OK
- 404 – NOT FOUND
Create Logical Server
- Description – create a logical server within a given environment
- Request URL – POST /ufmRest/resources/environments/<name>/logical_servers
- Request Content Type – Application/json
Request Data
{ "name": "logical-server-1", "description": "logical server for cluster 1" }
Response
{ "name": "logical-server-1" "environment": "ufm-environment" }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Allocate Computes Manually to Logical Server
- Description – allocates specific computes to a logical server
- Request URL – PUT /ufmRest/resources/environments/<name>/logical_servers/<name>/allocate-computes
- Request Content Type – Application/json
Request Data – specifies the list of the computes using their names. Example:
{ "computes": ["0002c903000e0b72", "…", …] }
Response – lists all the computes that are allocated to the logical server. Example:
{ "computes": [ "0002c903000e0b72" ], "name": "server1" }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Allocate Computes Automatically to Logical Server
- Description – allocates computes to a logical server according to the specified number of computes
- Request URL – PUT /ufmRest/resources/environments/<name>/logical_servers/<name>/allocate-computes
- Request Content Type – Application/json
Request Data – specifies the number of the computes required for allocation. Example:
{ "total_computes": 2 }
Response – lists all the computes that are allocated to the logical server. Example:
{ "computes": [ "0002c903000e0b72", "0002c903000e0b73" ], "name": "server1" }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Assign Computes Manually to Logical Server
- Description – assign computes for logical server. As opposed to the allocate computes APIs, this API assigns only the computes sent in the request to the logical server. If an empty list is sent, all assigned computes to this logical server are removed.
- Request URL – PUT /ufmRest/resources/environments/<env_name>/logical_servers/<server_name>assign-computes
- Request Content Type – Application/json
Request Data
{ "computes": [ "f452140300383a00" ] }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Assign Computes Automatically to Logical Server
- Description – assign computes automatically for logical server depending on total_computes number
- Request URL – PUT /ufmRest/resources/environments/<env_name>/logical_servers/<server_name>auto_assign-computes
- Request Content Type – Application/json
Request Data
{ "total_computes": 1 }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Free Computes Manually From Logical Server
- Description – free specified computes from a logical server
- Request URL – PUT /ufmRest/resources/environments/<name>/logical_servers/<name>/free-computes
- Request Content Type – Application/json
Request Data – specifies list of computes to free using the compute names. Example:
{ "computes": ["0002c903000e0b72", "…", …] }
Response – lists all the computes that were deallocated from the logical server. Example:
{ "computes": [ ], "name": "server1" }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Free Computes Automatically From Logical Server
- Description – free the requested amount of computes that are allocated to a logical server
- Request URL – PUT /ufmRest/resources/environments/<name>/logical_servers/<name>/free-computes
- Request Content Type – Application/json
Request Data – lists the computes that are allocated to the logical server. Example:
{ "computes": [ "0002c903000e0b72", "0002c903000e0b73" ], "name": "server1" }
Response – lists all the computes that are allocated to the logical server. Example:
{ "total_computes": <number> }
Status Codes
200 – OK
- 400 – BAD_REQUEST
Update Network Interfaces Assigned to Logical Server
- Description – update the network interfaces assigned to logical server
- Request URL – PUT /ufmRest/resources/environments/<env_name>/logical_servers/<logical_server_name>/network_interfaces
Request Data
[ { "network": "10", "description": "new_discreption" }, { "network": "13", "description": "N/A" } ]
Status Codes
200 – OK
- 400 – BAD_REQUEST
Update Logical Server Description
- Description – update logical server description
- Request URL – PUT /ufmRest/resources/environments/<env_name>/logical_servers/<ls_name>
Request Data
{ "description": "new_disc" }
Status Codes
200 – OK
- 400 – BAD_REQUEST
- 404 – NOT_FOUND
Delete Logical Server
- Description – free computes from a logical server
- Request URL – DELETE /ufmRest/resources/environments/<name>/logical_servers/<name>
- Request Content Type – Application/json
- Response – N/A
Status Codes
204 – NO CONTENT
- 404 – NOT FOUND
Computes REST API
- Description – these interfaces allow users to retrieve all or a specific compute allocated to a logical server
- Request URL – /ufmRest/resources/environments/<name>/logical_servers/<name>/computes
- Main operations
- Get all computes
- Get a compute by name
Get All Computes
- Description – lists all computes of a logical server
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers/<name>/computes
- Request Content Type – Application/json
Response
[ { "severity": "Info", "name": "0002c903000e0b72", "environment": "env1", "state": "allocated", "total_vifs": 0, "logical_server": "server1", "description": "Compute Element" }, { "severity": "Info", "name": "0002c90300a06a70", "environment": "env1", "state": "allocated", "total_vifs": 0, "logical_server": "server1", "description": "Compute Element" } ]
Status Codes
- 200 – OK
Get Compute by Name
- Description – get a specific compute using its name
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers/<name>/computes/<name>
<name> – name of a compute. If not used, all computes will be listed. - Request Content Type – Application/json
Response
{ "severity": "Info", "name": "0002c903000e0b72", "environment": "env1", "state": "allocated", "total_vifs": 0, "logical_server": "server1", "description": "Compute Element" }
Status Codes
- 200 – OK
Global Networks REST API
- Description – manages global networks that can be used by all environments
- Request URL – /ufmRest/resources/networks
- Main operations
- Get all global networks
- Get a global network
- Create a global network
- Update a global network
- Delete a global network
Get All Global Networks
- Description – lists all global networks
- Request URL – GET /ufmRest/resources/networks
- Request Content Type – Application/json
Response
[ { "load_average": 0, "description": null, "pkey": "0x4", "ip_services_configuration": { "primary_dns": "0.0.0.0", "secondary_dns": "0.0.0.0", "method": "external", "domain_name": "" }, "severity": "Info", "interfaces": [], "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "error": "none", "ip_configuration": { "ip": "0.0.0.0", "mask": "255.255.255.0", "gateway": "0.0.0.0" }, "mtu_limit": 0, "total_alarms": 0, "default_membership": "full", "name": "global_net2" }, { "load_average": 0, "description": "Primary IB management network", "pkey": "0x7fff", "ip_services_configuration": { "primary_dns": "0.0.0.0", "secondary_dns": "0.0.0.0", "method": "external", "domain_name": "" }, "severity": "Info", "interfaces": [], "state": "created", "qos_parameters": { "service_level": null, "rate_limit": null }, "error": "none", "ip_configuration": { "ip": "192.168.60.0", "mask": "255.255.255.0", "gateway": "0.0.0.0" }, "mtu_limit": 2048, "total_alarms": 0, "default_membership": "full", "name": "management" } ]
Status Codes
- 200 – OK
Get Global Network by Name
- Description – get a specific global network using its name
- Request URL – GET /ufmRest/resources/networks/<name>
- Request Content Type – Application/json
Response
{ "load_average": 0, "description": null, "pkey": "0x4", "ip_services_configuration": { "primary_dns": "0.0.0.0", "secondary_dns": "0.0.0.0", "method": "external", "domain_name": "" }, "severity": "Info", "interfaces": [], "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "error": "none", "ip_configuration": { "ip": "0.0.0.0", "mask": "255.255.255.0", "gateway": "0.0.0.0" }, "mtu_limit": 0, "total_alarms": 0, "default_membership": "full", "name": "global_net2" }
Status Codes
- 200 – OK
- 204 – NOT FOUND
Create Global Network
- Description – create a new global network
- Request URL – POST /ufmRest/resources/networks
Request Data Parameters
Name Values Default Description Optional/ Mandatory name String Name of network Mandatory description String
None
Description of the network Optional default_membership "full", "partial" "full" - full – members with full membership can communicate with all hosts (members) within the network/partition
- partial – members with limited membership cannot communicate with other members with limited membership but communication is allowed between every other combination of membership types
Optional pkey 0x0-0x7fff 0x0 PKey of the network. If the PKey is not specified during the network definition process (in the Network Configuration window or by using the Logical Server wizard), UFM will select the best available PKey for the network.
Optional (hexadecimal) load_average 0, 500, ..4000 The average traffic load to the typical destination per Logical Interface in MB per second Optional mtu_limit 0-4100 2048 Limit of maximum transmission unit Optional rate_limit 0, 100, .., 5700 0 Rate Limit in Mbits per second. This value is converted to a standard InfiniBand enumerator, and provisioned to the SM via the partitions.conf and qos-policy.conf files. Optional service_level 0,1, ..,7 0 Priority queue in which the traffic will always be served.
- 0 – Strict High
- 1 – High
- 2 – Meduim,
- …
- 7 – Strict low
Optional method external; static static Method of assigning IP Optional primary_dns IPv4 0.0.0.0 Primary DNS Optional secondary_dns IPv4 0.0.0.0 Secondary DNS Optional domain_name String Empty Domain name Optional Request Data Example
{ "name": " UFM-network", "description": "…", "default_membership": "partial", "pkey": "0x0", "load_average": 500 "mtu_limit": 2048 "ip_services_configuration": { "method": "static", "primary_dns": "255.255.0.0", "secondary_dns": "255.255.0.0", "domain_name": "12345678901234567" } "qos_parameters": { "service_level": 6, "rate_limit": 5700 } }
Request Content Type – Application/json
Response
- Status Codes
200 – OK
400 – BAD_REQUEST
Update Global Network
- Description – update an existing global network
- Request URL – PUT /ufmRest/resources/networks
Request Data Parameters
Name Values Default Description Optional/ Mandatory description String
None
Description of the network Optional load_average 0, 500, ..4000 The average traffic load to the typical destination per Logical Interface in MB per second Optional mtu_limit 0-4100 2048 Limit of maximum transmission unit Optional rate_limit 0, 100, .., 5700 0 Rate Limit in Mbits per second. This value is converted to a standard InfiniBand enumerator, and provisioned to the SM via the partitions.conf and qos-policy.conf files. Optional service_level 0,1, ..,7 0 Priority queue in which the traffic will always be served.
- 0 – Strict High
- 1 – High
- 2 – Meduim,
- …
- 7 – Strict low
Optional Request Data Example
{ "description": "…", "load_average": 500 "mtu_limit": 2048 "qos_parameters": { "service_level": 6, "rate_limit": 5700 } }
Request Content Type – Application/json
Response
{ "name": "UFM-network" }
- Status Codes
200 – OK
400 – BAD_REQUEST
Delete Global Network
- Description – delete an existing global network
- Request URL – DELETE /ufmRest/resources/networks/<name>
- Request Content Type – Application/json
- Response – N/A
- Status Codes
204 – NO CONTENT
400 – BAD_REQUEST
Local Networks REST API
- Description – manages networks of local logical environments
- Request URL – /ufmRest/resources/environments/<name>/networks
- Main operations
- Get all local networks
- Get a local network
- Create a local network
- Update a local network
- Delete a local network
Get All Local Networks
- Description – lists all local networks
- Request URL – GET /ufmRest/resources/environments/<name>/networks
- Request Content Type – Application/json
Response
[ { "load_average": 0, "description": null, "pkey": "0x4", "ip_services_configuration": { "primary_dns": "0.0.0.0", "secondary_dns": "0.0.0.0", "method": "external", "domain_name": "" }, "severity": "Info", "interfaces": [], "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "error": "none", "ip_configuration": { "ip": "0.0.0.0", "mask": "255.255.255.0", "gateway": "0.0.0.0" }, "mtu_limit": 0, "total_alarms": 0, "default_membership": "full", "name": "global_net2" } ]
- Status Codes
200 – OK
Get Local Network by Name
- Description – get a specific local network using its name
- Request URL – GET /ufmRest/resources/environments/<name>/networks/<name>
- Request Content Type – Application/json
Response
{ "load_average": 0, "description": null, "pkey": "0x4", "severity": "Info", "interfaces": [], "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "error": "none", "ip_configuration": { "ip": "0.0.0.0", "mask": "255.255.255.0", "gateway": "0.0.0.0" }, "mtu_limit": 0, "total_alarms": 0, "default_membership": "full", "name": "global_net2" }
- Status Codes
200 – OK
204 – NOT FOUND
Create Local Network
- Description – create a new local network
- Request URL – POST /ufmRest/resources/environments/<name>/networks
Request Data Parameters
Name Values Default Description Optional/ Mandatory name String Name of network Mandatory description String
None
Description of the network Optional default_membership "full", "partial" "full" - full – members with full membership can communicate with all hosts (members) within the network/partition
- partial – members with limited membership cannot communicate with other members with limited membership but communication is allowed between every other combination of membership types
Optional pkey 0x0-0x7fff 0x0 PKey of the network. If the PKey is not specified during the network definition process (in the Network Configuration window or by using the Logical Server wizard), UFM will select the best available PKey for the network.
Optional (hexadecimal) load_average 0, 500, ..4000 The average traffic load to the typical destination per Logical Interface in MB per second Optional mtu_limit 0-4100 2048 Limit of maximum transmission unit Optional rate_limit 0, 100, .., 5700 0 Rate Limit in Mbits per second. This value is converted to a standard InfiniBand enumerator, and provisioned to the SM via the partitions.conf and qos-policy.conf files. Optional service_level 0,1, ..,7 0 Priority queue in which the traffic will always be served.
- 0 – Strict High
- 1 – High
- 2 – Meduim,
- …
- 7 – Strict low
Optional method external; static static Method of assigning IP Optional primary_dns IPv4 0.0.0.0 Primary DNS Optional secondary_dns IPv4 0.0.0.0 Secondary DNS Optional domain_name String Empty Domain name Optional Request Data Example
{ "name": " UFM-network", "description": "…", "default_membership": "partial", "pkey": "0x0", "load_average": 500 "mtu_limit": 2048 "ip_services_configuration": { "method": "static", "primary_dns": "255.255.0.0", "secondary_dns": "255.255.0.0", "domain_name": "12345678901234567" } "qos_parameters": { "service_level": 6, "rate_limit": 5700 } }
Request Content Type – Application/json
Response
{ "name": "UFM-network" }
- Status Codes
200 – OK
400 – BAD_REQUEST
Update Local Network
- Description – update an existing local network
- Request URL – PUT /ufmRest/resources/environments/<name>/networks
Request Data Parameters
Name Values Default Description Optional/ Mandatory description String
None
Description of the network Optional load_average 0, 500, ..4000 The average traffic load to the typical destination per Logical Interface in MB per second Optional mtu_limit 0-4100 2048 Limit of maximum transmission unit Optional rate_limit 0, 100, .., 5700 0 Rate Limit in Mbits per second. This value is converted to a standard InfiniBand enumerator, and provisioned to the SM via the partitions.conf and qos-policy.conf files. Optional service_level 0,1, ..,7 0 Priority queue in which the traffic will always be served.
- 0 – Strict High
- 1 – High
- 2 – Meduim,
- …
- 7 – Strict low
Optional Request Data Example
{ "description": "…", "load_average": 500 "mtu_limit": 2048 "qos_parameters": { "service_level": 6, "rate_limit": 5700 } }
Request Content Type – Application/json
Response
{ "name": "UFM-network" }
- Status Codes
200 – OK
400 – BAD_REQUEST
Delete Local Network
- Description – delete an existing local network
- Request URL – DELETE /ufmRest/resources/environments/<name>/networks/<name>
- Request Content Type – Application/json
- Response – N/A
- Status Codes
200 – OK
400 – BAD_REQUEST
Network Interfaces REST API
- Description – manages the interfaces (association) between the networks and the logical servers
- Request URL – /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces
- Main operations
- Get all network interfaces
- Get a network interface
- Create a network interface
- Update a network interface
- Delete a network interface
Get All Network Interfaces
- Description – lists all network interfaces for a specified logical server
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces
- Request Content Type – Application/json
Response
[ { "load_average": null, "severity": "Info", "ip": "192.168.60.1", "description": "Management NetIfc", "membership": "parent", "name": "environment-1_server-1_management", "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "id": 1, "logical_server": "server1", "port": 0, "network": "management" } ]
- Status Codes
200 – OK
Get Network Interface by Name
- Description – get a specific network interface using its name
- Request URL – GET /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces/<name>
- Request Content Type – Application/json
Response
{ "load_average": null, "severity": "Info", "ip": "192.168.60.1", "description": "Management NetIfc", "membership": "parent", "name": "env1_server1_management", "state": "created", "qos_parameters": { "service_level": 0, "rate_limit": 0 }, "id": 1, "logical_server": "server1", "port": 0, "network": "management" }
- Status Codes
200 – OK
- 204 – NOT FOUND
Create Network Interface
- Description – create an interface between a logical server and a local/global network
- Request URL – POST /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces
Request Data Parameters
Name Values Default Description Optional/ Mandatory network String Name of network Mandatory description String
None
Description of the network interface Optional Request Data Example
{ "network": "UFM-network", "description": "Interface to UFM main network" }
Request Content Type – Application/json
Response
{ "name": "environment-1-server-1-UFM-network" }
- Status Codes
200 – OK
- 400 – BAD_REQUEST
Update Network Interface
- Description – update an existing network interface
- Request URL – PUT /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces
Request Data Parameters
Name Values Default Description Optional/ Mandatory description String
None
Description of the network Optional default_membership "full", "partial" "full" - full – members with full membership can communicate with all hosts (members) within the network/partition
- partial – members with limited membership cannot communicate with other members with limited membership but communication is allowed between every other combination of membership types
Optional load_average 0, 500, .. 4000 The average traffic load to the typical destination per Logical Interface in MB per second Optional mtu_limit 0-4100 2048 Limit of maximum transmission unit Optional rate_limit 0, 100, .. 5700 0 Rate Limit in Mbits per second. This value is converted to a standard InfiniBand enumerator, and provisioned to the SM via the partitions.conf and qos-policy.conf files. Optional service_level 0,1, .. 7 0 Priority queue in which the traffic will always be served.
- 0 – Strict High
- 1 – High
- 2 – Meduim,
- …
- 7 – Strict low
Optional Request Data Example
{ "description": "Interface to UFM network", "load_average": 500 "qos_parameters": { "service_level": 6, "rate_limit": 5700 } }
Request Content Type – Application/json
Response
{ "name": "environment-1-server-1-UFM-network" }
- Status Codes
200 – OK
- 400 – BAD_REQUEST
Delete Network Interface
- Description – delete an existing network interface
- Request URL – /ufmRest/resources/environments/<name>/logical_servers/<name>/network_interfaces/<name>
- Request Content Type – Application/json
- Response – N/A
- Status Codes
204 – NO CONTENT
- 400 – BAD_REQUEST