Fabric Service (2.7.0)

Download OpenAPI specification:Download

This is the spec that defines the API provided by the application to register devices to a fabric, configure fabric parameters, validate all the devices in the fabric and configure switches for IP Fabric with/without overlay

Fabric

getFabrics

Get All fabric details configured in the application

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

getFabric

Get only specified fabric details. The fabric can be identified by id or name

query Parameters
name
required
string

Name of the fabric to retrieve

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

createFabric

Request Body schema: application/json

Create a new Fabric

name
required
string
description
string
stage
integer <int32>
Enum: 3 5 7
type
string
Enum: "clos" "non-clos"

Responses

Request samples

Content type
application/json
{
  • "stage": 5,
  • "type": "clos",
  • "name": "BLR-FABRIC",
  • "description": "Bengaluru DC IP Fabric"
}

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

deleteFabric

Delete an existing fabric by fabric name

query Parameters
name
required
string

Name of the fabric to be deleted

force
boolean
Default: false

Value true implies forced deletion of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

cloneFabric

query Parameters
source-fabric
required
string

Fabric to be cloned from

destination-fabric
required
string

Fabric to be cloned to

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

validateFabric

Validate CLOS topology of an input fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric_name": "default",
  • "fabric_id": 1,
  • "missing_links": [
    ],
  • "missing_spines": true,
  • "fabric_settings": {
    },
  • "missing_leaves": true,
  • "redundant_links": [
    ],
  • "leaf_leaf_links": [
    ],
  • "configuration_drifts": "{}",
  • "spine_spine_links": [
    ]
}

FabricErrors

Get Fabric Error For an input fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric_name": "default",
  • "fabric_id": 1,
  • "deviceErrorResponse": [
    ]
}

configureFabric

Configure IP Fabric underlay/overlay on all devices of a fabric

query Parameters
fabric-name
required
string

Name of the fabric

force
boolean
Default: false

Force the fabric configure operation on all devices of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "fabric-id": 1,
  • "status": "Successful"
}

Fabric Setting

getFabricSetting

query Parameters
name
required
string

Name of the fabric to retrieve

Responses

Response samples

Content type
application/json
{
  • "fabric-settings": {
    }
}

updateFabricSetting

Request Body schema: application/json

Update Fabric Settings.

name
required
string
required
Array of objects (FabricParameter)

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "keyval": [
    ]
}

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

Fabric Topology

getFabricPhysicalTopology

Get fabric physical topology for a specified fabric.

query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

getFabricUnderlayTopology

Get fabric underlay topology for a specified fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

getFabricOverlayTopology

Get fabric overlay topology for a specified fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Fabric Device

getDevicesByFabricName

Get All Devices in the specified fabric.

query Parameters
fabric-name
required
string

Fabric name

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

addDevicesToFabric

Request Body schema: application/json

Add new devices to the specified fabric

fabric-name
string

Name of the fabric

Array of objects (FabricDeviceAddRequest) unique

Responses

Request samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

removeDevicesFromFabric

Remove devices from the specific fabric

Request Body schema: application/json

Details of the devices to be removed

fabric-name
string

Name of the fabric

Array of objects (FabricDeviceRemoveRequest) unique

Responses

Request samples

Content type
application/json
{
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

deviceConfigDriftAndReconcile

This API helps user to generate the drift between the EFA intended config and actual Device config. If reconcile flag is set then generated drift will be pushed to the device

query Parameters
name
required
string

Name of the fabric

deviceip
required
string

Device IP

reconcile
boolean
Default: false

Reconcile flag

Responses

Response samples

Content type
application/json
{
  • "mgmt-ip": "10.10.10.10",
  • "config-drift": {
    },
  • "reconciliation-status": [
    ]
}

Debug

clearDeviceConfiguration

Clear configurations from a list of devices

Request Body schema: application/json

One or More Devices where configs are to be cleared.

reference_fabric_name
string
ip_address
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ip_address": [
    ],
  • "reference_fabric_name": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "Successful"
}

Reasons For App generating configs

Get configurations Reason for a devices

Request Body schema: application/json

Get Configs Generate Reasons for One Devices

name
string
ip_address
string

Responses

Request samples

Content type
application/json
{
  • "ip_address": [
    ],
  • "name": [
    ]
}

Response samples

Content type
application/json
{
  • "lldp_config_generate_reason": [
    ]
}

pushConfig

ReConfigure IP Fabric underlay/overlay on all devices of a fabric

query Parameters
fabric-name
required
string

Name of the fabric

device
required
string

ip of the devices whose Device State is provisioned and App State is cfg in-sync for which config needs to be pushed

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "fabric-id": 1,
  • "status": "Successful"
}

enableSmartDrcConfiguration

Enable Smart Drc for fabric Service

query Parameters
enable
required
boolean
Default: false

Enable flag

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "message"
}

LockStatus

Get lock statuses

Get lock statuses

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Trouble Shooting

getExecutionDetail

Get the detailed output of the given execution ID

query Parameters
id
required
string

Detailed output of the given execution ID

Responses

Response samples

Content type
application/json
{
  • "start_time": "2000-01-23T04:56:07.000Z",
  • "end_time": "2000-01-23T04:56:07.000Z",
  • "id": "id",
  • "parameters": "configure add",
  • "logs": "logs",
  • "command": "configure add",
  • "status": "Failed, Succeeded",
  • "user_name": "admin"
}

getExecutionList

Get the list of all the previous executions

query Parameters
limit
required
integer
Default: 10

Limit the number of executions that will be sent in the response. Default is 10

status
string
Default: "all"

Filter the executions based on the status(failed/succeeded/all)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

deleteExecutions

This API will delete the execution older than specific number of days

query Parameters
days_older_by
required
integer
Default: 30

Deletes execution entries older than specified number of days

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "message"
}

getEventHistoryList

Get the list of all the event Histories

query Parameters
execution_uuid
string

Execution UUID for filtering

device_ip
string

Device IP for filtering

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

GetRunningConfig

Get the list of all CLIs in Running Config

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Config Show

getConfigShow

Get the Configuration of Devices in a Fabric

query Parameters
fabricName
required
string

Name of the fabric to retrieve

role
required
string
Default: "all"
Enum: "spine" "leaf" "border-leaf" "all"

role of the devices for which config needs to be fetched

ip
required
string

ip of the devices for which config needs to be fetched

Responses

Response samples

Content type
application/json
{
  • "Response": "Response"
}

Health

getHealth

Get the health of the Fabric service.

Responses

Response samples

Content type
application/json
{
  • "Service": "string",
  • "MessageBus": "string"
}