Ken Moore
8166ef8a79
Cleanup a lot of the logging in the sysadm server. Now the hostinfo log file will clearly list connection time/IP, auth attempts/IP, Dispatches/IP, disconnections/IP. The dispatcher and events systems also properly log activity within their individual log files.
2016-02-02 13:46:23 -05:00
Kris Moore
bd53bbc29b
Add new API class for 'iohyve' along with the initial 'listvms'
...
API call
REST Request:
-------------------------------
PUT /sysadm/iohyve
{
"action" : "listvms"
}
REST Response:
-------------------------------
{
"args": {
"listvms": {
"testguest": {
"description": "February 1, 2016 at 03:11:57 PM EST",
"rcboot": "NO",
"running": "NO",
"vmm": "YES"
}
}
}
}
WebSocket Request:
-------------------------------
{
"namespace" : "sysadm",
"args" : {
"action" : "listvms"
},
"name" : "iohyve",
"id" : "fooid"
}
WebSocket Response:
-------------------------------
{
"args": {
"listvms": {
"testguest": {
"description": "February 1, 2016 at 03:11:57 PM EST",
"rcboot": "NO",
"running": "NO",
"vmm": "YES"
}
}
},
"id": "fooid",
"name": "response",
"namespace": "sysadm"
}
2016-02-01 15:23:21 -05:00
Ken Moore
1146b14917
Cleanup the library/server interactions for sysadm: Now the "library" directory is just an internal collection of classes/files, rather than an actual library of system calls. This allows for in-server globals usage (such as the dispatcher/events systems) within the library files as needed.
2016-02-01 12:29:25 -05:00
Kris Moore
478bdb204c
Add the first iocage sysadm API call
...
REST Request:
-------------------------------
PUT /sysadm/iocage
{
"action" : "listjails"
}
REST Response:
-------------------------------
{
"args": {
"listjails": {
"611c89ae-c43c-11e5-9602-54ee75595566": {
"boot": "off",
"jid": "-",
"state": "down",
"tag": "testjail",
"type": "basejail"
}
}
}
}
WebSocket Request:
-------------------------------
{
"args" : {
"action" : "listjails"
},
"name" : "iocage",
"id" : "fooid",
"namespace" : "sysadm"
}
WebSocket Response:
-------------------------------
{
"args": {
"listjails": {
"611c89ae-c43c-11e5-9602-54ee75595566": {
"boot": "off",
"jid": "-",
"state": "down",
"tag": "testjail",
"type": "basejail"
}
}
},
"id": "fooid",
"name": "response",
"namespace": "sysadm"
}
2016-01-26 10:11:14 -05:00
Ken Moore
1ae716ebfc
Add IP blacklisting to the sysadm server.
...
Current Settings:
1) 5 auth attempts allowed before failover
2) If no communications for 10 minutes, the failover counter gets reset
3) On failover - the IP is placed on the server blacklist for 1 hour
Note: The blacklist system is connection independant, and uses the host IP for unique tracking/blocking.
2016-01-21 10:12:13 -05:00
Kris Moore
7d839787bd
Add first API call for the "systeminfo" class
...
This API call will return a list of external mounts
on the system
TYPE: UNKNOWN/USB/HDRIVE/DVD/SDCARD
REST Request:
-------------------------------
PUT /sysadm/systeminfo
{
"action" : "externalmounts"
}
REST Response:
-------------------------------
{
"args": {
"externalmounts": {
"/dev/fuse": {
"filesystem": "fusefs",
"path": "/usr/home/kris/.gvfs",
"type": "UNKNOWN"
}
}
}
}
WebSocket Request:
-------------------------------
{
"id" : "fooid",
"namespace" : "sysadm",
"name" : "systeminfo",
"args" : {
"action" : "externalmounts"
}
}
WebSocket Response:
-------------------------------
{
"args": {
"externalmounts": {
"/dev/fuse": {
"filesystem": "fusefs",
"path": "/usr/home/kris/.gvfs",
"type": "UNKNOWN"
}
}
},
"id": "fooid",
"name": "response",
"namespace": "sysadm"
}
2016-01-20 12:13:25 -05:00
Kris Moore
766305dcdf
Add new "update" API class with the first "checkupdates" action for
...
testing. We will add an API call for doc'ing once we troubleshoot
some issues
2016-01-18 15:07:57 -05:00
Ken Moore
f30b6cf947
Finish up the overhaul of the Events subsystem and start adding in the Life Preserver event handling/systems.
2016-01-18 12:37:40 -05:00
Ken Moore
82b549ead3
Split off the Events subsystem from the server class and set it up for easy expansion later.
2016-01-15 15:36:04 -05:00
Ken Moore
ec7f25d804
Add a new API call: namespace=rpc, name=query
...
This will probe all the known subsystems and return which ones are currently available and what level of access the user has (read/write).
REST Request:
-------------------------------
PUT /rpc/query
{
"junk" : "junk"
}
REST Response:
-------------------------------
{
"args": {
"rpc/dispatcher": "read/write",
"rpc/syscache": "read",
"sysadm/lifepreserver": "read/write",
"sysadm/network": "read/write"
}
}
WebSocket Request:
-------------------------------
{
"id" : "fooid",
"name" : "query",
"namespace" : "rpc",
"args" : {
"junk" : "junk"
}
}
WebSocket Response:
-------------------------------
{
"args": {
"rpc/dispatcher": "read/write",
"rpc/syscache": "read",
"sysadm/lifepreserver": "read/write",
"sysadm/network": "read/write"
},
"id": "fooid",
"name": "response",
"namespace": "rpc"
}
2016-01-13 14:21:45 -05:00
Ken Moore
ba654808db
Get the TCP server running with SSL encryption all the time now (TLS1.2)
2016-01-08 12:07:17 -05:00
Ken Moore
cce21a7677
Switch the sysadm server over to the secure socket protocols (wss/https)
2016-01-07 16:07:35 -05:00
Ken Moore
a5fcddcbbe
Separate out the reply systems within the websocket.[cpp/h] files, and ensure that we close the TCP socket after sending back a reply.
2016-01-05 13:46:55 -05:00
Kris Moore
528c247607
Add LifePreserver API first list-cron call
2016-01-05 13:19:01 -05:00
Ken Moore
ace6c2ca4c
Add a new subsystem to sysadm-server: the sysadm-network device information system.
...
To Access:
namespace="sysadm"
name="network"
args={"action" : "list-devices"}
Output arguments structure:
"<device name>" : {
"ipv4" : <value>,
"ipv6" : <value>,
"netmask" : <value>,
"description" : <value>,
"MAC" : <value>,
"status" : <value>,
"is_active" : [true/false],
"is_dhcp" : [true/false],
"is_wireless" : [true/false]
}
2016-01-04 14:29:04 -05:00
Ken Moore
fdf06cac1e
Clean up a bit more of the websocket class.
2016-01-04 13:44:58 -05:00
Ken Moore
8d57413401
A few more updates to the input message parsing systems for the server: Ensure that both the namespace and the name of the input message are passed through to the backend parser/system (if authorized).
2016-01-04 13:30:49 -05:00
Ken Moore
508e025cea
Make sure the port numbers get changed a bit, and fix some complication issues in the new backend.
2015-12-29 12:54:01 -05:00
Ken Moore
90e23c882e
Merge branch 'master' of github.com:pcbsd/sysadm
2015-12-29 12:47:05 -05:00
Ken Moore
9fe2914da3
Convert sysadm-server to run either in TCP or WebSocket mode.
...
New CLI flags:
"-ws": Use the websocket protocols instead of tcp
"-p <port number>": Use the designated port number for the server.
2015-12-29 12:43:29 -05:00
Ken Moore
39f36d1d4f
Furthur cleanup the sysadm subsystem request forwarding mechanisms so it is easier to extend later. The return/error code for each subsystem is not used yet - will finish that within the websocket later, but the general backend systems are now setup.
2015-12-17 17:12:19 -05:00
Ken Moore
f5dab0048c
Add a copy of the syscache-webclient server into the sysadm/src/server.
...
Also setup the server to make it easier to extend for API/library support in the backend. All backend functionality can now be added to the new "WebBackend.cpp" file (and WebSocket.h file for headers).
2015-12-15 13:06:42 -05:00