James Shubin 0b1a4a0f30 pgraph, resources: Quiesce when pausing or exiting the resource
This prevents a nasty race that can happen in a graph with more than one
resource. If a resource has someone that it can BackPoke, and then
suppose an event comes in. It runs the obj.Event() method (from inside
its Watch loop) and then *before* the resulting Process method can run
it receives a pause event and pauses. Then the parent resource pauses as
well. Finally (it's a race) the Process gets around to running, and
decides it needs to BackPoke. At this point since the parent resource is
paused, it receives the BackPoke at a time when it can't handle
receiving one, and it panics!

As a result, we now track the number of running Process possibilities
via a WaitGroup which gets incremented from the obj.Event() and we don't
finish our pause or exit operations until it has quiesced and our
WaitGroup lets us know via Wait(). Lastly in order to prevent repeated
replays, we detect when we're quiescing and suspend replaying until post
pause. We don't need to save the replay (playback variable) explicitly
because its state remains during pause, and on exit it would get
re-checked anyways.
2017-03-09 02:50:55 -05:00
2016-09-18 05:47:33 -04:00
2016-05-21 12:57:28 -04:00
2017-03-03 21:04:29 -08:00
2017-02-16 01:34:32 -05:00
2017-02-12 23:02:12 +01:00
2016-05-21 11:08:14 +02:00
2017-02-12 23:02:12 +01:00
2017-03-07 14:17:53 -08:00
2017-02-21 07:07:41 +01:00
2015-09-25 01:16:03 -04:00
2017-02-16 01:34:32 -05:00
2017-02-16 01:34:32 -05:00
2017-02-16 01:34:32 -05:00
2016-01-04 21:00:13 -05:00
2015-09-25 01:16:03 -04:00
2015-09-25 01:16:03 -04:00
2017-02-10 11:55:58 -05:00
2015-10-02 11:05:19 -04:00
2017-02-21 18:40:31 -05:00

mgmt: next generation config management!

mgmt!

Go Report Card Build Status GoDoc IRC Jenkins

Community:

Come join us in the mgmt community!

Medium Link
IRC #mgmtconfig on Freenode
Twitter @mgmtconfig & #mgmtconfig
Mailing list mgmtconfig-list@redhat.com

Status:

Mgmt is a fairly new project. We're working towards being minimally useful for production environments. We aren't feature complete for what we'd consider a 1.x release yet. With your help you'll be able to influence our design and get us there sooner!

Documentation:

Please read, enjoy and help improve our documentation!

Documentation Additional Notes
general documentation for everyone
quick start guide for mgmt developers
resource guide for mgmt developers
godoc API reference for mgmt developers
prometheus guide for everyone
puppet guide for puppet sysadmins

Questions:

Please ask in the community! If you have a well phrased question that might benefit others, consider asking it by sending a patch to the documentation FAQ section. I'll merge your question, and a patch with the answer!

Roadmap:

Please see: TODO.md for a list of upcoming work and TODO items. Please get involved by working on one of these items or by suggesting something else! Feel free to grab one of the straightforward #mgmtlove issues if you're a first time contributor to the project or if you're unsure about what to hack on!

Bugs:

Please set the DEBUG constant in main.go to true, and post the logs when you report the issue. Bonus points if you provide a shell or OMV reproducible test case. Feel free to read my article on debugging golang programs.

Patches:

We'd love to have your patches! Please send them by email, or as a pull request.

On the web:

Author Format Subject
James Shubin blog Next generation configuration mgmt
James Shubin video Introductory recording from DevConf.cz 2016
James Shubin video Introductory recording from CfgMgmtCamp.eu 2016
Julian Dunn video On mgmt at CfgMgmtCamp.eu 2016
Walter Heck slides On mgmt at CfgMgmtCamp.eu 2016
Marco Marongiu blog On mgmt
Felix Frank blog From Catalog To Mgmt (on puppet to mgmt "transpiling")
James Shubin blog Automatic edges in mgmt (...and the pkg resource)
James Shubin blog Automatic grouping in mgmt
John Arundel tweet “Puppets days are numbered.”
Felix Frank blog Puppet, Meet Mgmt (on puppet to mgmt internals)
Felix Frank blog Puppet Powered Mgmt (puppet to mgmt tl;dr)
James Shubin blog Automatic clustering in mgmt
James Shubin video Recording from CoreOSFest 2016
James Shubin video Recording from DebConf16 (Slides)
Felix Frank blog Edging It All In (puppet and mgmt edges)
Felix Frank blog Translating All The Things (puppet to mgmt translation warnings)
James Shubin video Recording from systemd.conf 2016
James Shubin blog Remote execution in mgmt
James Shubin video Recording from High Load Strategy 2016
James Shubin video Recording from NLUUG 2016
James Shubin blog Send/Recv in mgmt
James Shubin blog Metaparameters in mgmt

Happy hacking!

Description
No description provided
Readme 12 MiB
Languages
Go 95%
Shell 2.3%
Yacc 0.9%
Makefile 0.8%
JavaScript 0.4%
Other 0.6%