Serviceability APIs

The serviceability API references for Call Home, Events, Logs, and Remote support.

IBM Call Home APIs

Get IBM Call Home data
GET /api/v1/callhome
GET response:
{
    "context": "",
    "clusterName": "isf-rackb",
    "domainName": "rtp.raleigh.ibm.com",
    "organization": "ABS_Corp_Dummy",
    "customerid": "2434-4343",
    "email": "test_user@in.ibm.com",
    "customername": "Test User",
    "servicetype": "fullService",
    "agreesprivacy": true,
    "customeraddress": "",
    "contact": "(000)-123456-78",
    "machineaddress": "13th Street. 47 W 13th St, New York, NY 10011, USA.",
    "machinezip": "123456",
    "machinecity": "Newyork",
    "machinestate": "Newyork",
    "machinecountry": "US",
    "skipCallHome": false,
    "isBYOS": false
}
Update IBM Call Home data
PUT /api/v1/callhome/update

The payload is the same as the response to GET Call Home Data. All the fields are mandatory, even when we plan to update a few of them. Sending an incomplete payload may result in an error.

If Call Home is not configured, then the GET does not return data.
{
	"agreesPrivacy": true,
	"servicetype": "fullService",
	"organization": "ABS_Corp_Dummy",
	"customerid": "2434-4343",
	"customername": "Test User",
	"contact": "(000)-123456-78",
	"email": "test_user@in.ibm.com",
	"machineaddress": "13th Street. 47 W 13th St, New York, NY 10011, USA. 20 Cooper Square",
	"machinecountry": "US",
	"machinecity": "Newyork",
	"machinestate": "Newyork",
	"machinezip": "123456"
}
Turn off Call Home
PUT /api/v1/callhome/turnoff
Payload:
data: {
 	     removeconfig: "true"
	    }

Event APIs

Get Events
GET /api/v1/eventmanager/events?${queryString}
Get event categories
GET /api/v1/eventmanager/eventcats
Get event stats
GET /api/v1/eventmanager/eventstats?${query}

For example, query 'Fixed=false' gets unfixed events

Mark an event as fixed
PUT /api/v1/eventmanager/events/${eventId}
Payload:
{ annotations: { isf_fixed: 'true' } }
Note: This API is applicable only for unfixed and open Call Home tickets.

Log APIs

Get all log collector sets
GET /api/v1/logcollector
Create log collector set
POST /api/v1/logcollector
Payload:
{"requests":{"storage":{"type":"list-entry","source-list":"isf-collection-sets","list-entry":"storage-sds"}}}

Payload for OpenShift Data Foundation (ODF):
{
 "requests": {
   "odf": {
     "type": "list-entry",
     "source-list": "isf-collection-sets",
     "list-entry": "odf-sds"
   }
 }
}
Response:
{"jobid":"odf-20221103062933"}

The jobid returned by POST call is used for getting the status.

For example:
GET /api/v1/logcollector/odf-20221103062933
Log set download
GET /api/v1/logcollector/<job-id>/results

This GET command downloads log sets.

Delete log set
Delete /api/v1/logcollector/${jobid}

Remote support APIs

You can call these API's from the cluster Fusion ui route.

Get remote support status
GET /api/v1/service-node/remote-support
Sample request:
curl --request GET --url https://<fusion-url>/api/v1/service-node/remote-support
Sample GET response:
{
    "status":"running",
    "startTime":"2024-06-10T11:31:30Z",d
    "stopTime":"2024-06-10T11:33:30Z",
    "isConfigured": true,
    "isProxy": false
}
Start remote support connection
POST /api/v1/service-node/remote-support/start
Sample request:
Note: Make sure you update the fields with the actual values.
curl --request POST --url https://servicenode-host:3000/api/v1/service-node/remote-support/start --header 'X-Username: sn_username'  --header 'X-Password: sn_password'  --cacert /etc/pki/tls/certs/server.crt  --data 
'{

	"activeHours": 24

}'
Sample POST response:
{
  "status": "success",
  "message": "",
  "messageCode": "",
  "messageArgs": null,
  "errorMessage": ""
}
Stop remote support connection
POST /api/v1/service-node/remote-support/stop
Sample request:
curl --request POST  --url https://<fusion-url>/api/v1/service-node/remote-support/stop
Sample POST response:
{
  "status": "success",
  "message": "",
  "messageCode": "",
  "messageArgs": null,
  "errorMessage": ""
}
Test remote support connection
GET /api/v1/service-node/remote-support/connection-status
Sample request:
curl --request GET  --url https://<fusion-url>/api/v1/service-node/remote-support/connection-status
Sample GET response:
{
  "status": "success"
}
Configure remote support connection
POST /api/v1/service-node/remote-support/configuration
Sample request:
Note: Make sure you update the fields with the actual values.
curl --request POST --url https://servicenode-host:3000/api/v1/service-node/remote-support/configuration --header 'X-Username: sn_username'  --header 'X-Password: sn_password'  --cacert /etc/pki/tls/certs/server.crt --data 
'{

	"customerNumber": "customerName",

	"company": "company"

}'
Sample POST response:
 {
  "status": "success",
  "message": "",
  "messageCode": "",
  "messageArgs": null,
  "errorMessage": ""
}
Disable remote support connection
Delete /api/v1/service-node/remote-support/configuration
Sample request:
curl --request DELETE --url https://<fusion-url>/api/v1/service-node/remote-support/configuration
Sample response:
{
"status": "success"
}
Get proxy details
GET API to get proxy details for remote support.
Sample request:
curl --request GET --url 'https://<fusion-url>/api/v1/service-node/proxy?proxyType=remoteSupport'
Sample response:

 {
"host": "samplehost",
"port": "8080",
"username": "proxy_username",
"password": ""
}
Set up proxy for remote support
POST API to set up proxy for remote support.

curl --request POST    --url https://<fusion-url>/api/v1/service-node/proxy    --data '{ "proxyType": "remoteSupport", "host": "samplehost", "port": "8080", "username": "proxy_username",  "password": "proxy_password" }

 {
  "status": "success"
 }
Delete proxy
Delete API to clean up proxy for remote support.
Sample request:
curl --request DELETE  --url https://localhost:3001/api/v1/service-node/proxy --data '{ "proxyType": "remoteSupport" }'

 {
  "status": "success"
 }
Note: Sometimes, though the APIs return 200, the operation for PUT and POST may be unsuccessful. In such cases, use other corresponding GET APIs to confirm the operation.