This patch implements the command "run/schedule" that kicks in pending commands
execution.
Request:
POST /run/schedule
{
"clients": ["192.168.56.11"]
}
Reply:
200 OK
This patch also adds a simple test to cover correction of the command.
If no payload is attached to method that requires a payload, then the API
returns a 400 status code (following RFC 7231) instead of the previous 404.
test_0001_get_clients.py is also modified to fit the new status code.
This test checks for wrong headers HTTP requests:
1. POST /clients with a content length larger than a signed int.
2. POST /clients with an auth token larger than 63 characters.
Currently, if you try to run the python test without the ogAdmServer
binary, it will throw an exception.
This patch adds a check to ensure the existence of the ogAdmServer binary
at the beginning of the script.
# python3 run-tests.py
You need to build the ogAdmServer binary to run these tests :-)
This test adds four new error test cases:
1. Non existent method with POST.
2. Non existent method with GET.
3. Non existent method with POST but with wrong API token.
4. Non existent method with POST but without json.
* Call the tests with python module unittest. In particular, the
discover function.
* Rename tests files to meet the default requirements of discover
function.
This patch implements the command "software" that fetches the software
configuration from the clients.
Request:
POST /software
{"clients" : [ "192.168.2.1", "192.168.2.2" ]}
Reply:
200 OK
This allows to refresh the software inventory from clients.
This patch implements the command "hardware" that fetches the hardware
configuration from the clients.
Request:
POST /hardware
{"clients" : [ "192.168.2.1", "192.168.2.2" ]}
Reply:
200 OK
This allows to refresh the hardware inventory from clients.
This python script creates a database and starts ogAdmServer to run the
tests. This requires root to be launched:
# ./run-tests.py
From the 'tests' folder.
Forces client to fetch and run any pending command from the server,
reload its local configuration file and re-start its selection menu.
curl -X POST http://127.0.0.1:8888/refresh -d @refresh.json
Request
POST /refresh
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
Stop the menu selection on client (through POST method):
curl -X POST http://127.0.0.1:8888/stop -d @stop.json
Request
POST /stop
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
Reboot a client (through POST method):
curl -X POST http://127.0.0.1:8888/reboot -d @reboot.json
Request
POST /reboot
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
Power off a client (through POST method):
curl -X POST http://127.0.0.1:8888/poweroff -d @poweroff.json
Request
POST /poweroff
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
Start a session on client (through POST method):
curl -X POST http://127.0.0.1:8888/session -d @session.json
Request
POST /session
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
Fetching result from run command on client (through GET method):
curl -X POST http://127.0.0.1:8888/shell/output -d @post_shell_output.json
Request
POST /shell/output
{"clients": [ "192.168.2.1" ] }
Reply:
200 OK
{"clients": [ { "addr" : "192.168.2.1", "output" : "..." } ] }
Run command on client (through POST method):
curl -X POST http://127.0.0.1:8888/shell/run -d @post_run.json
Request
POST /shell/run
{"clients": [ "192.168.2.1", "192.168.2.2" ], "run" : "ls" }
Reply:
200 OK
Add REST API for ogAdmServer, this API is exposed through port 8888 on
the system that runs the ogAdmServer. The body of the HTTP message is
expressed in JSON format.
This patch implements the command "clients" that maps to the existing
legacy "Sondeo" command, that is used by the web interface to poll
refresh the client state.
This patch also includes an initial test infrastructure using 'curl' to
send commands to the new REST API.
Request:
POST /clients
{"clients" : [ "192.168.2.1", "192.168.2.2" ]}
Reply:
200 OK
This allows to refresh the status of the list of clients.