2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-29 13:00:03 +00:00
Commit Graph

53 Commits

Author SHA1 Message Date
Jarrod Johnson
811ca61747 Fix problem where broken expressions were not gracefully handled
Now when expressions can not be completed, the reason is presented as 'broken'.
Additionally, when unsetting a value that would affect expressions,
perform appropriate changes.
2014-03-03 14:48:46 -05:00
Jarrod Johnson
ea7d3a268c Implement 'unset' in confetty interactive cli.
Provide a means to clear node specific settings so that inheritance can be restored.
In JSON, send a null as a value for a parameter instead of a string or 'object'.
2014-02-22 21:53:34 -05:00
Jarrod Johnson
f7c1dc8385 Have ipmi plugin recognize the rename to nextdevice 2014-02-22 21:14:55 -05:00
Jarrod Johnson
e236260c3b Have console assume ipmi if no data given, like hardwaremanagement 2014-02-22 19:28:41 -05:00
Jarrod Johnson
f6ed5b5e14 Have confetty interactive attribute show be more informative 2014-02-22 19:12:42 -05:00
Jarrod Johnson
70b7b62c0f Give messaging layer full info about attributes in attributes plugin.
Messaging layer was unable to contemplate adding info about inheritance and expressions.
2014-02-22 18:20:07 -05:00
Jarrod Johnson
a68deebec8 Improve the get_nodegroup_attribute to be more full featured
Also, move masking of the _expressionkeys attribute into the core
of the class rather than working around it.
2014-02-19 20:36:39 -05:00
Jarrod Johnson
f2c09795ff Fix expression based callout of other keys
The '_' prefixed attributes suggest more care should be taken.
2014-02-19 20:24:51 -05:00
Jarrod Johnson
b823bc37d2 Fixup unknown attribute handling.
For one, prevent unknown attributes from getting into configmanager from now on.
Additionally, have the attributes plugin manage to convey bad attributes when
encountered.
2014-02-19 19:10:58 -05:00
Jarrod Johnson
b6853cfbe1 Fix display of group attributes
Something still seems off about it, but it is self contained to attributes plugin for now.
2014-02-18 13:48:26 -05:00
Jarrod Johnson
2b6188e0b6 Add nodegroup management to API
Have nodegroup attributes exposed via API so that they are at
least nominally useful
2014-02-18 13:22:07 -05:00
Jarrod Johnson
c77eb5be3b Have configmanager protect against unrecognized data.
When doing a set, check the keynames and value types as
appropriate.  raise ValueError in the configmanager case
since it could be code or human mistake.  attributes plugin
then catches this error and propogates it up as an InvalidArgumentException
if it is just trying to pass in data from user.
2014-02-13 12:58:03 -05:00
Jarrod Johnson
0d425f1f9f Add cli support for 'show'
confetty interactive mode can now do 'show' (aka read, retrieve, whatever) on
more abritrary resources.
2014-02-10 19:36:18 -05:00
Jarrod Johnson
d2d7f04f49 Further simplify ipmi plugin
With the threading complications removed from worry,
continue making the ipmi plugin more straightforward
to read, maintain, and evolve.
2014-02-06 11:08:55 -05:00
Jarrod Johnson
80d4518a49 Remove more vestiges of the thread support
Also, remove a required function from console interface.  Now a plugin
is only responsible for their thread behavior and never responsible
for the consoleserver mechanism requirement for helping user session
do polling IO.  This is additionally great because it means the
coordination is contained to each session object and many client connections
are not causing multiple calls to iterate the wait loop.
2014-02-06 09:27:38 -05:00
Jarrod Johnson
fd27835424 Remove thread aspect of ipmi.py
This is a work in progress, trying to make ipmi.py theoretically look better.
2014-02-05 09:20:39 -05:00
Jarrod Johnson
131e64ef0e Fix cval assignment exception
For SOL sessions, the queue could be touched without anything in ipmiq.
Have cval be set to something benign in those cases to avoid a trace in
debug.
2014-02-01 19:43:28 -05:00
Jarrod Johnson
9749c173ac Have command errors raised in the context of the calling code
Errors were not being raised in a manner to actually affect the request
threads.  Address it by having the exceptions raise in the correct context.
2014-02-01 19:41:15 -05:00
Jarrod Johnson
170e7934ca Restructure ipmi plugin logon errors
Make it so that logon errors are raised in the context
of the request(s) that actually care.
2014-02-01 19:28:31 -05:00
Jarrod Johnson
50891f235e Implement session loss recovery
When a console object reports disconnect, have mechanism to get back in.
2014-02-01 18:49:36 -05:00
Jarrod Johnson
dae131d40f Fix race condition on console connect
When data was coming in during logon, it was possible for
the handler to be called before rcpts member was initialized.
Correct by initializing rcpts prior to taking any other action.
2014-02-01 09:39:57 -05:00
Jarrod Johnson
086c18c641 Have ipmi plugin print out traceback data when exceptions would be encountered
For now, see the errors even as they are tolerated.  This allows problems to be fixed
as best as possible.  Ultimately, this will be logged.
2014-01-30 09:47:06 -05:00
Jarrod Johnson
b944677f85 Fix ipmi events if pyghmi spins in an eventloop
If circumstances inside pyghmi cause it to be looping in
an event loop, confluent was getting work done, but
the code to wake up the eventlet greenthreads wouldn't get tickled.
Address this by also waking up waiters in the function that is
invited to the pyghmi event loop party.
2014-01-29 22:08:48 -05:00
Jarrod Johnson
55ef78fc64 Correct issues in trying to keep ipmi worker alive 2014-01-29 12:52:57 -05:00
Jarrod Johnson
1b6c258934 Last change made exit fail badly, correct that 2014-01-28 17:48:59 -05:00
Jarrod Johnson
7709a52eda Better isolate faults in the ipmi plugin
Previously, one ipmi failure would tank all consoles and commands.
Now, at least console failures are isolated.

