Commit Graph

449 Commits

Author SHA1 Message Date
Kristóf Tóth
5133806d33 Make Historymonitor.history a list instead of a deque (for slicing) 2018-03-06 13:27:32 +01:00
Kristóf Tóth
eea6a418a8 Start work on HistoryMonitor to read command history 2018-03-06 13:27:32 +01:00
Kristóf Tóth
6312e22117 Make TerminadoMiniServer compatible with an external IOLoop 2018-03-06 13:27:32 +01:00
Kristóf Tóth
4873bbf421 Implement simple pty writing API 2018-03-06 13:27:32 +01:00
Kristóf Tóth
c4c07a4c85 Add proof of concept for terminal pty writing 2018-03-06 13:27:32 +01:00
Kristóf Tóth
bddc10269b Replace UniqueTermManager with SingleTermManager to support pty manipulation 2018-03-06 13:27:32 +01:00
Kristóf Tóth
b7f9acd3b0 Expose pty reference from TerminadoMiniServer 2018-03-06 13:27:32 +01:00
Kristóf Tóth
cc2c6009dd Delegate ownership of terminado server to TerminadoEventHandler 2018-03-06 13:27:32 +01:00
Kristóf Tóth
207f984db1 Delete key instead of setting it to empty string value 2018-03-02 14:02:05 +01:00
Kristóf Tóth
3e06f5c196 Optimize write event responses by removing unused file content 2018-03-02 11:04:58 +01:00
Kristóf Tóth
715e39af0d Expose DirectoryMonitor instance from SourceCodeEventHandler 2018-03-02 10:23:10 +01:00
Kristóf Tóth
e451de2179 Implement DirectoryMonitor support in ProcessManagingEventHandler 2018-03-02 10:21:56 +01:00
Bokros Bálint
feb946a1bb
Merge pull request #15 from avatao-content/pmgeh
Rework TFW process management capabilities
2018-02-28 17:57:27 +01:00
Kristóf Tóth
e29b300925 Refactor ServerUplinkConnector to avoid passing redundant data 2018-02-28 15:57:44 +01:00
Kristóf Tóth
9eaced9f02 Remove unused __init__ attributes from pmgeh related classes 2018-02-27 16:51:10 +01:00
Kristóf Tóth
a6bbe6df55 Update SupervisorMixin users to support stateless API 2018-02-27 15:54:31 +01:00
Kristóf Tóth
789db7416d Refactor SupervisorMixin to be stateless 2018-02-27 15:54:10 +01:00
Kristóf Tóth
57bd2aec45 Implement uplink notifications in ProcessManagingEventHandler 2018-02-27 15:26:16 +01:00
Kristóf Tóth
b50a2e401f Update ProcessManagingEventHandler to support new architecture 2018-02-27 14:39:54 +01:00
Kristóf Tóth
3341e97ef6 Fix anchor->key refactor conflicts after rebase 2018-02-27 14:39:40 +01:00
Kristóf Tóth
387d07bc4a Remove SupervisorMixin from ProcessManagingEventHandler 2018-02-27 14:10:00 +01:00
Kristóf Tóth
3506f5abb4 Fix ProcessMonitor not being compatible with SupervisorMixin 2018-02-27 14:10:00 +01:00
Kristóf Tóth
69c998bfde Rename ProcessManager.__init__() arguments to be more specific 2018-02-27 14:10:00 +01:00
Kristóf Tóth
8d8b60d143 Refactor ProcessManagingEventHandler 2018-02-27 14:10:00 +01:00
Kristóf Tóth
a50a173f54 Implement ProcessManagingEventHandler 2018-02-27 14:10:00 +01:00
Bokros Bálint
58d2977731 Merge pull request #13 from avatao-content/bottomless_pit
Refactor TFW architecture to support stateless event handling
2018-02-27 14:09:44 +01:00
Kristóf Tóth
f21036091c Expose TFWServer.fsm_manager as a property 2018-02-27 13:39:31 +01:00
Kristóf Tóth
770123310a Refactor FSMManager.(un)?subscribe() family of methods to accept lists 2018-02-26 17:52:34 +01:00
Kristóf Tóth
5d7223779a Rework FSMManager predicate contract 2018-02-26 17:47:35 +01:00
Kristóf Tóth
250b9da6d6 Fix FSMManager.unsubscribe_predicate() 2018-02-26 17:24:56 +01:00
Kristóf Tóth
78b689f650 Rename FSMManager handler -> predicate so it actually makes some sense 2018-02-26 17:24:56 +01:00
Kristóf Tóth
7e8ea0c7ac Make FSM triggering dependent on FSMManager 2018-02-26 17:24:56 +01:00
Kristóf Tóth
50c940b21d FSMManager no longer owns the managed FSM 2018-02-26 17:24:56 +01:00
Kristóf Tóth
5776400990 Make FSMManager.fsm a property 2018-02-26 17:24:56 +01:00
Kristóf Tóth
25fd71a2b8 Add message argument to FSMManager.trigger() 2018-02-26 17:24:56 +01:00
Kristóf Tóth
47a4e078de Replace homemade hacky defaultdict with defaultdict ¯\_(ツ)_/¯ 2018-02-26 17:24:56 +01:00
Kristóf Tóth
5e9eb88bfc Implement crude FSMManager – wip 2018-02-26 17:24:56 +01:00
Kristóf Tóth
76456b36de Enable proxying of Triggerless messages in TFWServer 2018-02-23 15:14:23 +01:00
Kristóf Tóth
cf4a5bc09d Refactor FSMUpdate message sending logic to class FSMUpdater 2018-02-23 14:55:58 +01:00
Kristóf Tóth
940e74d6da Implement triggered and triggerless EventHandler base classes 2018-02-23 14:07:41 +01:00
Kristóf Tóth
fd1cb100ad Unify (key, response) ordering 2018-02-23 12:13:19 +01:00
Kristóf Tóth
38ca56fa9d Fix generate_fsm_update() not listing valid transitions properly 2018-02-23 12:08:14 +01:00
Kristóf Tóth
ecbb61a862 Overhaul WS->ZMQ proxying 2018-02-23 12:07:30 +01:00
Kristóf Tóth
26538a4ad9 Make ZMQWebSocketHandler "abstract" 2018-02-21 16:46:25 +01:00
Kristóf Tóth
31ba6cb623 Rename anchor -> key globally ¯\_(ツ)_/¯ 2018-02-21 15:28:16 +01:00
Bálint Bokros
609cd19589 Remove unnecessary super call 2018-02-19 10:02:42 +01:00
Kristóf Tóth
24fd753679 Implement support for multiple websockets connecting to TFW 2018-02-16 17:47:30 +01:00
Kristóf Tóth
3e54733033 Remove unused import 2018-02-16 11:09:58 +01:00
Kristóf Tóth
6e7e681602 Remove unnecessary call in FileManager 2018-02-15 16:32:41 +01:00
Kristóf Tóth
ade210c4fc Remove extension -> language mapping from backend (move to frontend) 2018-02-15 16:30:02 +01:00
Kristóf Tóth
c2e161dad3 Make DirectoryMonitor pausable using the with statement 2018-02-14 17:44:05 +01:00
Kristóf Tóth
0b3db0ae9e Implement pausing watchdog while webide files are being written 2018-02-14 16:09:09 +01:00
Bálint Bokros
2ebc34fa05 Remove unused create_source_code_response_data method 2018-02-13 17:57:12 +01:00
Bálint Bokros
b9e41c01cf Move RateLimiter to decorators 2018-02-13 17:56:01 +01:00
Bálint Bokros
14f3a4a153 Move SupervisorMixin to mixins 2018-02-13 17:51:19 +01:00
Bálint Bokros
f5a8230d3b Move ZMQConnectorBase to networking 2018-02-13 17:44:48 +01:00
Bálint Bokros
dbc2d1c0ea Add cenerator to enable testing 2018-02-13 17:35:30 +01:00
therealkrispet
2530fe43ea
Merge pull request #9 from avatao-content/controller_auth
Controller auth
2018-02-13 17:01:09 +01:00
Bokros Bálint
ddffb666be
Merge pull request #8 from avatao-content/watchdog
Watchdog
2018-02-13 16:32:50 +01:00
Kristóf Tóth
5213152477 Remove obsolete TODO 2018-02-13 16:29:45 +01:00
Kristóf Tóth
1d47ca5684 Add method EventHandlerBase.cleanup() 2018-02-13 15:38:46 +01:00
Kristóf Tóth
fd029dbfe7 Move RateLimiter to tfw.util 2018-02-13 15:06:19 +01:00
Kristóf Tóth
60bcb8c2b0 Refactor webide rate limiting 2018-02-13 15:06:15 +01:00
Kristóf Tóth
4d49c8d11b Improve webide refresh trigger rate limiting 2018-02-13 14:37:56 +01:00
Bálint Bokros
dda470fc93 Validate token in controller's HTTP handlers 2018-02-13 13:39:27 +01:00
Bálint Bokros
019ce53b39 Share token with solvable upon starting 2018-02-13 13:38:13 +01:00
Bálint Bokros
cb46a8b80e Make controller async 2018-02-12 18:04:59 +01:00
Kristóf Tóth
dceb4b2b7e Implement basic rate limiting for webide autoreload magic 2018-02-12 17:46:01 +01:00
Kristóf Tóth
955e1c1cf3 Rename watchdog FileSystemEventHandler child 2018-02-12 17:01:23 +01:00
Kristóf Tóth
67579aea29 Implement sending reload command on file system changes 2018-02-12 16:43:30 +01:00
Kristóf Tóth
9c006451bf Implement proof of concept directory event monitoring 2018-02-12 16:01:24 +01:00
Bálint Bokros
86aecd18a8 Move responding-to-controller related stuff to its own class 2018-02-12 13:22:55 +01:00
Bálint Bokros
6f785b3ca7 Refactor solvable responses 2018-02-12 11:28:35 +01:00
Bálint Bokros
e04cc08dd6 Remove unnecessary autoreload
As running the project outside a Docker container has become unfeasible,
having this feature doesn't make sense anymore.
2018-02-12 11:09:30 +01:00
Kristóf Tóth
1692b424b5 Move webide and terminado event handlers to lib/tfw/components 2018-02-11 14:15:10 +01:00
Kristóf Tóth
4fe9d58681 Move TFWServer to tfw.networking.server package 2018-02-11 12:32:30 +01:00
Kristóf Tóth
0f6ec24d45 Remove unnecessary overrides from ZMQWebSocketHandler 2018-02-11 12:04:18 +01:00
Bálint Bokros
1e9642912c Create initial implementation for solution check 2018-02-09 17:37:56 +01:00
Bálint Bokros
4f181b8f09 Separate the handling of envvars by prefix 2018-02-09 17:37:56 +01:00
Bálint Bokros
2499c4759e Fix envvar imports 2018-02-09 17:37:56 +01:00
Bálint Bokros
28e83de0d7 Create PoC of solvable with hardcoded responses 2018-02-09 17:37:56 +01:00
Bálint Bokros
95e1f907ee Make serialization methods' parameter names more generic 2018-02-09 17:37:56 +01:00
Bálint Bokros
27376ada22 Create initial version of SolvableConnector 2018-02-09 17:37:56 +01:00
Bálint Bokros
03d6f587e9 Create initial version of ControllerConnector 2018-02-09 17:37:56 +01:00
Bálint Bokros
55ef87e089 Add AVATAO_SECRET to envvars 2018-02-09 17:37:56 +01:00
Kristóf Tóth
83b24ad538 Improve internal handling of environment variables 2018-02-09 10:38:16 +01:00
Kristóf Tóth
dceb3b947f Refactor handling of working directory for SourceCodeEventHandler 2018-02-08 17:13:14 +01:00
Kristóf Tóth
71dcb58c92 Change loglevel back to DEBUG (CRITICAL was committed accidentally) 2018-02-08 17:13:14 +01:00
Kristóf Tóth
c74c00c618 Extract process managing logic to SupervisorMixin from event handlers 2018-02-08 17:13:14 +01:00
Bálint Bokros
8b9f7e50cb Move FSM instantiation out of FSMManagingSocketHandler 2018-02-08 14:47:00 +01:00
Kristóf Tóth
849fd7b61c Hotfix eventhandlers invoked several times. Waiting for server refactor. 2018-02-07 10:13:06 +01:00
Kristóf Tóth
08260f70fa Remove leftover ioloop.install() stuff from module global era 2018-02-06 14:26:53 +01:00
Kristóf Tóth
b75709b3e5 Make tfw.networking more structured, remove relative import hell 2018-02-06 14:20:51 +01:00
Kristóf Tóth
de6e23e512 Remove thread safety warning: problem was nonexsistent ¯\_(ツ)_/¯ 2018-02-05 14:23:46 +01:00
Kristóf Tóth
654a732368 Fix ZMQWebSocketHandlers handling their own little FSM instances 2018-02-05 14:10:21 +01:00
Bálint Bokros
96762575ba Move JSON (de)serialization to socket boundaries 2018-02-02 18:39:06 +01:00
Bálint Bokros
31fea13a9a Move serialization in one place 2018-02-02 17:30:26 +01:00
Bálint Bokros
91d5e560eb Rework MessageSender to conform defined API 2018-02-02 16:51:06 +01:00
Kristóf Tóth
0d41b4c8e9 Refactor project structure 2018-01-31 15:56:39 +01:00