2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-22 17:43:14 +00:00
Commit Graph

66 Commits

Author SHA1 Message Date
Jarrod Johnson
35a5e9cbf0 Continue trying to flesh out socket api 2013-10-23 13:38:54 -04:00
Jarrod Johnson
adf52517fd More cleanly handle unrecognized urls 2013-10-15 21:13:48 -04:00
Jarrod Johnson
126030b9db Begin work to do authentication and authorization on socket api 2013-10-14 11:28:07 -04:00
Jarrod Johnson
8d21674ced Implement unix domain socket in socket api 2013-10-14 09:21:55 -04:00
Jarrod Johnson
3d1e398977 Convert wsgi function to be generator
Since wsgi function returns iterable, it turns out to be easy to do it this way.

For now, hardcode json dumps, two things:
1: call out to module supporting HTML and JSON interpretation
2: in both cases, a header and footer must sandwich the responses in http

In socketapi, responses will come back without a container, but http
does not afford us such luxury.  Create a containing json structure.
On first iteration, do not prepend with ,.  prepend with , all other times.
2013-10-13 20:51:30 -04:00
Jarrod Johnson
17603a59fd Revert the strategy to manually track sessions for pyghmi
Since pyghmi now handles this automatically and in fact removes
the facility used to manually track this and it is much more
robust than this strategy.
2013-10-13 19:59:30 -04:00
Jarrod Johnson
49b3aed3e3 Add a tlvdata module 2013-10-12 21:19:15 -04:00
Jarrod Johnson
6a79a30fc0 Remove single byte TLV concept from socket protocol.
For local socket, it isn't enough to matter.  In network protocols, encryption
will generally cause things to be rounded up to the next 16 bytes anyway.