Next stop is to isolate command failures, then fix up session recovery.
2014-01-28 17:41:01 -05:00
Jarrod Johnson
343600c2aa Rework the 'update' button for clearer use alongside other buttons 2013-11-22 18:27:15 -05:00
Jarrod Johnson
7752bbbc27 Enumerate nodegroups 2013-11-13 15:12:57 -05:00
Jarrod Johnson
5e406d6fa1 Have attribute set return some data
Handle html form arrays with blanks, removing blank values
(more complex usage requires JSON)
2013-11-13 14:52:32 -05:00
Jarrod Johnson
ecc7c21fc4 Support list style attributes (notably groups) in the api explorer 2013-11-13 10:36:43 -05:00
Jarrod Johnson
6947f98d62 Rework some messages details, make boot device work 2013-11-07 16:33:48 -05:00
Jarrod Johnson
215acdf4a7 Have rest explorer actually mostly work as expected 2013-11-07 14:39:34 -05:00
Jarrod Johnson
659f85eaa0 Add support for showing all as well as current attributes 2013-11-03 10:36:03 -05:00
Jarrod Johnson
58482c6090 Implement ability to change settings for an existing node 2013-11-03 10:21:54 -05:00
Jarrod Johnson
ada6302c2d Provide common entry point for input processing 2013-11-03 09:52:43 -05:00
Jarrod Johnson
51c80cdd74 Include some feedback in rest explorer on input data 2013-11-03 09:05:50 -05:00
Jarrod Johnson
3fa61dc8f9 Wire up input to plugins for create/read 2013-11-02 19:45:10 -04:00
Jarrod Johnson
04d2cd4ba3 Add attribute retrieval facility 2013-11-02 18:24:04 -04:00
Jarrod Johnson
3caafa063b Change to plugin subdirectories to better organize plugins 2013-11-02 17:45:55 -04:00
Jarrod Johnson
ec58c47bff Restore console functionality 2013-11-02 13:40:53 -04:00
Jarrod Johnson
3a3dbf9f41 Progress toward more strictly defined objects
messages and consoles get classes to guide developers toward consistency.
2013-11-02 13:06:48 -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
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
8fa9c10784 Make ipmi plugin resiliant to traffic bursts to avoid a hang 2013-10-10 14:06:02 -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
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
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
39cd741845 Correct various issues and IPMI console session actually go through now 2013-09-12 15:52:34 -04:00