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:

Copy
Copied!
            

{ "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:

Copy
Copied!
            

{ "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>}, …] } }

Warning
  • 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

  • skip_cleanup: For services that support and need clean-up, delete will be blocked unless explicitly specifying skip_cleanup=true.

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:

Copy
Copied!
            

{ "config": { "interSwitchSubnet": "192.168.1.0/24"  } }

Warning

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
{ 

"state": " Idle"

}

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
{ 

"state": " Monitoring"

}

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:

Copy
Copied!
            

{ "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:

Copy
Copied!
            

{ "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:

Copy
Copied!
            

{ "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//changes

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:

Copy
Copied!
            

[ { "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

  • implicit—if set to true, settings will include subcomponents that were added implicitly by NEO. These could be, for example, switches linked to hosts defined in a RoCE service.

Response:

Copy
Copied!
            

{ "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:

Copy
Copied!
            

[ { "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": [

Copy
Copied!
            

{ "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": "" } ],

Copy
Copied!
            

], "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"

© Copyright 2023, NVIDIA. Last updated on Nov 16, 2023.