summaryrefslogtreecommitdiffstats
path: root/lib/puppet/transaction
Commit message (Collapse)AuthorAgeFilesLines
...
* Restore noop non-behavioursJesse Wolfe2010-02-171-2/+4
| | | | | | In the #2759 series, noop was altering the synced timestamp and calling the flush() method on nooped resources. This patch prevents those things from happening.
* Changing method profile for other event queueingLuke Kanies2010-02-171-6/+4
| | | | | | | | It wasn't clear in the first refactor if this was necessary, but doing the performance optimization made it clear it was. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Refactoring event queueing for performanceLuke Kanies2010-02-171-2/+14
| | | | | | | This does some normalization so we're not doing duplicate queries for large event collections. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Changing the method profile of EventManager#queue_eventLuke Kanies2010-02-171-17/+19
| | | | | | | It now takes multiple events instead of just one. This will help simplify a bunch of performance optimizations. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Moving Metric management to the reportsLuke Kanies2010-02-173-13/+80
| | | | | | | | | | | | This is one less bit that the transaction does. The resource status objects had nearly enough information to do everything, so I just added that last bit, and moved everything over. It's all much cleaner now. I had to change some existing, internal APIs, but mostly this should be hidden from outside users. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing #2759 - reports now have complete change infoLuke Kanies2010-02-172-12/+6
| | | | | | | | This includes every event generated in the transaction and a Resource::Status object for each resource managed, with per-resource information in it. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* ResourceHarness now doesn't check params with no 'should'Luke Kanies2010-02-171-4/+6
| | | | | | | | | | | I hadn't been skipping parameters that didn't have a 'should' value set. This almost always resulted in the right behaviour, because most properties correctly just short-circuit to being in sync if the 'should' value is nil, but this encodes it at the harness, which is where it should be. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Changing Transaction to use the new ResourceHarnessLuke Kanies2010-02-171-4/+25
| | | | | | | | | | | | This is a much messier commit than I would like, mostly because of how 'file' works. I had to fix multiple special cases, and I had to move others. The whole system appears to now work, though, and we're ready to change reports to receive resource status instances rather than events. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing log message when changes failLuke Kanies2010-02-171-3/+1
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Renaming some methods in Transaction::ChangeLuke Kanies2010-02-171-16/+1
| | | | | | | | | | | Renaming 'go' to 'apply', which is a much more reasonable name. Also removing the 'backward' and 'forward' methods, since they're not actually used anywhere. (Well, 'forward' was used, but it just called 'go'.) Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding Transaction::ResourceHarness classLuke Kanies2010-02-171-0/+62
| | | | | | | | | This is the interface class between Transactions and Resources. It's a relatively ugly class, but it will hopefully allow us to move most/all of the messy interface code into this one, relatively small class. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Solidifying the RAL/Event integration.Luke Kanies2010-02-171-1/+11
| | | | | | | | | | | | | | This has two changes: * Clarifies how we get the property and resource name (we pass the instance, the event converts to a string) * Logs at the resource's loglevel when there's no error These are related, because the event creator (resource) was passing in a string rather than an instance. Signed-off-by: Luke Kanies <luke@madstop.com>
* Refactoring the Change/Event/Property interfaceLuke Kanies2010-02-172-5/+29
| | | | | | | | This gives all logging responsibility to the event, which can now produce logs identical to those produced directly by the property. At this point, the events are entirely supersets of the logs.
* Correcting comments and making report timestamp internalLuke Kanies2010-02-171-0/+1
| | | | | | | | | We had some no-longer-correct comments in the Transaction class, which are now removed. This also moves the timestamp for reports into the report class, so it's created at initialization by the report, rather than by the transaction. Signed-off-by: Luke Kanies <luke@madstop.com>
* removing extraneous commentLuke Kanies2010-02-171-1/+0
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding Transaction events to Transaction reportsLuke Kanies2010-02-172-1/+12
| | | | | | | This means that every event generated during a transaction, with all of its metadata, will now be in the report. Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing a redundant method in ReportLuke Kanies2010-02-171-5/+0
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing unused code and adding a couple of testsLuke Kanies2010-02-171-9/+0
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Extracting event management into a separate classLuke Kanies2010-02-171-0/+90
| | | | | | | | | | Thus pulls all event-related code out of Transaction. The Transaction class currently creates a single instance of this class, so it's nowhere near a "real" event manager, but at least it has very clean integration points and will be easy to upgrade as needed. Signed-off-by: Luke Kanies <luke@madstop.com>
* Cleaning up Event creationLuke Kanies2010-02-172-34/+50
| | | | | | | | | | The Property class is now completely responsible for creating the event, and it adds all of the metadata that a log message would normally have. This provides a cleaner definition of responsibility, and will allow further cleaning up in later commits. Signed-off-by: Luke Kanies <luke@madstop.com>
* Random code cleanupLuke Kanies2010-02-171-29/+30
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Switching transactions to callback-based eventsLuke Kanies2010-02-171-16/+3
| | | | | | | | | | | | | Events are now queued as they are created, and the queues are managed through simple interfaces, rather than collecting events over time and responding to them inline. This drastically simplifies event management, and will make moving it to a separate system essentially trivial. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #1934 - detailed-exitcodes for puppetdDeepak Giridharagopal2009-11-191-1/+10
| | | | | | | | | | | | | | | | | | | | | | This option only works when --onetime is specified, as it doesn't make much sense to worry about exit codes in the context of a long-running daemon. This required a refactoring of the existing --detailed-exitcodes code, as "puppetd" wasn't directly creating a transaction object (like "puppet" does). Added Report::exit_status, which did what was previously hard-coded into the "puppet" executable. An Agent's "run" method now returns a value (the result of the individual client class' "run" method) The "puppetd" agent's "run" method now returns a transaction report, as that seems like the logical thing to return as the result of applying a catalog. Signed-off-by: Deepak Giridharagopal <deepak@brownman.org>
* Removed extra whitespace from end of linesIan Taylor2009-06-062-7/+7
|
* Fix #1483 - use REST to transmit reports over the wireBrice Figureau2008-12-061-1/+7
| | | | Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixing #1764 - a property's 'sync' method is never considered a no-op.Luke Kanies2008-11-211-5/+3
| | | | | | | | | | | | | | | | *This is a behaviour change.* If the property does not return an event name, then one is generated based on the property name. Previously, the 'sync' method could return nil and it would be considered a noop, but if you need a noop, then you need to modify your 'insync?' method to return 'true' in the noop cases. Also modifying all of the builtin types that didn't handle this explicitly or returned nil in 'sync'. There should be no behaviour change in any of them. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixed #1442 - replaced use of Facter for report titling with certnameJames Turnbull2008-08-161-7/+1
|
* Testing and simplifying the Transaction::Change#backward method.Luke Kanies2008-07-041-14/+5
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing the Transaction::Change#transaction accessor.Luke Kanies2008-07-041-13/+2
| | | | | | | As with Events, this was never used (beyond being assigned), so I've gotten rid of it. Signed-off-by: Luke Kanies <luke@madstop.com>
* Refactoring the Transaction::Event class.Luke Kanies2008-07-042-10/+5
| | | | | | | | | | | The class had a 'transaction' accessor that was assigned but never used, and it is simple enough that it needed direct arguments rather than named arguments. The rest of the code is changing the other classes that use Events. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding tests to the Transaction::Change class.Luke Kanies2008-07-041-35/+19
| | | | | | | There's a small amount of refactoring here, mostly removing code that appears to not be used at all. Signed-off-by: Luke Kanies <luke@madstop.com>
* Renaming Puppet::Event to Puppet::Transaction::EventLuke Kanies2008-07-031-0/+22
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Renaming the Puppet::PropertyChange class to Puppet::Transaction::Change.Luke Kanies2008-07-031-0/+134
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Intermediate commit.Luke Kanies2008-04-081-0/+4
| | | | | | | | | | | | | | | | | This commit adds a Request instance into the indirection, pushing it all the way to the terminus instances. It's a big commit because it requires modifying every terminus class. There are still some thorny design issues. In particular, who should be responsible for making the request object? I've tried having both the indirection class and the Indirector module creating it, and both have their issues. Also, the Catalog class previously allowed passing Node instances directly to the find method, which is now no longer possible because the Request class would treat the node as the instance being found. We need the request class to have two modes, one when it's passed an instance and one when it's passed a key.
* Reorganizing the file structure for indirection terminus types.Luke Kanies2007-10-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Previously, for example, the configuration terminus that was a subclass of 'code' would have been stored at lib/puppet/indirector/code/configuration and would have had to have been named 'configuration'. Now, the subclass can be named however the author prefers, and it must be stored at lib/puppet/indirector/configuration/<name>.rb, where <name> is the name you've chosen for the terminus type. The name only matters insomuch as it is used to load the file from disk and find the appropriate class when asked. The additional restriction is that the class constant for the terminus type must have its name as the last word, and the indirection must be the second to last word. Thus, in our example, we can choose any class constant that ends with Configuration::Code; given that there's only one Configuration class at this point, it makes the most sense to define the class as Puppet::Node::Configuration::Code. This is somewhat awkward, because of the class's location on disk, but the only other real option is to autogenerate a Puppet::Indirector::Configuration class constant, which is, I think, uglier.
* Translating the report handler to an indirected model.Luke Kanies2007-10-131-0/+5
| | | | | | | | | | | I've provided backward compatibility with the old handler. The only terminus type that currently exists for reports is the 'code' terminus, which is used to process reports in the style of the old handler. At some point, we should likely switch at least some of these report types (e.g., 'store') to terminus types.
* Removing the Id tags from all of the filesLuke Kanies2007-10-031-1/+0
|
* Adding a --summarize option, to get a transaction summaryluke2007-05-041-0/+26
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2459 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing patch by Dennis Jacobfeuerborn to only use the domain name if it ↵luke2007-02-281-1/+7
| | | | | | is set. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2246 980ebf18-57e1-0310-9a29-db15c13687c0
* Moving some of the stand-alone classes into the util/ subdirectory, to clean ↵luke2007-02-071-1/+1
| | | | | | up the top-level namespace a bit. This is a lot of file modifications, but most of them just change class names and file paths. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2178 980ebf18-57e1-0310-9a29-db15c13687c0
* splitting the tagmail report into multiple methods and adding test codeluke2007-01-301-0/+5
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2122 980ebf18-57e1-0310-9a29-db15c13687c0
* adding host information to reports and tagmail reportluke2006-07-041-1/+3
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1361 980ebf18-57e1-0310-9a29-db15c13687c0
* More report and metrics manipulations. This should be the last of it.luke2006-07-011-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1351 980ebf18-57e1-0310-9a29-db15c13687c0
* oops; adding transaction report classluke2006-06-301-0/+40
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1348 980ebf18-57e1-0310-9a29-db15c13687c0