Commit Graph

28 Commits

Author SHA1 Message Date
Ken Moore
d56e90d557 Add a new API call: rpc/dispatcher -> "action":"kill"
This allows a user with full access to cancel pending/running jobs within the dispatcher system.

Required arguments: "job_id" : <ID string> or [<ID1>, <ID2>, etc..]

REST Request:
-------------------------------
PUT /rpc/dispatcher
{
   "action" : "kill",
   "job_id" : "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}"
}

WebSocket Request:
-------------------------------
{
   "args" : {
      "action" : "kill",
      "job_id" : "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}"
   },
   "namespace" : "rpc",
   "name" : "dispatcher",
   "id" : "fooid"
}

Response:
-------------------------------
{
  "args": {
    "killed": {
      "jobs": ["sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}"]
    }
  },
  "id": "fooid",
  "name": "response",
  "namespace": "rpc"
}
2016-04-29 10:25:36 -04:00
Ken Moore
caad04ece9 Add a new API call:
rpc/dispatcher -> "action":"list"
This will list all the currently running/pending processes within the dispatcher queues.
Possible Queues: "no_queue", "pkg_queue", "iocage_queue"

REST Request:
-------------------------------
PUT /rpc/dispatcher
{
   "action" : "list"
}

WebSocket Request:
-------------------------------
{
   "args" : {
      "action" : "list"
   },
   "namespace" : "rpc",
   "name" : "dispatcher",
   "id" : "fooid"
}

Response:
-------------------------------
{
  "args": {
    "jobs": {
      "pkg_queue": {
        "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}": {
          "commands": [
            "pkg install -y --repository \"pcbsd-major\" misc/pcbsd-meta-mate"
          ],
          "queue_position": "0",
          "state": "running"
        }
      }
    }
  },
  "id": "fooid",
  "name": "response",
  "namespace": "rpc"
}
2016-04-29 10:00:43 -04:00
Ken Moore
36b30e6c9c Finish cleaning up the new "pending" state for dispatcher processes. 2016-04-05 10:19:05 -04:00
Ken Moore
9409ef7908 Setup the dispatcher system to have "pending" processes send out regular pings about still being pending. 2016-04-05 09:38:39 -04:00
Ken Moore
e5d8c33b81 Remove some comments from the pkg interface, and make sure the dispatcher sends out a full update when starting for the first time (in case the proc is a special subsystem process). 2016-03-31 10:09:37 -04:00
Ken Moore
08af33c778 Fix up the dispatcher queueing system (for real this time). Now the processes will properly get removed when they are finished, and the next process started up. 2016-03-29 20:21:43 -04:00
Ken Moore
b7471bf44e Fix a threading issue in the dispatcher which was preventing queued processes from getting started. 2016-03-28 12:20:01 -04:00
Ken Moore
9f99d4c5a7 Clean up the iohyve fetch parsing a bit more, and turn off some of the debugging (leave the iohyve fetch-specific debugs on though). 2016-03-04 13:16:12 -05:00
Ken Moore
857919958a Update the iohyve fetch event structure, and make the whole process log structure available under the "process_details" variable in the event. 2016-03-04 11:05:39 -05:00
Kris Moore
87e40a8467 Rename DispatcherParsing.h -> DispatcherParsing.cpp
Add first parsing function for iohyve fetch, will continue
with it tomorrow
2016-03-03 16:05:18 -05:00
Ken Moore
d2ef14a0d1 Large update to the dispatcher/events systems. Now there is a new DispatcherParsing.h file where any subsystem-specific dispatcher calls may be detected/parsed/handled as needed, and the iohyve fetch routine was updated to use this routine (for a proof of concept - could probably still use a bit more log output). 2016-03-03 15:16:55 -05:00
Ken Moore
21fbf8643a A couple fixes to try and track down a seg fault when a distpatch finishes. 2016-03-03 10:53:27 -05:00
Ken Moore
94ab5c3ac2 Change a couple "delete" calls to the Qt ->deleteLater() function in the dispatcher. 2016-03-03 10:08:27 -05:00
Ken Moore
e45b9e5101 Quick streamlining of a dispatcher process access function. 2016-03-02 12:08:23 -05:00
Ken Moore
01656e1763 Turn off a bunch more debugging in the dispatcher since it all seems to be working now. 2016-02-29 16:24:55 -05:00
Ken Moore
3cebb77190 Clean up some of the dispatcher multi-threading, and turn off some debugging in the auth manager. 2016-02-29 16:15:20 -05:00
Kris Moore
718ed8f594 Attempt to fix dispatcher queues 2016-02-29 15:37:49 -05:00
Kris Moore
08df048c69 Commit for ken to fix DProc issues 2016-02-29 15:27:17 -05:00
Ken Moore
3663931eb7 Add a new signal to the Dispatcher process: ProcessOutput(QString log) 2016-02-29 14:43:02 -05:00
Ken Moore
c064bdcfcd Small set of general cleanup in the server sources:
1) Fix a connection issue in the dispatcher
2) Always run the [T]SOCKET->isValid() check before interacting with any socket.
2016-02-25 08:49:17 -05:00
Ken Moore
e8b65c04d2 Update the dispatcher class to return a pointer to the newly created DProcess object so that the requestor can connect to various process signals as needed. 2016-02-22 09:41:09 -05:00
Ken Moore
6cfaf6e597 Completely re-do the SSL authentication systems. Now it is a two-stage auth system, where the server generates a random string, sends it to the client for encryptions with their private SSL key, then gets sent back to the server where the new string is decrypted with the known SSL keys and compared to teh original for accuracy. 2016-02-18 17:01:09 -05:00
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
Ken Moore
470000b08b Get all the threading working properly so teh dispatcher functions correctly now. 2016-02-02 13:00:49 -05:00
Ken Moore
c8f97a69fe Clean up a fair bit of the server backends. Getting rid of compilation warnings, signal/slot connection issues, etc.. 2016-02-01 15:39:29 -05:00
Ken Moore
04c366f114 Finish adding in the new dispatcher system (untested). This should be ready for trying out in some subsystem now.
Note: to queue up a job you just need to run one of the DISPATCHER->queue() functions (there are a few overloaded versions for simplicity)
2016-01-29 16:24:40 -05:00
Ken Moore
c747d1f44c Commit some more work on finishing up the new Dispatcher. 2016-01-29 10:11:18 -05:00
Ken Moore
01124d2719 Commit my work in progress for the new Dispatcher subsystem. This is ~80% done right now (still filling out some of the internals - but the class framework is set in stone). 2016-01-26 12:55:08 -05:00