Make things simpler implementation wise by sticking to 4 byte tl bytes,
but still reserve TL with hi bit set, just in case.
2013-10-12 21:15:52 -04:00
Jarrod Johnson
53ce6f054c Add concept of defaulting plugin 2013-10-12 21:13:22 -04:00
Jarrod Johnson
97d3eebff6 Actually have httpapi able to start calling into the plugin api 2013-10-12 18:04:27 -04:00
Jarrod Johnson
8a35f9a9e0 Actually make ipmi work for console and get_power
Note that currently, console must go first, then command.  Otherwise
panic ensues.
2013-10-12 18:03:51 -04:00
Jarrod Johnson
5e80407bc5 Refactor plugin code to better assure all things happen in one greenthread
Additionally, begin work to make ipmi.py start doing non-console things
2013-10-12 15:13:34 -04:00
Jarrod Johnson
1c2341e1eb Cleaner exit on remote termination 2013-10-12 15:04:26 -04:00
Jarrod Johnson
52913a1d55 Document the socketprotocol design 2013-10-12 11:12:47 -04:00
Jarrod Johnson
ed0373ade4 Advance confetty example to the point where it can do at least some conserver escape sequences, notably
including disconnect.
2013-10-12 10:44:46 -04:00
Jarrod Johnson
52f8a6dda4 Note for future of socket api 2013-10-10 20:04:59 -04:00
Jarrod Johnson
f5e02bba4e Make confetty work to actually do socket console work 2013-10-10 19:23:06 -04:00
Jarrod Johnson
4880de94e8 -Have master console multiplexer not crash because a handler would have crashed
-Have sockapi remove console session handler on client disconnect
2013-10-10 14:17:08 -04:00
Jarrod Johnson
8fa9c10784 Make ipmi plugin resiliant to traffic bursts to avoid a hang 2013-10-10 14:06:02 -04:00
Jarrod Johnson
9855f17d58 Fix socket test case to work multiple times 2013-10-09 20:14:34 -04:00
Jarrod Johnson
7f572fd164 Implement session cookie for optional use by clients to guard against attempts to slow session
Implement http and console session reaping in httpapi layer
2013-10-09 16:17:37 -04:00
Jarrod Johnson
dd111ffef5 Flesh out auth to the point where set and check of password is plausible 2013-10-08 18:25:59 -04:00
Jarrod Johnson
b0855f7c88 Flesh out user password management 2013-10-08 17:49:38 -04:00
Jarrod Johnson
96ca623520 Replace PBKDF2 function with PyCrypto's version
Overlooked the existence of the servicable PBKDF2 function in PyCrypto.
Rectify that oversight (might break existing config db, but this
isn't even alpha code yet)
2013-10-08 14:03:04 -04:00
Jarrod Johnson
97a52ed775 Attempt to relocate convention for 'super tenant' to more definitively segregate the two concepts 2013-10-08 11:51:13 -04:00
Jarrod Johnson
4c68da0d3b Change to eventlet.wsgi instead of patched flup scgi 2013-10-03 17:05:40 -04:00
Jarrod Johnson
c9762cb536 Rework commented out code a tad 2013-09-24 13:51:03 -04:00
Jarrod Johnson
44c8098906 Add commented code to allow easily getting at the debug socket, needs eventlet fix to work 2013-09-20 17:14:16 -04:00
Jarrod Johnson
982b438279 Have console sessions delete themselves after http client has gone away... probable 2013-09-20 14:36:55 -04:00
Jarrod Johnson
1d76dcf13d Revert "Attempt to mitigate memory consumption"
This reverts commit e746d0dd3b.
2013-09-16 16:57:27 -04:00
Jarrod Johnson
e746d0dd3b Attempt to mitigate memory consumption 2013-09-16 16:56:59 -04:00
Jarrod Johnson
807b5366ee Begin some buffering tricks.
Here we start with buffering and using the buffer to
send a few bytes of history to new connections,
paying particular attention to the last 'clearscreen' event
2013-09-15 13:22:50 -04:00
Jarrod Johnson
782c1f9b9a Have httpapi json dump try utf-8 first, but if the output is not utf-8, try cp1252
as it is a reasonable guess for firmware.  In short, OSes are presumed to trend toward utf-8, and firmware toward cp1252

If both fail, then inject DECODEERROR for now.
2013-09-15 11:19:04 -04:00
Jarrod Johnson
eafdef413c Fix problem where wait for next data would only work every other time
Also fix busy wait behavior
2013-09-15 11:06:34 -04:00
Jarrod Johnson
3f46ffd25d Fix syntax error in httpapi rework 2013-09-14 21:37:23 -04:00
Jarrod Johnson
9ecc1aae44 Move all ipmi activity into it's dedicated eventlet greenthread.
There is still a problem where only every other output comes over the httpapi
but in general, it behaves much much better.
2013-09-14 21:32:52 -04:00
Jarrod Johnson
4fee4082b9 Have sockapi properly run alongside httpapi
Have sockapi force TLSv1
2013-09-14 20:21:58 -04:00
Jarrod Johnson
2644801929 Create a test socket api layer 2013-09-14 11:08:48 -04:00
Jarrod Johnson
e9c6c549cb Remove exploration output 2013-09-14 10:27:13 -04:00
Jarrod Johnson
d7db7041b2 Changes to get SOL console kind of working 2013-09-13 16:07:39 -04:00
Jarrod Johnson
fb8d042f48 Add monotic time util function 2013-09-13 14:33:03 -04:00
Jarrod Johnson
83db40da51 Implement urlencoded form data for the data into the console interface 2013-09-13 14:16:29 -04:00
Jarrod Johnson
1cbc16b22e Actually implement enough to get some console traffic going.
This implements a protocol that should be compatible with shellinabox's
javascript client code.
2013-09-12 17:14:09 -04:00
Jarrod Johnson
a359ae5063 Add missing console core 2013-09-12 16:01:39 -04:00
Jarrod Johnson
39cd741845 Correct various issues and IPMI console session actually go through now 2013-09-12 15:52:34 -04:00
Jarrod Johnson
996e19752b Remove kwargs to provide forward compatibility, it doesn't seem to be workable in python 2013-09-09 15:42:00 -04:00
Jarrod Johnson
91c0f01b61 Correct typo in ipmi plugin causing parse error 2013-09-09 15:30:24 -04:00
Jarrod Johnson
100c06e5a5 Fix problem where plugin api failed to access the node specific dict 2013-09-09 13:52:34 -04:00
Jarrod Johnson
b185d50f87 Add ipmi plugin to repository 2013-09-09 13:29:36 -04:00
Jarrod Johnson
f23e67618b Correct problem where path element was not parsed correctly 2013-09-09 13:34:22 -04:00