Related Documentation 

Nodes API 

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 NodePOSThttp://host/en/omk/admin/api/v2/nodes.jsonThe node in json from the recently node created, including the UUID

http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes.json

{
"activated":
{
"NMIS": "1",
"opConfig": "0",
"opEvents": "1"
},
"configuration":
{
"active": null,"authkey": "","authpassword": "","authprotocol": null,"businessService": null,
"collect": 1,"community": "","context": "","customer": null,"group": "NMIS9",
"host": "asgard.opmantek.net","host_backup": "","location": null,
"netType": "default","nettype": null,"node_context_name": "","node_context_url": "","notes": "",
"ping": 1,"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": ""
},
"current_user_privileges":
{
"delete": true,
"update": true
},
"friendly_addresses": "",
"friendly_aliases": "",
"name": "test",
"uuid": null
}


Update NodePUThttp://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

{
    "activated":
    {
        "NMIS": "1",
        "opConfig": "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": "","ping": 1,
        "polling_policy": "1_minute","port": "161","privkey": "","privpassword": "",
        "privprotocol": "des","remote_connection_name": "SSH to Node","remote_connection_url": "ssh://$host",
        "roleType": "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": ""
    },
    "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/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

Important: All this methods are authenticated. 

OperationMethodURLExample
AuthenticatePOSThttp://host/en/omk/admin/login

http://uburnto.opmantek.net/en/omk/opHA/login


{"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 RemotePOSThttp://host/en/omk/admin/api/v2/nodes.json

http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes.json


{"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":""}


It will return the same output as for a local node: 

{
    "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 RemotePUThttp://host/en/omk/admin/api/v2/nodes/node_uuid.json

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


{"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":""}


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. 

In order to succeed: 

If we should want to edit the remote node locally for some reason, we should use node_admin cli tool.