Related Documentation
- We can also manage this information using the Admin GUI.
- opCharts API for reading node data opCore API V2
Nodes API
We can also manage nodes using the API.
uburntorequestData=undefined&25The To create a remote node in an opHA cluster see below. | The node in json from the recently created node |
createdconfigurationnetTypedefaultpolling_policydefaultport161collect1,"threshold1roleTypedefaultping1,"group":"NMIS9host"asgard.opmantek.net","location":customerbusinessService": null,
" |
|
businessServicenullnoteshost_backupactivecommunitywmiusernamehost": "asgard.opmantek.net", " |
|
wmipasswordhost_backup": "", "location": null,
" |
|
usernamenetType": "default", "nettype": null, "node_context_name": "", " |
|
authpasswordauthkeyauthprotocolnullprivpasswordpolling_policy": "default", " |
|
privkeyprivprotocolnullserviceStatusnull,nettype:nullroletypenodecontextnodecontextremote_connection_nameremote_connection_url""}activated{"opEvents""opConfig0NMIS1}uuidnull ""
},
"current_user_privileges":
{
" |
|
updatedeletenametestaddressesfriendly_aliaseshttp:To update a remote node in an opHA cluster see below. |
| |
configuration"netTypedefault"polling_policy1_minute","port":"161","collect":1,"threshold":1,"roleType":"access","ping":1,"group":"EXSI","active":1,"addresses":[0",
"opEvents": "1"
},
"addresses":
[],
"aliases":
[],
"cluster_id": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
"configuration":
{
"active": 1, "addresses": [ "192.168.88.13" ], "aliases": [],
"authkey": "", "authpassword": "", "authprotocol": "md5", "businessService": null, "cbqos": "none", |
|
"
"collect": 1, "community": "OMKRead", "context": "", "customer": "Opmantek", "depend": [],
"display_name": "", "group": "EXSI", "host": "castor.opmantek.net", "host_backup": "", "ip_protocol": "IPv4",
"location": "Cloud", "max_msg_size": 1472, "max_repetitions": 0, "model": "automatic",
"netType": "default", "nettype": null, "node_context_name": "Node Context",
"node_context_url": "https://somelink.com/map/thing/", "notes": "", " |
|
privkey"","privpassword":"","privprotocol": 1,
"polling_policy": "1_minute", "port": "161", "privkey": "", "privpassword": "",
"privprotocol": "des", "remote_connection_name": "SSH to Node", "remote_connection_url": "ssh://$host", |
|
"serviceStatusTestingservicesroletype": null, "serviceStatus": "Testing", "services": [],
"sysDescr": "VMware ESXi 6.7.0 build-17167734 VMware, Inc. x86_64", "threshold": 1, "timezone": 0,
"username": "", "version": "snmpv2c", "webserver": 0, "wmipassword": "", "wmiusername": ""
}, |
|
"nettype":null,"roletype":null},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":"b56ba595-69e7-4702-9fe5-49512e1340b0","current_user_privileges":{"update":0,"delete":0},"addresses":[],"aliases":[],"cluster_id":"a515c63a-0d11-4bcb-a402-39a4600aebb9","friendly_addresses":"192.168.88.13","friendly_aliases":"","name":"Castor","node_local":"Remote","overrides":{},"server_name":"fulla","unknown":{}}Delete Node | DELETE | http://host/en/omk/admin/api/v2/nodes/{node_uuid}.json | http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes/ Important: All this methods are authenticated.
...
http://uburnto.opmantek.net/en/omk/opHA/login
Code Block |
---|
{"username": "username",
"password": "password"} |
We should receive a 200 response and a cookie, that we can reuse for next API calls.
Create a remote Node
If we want to create a node in a remote cluster, we should indicate the remote cluster id in configuration.pollers: cluster_id
.
cluster_id
is the uuid of which opHA server the node belongs to.
E.x.
Create Remote | POST | http://host/en/omk/admin/api/v2/nodes.json | http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes.json
Code Block |
{"configuration":{"pollers": "a515c63a-0d11-4bcb-a402-39a4600aebb9", "netType":"default","polling_policy":"default","port":"161","collect":1,"threshold":1,"roleType":"default","ping":1,"group":"NMIS9","host":"asgard.opmantek.net","location":null,"customer":null,"businessService":null,"notes":"","host_backup":"","active":null,"community":"","wmiusername":"","wmipassword":"","username":"","context":"","authpassword":"","authkey":"","authprotocol":null,"privpassword":"","privkey":"","privprotocol":null,"serviceStatus":null,"nettype":null,"roletype":null,"node_context_name":"","node_context_url":"","remote_connection_name":"","remote_connection_url":""},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":null,"current_user_privileges":{"update":true,"delete":true},"name":"test","friendly_addresses":"","friendly_aliases":""}
Request Modifiers (query parameters)
Not all requests will use all request modifiers.
Query Parameter | Possible Values |
---|
fields_hash
| Array of property names. If provided only the properties specified will be returned (instead of the whole document). eg: fields_hash={"name":1,"uuid":1} returns only the node name and the node uuid. By default all properties if no fields_hash is specified. |
page
| Which page of the requested document to be returned, from 1 .. n, defaults to no pagination. |
per_page
| How many results are returned per page, defaults to 25 |
search
| List of key=value pairs. Search filter applied to the list of results. eg: search={"name":"athena","configuration.group":"SydneyDC"} (which is "Name"="athena" AND "Group"="SydneyDC") For a string, if it starts with regex: or iregex: then a case-sensitive or case-insensitive regular expression match is used. eg: filter={"name":"iregex:Switch"} to find all the nodes with switch or SWITCH in their name. |
sort_by
| Property to sort by. eg: sort_by=name to sort by node name |
order
| Sort order. asc | desc : sort the response by sort_by ascending or descending. |
By example, the queries will look something like this:
http://athena.opmantek.net/omk/admin/api/v2/nodes.json?fields_hash={"name":1,"uuid":1}&search={"name":"Switch-1"}
Authentication
Important: All these methods are authenticated.
We should receive a 200 response and a cookie, that we can reuse for next API calls.
Create a remote Node
If we want to create a node in a remote cluster, we should indicate the remote cluster id in configuration.pollers: cluster_id
.
cluster_id
is the uuid of which opHA server the node belongs to.
E.x.
Create Remote | POST | http://host/en/omk/admin/api/v2/nodes.json | It will return the json node, the same structure that the CREATE. | http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes.json It will return the same output as for a local node: Code Block |
---|
{
"activated": {
"NMIS": 1,
"opConfig": "0",
"opEvents": "1"
},
"cluster_id": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
"configuration": {
"active": 1,
"aliases": [],
"authkey": "",
"authpassword": "",
"authprotocol": null,
"businessService": null,
"collect": 1,
"community": "",
"context": "",
"customer": null,
"group": "NMIS9",
"host": "asgard.opmantek.net",
"host_backup": "",
"location": null,
"max_msg_size": 65535,
"max_repetitions": 0,
"netType": "default",
"nettype": null,
"node_context_name": "",
"node_context_url": "",
"notes": "",
"ping": 1,
"pollers": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
"polling_policy": "default",
"port": "161",
"privkey": "",
"privpassword": "",
"privprotocol": null,
"remote_connection_name": "",
"remote_connection_url": "",
"roleType": "default",
"roletype": null,
"serviceStatus": null,
"threshold": 1,
"username": "",
"wmipassword": "",
"wmiusername": ""
},
"friendly_addresses": "",
"friendly_aliases": "",
"name": "test",
"uuid": "6ce5fd5c-d703-4d03-b36c-b8e01439a9f2"
} |
|
Update a remote Node
If we want to update a node in a remote cluster, we should indicate the remote cluster id in configuration.pollers: cluster_id
.
cluster_id
is the uuid of which opHA server the node belongs to.
E.x.
Create uuid.json1, 1,
"threshold": 1,
"roleType": "default",
"ping": 1,
"group": "NMIS9",
"host": "asgard.opmantek.net",
"location": |
|
null, null,
"customer": null,
"businessService": null,
"notes": "",
"host_backup": "",
"active": null,
"community": |
|
"", "",
"wmiusername": "",
"wmipassword": "",
"username": "",
"context": "",
"authpassword": "",
"authkey": "" |
|
,,
"authprotocol": null,
"privpassword": "",
"privkey": "",
"privprotocol": null,
"serviceStatus": null,
"nettype": |
|
null, null,
"roletype": null,
"node_context_name": "",
"node_context_url": "",
"remote_connection_name": "",
"remote_connection_url": ""
}, |
|
"activated":{
"activated": {
"opEvents": "1",
"opConfig": "0",
"NMIS": "1"
},
"uuid": null,
"current_user_privileges": {
"update" |
|
:true,: true,
"delete": true
},
"name": "test",
"friendly_addresses": "",
"friendly_aliases": ""
} |
|
It will return the json node, the same structure that the CREATE.
Remote Nodes Error
If any operation has a remote cluster id, the API will try to edit in the remote server. If this operation is not possible, it will fail.
...
If we should want to edit the remote node locally for some reason, we should use opnodenode_admin cli tool.
Related Documentation
...