aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/api/API.rst
blob: 7d5c88bb95225c33bd46706cedba4ebcff1bdb03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
API-dok
=======

Work in progress.

There are two relevant paths: /api/public and /api/private. One requires
user-login in, the other does not.

General: All end-points that output time-based data accept the "now=<time>"
argument, where, <time> is YYYY-MM-DDThh:mm:ss. E.g:

GET /api/public/switch-state?now=2015-04-02T15:00:00

There is no guarantee that the data is exact time-wise, thus each endpoint
should also output relevant time stamps.

Currently error handling sucks.

This document is in no way complete, but it's a start. It will be updated
as time permits and API's stabilize.

Public
......

Use URL https://nms-public.tg16.gathering.org/api/public

/api/public/dhcp
----------------

Methods: GET
Update frequency: every second or so.

Used to report time since last dhcp lease.

/api/public/dhcp-summary
------------------------

Methods: GET
Update frequency: every second or so.

Used to report dhcp lease stats. Both recent stats, and total stats.

/api/public/ping
----------------

Methods: GET
Update frequency: every second or so.

Used to report linknet latency.

The switch latency is being integrated into switch-state.pl and linknet
latency will similarly be moved.

/api/public/switches
--------------------

Methods: GET
Update frequency: Infrequent (on topology/config changes)

List all switches and map positions.

Used to draw switches on a map and provide static information.

/api/public/switch-state
------------------------

Methods: GET
Update frequency: Every second

Provides state for each switch, including total port speed, uplink port
speed, latency and temperature.


Private
.......

/api/private/comment-add
------------------------

Methods: POST

Add a comment

/api/private/comment-change
---------------------------

Methods: POST

Note that comments are never really deleted, but the state can be set to
deleted, making sure they are never shown.

/api/private/comments
---------------------

Methods: GET

Update frequency: on user input

Lists comments.

/api/private/snmp
-----------------

Methods: GET

Update frequency: Every few seconds, based on SNMP data.

Returns full SNMP-data, split into two trees. 'misc' and 'ports'.


/api/private/switches-management
--------------------------------

Methods: GET

Update frequency: Infrequent (on topology/config changes)

List management information for switches.

/api/private/switch-add
-----------------------

Methods: POST

Add or update switches, supports same format as tools/add_switches.txt.pl

Accepts an array of switches.

Magic: If you set placement to be "reset", it will re-calculate placement
based on sysname. For new switches, this is redundant as an empty
placement-field will trigger the same behavior.