Topology API
The Topology API is exposed by the Node Manager in order to manage the domain topology, i.e. groups of API Servers. The main uses of the Topology API are:- host registration (which includes Node Manager registration), and API Server instance creation. The domain topology holds all the information required to route management traffic to all the Node Managers and API Servers within the domain.
The domain topology contains the following types of items:-
- Host - Host machines which must run one Node Manager and may run o..n API Servers.
- Group - Groups of API Servers, which normally run the same configuration. The API Servers in a group may run on 1..n hosts.
- Node Manager - Each host in the domain must run a Node Manager server in order to perform management functions.
- Admin Node Manager - One Node Manager is designated as the Admin Node Manager. All management traffic from client applications is sent to the Admin Node Manager.
- API Server - There can be 0..n API Servers in a domain, each belongs to one group.
The Topology API includes methods to:-
- Get the domain topology
- Get/add/update/delete a host
- Get/add/update/delete a group
- Get/add/update/delete a service (i.e. API Server instance)
Each of the above topology items has a unique id within the topology, the ids are of the following form:-
- Host -
host-n
- Group -
group-n
- Node Manager -
nodemanager-n
- API Server -
instance-n
Client applications, e.g. Policy Studio, Vordel Manager and managedomain, will invoke this API on the Admin Node Manager. Client-based invocations may result in the Admin Node Manager calling the Topology API in other Node Managers, or indeed a Node Manager that is not the Admin may call another Node Manager that may or may not be the Admin Node Manager. The API is built with the assumption that all Node Managers can call all other Node Managers. Some methods called by one Node Manager on another are for internal use only and are not included in the documentation.
Root Resources
Entry point for the topology API.
Resource | Description |
---|---|
GET /api/topology | Get the topology |
Hosts
Host API methods allow clients to perform CRUD (Create, Read, Update and Delete) operations on hosts defined in the Topology.
Resource | Description |
---|---|
POST /api/topology/hosts | Add a host to the topology. |
GET /api/topology/hosts | Get all hosts in the topology. |
GET /api/topology/hosts/{hostID} | Get the host specified by hostID from the topology. |
PUT /api/topology/hosts | Update the name of a host. |
DELETE /api/topology/hosts/{hostID} | Delete the host specified by hostID from the topology. |
GET /api/topology/hosts/id | Get a host id. |
Groups
Group API methods allow clients to perform CRUD (Create, Read, Update and Delete) operations on groups defined in the Topology.
Resource | Description |
---|---|
POST /api/topology/groups | Adds an empty group to the Topology. |
GET /api/topology/groups | Get all groups in the Topology. |
GET /api/topology/groups/{groupID} | Get the group specified by groupID from the topology. |
PUT /api/topology/groups | Update a group's tags or name. |
DELETE /api/topology/groups/{groupID} | Delete the group specified by groupID from the topology. |
GET /api/topology/groups/id | Get a group id. |
POST /api/topology/groups/{groupID}/lock | Lock a Group for exclusive access. |
DELETE /api/topology/groups/{groupID}/lock/{userID} | Unlock a Group for exclusive access. |
DELETE /api/topology/groups/{groupID}/lock | Force the unlocking of a Group irrespective of the original locker. |
Services
Service API methods allow clients to perform CRUD (Create, Read, Update and Delete) operations on services defined in the Topology.
Resource | Description |
---|---|
POST /api/topology/services/{groupID} | Adds a service (e.g. API Server instance) to the Topology |
GET /api/topology/services/{groupID} | Get all services in the group specified by groupID. |
GET /api/topology/services/{groupID}/{serviceID} | Get the service specified by serviceID from the group specified by groupID. |
PUT /api/topology/services/{groupID} | Update a service name, tags, management port, etc |
DELETE /api/topology/services/{groupID}/{serviceID} | Delete a service from the topology. |
GET /api/topology/services/id/{groupID} | Get a service id. |
GET /api/topology/services/status/{groupID}/{serviceID} | Get the status of the specified service. |
GET /api/topology/id | Get the next topology id of a certain type |
POST /api/topology/services/{groupID}/csr | Create a private key and CSR for SSL communications for an API Gateway |
GET /api/topology/services/sign | Create a signed certificate for SSL communications |
POST /api/topology/services/{groupID}/withcert | Adds a service (e.g. API Server instance) to the Topology |