2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-06-20 18:41:02 +00:00
Commit Graph

54 Commits

Author SHA1 Message Date
Jarrod Johnson 1e54abd29b Implement reverse noderange
This is the library feature.  A remote API call will be addded
so that the likes of collate can use it.
2017-08-10 16:45:38 -04:00
Jarrod Johnson 5f1f41b975 Add serial and model number to the id attributes
Lay groundwork for pulling this sort of data in on discovery.  The plan is that *if* serial numbers will
be used as a cue for discovery, it would be in the context of a nodediscover command.
2017-08-08 15:51:27 -04:00
Jarrod Johnson c2115f4df9 Fix get/set global with the stateless mode change
Since supporting stateless made the init() optional, the *_global functions
would not work if called first.  Correct this oversight.
2017-06-29 13:08:23 -04:00
Jarrod Johnson 0745ab0fdf Auto-encode unicode if needed
If unicode comes in to be crypted and fails, be explicit about utf-8 encoding.
2017-06-29 10:20:24 -04:00
Jarrod Johnson aeb3bd2444 Add a stateless configmanager mode
Certain embodiments of confluent may not
want to persist configuration.  Enable
an opt-in full-volatile config mode.
2017-06-29 10:17:17 -04:00
Jarrod Johnson e0cc67f57a Implement Lenovo Thinksystem and discovery support 2017-06-20 14:56:24 -04:00
Allen Lin37 b64858e0b3 Removing unnecessary case if groups ever has a key of 'value' 2017-04-20 15:41:11 -04:00
Allen Lin37 86e502a47a remove debug and fixing issue checking attribute 2017-04-13 22:07:47 -04:00
Allen Lin37 2042bcb8f0 updating server side for use with nodegroupattrib 2017-04-13 17:36:41 -04:00
Allen Lin37 db15992894 Adding nodegroupattrib to update nodegroups 2017-04-12 10:36:27 -04:00
Jarrod Johnson 6ad383c6ad Assure deterministic enumeration of areas
nodegroup must be restored first.
2017-02-15 10:46:27 -05:00
Jarrod Johnson 446d2270c9 Give a friendlier message on restore of redact DB
A redacted dump will not have a keys.json file, which
is natural.  Replace 'file not found' with a message
indicating the possibility of a redacted dump.
2017-02-15 10:46:27 -05:00
Jarrod Johnson 5395f97a21 Do not write out keys when redacting
It's silly to store keys when redact is requested
2017-02-15 10:46:27 -05:00
Jarrod Johnson 393ea41696 Implement restore from db
This provides at least restore for the primary tenant (the only tenant currently used by anyone)
2017-02-15 10:46:26 -05:00
Jarrod Johnson b87cb87c2a Flesh out the restoration of the master keys
With this commit, the key portion of import should be complete.
2017-02-15 10:46:26 -05:00
Jarrod Johnson a91d7047b2 Start work on a db restore
Start by parsing the previously dumped key data, since the key data requires special handling.
2017-02-15 10:46:26 -05:00
Jarrod Johnson 638842beec Fix no password backup
If password=None was supplied, it would fail.  Now accomodate unprotected keys.
2017-02-15 10:46:26 -05:00
Jarrod Johnson 457f1fe30b Provide resource to allow clients to expand custom expressions
Clients may now format a string as if it were to be an expression for an attribute,
and have the server evaluate it using the same engine without passing through the
attribute engine.  This makes it easier, for example, to do nodeexec n1-n4 ipmitool -H {hardwaremanagement.manager}
2016-10-06 15:51:07 -04:00
Jarrod Johnson b9733b3e0e Provide config enabled switch mapping
Wire up the singleton switch search function to a function that
extracts list of switches and relevant auth data from the config
engine.  Add attributes to allow indication by hardware management
port connection.  The OS nics will be added later for in-band discovery,
but that's of limited value until PXE support anyway.

