Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We can also manage nodes using the API. 

OperationMethodURLResponseExample
Get NodesGEThttp://host/en/omk/admin/api/v2/nodes.json
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes.json?requestData=undefined&page=1&per_page=25&sort_by=name&order=asc
Get NodeGEThttp://host/en/omk/admin/api/v2/nodes/{node_uuid}.json
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes/86a82b4c-6ef6-4691-8c8c-1fc8da334d6f.json
Create NodePOST

http://host/en/omk/admin/api/v2/nodes.json

To create a remote node in an opHA cluster see below.

The node in json from the recently created node
created
, including the UUID
configuration
activated":
{
"
netType
NMIS": "
default
1",
"
polling_policy
opConfig": "
default
0",
"
port
opEvents": "
161
1"
},
"
collect
configuration":
1,"threshold

{
"active":
1
 null, "
roleType
authkey": "
default
", "
ping
authpassword":
1,
 "
group
"
:"NMIS9"
, "
host
authprotocol":
"asgard.opmantek.net","location":
 null, "
customer
businessService": null,
"
businessService
collect":
null
 1, "
notes
community": "", "
host_backup
context": "", "
active
customer": null, "
community
group": "NMIS9",
"
wmiusername
host": "asgard.opmantek.net", "
wmipassword
host_backup": "", "
username
location":
""
 null,
"
context
netType": "default", "
authpassword
nettype":
""
 null, "
authkey
node_context_name": "", "
authprotocol
node_context_url":
null,"privpassword":
 "", "
privkey
notes": "",
"
privprotocol
ping":
null
 1, "
serviceStatus
polling_policy":
null
 "default", "
nettype
port":
null
 "161", "
roletype
privkey":
null
 "", "
node_context_name
privpassword": "",
"
node_context_url
privprotocol":
""
 null, "remote_connection_name": "", "remote_connection_url": ""
}
, "
activated
roleType":
{
 "
opEvents
default",
"roletype": null, "serviceStatus": null, "threshold": 1
"
, "
opConfig
username": "
0
", "
NMIS
wmipassword": "
1
"
}
, "
uuid
wmiusername":
null
 ""
},
"current_user_privileges":
{
"
update
delete": true,
"
delete
update": true
},
"
name
friendly_addresses": "
test
",
"friendly_
addresses
aliases": "",
"
friendly_aliases
name": "test",
"uuid": null
}


Update NodePUT

http://host/en/omk/admin/api/v2/nodes/{node_uuid}.json

To update a remote node in an opHA cluster see below.


configuration
activated":
    {
"netType

        "NMIS": "
default
1",
"polling_policy

        "opConfig": "
1_minute
0",
"port

        "opEvents": "
161","collect":1,"threshold":1,"roleType":"access","ping":1,"group":"EXSI","active":1,"addresses":[
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",
"node_context_name":"Node Context",

        "netType": "default", "nettype": null, "node_context_name": "Node Context",
        "node_context_url": "https://somelink.com/map/thing/", "notes": "", "
privkey
ping":
"","privpassword":"",
 1,
        "polling_policy": "1_minute", "port": "161", "privkey": "", "privpassword": "",
        "privprotocol": "des", "remote_connection_name": "SSH to Node", "remote_connection_url": "ssh://$host",
"serviceStatus

        "roleType": "
Testing
access", "roletype": 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":{}}

    },
    "current_user_privileges":
    {
        "delete": 0,
        "update": 0
    },
    "friendly_addresses": "192.168.88.13",
    "friendly_aliases": "",
    "name": "Castor",
    "node_local": "Remote",
    "overrides":
    {},
    "server_name": "fulla",
    "unknown":
    {},
    "uuid": "b56ba595-69e7-4702-9fe5-49512e1340b0"
}


Delete NodeDELETEhttp://host/
Delete NodeDELETEhttp://host/
en/omk/admin/api/v2/nodes/{node_uuid}.json
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes/b56ba595-69e7-4702-9fe5-49512e1340b0.json



Authentication

Important: All this these methods are authenticated. 

OperationMethodURLResponseExample
AuthenticatePOSThttp://host/en/omk/admin/login
opHA

admin/login


Code Block
{"username": "username",
"password": "password"}


We should receive a 200 response and a cookie, that we can reuse for next API calls. 

...

cluster_id is the uuid of which opHA server the node belongs to.

E.x.

Create RemotePOSThttp://host/en/omk/admin/api/v2/nodes.json
http:
It will return the json node, the same structure that the CREATE. 
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":""}

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
Update RemotePUThttp://host/en/omk/admin/api/v2/nodes/node_uuid.jsonIt will return the json node, the same structure that the CREATE. 

http://volla.opmantek.net:6042/en/omk/admin/api/v2/nodes/6ce5fd5c-d703-4d03-b36c-b8e01439a9f2.json


Code Block
{
    "cluster_id": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
    "configuration": {
        "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": ""
}

...


}



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. 

...