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

376 Commits

Author SHA1 Message Date
Jarrod Johnon
f7fb9d6af2 Fixes around the confluent shutdown facility 2014-10-28 13:42:21 -04:00
Jarrod Johnon
9d7aa2c51f Prevent control thread from blocking exit
If a control socket was created, exit() would block due to the non-daemon thread.
 Mark the thread as daemon to allow for unclean shutdown.
2014-10-07 15:30:29 -04:00
Jarrod Johnson
b2102bae30 Add facility for confetty to interact with external controller
For certain scenarios (e.g. wcons), having a path to get in and communicate data from the outside.
For starters, have a 'GETWINID' directive for wcons to use to fetch the unambiguous window id
to use for xwininfo tricks.  TODO includes concepts from xtcd.pl that enabled things like warr
2014-10-07 14:51:58 -04:00
Jarrod Johnon
57d0997d62 Have init script use previously added confluent capability 2014-10-07 11:19:13 -04:00
Jarrod Johnon
5012c9e401 For skipauth clients, allow a 'shutdown' verb
To facilitate a clean coordinated shutdown, create a verb so that a termination can be done
and know when it is completed.  Only allow for the 'special' case of 'skipauth', where unix domain
socket connection is in hand and only root or the service owner can access.
2014-10-07 11:14:22 -04:00
Jarrod Johnon
a907da0532 Avoid trying to set title on incapable terminals
If running on a VC, for example, without benefit of tmux or anything, must suppress escape sequences.
2014-10-06 16:51:56 -04:00
Jarrod Johnon
cf6c32b055 Exit on console-only execution if an error is encountered
If console can not be established (e.g. the node doesn't exist), confetty would drop to interactive.
Address by exiting if the path falls that way.
2014-10-06 15:52:06 -04:00
Jarrod Johnon
4443d67da6 Implement timestamp reporting
Have confetty include the vintage of incoming data so that user may know how likely the
data is relevant to now.
2014-10-06 15:13:09 -04:00
Jarrod Johnon
afb6f4296c Bump 'VERSION' file.
As it heads into RC, will start using the tags and
overly simplifying things in the same way xCAT
revs versions even without changes for the sake
of consistency
2014-09-30 11:35:33 -04:00
Jarrod Johnon
d4b8294ec9 Correct syntax error
Somehow a stray colon from an attempt to try locking persisted.  Remove that colon.
2014-09-30 11:35:11 -04:00
Jarrod Johnon
37549481b6 Fix double connect on logging change
When logging was changed from none to full, it would always
start and immediately abort connecting to start again.
Change this by deciding which connection liveness strategy
to use based on how many settings changed.  If just logging
changes, then connect only if not connected or connecting.
If more changes, then skip that kinder strategy and go straight
to reconnecting.
2014-09-30 11:21:01 -04:00
Jarrod Johnon
8728007d1e Fix DB corruption potential
Make sure that the dbm object is closed before another thread might come along.  Out of an overabundance of caution,
also join() existing cfgwriter thread to make sure that only one thread touches it at a time.  In theory, it should only possibly
be after the db is closed, but take no chances.
2014-09-23 12:08:13 -04:00
Jarrod Johnon
89ca5b412b Fix race condition on configuration writeback
If the sync thread had moved beyond the point of checking _writepending, but had not quite managed to trigger
isAlive() to be false, the sync cfg to file would transition to never work.  Address this by adding one lock and one boolean.
Inside the lock, the two booleans are manipulated to atomically mark the end of thread sync activity linked with
check for pending data to write.
2014-09-19 08:57:17 -04:00
Jarrod Johnson
e9ac1617a8 Add a 'reopen' capability to client
If client wants to force a reconnection, they can send ctrl-e, c, o, just as in conserver.
2014-08-28 13:58:31 -04:00
Jarrod Johnson
cb631ee40f Fix issue with client state corruption on errored console start
Previously, the console start path would bail out without consuming the '_requestdone' message.
Correct this by reading until requestdone is seen as required by protocol.
2014-08-27 14:29:53 -04:00
Jarrod Johnson
276ba4abd7 Correct behavior of various paths when node does not exist 2014-08-26 14:03:15 -04:00
Jarrod Johnson
6fc75d8394 Implement dump of cfg to JSON
Restoring data is not yet implemented, after restore backend implemented than a
utility can be furnished.
2014-08-19 15:06:28 -04:00
Jarrod Johnson
a0ae523768 Fix timeout on persistent IPMI session
If there is a persistent IPMI session and the first to notice was a user request
it would fail with unexpected error.  Correct the situation to expect the error
and report more precisely as to the cause.
2014-07-29 09:49:52 -04:00
Jarrod Johnson
230397c2a3 Fix unexpected error on bad authentication
When bad credentials were caught by pyghmi, the ipmi plugin was not specifically
characterizing it.  Address this shortcoming.
2014-07-29 09:24:02 -04:00
Jarrod Johnson
9b7d1d6c5b Change from 'passphrase' to 'password'. 2014-07-27 19:23:32 -04:00
Jarrod Johnson
bc00d71d96 Modify web to work as an rpm package 2014-07-27 19:19:27 -04:00
Jarrod Johnson
291e90afcf Fix 500 instead of 401 on bad HTTP authentication
Code optimistically assumed that authentication would fill out data to
pass to authorization, which does not get filled out if authentication fails.
2014-07-25 15:40:26 -04:00
Jarrod Johnson
1fb8b33c06 Correct some incorrectly renamed entries 2014-07-25 14:45:02 -04:00
Jarrod Johnson
19451d69fb Fix some overlooked 'groups' lines in configmanager 2014-07-25 14:38:44 -04:00
Jarrod Johnson
c0c6332a97 Add VERSION to repository 2014-07-25 14:32:43 -04:00
Jarrod Johnson
360bcc395c Rename 'groups' to 'nodegroups'
As usergroups come to exist, make it obvious whether a group is user or node
bound. The attribute names stay the same (since the 'groups' of a 'node' is
clearly 'nodegroup')
2014-07-25 14:32:04 -04:00
Jarrod Johnson
12f939a533 Extend HTTP token to work correctly with PAM authentication 2014-07-14 15:03:34 -04:00
Jarrod Johnson
c70f365cd2 Add support for RPM builds
add supportfor pam authentication
2014-07-14 14:54:12 -04:00
Jarrod Johnson
426eeb209f Fix incorrect output on disconnect for cli mode
The '.' command would fail to exit the function, causing the 'help' output to occur.
Fix this by having the '.' command processed in the same manner as the rest.
2014-07-01 12:57:14 -04:00
Jarrod Johnson
1d635add9e Fix traces when trailing slashes are omitted from node resource collections
When a url that could have been a valid resource collection with a trailing
slash hits the daemon without a trailing slash, it would fail.  Correct by
recognizing this scenario and properly handling it.
2014-06-16 16:44:05 -04:00
Jarrod Johnson
87700d6d3d Fix filehandles leaking on shell modules
When shell module plugins failed and exited,
confluent was failing to release the filehandle.  This
would ultimately lead to unreasonable exhaustion of
filehandles.
2014-06-12 14:42:09 -04:00
Jarrod Johnson
bea9cd4149 Add web assets to confluent tree
This adds web assets so web developers can have a widget that can
be integrated into a web ui.
2014-06-04 16:11:06 -04:00
Jarrod Johnson
b01934d2e9 Roll up new version number 2014-06-02 10:33:54 -04:00
Jarrod Johnson
dccf2bae7d Fix problem where changes made during a bg cfg sync could be lost
If a bg sync thread is in progress, a key could be marked dirty before the desired change is actually made.
This causes the running thread to pick up the change to 'dirty' keys and save off the as-yet unchanged key.
Reorganize things to have the keys marked dirty only after they have been assigned so that an in-progress
commit to disk only picks up a key after the relevant values have changed.
2014-06-02 10:32:28 -04:00
Jarrod Johnson
c938a280f9 Update version to reflect changes 2014-05-29 11:04:02 -04:00
Jarrod Johnson
68c7e5b77e Improve performance of creating new configmanager objects
Previously, the null tenant always synced to disk on every request in pracitice.
Correct that mistake to avoid commit to disk when no changes are being made.
2014-05-29 10:53:32 -04:00
Jarrod Johnson
a7398198d4 Fix shell execution on node removal 2014-05-29 10:28:04 -04:00
Jarrod Johnson
6e2808f63e Have HTTP interface bind to ipv6 for dual stack support 2014-05-28 13:48:23 -04:00
Jarrod Johnson
b92487da24 Fix handling of children in shellmodule plugins
Exit of a shell plugin was not handled correctly.  Fix that
2014-05-28 12:25:13 -04:00
Jarrod Johnson
f525f054ba Add support for shell based plugins
A plugin that ends in '.sh' is currently assumed to be a console plugin and is executed once.
2014-05-27 15:02:53 -04:00
Jarrod Johnson
7e2494c8e9 Add missing copyright/license information to perl pieces 2014-05-20 13:42:15 -04:00
Jarrod Johnson
36edb24b56 Add perl client library for confluent
For applications wishing to use perl to script to confluent,
this library facilitates that.
2014-05-20 13:37:27 -04:00
Jarrod Johnson
38f07252f8 Defer ssl wrap until after accept()
ssl wrap prior to accept causes accept() to be too complicated to stay in the
persistent thread and makes key changes require restart to pickup.  Call
the wrap_socket within the dedicated client thread so that it gets up to date
at the right time and picks up certificate changes in a timely fashion.
2014-05-20 09:41:55 -04:00
Jarrod Johnson
b78830c403 Fix tlvdata socket infinite loop condition
A client could spin the confluent server endlessly by bailing out of connection
at wrong time.
2014-05-19 16:53:55 -04:00
Jarrod Johnson
3a456ca45d Bump client and server versions 2014-05-19 15:52:39 -04:00
Jarrod Johnson
950ca5e4c9 Add IPv6 support
Python defaults to IPv4-only, but IPv6 is cooler
2014-05-19 15:41:38 -04:00
Jarrod Johnson
51442e0180 Move to port 13001 for the TLS socket
While 6001 was not taken, it is well within reach of likely VNC ports
2014-05-19 15:23:52 -04:00
Jarrod Johnson
0dea8e0772 Move to port 6001 for the TLS socket
4001 is taken, so move to 6001 which is not taken by the registry.
2014-05-19 14:43:38 -04:00
Jarrod Johnson
93aa6e3955 Switch to using fingerprint of cert for knownhosts
Some clients have their lives made more convenient by having the
sha512 hash rather than the actual certificate.  Prepend with 'sha512$'
to allow for a future where different formats could be specified.
2014-05-19 14:34:13 -04:00
Jarrod Johnson
4dfcc8103f Assure that TL value read is complete
There is no hard guarantee that all 4 bytes will come.  In practice,
I've never seen this occur, but to be complete, should make sure recv gets everything it was supposed to.
2014-05-19 10:12:16 -04:00