Services
Description |
Gets all services defined in NEO, filtered by service type - optional |
|||||||||||
Request URL |
GET /neo/app/services?service_type=<service-type> |
|||||||||||
Request Data |
List of service objects - see below. |
Description |
Gets a specific service defined in NEO |
|||||||||||
Request URL |
GET /neo/app/services/<service_id> |
|||||||||||
Response (See directly below) |
Dictionary of service attributes. |
Response:
{
"instanceID"
: "a3c1bbec-1da2-40f3-9a41-095bdf01f03a"
,
"name"
: "MyVMS"
,
"serviceType"
: "VMS"
,
"description"
: "VMS on Site X"
,
"state"
: "Idle"
,
"numOfDevices"
: 10
,
"numOfFaultyDevices"
: 3
,
"lastConfigStatus"
: "Unknown"
,
"lastValidationStatus"
: "Completed With Errors"
,
"lastCleanupStatus"
: "Unknown"
,
"createdOn"
: "2015-12-27 12:04:10"
,
"lastUpdateTime"
: "2015-12-27 13:10:10"
,
"lastValidationTime"
: null
,
"lastConfigTime"
: null
,
"lastCleanupTime"
: null
,
"validationInProgress"
: false
,
"configurationInProgress"
: false
,
"cleanupInProgress"
: false
}
Description |
Receives the type of service and the relevant arguments required by the service wizard (depending on the type of service). Returns The ID of the created service |
|||||||||||
Request URL |
POST /neo/app/services |
|||||||||||
Response (See directly below) |
Dictionary of service attributes. |
|||||||||||
Status Codes |
Note: status code 201 CREATED means that service path in the location header: Location: /neo/app/services/ |
Response:
{
"name"
: "MyVMS"
,
"serviceType"
: "VMS"
,
"description"
: "VMS on Site X"
,
"config"
: {
"spineIPs"
: [ "10.224.14.238"
,
"10.224.14.239"
],
"level"
: 3
,
"torUplinkWidth"
: 1
,
"torIPs"
: [ "10.224.14.248"
,
"10.224.14.249"
],
"numOfTorUplinks"
: 2
,
"configreLAG"
: false
,
"leafIPs"
: [
"10.224.14.87"
,
"10.224.14.86"
],
"leafUplinkWidth"
: 2
,
"ipRange"
: "172.0.0.1/10"
},
"schedule"
: {
"trigger"
: "interval"
,
"active"
: false
,
"interval"
: 1
,
"intervalUnits"
: "days"
,
"timezone"
: "UTC"
,
"startTime"
: "2016-02-22 00:00:00"
,
"endTime"
: "2016-02-23 00:00:00"
,
"subcomponents"
:[
{<subcomp1 data>},
{<subcomp2 data>}, …]
}
}
The config attribute in the request data depends on the service type.
The example above describes the request data for VMS service.
Some services have subcomponents that can be specified. These subcomponents can later be added, removed or edited.
VMS Input Data
Uses the same VMS data, with new naming convention and defined types.
VMS Service Attributes |
||
Name |
Type |
Description |
level |
int |
VMS level 2/3 |
spineIPs |
List of strings |
List of spine IP addresses |
leafIPs |
List of strings |
List of leaf IP addresses |
torIPs |
List of strings |
List of tor IP addresses |
numOfTorUplinks |
int |
Number of uplinks from tor |
torUplinkWidth |
int |
Uplink width from tor |
leafUplinkWidth |
int |
Uplink width from leaf |
configreLAG |
boolean |
Flag if to configure LAG |
ipRange |
string |
IP Range |
L3 Network Provisioning Input Data
Used to configure L3 Network connectivity IP addresses.
L3 Provisioning Service Attributes |
||
Name |
Type |
Description |
deviceIPs |
List of strings |
List of switches IP addresses |
groups |
List of strings |
List of group names |
autoAddDevices |
boolean |
Flag for automatic addition of newly discovered switches |
autoConfigureDevices |
boolean |
Flag for automatic configuration of the switches for any network change |
interSwitchSubnet |
string |
Network IP address including mask e.g. 192.168.1.0/24 |
releaseTimeout |
int |
Timeout in seconds for deallocation of removed links – zero means no deallocation |
Configure-MLAG Input Data
Used to configure MLAG on two switches. In addition, the user can configure the MLAG network and the MLAG server subcomponents.
Configure-MLAG Service Attributes |
||
Name |
Type |
Description |
deviceIP |
string |
IP address of first device |
peerDeviceIP |
string |
IP Address of peer device |
portChannel |
int |
LAG ID to use with IPL ports |
iplPortRange |
string |
Port range to use for IPL |
iplPeerPortRange |
string |
Port range to use for IPL on peer device |
vlanID |
int |
VLAN Interface ID for IPL (0-4096) |
mlagVIP |
string |
Virtual IP address for MLAG |
mlagVIPMask |
int |
mask for VIP interface (0-32) |
iplIP |
string |
IP Address of IPL Interface |
iplIPMask |
int |
mask for IPL interface (0-32) |
iplPeerIP |
string |
IP Address of peer IPL Interface |
iplPeerIPMask |
int |
mask for peer IPL interface (0-32) |
subcomponents |
list |
A list of subcomponents (networks and servers) settings |
Configure MLAG Network Input Data
Configure-MLAG Service Attributes |
||
Name |
Type |
Description |
type |
string |
Subcomponent type (MlagNetwork or MlagServer) |
name |
string |
Network Name |
subnetAddress |
string |
Network subnet address |
subnetMaskLength |
int |
Network subnet address mask length (0-32) |
vlanID |
int |
Network VLAN ID (0-4096) |
dhcpRelay |
string |
DHCP Relay IP |
dhcpRelayInstance |
int |
DHCP Relay instance (1-8) |
switch1RouterIp |
string |
Switch #1 router IP |
switch2RouterIp |
string |
Switch #2 router IP |
virtualRouterIp |
string |
Network virtual router IP |
virtualMac |
string |
Network virtual MAC address |
magpID |
int |
IP Address of peer IPL Interface |
iplPeerIPMask |
int |
MAGP ID (1-255) |
Configure MLAG Server Input Data
Configure-MLAG Service Attributes |
||
Name |
Type |
Description |
type |
string |
Subcomponent type (MlagNetwork or MlagServer) |
network |
string |
Network Name |
switch1MpoPorts |
list |
List of switch #1 MPO ports |
switch2MpoPorts |
list |
List of switch #2 MPO ports |
serverPorts |
list |
List of server ports |
mpoNum |
int |
MLAG port-channel number (1-65535) |
serverIp |
string |
Server IP |
configureBond |
boolean |
Configure bond |
isDhcp |
boolean |
Is bond DHCP |
staticIp |
string |
Server static IP |
bondMode |
int |
Bond mode: 0 (Round-Robin) or 4 (802.3ad) |
Set-MTU Input Data
Used to set/validate MTU on switches. Interfaces will be taken from repository once the task is created.
Set-MTU Service Attributes |
||
Name |
Type |
Description |
mtuSize |
int |
MTU size (1500-9216) |
deviceIPs |
List of strings |
List of device IP addresses |
RoCE Input Data
Used to configure RoCE on switches and hosts. The user should define RoCE device subcomponents to specify which devices and interfaces should be configured.
RoCE Service Attributes |
||
Name |
Type |
Description |
roceType |
int |
The RoCE configuration type: • 0 - ECN only • 1 - ECN with QoS • 2 - ECN with QoS and PFC |
roceMode |
int |
The RoCE device configuration mode: • 0 - Host Interfaces • 1 - Switch Interfaces • 2 - All Switch Interfaces |
rdmaDscp |
int |
The RDMA DSCP value to configure. The RDMA traffic priority is determined by dividing this number by 8. Optional (default is 26). |
ecnMin |
int |
The min threshold for ECN definition. Optional (default is 150). |
ecnMax |
int |
The max threshold for ECN definition. Optional (default is 1500). |
configureInterSwitchLinks |
boolean |
Specifies whether or not to configure switch interfaces that are connected to the specified devices. Optional (default is true). |
Configure RoCE Device Input Data
Used as a subcomponent for RoCE service type.
Configure RoCE Device Attributes |
||
Name |
Type |
Description |
type |
string |
Subcomponent type (Device) |
deviceIP |
string |
The management IP of the device to configure |
ports |
list |
List of ports to configure (e.g. "Eth1/1", "Port-channel 1") |
Description |
Receives the ID of the instance and removes it from NEO (also deletes the tasks created for the service) |
|||||||||||
Request URL |
DELETE /neo/app/services/<service_id> |
|||||||||||
Additional Parameters |
|
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the modified attributes |
|||||||||||
Request URL |
PUT /neo/app/services/<service-ID> |
|||||||||||
Request Data (See directly below) |
Dictionary of modified service attributes If a service has subcomponents, the request should contain the updated subcomponents definitions. |
Request Data:
{
"config"
: {
"interSwitchSubnet"
: "192.168.1.0/24"
}
}
This REST API applies to L3 provisioning service only.
Description |
Receives the ID of the instance, and configures the service on the devices by executing its configuration task |
|||||||||||
Request URL |
POST /neo/app/services/<service_id>/apply |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the ID of the instance and runs the cleanup task - if defined |
|||||||||||
Request URL |
POST /neo/app/services/<service_id>/cleanup |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the ID of the instance, and performs ad-hoc validation by executing the service validation task |
|||||||||||
Request URL |
POST /neo/app/services/<service_id>/validate |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the ID of the instance, and changes the state of the service instance to "Idle" - will not perform periodic validation |
|||||||||||
Request URL |
PUT /neo/app/services/<service_id> |
|||||||||||
Request Data |
Dictionary of service attributes { |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the ID of the instance, and changes the state of the service instance to "Monitoring" - will perform periodic validation. |
|||||||||||
Request URL |
PUT neo/app/services/<service_id> |
|||||||||||
Request Data |
Dictionary of service attributes { |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Receives the ID of the instance, and returns details of the service and the status of the last validation job |
|||||||||||
Request URL |
GET neo/app/services/<service_id>/status |
|||||||||||
Response (See directly below) |
Dictionary of service attributes. |
|||||||||||
Status Codes |
Note: status code 409 CONFLICT means that operation cannot be performed because of service state |
Response:
{
"name"
: "MyVMS"
,
"instanceID"
: "a3c1bbec-1da2-40f3-9a41-095bdf01f03a"
,
...other attributes
"status"
: [
{
"systemIP"
: "10.224.14.238"
,
"jobOutput"
: ""
,
"jobStatus"
: "Unknown"
,
"systemID"
: "10.224.14.238.system"
,
"systemName"
: "switch238"
,
"errDescription"
: ""
},
... other systems
]
}
Description |
Receives the ID of the instance, and returns details of the service and the status of the last configuration job |
|||||||||||
Request URL |
GET neo/app/services/<service_id>/config_status |
|||||||||||
Response (See code below) |
Dictionary of service attributes. |
Response:
{
"name"
: "MyVMS"
,
"instanceID"
: "a3c1bbec-1da2-40f3-9a41-095bdf01f03a"
,
...other attributes
"status"
: [
{
"systemIP"
: "10.224.14.238"
,
"jobOutput"
: ""
,
"jobStatus"
: "Unknown"
,
"systemID"
: "10.224.14.238.system"
,
"systemName"
: "switch238"
,
"errDescription"
: ""
},
... other systems
]
}
Description |
Receives the ID of the instance, and returns details of the service and the status of the last cleanup job |
|||||||||||
Request URL |
GET neo/app/services/<service_id>/cleanup_status |
|||||||||||
Response (See code below) |
Dictionary of service attributes. |
Response:
{
"name"
: "MyVMS"
,
"instanceID"
: "a3c1bbec-1da2-40f3-9a41-095bdf01f03a"
,
...other attributes
"status"
: [
{
"systemIP"
: "10.224.14.238"
,
"jobOutput"
: ""
,
"jobStatus"
: "Unknown"
,
"systemID"
: "10.224.14.238.system"
,
"systemName"
: "switch238"
,
"errDescription"
: ""
},
... other systems
]
}
Request URL |
GET /neo/app/services/ |
|||||||||||
Request Data |
N/A |
|||||||||||
Response (See code below) |
List of topology changes. |
|||||||||||
Status Codes |
Note: Status code 403 FORBIDDEN means that the service type is invalid. |
Response:
[
{
"Operation"
: "Added Link"
,
"PeerPort"
: "Eth1/58"
,
"PeerSystemIP"
: "10.209.24.39"
,
"Port"
: "Eth1/25"
,
"SystemIP"
: "10.209.24.117"
},
{
"Operation"
: "Added Link"
,
"PeerPort"
: "Eth1/58"
,
"PeerSystemIP"
: "10.209.24.40"
,
"Port"
: "Eth1/27"
,
"SystemIP"
: "10.209.24.117"
},
{
"Operation"
: "Added System"
,
"PeerPort"
: null
,
"PeerSystemIP"
: null
,
"Port"
: null
,
"SystemIP"
: "10.209.24.117"
}
]
Request URL |
POST /neo/app/services/<service-ID>/changes/apply |
|||||||||||
Request Data |
N/A |
|||||||||||
Status Codes |
Note: Status code 403 FORBIDDEN means that the service type does not support changes. Status code 409 CONFLICT means that operation cannot be performed because of service state |
Description |
Retrieves the service settings as defined by the user. Settings vary according to the service type. |
|||||||||||
Request URL |
GET /neo/app/services/<service-ID>/settings |
|||||||||||
Request Data |
N/A |
|||||||||||
Additional Filters |
|
Response:
{
"mtuSize"
: 1500
,
"deviceIPs"
: [
"10.209.26.81"
, "10.209.36.161"
, "10.209.36.162"
],
"subcomponents"
: []
}
Description |
Return a list of service members and config status for all services of a specific type <service_type>. |
|||||||||||
Request URL |
GET neo/app/services/config_status?service_type=SetMTU |
|||||||||||
Options |
"L3Network", "MLAGConfig", "ROCE", "SetMTU", "VMS" |
Response:
[
{
"lastUpdateTime"
: "2019-04-16 09:23:41"
,
"lastConfigStatus"
: "Completed With Errors"
,
"lastValidationStatus"
: "Completed With Errors"
,
"errDescription"
: ""
,
"validationInProgress"
: false
,
"instanceID"
: "36a00fa4-1445-4ac9-a95c-76c08d64ad49"
,
"state"
: "Monitoring"
,
"isApplied"
: false
,
"numOfFaultDevices"
: 0
,
"status"
:
[
{
"systemIP"
: "10.209.24.55"
,
"jobOutput"
: "no cli session prefix-modes enable\n\ninterface ethernet 1/20-1/22 traffic-class 0 congestion-control ecn minimum-absolute 150 maximum-absolute 1500\n\nconfiguration write\n\n"
,
"jobStatus"
: "Completed"
,
"systemID"
: "10.209.24.55.system"
,
"systemName"
: "r-neo-sw55"
,
"errDescription"
: ""
}
],
],
"serviceType"
: "ROCE"
,
"lastConfigTime"
: "2019-04-16 09:23:41"
,
"description"
: "RoCE_Service"
,
"lastCleanupTime"
: null
,
"cleanupInProgress"
: false
,
"pendingChanges"
: false
,
"lastCleanupStatus"
: null
,
"name"
: "RoCE_Service_1"
,
"createdOn"
: "2019-04-16 09:23:21"
,
"configurationInProgress"
: false
,
"numOfDevices"
: 3
,
"lastValidationTime"
: "2019-04-16 09:53:29"
}
]
Description |
Return a list of service members and validation status for all services of a specific type <service_type>. |
|||||||||||
Request URL |
GET neo/app/services/ status?service_type=SetMTU |
|||||||||||
Options |
"L3Network", "MLAGConfig", "ROCE", "SetMTU", "VMS" |