This time, the update function is a generator that yields as a sign to caller
that the mac map has had at least a partial update to be considered.
2016-07-14 09:27:15 -04:00
Jarrod Johnson 4aeb7e1df5 Provide a simple global 'log' function
As we implement internal processes with automation,
provide a hook for code to convey information about
situations encountered during background activity.
Ultimately, it is intended to hook event forwarders
for things like syslog/email/etc
2016-07-14 09:27:15 -04:00
Jarrod Johnson d5e833480e Tolerate gdbm
gdbm backend does not support the 'iterkeys' interface directly,
requiring instead to manually traverse.  Unfortunately, dbhash
does not implement the gdbm interface for this, so we have
to have two codepaths.
2016-05-02 10:44:12 -04:00
Jarrod Johnson 1bf124494e Add location attributes
Provide data that may be used to track system
locations.
2016-03-14 09:16:46 -04:00
Jarrod Johnson b6546f923b Fix security key initialization race condition
When initializing security key, a background thread may occur.  Sometimes,
the system would go to daemonize while that thread was still running, and
the whole system could exit.  Leading to incomplete write to globals as well
as leaving the daemon looking at the data copied over from pre-fork and
seeing the last state of that thread forever frozen.  Make sure the background
threads are fully done prior to exiting.
2016-03-08 11:34:25 -05:00
Jarrod Johnson a574c69535 Implement SSH host key management
Like self-signed TLS certificates, SSH host keys
warrant a similar security policy.  This implementations
follows the lead of the TLS management and uses the same
policy name and interpretation, just storing the value
in 'pubkeys.ssh' for the node rather than an extensible
set of entry points (for now).
2016-02-11 09:13:21 -05:00
Jarrod Johnson d0bd275cb3 Instrument sessions/ collection
This causes some additional features into core.  Namely
the ability to use a fixed module rather than a string
defined plugin.  This allows shellserver to implement the
'plugin' interface without living in 'plugins'.  'plugins'
implies modularity and potential eventual choice, but
this functionality is core.  It would make sense for the
'attributes' plugin to be changed to match this strategy.
2016-01-08 14:44:42 -05:00
Jarrod Johnson f6ce9f2c1e Add infrastructure for TLS certificate handling
When connecting to peer devices that use TLS, provide
a mechanism of tracking peer fingerprint and handling
missing or mismatch of fingerprint.
2015-11-25 11:39:48 -05:00
Jarrod Johnson 57a3c6d287 Correct behavior when a node is deleted
When attribute notification is requested, node deletion was not
sent to the watchers.  Address the limitation by notifying on all
attributes for a deleted node.
2015-10-05 09:48:27 -04:00
Jarrod Johnson b88a135602 Have the config.conf autoinit if needed
If something makes a call out of sequence, attempt
to auto-init.
2015-09-30 14:21:01 -04:00
Jarrod Johnson 45f62b5c05 Fix some issues around lock rework
Some scenarios were not accomodated correctly
as well as some references not set either.
2015-09-28 10:19:35 -04:00
Jarrod Johnson a0e6e0b5c6 Merge branch 'windowssupport' of git://github.com/jjohnson42/confluent into jjohnson42-windowssupport
Additionally, rework locking back to not require any extra files
2015-09-28 09:56:03 -04:00
chenglch dc436fda74 Add log rotation support
Add TimedAndSizeRotatingFileHandler which mixes together
the RotatingFileHandler and TimedRotatingFileHandler from
python logging module to process the log data.

Add logrollover event to track the renamed information, so
that console session can read the log data from current log
file and last renamed file.

Global configuration is used by the log handler. The format
of the log section in '/etc/confluent/service.cfg' is like:
[log]
when = m
backup_count = 3
max_bytes = 8192
utc = False
2015-09-23 23:36:46 -04:00
Jarrod Johnson 765c15ed5b Revert 'confluentd' change
After further investigation, the rename to confluentd was not
needed (after massaging pathex and using pip to install rather
than distutils).
2015-09-23 11:48:27 -04:00
Jarrod Johnson 29417d935c Phase 2 of Windows compatibility
More work to try to enable confluent to be frozen by
pyinstaller
2015-09-23 11:48:20 -04:00
Jarrod Johnson 57bacd69c1 Prevent broken creation of nodes/groups
nodes and groups with '' name are invalid.  Avoid
terrible things by erroring out on attempts to even
try at the deepest layer that can guard.
2015-08-11 16:41:13 -04:00
Jarrod Johnson d27df8fffc Provide specific error on locked credential store
When the credential store is locked, provide a specific message
and avoid triggering a trace log on a well characterized situation.
2015-07-08 16:47:58 -04:00
Jarrod Johnson 5a610f23ca Fix numerous issues with the key protection
The passphrase protection had a number of issues and this corrects them.
2015-06-11 17:43:48 -04:00
Jarrod Johnson a85ffa8f8b Add regex names and attribute match to noderange
Enhance noderange to implement:
attribute.name==value (also attribute.name=value) -- strict equality match
attribute.name=~value -- regular expression match
attribute.name!=value -- strict negative match
attribute.name!~value -- negative regular expression match
~nameexpression -- search by node name using regular expression

This also goes a step further by intelligently limiting searches when found to the right of @ or ,-.
2015-03-24 14:47:38 -04:00
Jarrod Johnson a4f3366a57 Fix numerous issues with noderange calls
get_node_attributes would make a fatal mistake when more
than one node queried due to loop side effect.  Also address
numerous issue with html-ification in the messaging module.
2015-03-16 09:46:03 -04:00
Jarrod Johnson 9f16375b14 Make noderange attribute pass through API better
On the plugin front, add a one-off description for the 'noderange' attribute.
For the other pieces, make noderange more like any 'extensible' string value
rather than making it special.
2015-03-12 15:59:25 -04:00
Jarrod Johnson 0515acd054 First part of hooking noderange into configuration
Make expansion of groups and rejection of unrecognized elements work.
Additionally, implement dynamic groups.  A group may have a 'noderange'
attribute.  In this case it is considered to have 'dynamic' members.  This
only has meaning in noderange expansion, not in deriving configuration data.
This does not yet add the search by attribute value capabilities and still
doesn't do the pagination or + operators.
2015-03-12 15:38:50 -04:00
Jarrod Johnon a366520670 Fix circular import problem
The change to allow configmanager to log traces
erroneously broke due to use of 'import .. as' in
circular imports.  Skip 'as' and the problem does not occur.
2015-01-21 14:22:53 -05:00
Jarrod Johnon de383630cf Gracefully trap config change callback errors
When a change callback handler raises an exception,
log it and move on to next handler.  This prevents
the handler from screwing up the caller or fellow
callback handlers.  Unfortunately this means that
no one notices the issue until checking the trace
log file, but it produces more peculiar behavior
as it stands without this change.
2015-01-19 17:05:29 -05: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 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 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 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 9b7d1d6c5b Change from 'passphrase' to 'password'. 2014-07-27 19:23:32 -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