Cluster mediators endpoint overview
Overview
You can use this API to add or remove a mediator to MetroCluster over IP configuration, or get the status and details of the existing mediator in MetroCluster over IP configuration. The GET operation returns the status of the mediator along with the mediator details. The DELETE operation removes the mediator. The POST operation adds the mediator.
Adding a mediator
A mediator can be added to MetroCluster over IP configuration by issuing a POST on /cluster/mediators. Parameters are provided in the body of the POST request. There are no optional parameters for adding a mediator.
Required configuration fields
These fields are always required for any POST /cluster/mediators request.
-
ip_address
- Specifies the IP address of the mediator. -
user
- Specifies a user name credential. -
password
- Specifies a password credential.
Polling the setup job
After a successful POST /cluster/mediators is issued, an HTTP status code of 202 (Accepted) is returned along with a job UUID and a link in the body of the response. The setup job continues asynchronously and can be monitored by using the job UUID and the /cluster/jobs API. The "message" field in the response of the GET /cluster/jobs/{uuid} request shows the current step in the job, and the "state" field shows the overall state of the job.
Deleting a Mediator
A mediator can be deleted from MetroCluster over IP configuration by issuing a DELETE to /cluster/mediators/{uuid}. Parameters are provided in the body of the DELETE request. There are no optional parameters for adding a mediator.
Required configuration fields
These fields are always required for any DELETE /cluster/mediators/{uuid} request.
-
user
- Specifies a user name credential. -
password
- Specifies a password credential.
Polling the delete job
After a successful DELETE /cluster/mediators/{uuid} is issued, an HTTP status code of 202 (Accepted) is returned along with a job UUID and a link in the body of the response. The delete job continues asynchronously and can be monitored by using the job UUID and the /cluster/jobs API. The "message" field in the response of the GET /cluster/jobs/{uuid} request shows the current step in the job, and the "state" field shows the overall state of the job.
Examples
Setting up a mediator for a 4-Node MetroCluster over IP Configuration
This example shows the POST body when setting up a mediator for a 4-Node MetroCluster over IP configuration. The only prerequisite is that MetroCluster over IP is configured.
# API /api/cluster/mediators
POST body included from file
mediator_post_body.txt: { "ip_address": "1.1.1.1", "user": "username", "password": "password" } curl -X POST https://<mgmt-ip>/api/cluster/mediators -d "@mediator_post_body.txt"
Inline POST body
curl -X POST https://<mgmt-ip>/api/cluster/mediators -H "Content-Type: application/hal+json" -d '{"ip_address": "1.1.1.1", "user": "username", "password": "password"}'
POST Response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 07:40:59 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 189 Content-Type: application/hal+json { "job": { "uuid": "f567b48b-fca6-11ea-acaf-005056bb47c1", "_links": { "self": { "href": "/api/cluster/jobs/f567b48b-fca6-11ea-acaf-005056bb47c1" } } } }
Monitoring the job progress
Use the link provided in the response to the POST request to fetch information for the mediator setup job.
Request
curl -X GET https://<mgmt-ip>/api/cluster/jobs/f567b48b-fca6-11ea-acaf-005056bb47c1
Job status response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 07:41:29 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 189 Content-Type: application/hal+json { "uuid": "f567b48b-fca6-11ea-acaf-005056bb47c1", "description": "POST /api/cluster/mediators/", "state": "running", "start_time": "2020-09-22T03:41:00-04:00", "_links": { "self": { "href": "/api/cluster/jobs/f567b48b-fca6-11ea-acaf-005056bb47c1" } } }
Final status of a successful Mediator add
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 07:43:38 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 358 Content-Type: application/hal+json { "uuid": "f567b48b-fca6-11ea-acaf-005056bb47c1", "description": "POST /api/cluster/mediators/", "state": "success", "message": "success", "code": 0, "start_time": "2020-09-22T03:41:00-04:00", "end_time": "2020-09-22T03:42:10-04:00", "_links": { "self": { "href": "/api/cluster/jobs/f567b48b-fca6-11ea-acaf-005056bb47c1" } } }
Retrieving the existing mediator configurations
Request
curl -X GET https://<mgmt-ip>/api/cluster/mediators
Response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 08:53:18 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 320 Content-Type: application/hal+json { "records": [ { "uuid": "f89e8906-fca6-11ea-acaf-005056bb47c1", "_links": { "self": { "href": "/api/cluster/mediators/f89e8906-fca6-11ea-acaf-005056bb47c1" } } } ], "num_records": 1, "_links": { "self": { "href": "/api/cluster/mediators" } } }
Retrieving a specific mediator using the uuid
Request
curl -X GET https://<mgmt-ip>/api/cluster/mediators/f89e8906-fca6-11ea-acaf-005056bb47c1
Response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 08:59:40 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 347 Content-Type: application/hal+json { "uuid": "f89e8906-fca6-11ea-acaf-005056bb47c1", "ip_address": "10.234.173.40", "port": 31784, "reachable": true, "peer_cluster": { "name": "mcc_siteB", "uuid": "38779fd1-fc6b-11ea-9421-005056bb21d8" }, "peer_mediator_connectivity": "connected", "_links": { "self": { "href": "/api/cluster/mediators/f89e8906-fca6-11ea-acaf-005056bb47c1" } } }
Deleting a configured Mediator using the uuid
Request
curl -X DELETE https://<mgmt-ip>/api/cluster/mediators/{uuid} -H "Content-Type: application+hal/json" -d '{"user": "username", "password": "password"}'
Response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 09:13:52 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 189 Content-Type: application/hal+json { "job": { "uuid": "eeb71ccd-fcb3-11ea-acaf-005056bb47c1", "_links": { "self": { "href": "/api/cluster/jobs/eeb71ccd-fcb3-11ea-acaf-005056bb47c1" } } } }
Monitoring the job progress
Use the link provided in the response to the DELETE request to fetch information for the delete job.
Request
curl -X GET https://<mgmt-ip>/api/cluster/jobs/eeb71ccd-fcb3-11ea-acaf-005056bb47c1
Job status response
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 09:14:20 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 316 Content-Type: application/hal+json { "uuid": "eeb71ccd-fcb3-11ea-acaf-005056bb47c1", "description": "DELETE /api/cluster/mediators/f89e8906-fca6-11ea-acaf-005056bb47c1", "state": "running", "start_time": "2020-09-22T05:13:52-04:00", "_links": { "self": { "href": "/api/cluster/jobs/eeb71ccd-fcb3-11ea-acaf-005056bb47c1" } } }
Final status of the Mediator DELETE job
HTTP/1.1 202 Accepted Date: Tue, 22 Sep 2020 09:21:46 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/cluster/metrocluster Content-Length: 396 Content-Type: application/hal+json { "uuid": "eeb71ccd-fcb3-11ea-acaf-005056bb47c1", "description": "DELETE /api/cluster/mediators/f89e8906-fca6-11ea-acaf-005056bb47c1", "state": "success", "message": "success", "code": 0, "start_time": "2020-09-22T05:13:52-04:00", "end_time": "2020-09-22T05:14:24-04:00", "_links": { "self": { "href": "/api/cluster/jobs/eeb71ccd-fcb3-11ea-acaf-005056bb47c1" } } }