2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-05-14 10:24:25 +00:00
Commit Graph

62 Commits

Author SHA1 Message Date
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
Jarrod Johnson 5451fa65e5 Refine the authorization bit a tad 2013-09-06 16:40:40 -04:00
Jarrod Johnson 596692a033 Put missing file under git tracking 2013-09-06 15:47:39 -04:00
Jarrod Johnson 39c17330f3 Add user functions to config db 2013-09-06 15:49:04 -04:00
Jarrod Johnson cad7db237c Refactor plugin api code into its own module 2013-09-04 15:44:28 -04:00