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