Logical Model 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
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
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
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
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
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