Directord

Latest version: v0.12.0

Safety actively analyzes 623518 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.12.0

Hot on the heals of 0.11.3 a new major has dropped! The default driver is now [gRPC](https://directord.com/drivers.html#grpc). While there's nothing wrong with the ZMQ implementation and we'll be supporting it for the foreseeable future, gRPC allows Directord to be used in FIPS certified environments; this is not possible with ZMQ due to it's use of `libsodium`. The 0.12.0 release provides the means to run in secure clouds by default, while maintaining the performance and speed we've grown to expect.

![giphy](https://user-images.githubusercontent.com/2066292/148427923-4af64a5b-063d-45f9-ad68-24a8ba523506.gif)

What's Changed
* Rev 0120 by cloudnull in https://github.com/directord/directord/pull/378
* Add exclude option to DNF component by sshnaidm in https://github.com/directord/directord/pull/379
* Spec file and systemd packaging updates by slagle in https://github.com/directord/directord/pull/381
* Allow drivers to run in isolation by cloudnull in https://github.com/directord/directord/pull/380
* allow the driver to run in dummy mode by cloudnull in https://github.com/directord/directord/pull/382


**Full Changelog**: https://github.com/directord/directord/compare/0.11.3...0.12.0

0.11.3

A new era for Directord: new capabilities, new components, new functions, new classes; just a better tool.

![potential](https://user-images.githubusercontent.com/2066292/148108417-e9900b6c-ebb0-413f-8c5e-5fd9f7901719.gif)

The changes included in this release of Directord are staggering. It really should be a major version however, we're keeping that for a little bit later, largely because I forgot to rev things. Internally just about everything has been improved. From a more robust process/thread model and better isolation, to a whole new driver capability. All of these changes come without cost to performance and stability, in-fact we've improved performance by about 5% over the last release.

This release also comes with some assurances to our claimed scale expectations. While we documented our systems and processes on https://directord.com and covered the internals, setup, and expected performance on [YouTube](https://www.youtube.com/playlist?list=PLSXV3_KnYno8GDtg-RQi3xVnI2ch3TWwq), we've now scale tested Directord at 150 nodes and the results were incredible. The [Basic](https://github.com/directord/task-core/tree/main/examples/directord/basic) Task-Core POC applied to 150 nodes took ~11 minutes to complete while using both the [ZMQ](https://directord.com/drivers.html#zmq) and [GRPC](https://directord.com/drivers.html#grpc) drivers. The Messaging driver accomplished the same task in 18 minutes. In contrast, our legacy deployment tooling took 45 minutes to do the same work.

So with all that said, checkout the release notes; there's SO much going on. The team is growing, we're adding contributors, and the project is making some incredible moves.

What's Changed
* Add exposed message ID to heartbeats by cloudnull in https://github.com/directord/directord/pull/262
* Prepare dev-setup for CentOS 9 by sshnaidm in https://github.com/directord/directord/pull/263
* cleanup default dev catalog by cloudnull in https://github.com/directord/directord/pull/264
* Add option to cache STDERR to RUN component by sshnaidm in https://github.com/directord/directord/pull/265
* Add hostname to Containerfile for tests as it's in Dockerfile by sshnaidm in https://github.com/directord/directord/pull/266
* Add identity override to config by mwhahaha in https://github.com/directord/directord/pull/268
* Update docs for RUN component by sshnaidm in https://github.com/directord/directord/pull/267
* Add option to name orchestrations and jobs by cloudnull in https://github.com/directord/directord/pull/270
* Allow to set debug from environment variable by sshnaidm in https://github.com/directord/directord/pull/272
* Use --best in DNF component for install or update by sshnaidm in https://github.com/directord/directord/pull/273
* Fix issues in components by sshnaidm in https://github.com/directord/directord/pull/274
* Add option to allow orchestrations to override targets by cloudnull in https://github.com/directord/directord/pull/271
* Fix messaging bootstrap for multiple nodes by slagle in https://github.com/directord/directord/pull/259
* Migrate to directord organization by kajinamit in https://github.com/directord/directord/pull/277
* Remove unnecessary characters by kajinamit in https://github.com/directord/directord/pull/276
* Change --server-address to --zmq-server-address for container and docs by sshnaidm in https://github.com/directord/directord/pull/278
* Remove the diskcache dep by cloudnull in https://github.com/directord/directord/pull/279
* Add option to allow operators to set the machine id by cloudnull in https://github.com/directord/directord/pull/280
* Add several small changes to tune scale testing by cloudnull in https://github.com/directord/directord/pull/281
* remove extra print by cloudnull in https://github.com/directord/directord/pull/282
* Add CONTAINER_IMAGE component to work with podman images by sshnaidm in https://github.com/directord/directord/pull/275
* Fix TLS verify for all podman code by sshnaidm in https://github.com/directord/directord/pull/283
* Run full functional tests for CONTAINER_IMAGE component by sshnaidm in https://github.com/directord/directord/pull/284
* Make stdout and stderr args available for any component by sshnaidm in https://github.com/directord/directord/pull/285
* Connect to client to get hostname by slagle in https://github.com/directord/directord/pull/287
* ensure cacheargs is used in all components by cloudnull in https://github.com/directord/directord/pull/286
* fix node pruning by cloudnull in https://github.com/directord/directord/pull/288
* Job interaction improvements by cloudnull in https://github.com/directord/directord/pull/289
* updating timings by cloudnull in https://github.com/directord/directord/pull/290
* add poller to client job results by cloudnull in https://github.com/directord/directord/pull/291
* Update disc store to be POSIX compliant by cloudnull in https://github.com/directord/directord/pull/292
* add functional test for posix datastore by cloudnull in https://github.com/directord/directord/pull/294
* add bootstrap to the Directord library implementation by cloudnull in https://github.com/directord/directord/pull/293
* additional updates for POSIX cache types by cloudnull in https://github.com/directord/directord/pull/295
* Updated docs by cloudnull in https://github.com/directord/directord/pull/296
* fix bootstrap server targets by cloudnull in https://github.com/directord/directord/pull/298
* Add orch file for provisioning clients only by sshnaidm in https://github.com/directord/directord/pull/297
* Fix issue when no jobs for target by sshnaidm in https://github.com/directord/directord/pull/299
* update file store by cloudnull in https://github.com/directord/directord/pull/300
* add exception handling for bootstrap by cloudnull in https://github.com/directord/directord/pull/301
* add more exception handling by cloudnull in https://github.com/directord/directord/pull/302
* Re-work query to use coordination instead of client side callbacks by cloudnull in https://github.com/directord/directord/pull/303
* Rev0113 by cloudnull in https://github.com/directord/directord/pull/304
* add additional error handling for query call backs by cloudnull in https://github.com/directord/directord/pull/305
* add prod-bootstrap and blueprint to query wait by cloudnull in https://github.com/directord/directord/pull/306
* update readme by cloudnull in https://github.com/directord/directord/pull/307
* add cache read lock by cloudnull in https://github.com/directord/directord/pull/308
* Fix wait option handling by mwhahaha in https://github.com/directord/directord/pull/309
* Fix status code check by mwhahaha in https://github.com/directord/directord/pull/310
* Increase default wait retries by mwhahaha in https://github.com/directord/directord/pull/311
* add retry decorator to components by cloudnull in https://github.com/directord/directord/pull/312
* update machine checking and messaging workers by cloudnull in https://github.com/directord/directord/pull/313
* gRPC driver by mwhahaha in https://github.com/directord/directord/pull/314
* Fixes for grpcd backend by mwhahaha in https://github.com/directord/directord/pull/317
* Add request id to grpc requests and responses by mwhahaha in https://github.com/directord/directord/pull/318
* use threading instead of multiprocessing by cloudnull in https://github.com/directord/directord/pull/316
* add grpc gate test by cloudnull in https://github.com/directord/directord/pull/315
* Add coroutine timeout decorator by cloudnull in https://github.com/directord/directord/pull/319
* bootstrap requires the use of multiprocessing by cloudnull in https://github.com/directord/directord/pull/320
* ensure that drivers use process based locks by cloudnull in https://github.com/directord/directord/pull/321
* Ensure components have unique locks by cloudnull in https://github.com/directord/directord/pull/322
* remove coroutine timeout by cloudnull in https://github.com/directord/directord/pull/323
* Reduce the debug logging for grpcd by mwhahaha in https://github.com/directord/directord/pull/324
* Ensure events are driver specific by cloudnull in https://github.com/directord/directord/pull/325
* Grpc increase wait and enable compression by mwhahaha in https://github.com/directord/directord/pull/326
* reimplement timeout coroutine by cloudnull in https://github.com/directord/directord/pull/327
* Fix disable compression default by mwhahaha in https://github.com/directord/directord/pull/328
* Remove messaging drivers entrypoint by slagle in https://github.com/directord/directord/pull/329
* Wire up ssl support for grpc by mwhahaha in https://github.com/directord/directord/pull/330
* Create thread exception class and terminate events by cloudnull in https://github.com/directord/directord/pull/331
* Increase file limits for the server by mwhahaha in https://github.com/directord/directord/pull/333
* Only create a single client instance by mwhahaha in https://github.com/directord/directord/pull/334
* Add durable queue type option for clients by cloudnull in https://github.com/directord/directord/pull/335
* Add exception handling to client execution by cloudnull in https://github.com/directord/directord/pull/336
* Add C++ compiler for grpcio deps build by sshnaidm in https://github.com/directord/directord/pull/340
* Skip client close on job close by mwhahaha in https://github.com/directord/directord/pull/339
* Revert "Add durable queue type option for clients" by cloudnull in https://github.com/directord/directord/pull/341
* Add grpc scripts to packaging by mwhahaha in https://github.com/directord/directord/pull/342
* Packaging updates by slagle in https://github.com/directord/directord/pull/344
* Cover grpc driver with tests by mwhahaha in https://github.com/directord/directord/pull/345
* Fix query information part by sshnaidm in https://github.com/directord/directord/pull/346
* Add facter component for collections of facts on the node by sshnaidm in https://github.com/directord/directord/pull/332
* Add --reloaded to service component by mwhahaha in https://github.com/directord/directord/pull/349
* fix queue purge by cloudnull in https://github.com/directord/directord/pull/350
* use pre-fork signals to allow exit by cloudnull in https://github.com/directord/directord/pull/351
* Cleanup tests to remove the crazy output by cloudnull in https://github.com/directord/directord/pull/353
* Packaging updates by slagle in https://github.com/directord/directord/pull/352
* add trap for driver load errors by cloudnull in https://github.com/directord/directord/pull/355
* move key generation to the zmq driver by cloudnull in https://github.com/directord/directord/pull/356
* Add support for multiple words for echo by sshnaidm in https://github.com/directord/directord/pull/357
* Replace the cache class with iodict by cloudnull in https://github.com/directord/directord/pull/347
* DurableQueue by cloudnull in https://github.com/directord/directord/pull/348
* move flushqueue to library by cloudnull in https://github.com/directord/directord/pull/358
* Move the worker items into a object by cloudnull in https://github.com/directord/directord/pull/359
* Add server side logic to mark nodes active by cloudnull in https://github.com/directord/directord/pull/360
* Tuneup by cloudnull in https://github.com/directord/directord/pull/361
* reintegrate iodict by cloudnull in https://github.com/directord/directord/pull/362
* move signals to the process interface by cloudnull in https://github.com/directord/directord/pull/364
* Drop server side query timeout by mwhahaha in https://github.com/directord/directord/pull/366
* remove extra verbose log lines from components by cloudnull in https://github.com/directord/directord/pull/367
* Use individual args for bootstrap interface by slagle in https://github.com/directord/directord/pull/368
* Use sudo in rpm and config bootstrap by slagle in https://github.com/directord/directord/pull/369
* Add bootstraps to manage/unmanage the cluster by slagle in https://github.com/directord/directord/pull/370
* Update drivers doc for grpcd by mwhahaha in https://github.com/directord/directord/pull/371
* Minor updates to grpc ssl docs by mwhahaha in https://github.com/directord/directord/pull/372
* Fix help message for service by sshnaidm in https://github.com/directord/directord/pull/374
* Add mask/unmask option to service component by sshnaidm in https://github.com/directord/directord/pull/375
* add updated grpcd diagram and driver status info by cloudnull in https://github.com/directord/directord/pull/376

New Contributors
* kajinamit made their first contribution in https://github.com/directord/directord/pull/277

**Full Changelog**: https://github.com/directord/directord/compare/0.11.0...0.11.3

0.11.0

Release 11, feature packed, cleaner, a new driver, and is lighter than ever before.

![dancing](https://user-images.githubusercontent.com/2066292/137825749-90306c9a-5f50-4601-9ed2-01d292a090b2.gif)

Highlights

This release introduces the new oslo-messaging driver, allowing Directord to operate in a traditional AMQP environment. This change is crucial to our success as we want to empower operators to leverage Directord in their existing environments, without needing to augment or change platforms. If operators have a messaging backend supported by [OSLO-Messaging](https://docs.openstack.org/oslo.messaging/latest/), Directord can make use of it today.

This release also cleans up a lot of the Directord legacy encoding. Before encoding was done throughout the code-base, now encoding is all done within the driver. This means the functional code within Directord is far more simple, better documented, and easier to understand.

TripleO PTG

Directord is being discuessed as part of the TripleO Yoga PTG. Checkout the [PTG notes](https://etherpad.opendev.org/p/tripleo-directord-task-core) and sessions for more.

Slides from the Directord Overview PTG session can be seen within the PDF attached to this release [here](https://github.com/Directord/directord/releases/download/0.11.0/Directord.PTG.Overview.pdf).

----

e7d8015 Add generic wait component
8d775ab Fix typo in README
ae023be Dyn drivers 2
cd59fcd add dynamic driver parsing to the help output
e0838d1 Update the dynamic driver parser
95f43ae Add SSL support for messaging driver
4855b87 add easy local doc generation and browsing
a24701f add job definitions to the bootstrap process
1d7fde5 update data-store options and documentation
5cd1f33 Update push.yml
99cb2fe Add credit loop to pollers
402ea40 Add message driver analysis
06a1d93 Create CNAME
0c12d8d Delete CNAME
9e3a069 Change the job processor to prioritize messages
cd7a267 add link
73df12d reformat
1ddda11 more doc updates
4abe45e add setup section
737bece add updated overview
5318e70 Driver docs
2354af5 Added driver-messaging.drawio.png
9ea6934 add bootstrap catalog for the messaging driver
5c8f8d7 fix bug 235
3b6c47e add missing abstract methods from messaging
ce71c9e add flake8 docstring tests
b144793 Messaging thread cleanup and job support
4a23912 Fix messaging heartbeat
8016e6d UX imporovements
09d696a updated diagram and docs
acf6985 Added highlevel-messaging.png
a9b68be Add driver_run in it's own process
6c3e2af add hostname fencing
9910714 add starting documentation for messaging and tweak the driver
3f3d053 more updates to support our simplified encoding process
49a886c Make CLI args override config file
e529792 Driver api
45ed933 Degrated -> Degraded
d8edb42 Update the messaging abstractions

0.10.1

190372f Add support for oslo-messaging as a driver

What's Changed
* Add support for oslo-messaging as a driver by slagle in https://github.com/Directord/directord/pull/213
* rev 0.10.1 by cloudnull in https://github.com/Directord/directord/pull/220
* Update the messaging abstractions by cloudnull in https://github.com/Directord/directord/pull/221
* Degrated -> Degraded by slagle in https://github.com/Directord/directord/pull/224
* Driver api by cloudnull in https://github.com/Directord/directord/pull/222
* Make CLI args override config file by slagle in https://github.com/Directord/directord/pull/223
* more updates to support our simplified encoding process by cloudnull in https://github.com/Directord/directord/pull/225
* add starting documentation for messaging and tweak the driver by cloudnull in https://github.com/Directord/directord/pull/226
* add hostname fencing by cloudnull in https://github.com/Directord/directord/pull/228
* Add driver_run in it's own process by slagle in https://github.com/Directord/directord/pull/227
* updated diagram and docs by cloudnull in https://github.com/Directord/directord/pull/229
* UX imporovements by cloudnull in https://github.com/Directord/directord/pull/230
* Fix messaging heartbeat by slagle in https://github.com/Directord/directord/pull/231
* Messaging thread cleanup and job support by slagle in https://github.com/Directord/directord/pull/232
* D102 updates by cloudnull in https://github.com/Directord/directord/pull/233
* add missing abstract methods from messaging by cloudnull in https://github.com/Directord/directord/pull/234
* fix bug 235 by cloudnull in https://github.com/Directord/directord/pull/236
* add bootstrap catalog for the messaging driver by cloudnull in https://github.com/Directord/directord/pull/237
* Driver docs by cloudnull in https://github.com/Directord/directord/pull/238
* analysis documentation updates by cloudnull in https://github.com/Directord/directord/pull/239
* add setup section by cloudnull in https://github.com/Directord/directord/pull/240
* more doc updates by cloudnull in https://github.com/Directord/directord/pull/241
* reformat by cloudnull in https://github.com/Directord/directord/pull/242
* add link by cloudnull in https://github.com/Directord/directord/pull/243
* Change the job processor to prioritize messages by cloudnull in https://github.com/Directord/directord/pull/244
* Add message driver analysis by cloudnull in https://github.com/Directord/directord/pull/245
* Add credit loop to pollers by cloudnull in https://github.com/Directord/directord/pull/246
* update data-store options and documentation by cloudnull in https://github.com/Directord/directord/pull/248
* add job definitions to the bootstrap process by cloudnull in https://github.com/Directord/directord/pull/249
* add easy local doc generation and browsing by cloudnull in https://github.com/Directord/directord/pull/250
* Add SSL support for messaging driver by slagle in https://github.com/Directord/directord/pull/247
* Update the dynamic driver parser by cloudnull in https://github.com/Directord/directord/pull/251
* add dynamic driver parsing to the help output by cloudnull in https://github.com/Directord/directord/pull/252
* Dyn drivers 2 by cloudnull in https://github.com/Directord/directord/pull/253
* Fix typo in README by slagle in https://github.com/Directord/directord/pull/254
* Add generic wait component by mwhahaha in https://github.com/Directord/directord/pull/255


**Full Changelog**: https://github.com/Directord/directord/compare/0.10.0...0.11.0

0.10.0

The 0.10.0 release is the most significant Directord release since starting the project. Over this last development cycle, we've focused on use-cases and feedback from operators who are deploying complex applications. We've had an ongoing goal of pseudo-real-time execution, which scales horizontally. While more improvements are to be made in future releases, Directord is now close to the original goal of pseudo-real-time performance in both practice and test.

Highlights From This Development Cycle

* Directord is now faster than ever, approaching pseudo-real-time execution with a minimal memory footprint.
* The client and server codebase has been massively simplified.
* New in this release is the ability to do client-side coordination, allowing operators to craft complex components and build out job assurances that have intra-client dependencies.
* An example of coordination can be seen in the `JOB_WAIT` component.
* New data integrity checks have been added for file transfer operations.
* The ADD and COPY component has been re-written.
* No longer does Directord require the backend socket remain open while the client is running.
* The client will connect back to the server over the backend socket only when needed.
* The heartbeat socket and thread have been removed. While Directord still uses heartbeats, the messages travel over the one job socket.
* This clean-up removed two PIDs and vast chunks of code.
* The client and server will now fork when needing to ingest or run jobs.
* This change better ensures applications efficiency and minimizes resource consumption. While resource consumption was already low, it is now even lower.
* The client will now use dynamic command-based locking, which only resides in memory for as long as there are jobs to process.
* Before, Directord employed a global lock when required, now components make use of their named lock object, which further improves the speed of component execution. The speed improvements from the component locking changes are even more pronounced when leveraging `async` orchestrations.
* The management function now provides an analysis tool, which will allow operators to analyze jobs and parents.
* This is useful for determining node outliers, runtime issues, and other fun facts.
* The command line `orchestrate` and `exec` functions now have a `--stream` option which will stream STDOUT/STDERR/INFO as it becomes available during execution.

While these highlights are excellent, there's a lot improved in Directord that was not mentioned, and more yet to come.

![ezZSCl](https://user-images.githubusercontent.com/2066292/134562517-bcb5e2c1-7628-4b57-897a-9389c2c5f498.gif)

2e38bc9 add analysis function
1ff14ab remove heartbeat methods that no longer serve any purpose
26896ad cleanup management function
f8ce379 ensure efficient cleanup of dynamic locks
abb4ac5 Add {posargs} to tox coverage command
832acac add dynamic command based locking
386fce5 rollback dynamic locking
0466570 move callback processing to ensure multi-return for specific nodes is right
1730909 add debug to lock creation
6e87a2f ensure that the processing state is set correctly
5fbbfc9 allow commands to run with the global lock when force-lock is true
4d469ce add command type locking
ac9cabe allow async workers to run with the current cpu count
d763fc3 remove additional counts in favor of timing
fe18346 use multiple returns when running a callback
41dc5f1 use timing instead of loop counts
1bd5f17 move return notice to the end of the execution
5d10054 slow down the query_wait log warning
409cb64 fix minor issues with documentation
1cf2df4 Improve job wait and target coordination
85f1c16 when waiting on callbacks, just block on the last one
fcb7a3e use 1 second delays where possible
98b3cd8 update JOB_WAIT to use new relay
8ca362b add coordination relay
aa83856 add identity list to QUERY callback
3fff576 re-update the queue processor
fcb9610 finish moving transfer to backend
698e270 add job-wait coordination
a05074b Revert "Improve client processor"
89651f3 Fix coordination issues
009f7c4 move the transfer bind to a backend bind
8ba9804 Remove the use of the server side heartbeat socket
62bb591 add delay as an Event property
3f5da26 Improve client processor
a995e78 remove the healthcheck thread
8606f5b Add identity checks for query wait
ae6e3cf Add functional testing and improve process management
043ff6b Enhance our usage of dynamic threads and high watermark monitoring
4a37d12 Save a reference to zmq Driver, and restore it for each unit test
5a420e3 add bypass manager set
58cc064 Stream and callback improvements
202cad0 Server return and async tracing
67132a4 add timestamps to parent pruning

0.9.4

Further improves efficiency across both the client and server, and resolves a couple regressions caused by the new thread model.

![unnamed](https://user-images.githubusercontent.com/2066292/133187630-5e55e922-2e5d-464a-8728-90269532daf2.gif)

99afa2e Correct target handling when running through the library
b2d4df9 Srv q client
2fd6a1e Increase client efficiency
4995647 add queue processing to the server

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.