summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixing #2149 - Facts are passed as part of the catalog requestLuke Kanies2009-04-228-40/+150
| | | | | | | | | | | | | | | This removes the requirement of shared fact caching on the servers, since the server responding to the catalog request will receive the facts as part of the request. The facts are serialized as a parameter to the request, rather than each being set as a separate request parameter. This hard-codes yaml as the serialization format for the facts, because I couldn't get marshal to work and it's just not as big a deal for such a small amount of data. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding better logging when cached indirection resources are usedLuke Kanies2009-04-221-1/+1
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2182 - SimpleGraph#walk is now iterativeLuke Kanies2009-04-221-4/+15
| | | | | | | | It was previously recursive, and was causing significant performance problems for large, wide graphs. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2181 - Using Sets instead of Arrays in SimpleGraphLuke Kanies2009-04-222-10/+11
| | | | | | This can cause a huge speedup for large numbers of edges. Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing code that was backported and is now not neededLuke Kanies2009-04-221-49/+0
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Finishing class renamesLuke Kanies2009-04-222-2/+59
| | | | | | | | | | I missed some of the Catalog mentions, and its constant changed. I've also added tests so this will get caught next time. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing tests that apparently only worked sometimesLuke Kanies2009-04-221-0/+2
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing the old rails tests.Luke Kanies2009-04-223-476/+0
| | | | | | | | | | | They don't work with the modified code, and we rely almost entirely on manual integration testing for this stuff anyway. We definitely need to add tests where we can, but these tests are totally useless. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing some rails tests that sometimes failedLuke Kanies2009-04-221-0/+1
| | | | | | At least, I think they're fixed; it's hard to test. Signed-off-by: Luke Kanies <luke@madstop.com>
* Added class_name tags to has_many relationshipssteve mcintosh2009-04-221-3/+3
|
* Adding time debugging for catalog storage to active_recordLuke Kanies2009-04-222-3/+7
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding defaults necessary for queueingLuke Kanies2009-04-221-2/+19
| | | | These are all of the defaults needed to configure queueing.
* Adding daemonization to puppetqdLuke Kanies2009-04-222-1/+17
| | | | | | | | This will need to be modified on the merge into 0.25, because the daemon module becomes a class, but that should be easy enough. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding Queueing READMELuke Kanies2009-04-221-0/+126
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Using a setting for configuring queueingLuke Kanies2009-04-225-24/+11
| | | | | | | Removing class methods and such, and switching to relying solely on a setting for the queue configuration. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding puppetqd executable.Luke Kanies2009-04-222-0/+160
| | | | | | | | This uses the backported Application class, with a couple of backported monkey-patches so the class works as expected but in 0.24. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding "rubygems" and "stomp" featuresLuke Kanies2009-04-222-0/+12
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing unnecessary parser variables when yaml-dumpingLuke Kanies2009-04-229-17/+40
| | | | | | | | | Also working around a YAML bug in Ruby. And fixing tests that were broken in a previous commit in this rebase but not caught earlier. Signed-off-by: Luke Kanies <luke@madstop.com>
* Add queue indirection as an option for catalog storage.Ethan Rowe2009-04-222-0/+25
| | | | | | This eventually will allow catalog storage ("storeconfigs") to be taken out of the critical request-handling path of puppetmasterd, such that: * Puppet::Node::Catalog can be serialized to a message queue via the indirector's "save" method * a separate process can use Puppet::Node::Catalog::Queue.subscribe to pick up these catalog objects as they come in and can save them to the database through the :active_record terminus
* Introduce abstract queue terminus within the indirection system.Ethan Rowe2009-04-222-0/+165
| | | | The queue abstract terminus allows the standard indirector behaviors to interact with a message queue broker, such that the indirector's "save" method writes the relevant model object out to a queue on the message broker. While the indirector's "find" method does not map to a message queue, the queue terminus class offers a "subscribe" method that allows for easy implementation of an event loop, receiving indirected objects saved to a queue as they come in.
* Introduce queue client "plugin" namespace and interface, with a Stomp client ↵Ethan Rowe2009-04-224-0/+289
| | | | | | | | | | | implementation. Puppet::Util::Queue provides queue client mix-in behaviors that enable easy queue client management for consumer classes. Some relevant behaviors include: * standard Puppet instance loader behavior for loading queue client modules on-demand based on the client module specified by symbolic name * singleton registry of known queue client types (based on symbol-to-class mappings from the instance loading behavior) * simple interface for working with an actual queue client instance Puppet::Util::Queue::Stomp wraps the Stomp::Client class to provide an initial queue client option supporting the Stomp messaging protocol. This defines the interface for all Puppet queue client plugins going forward.
* renaming a methodLuke Kanies2009-04-222-10/+10
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Adjusted parameter name and puppet tag classes to use new cache accumulator ↵Ethan Rowe2009-04-222-18/+7
| | | | | | behavior for storeconfigs. Removed per-class implementatiosn of accumulate_by_name from affected classes.
* Initial implementation of a "cache accumulator" behavior.Ethan Rowe2009-04-222-0/+134
| | | | | | | | | | | | | Mix Puppet::Util::CacheAccumulator into an ActiveRecord-like class, and then for any attribute in that class on which you are likely to call find_or_create_by_*, specify: accumulates :foo and instead of :find_or_create_by_foo use :accumulate_by_foo. The class will cache known results keyed by values of :foo. Do an initial bulk-lookup: class.accumulate_by_foo('foo1', 'foo2', 'foo3', 'foo4')
* Saving rails resources as I create them, which saves about 10%Luke Kanies2009-04-221-0/+2
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Changing rails value serialization to deal with booleansLuke Kanies2009-04-222-3/+69
| | | | | | | | The database was automatically converting booleans to strings, and value comparison was not working correctly as a result. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding equality to ResourceReferenceLuke Kanies2009-04-221-4/+2
| | | | | | | This is used by the Parser subclass when testing equality with db-backed references. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding some more fine-grained benchmarks to Rails supportLuke Kanies2009-04-222-22/+26
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding a Rails-specific benchmarking moduleLuke Kanies2009-04-224-39/+108
| | | | | | | This just slightly simplifies adding lots of time-debug stuff in Rails. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding simplistic param_name/puppet_tag cachingLuke Kanies2009-04-223-2/+22
| | | | | | | This has a drastic affect on performance - cuts about 25% off of the store time. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding more time debugging to Rails code, and refactoring a bitLuke Kanies2009-04-222-30/+10
| | | | | | | | There is an accumulation in the resource tags (hackish enough but soon to be replaced), and I've fixed a small bug in the tags merging that was causing lots of extra work (like 3x). Signed-off-by: Luke Kanies <luke@madstop.com>
* Refactoring the Rails integrationLuke Kanies2009-04-2210-274/+318
| | | | | | | | This moves all code from the Parser class into the ActiveRecord classes, and gets rid of 'ar_hash_merge'. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding a common Settings method for setting valuesLuke Kanies2009-04-222-37/+47
| | | | | | | | We were previously missing some hooks for settings set via the command-line, because different code paths were being used. Signed-off-by: Luke Kanies <luke@madstop.com>
* Switching to Indirected ActiveRecordLuke Kanies2009-04-225-62/+20
| | | | | | | | | | | This is mostly a configuration change, with some code getting removed. Also adding an extra require in Format; Puppet::Provider requires Puppet::Provider::Confiner, so the constant lookup is weird. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding ActiveRecord terminus classes for CatalogLuke Kanies2009-04-222-0/+153
| | | | | | | | This provides the last piece of ActiveRecord integration. It's pretty much just pass-through and *only* works if you're storing Parser resources to the db. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding ActiveRecord terminus classes for Node and Facts.Luke Kanies2009-04-228-1/+382
| | | | | | | | | This is most of the way to replacing standard StoreConfigs integration with the Indirector. We still need to convert the Catalog and then change all of the integraiton points (which is mostly the 'store' call in the Compiler). Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2180 - Catalogs yaml dump the resource table firstLuke Kanies2009-04-212-0/+18
| | | | | | | | This fixes a ruby bug (http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886) that otherwise results in yaml producing text it can't read back in. Signed-off-by: Luke Kanies <luke@madstop.com>
* Partially fixing #1765 - node searching supports strict hostname checkingLuke Kanies2009-04-223-1/+17
| | | | | | | | With the new 'strict_hostname_checking' option enabled, the compiler will only search for the literal certificate name in its list of nodes. Signed-off-by: Luke Kanies <luke@madstop.com>
* Removing unused Node codeLuke Kanies2009-04-221-11/+0
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #1885 - Relationships metaparams do not cascadeLuke Kanies2009-04-222-33/+10
| | | | | | | | | | | | | | | Because we now pass catalogs around, rather than a tree of resources, we no longer lose the metaparam information in definitions and classes. Thus, we no longer need to pass them down to contained resources. Ideally we'd remove cascading of all metaparams (which is ticket #1903) but 'schedule' and 'noop' are inherently recursive but not in a way that the graph support can currently easily solve, so that's going to have to wait for a later release. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #2142 - Convert pkgdmg provider to use plists instead of string scanning ↵Nigel Kersten2009-04-222-18/+98
| | | | | | | | | | | | | | for future proofing update pkgdmg patch with feedback from dev-list initial checking of pkgdmg package provider tests clean up fail conditions to raise Puppet::Error instead Finalized tests for pkgdmg provider remove duplicate facter/util/plist require
* Fixing #2171 - All certificate files are written with default permsLuke Kanies2009-04-224-9/+11
| | | | | | | | | | We were already writing all specific files with appropriate permissions; this change makes all of the files that are part of a group (which largely means files saved by puppetmasterd and puppetca) are also written using the correct permissions. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #2173 - fix running RSpec test by handBrice Figureau2009-04-221-1/+1
| | | | | | | | | | | | | Since the introduction of fixing RSpec to 1.2.2, we don't support anymore running RSpec directly ala: ruby spec/unit/type.rb or spec/unit/type.rb This patch fixes this. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #2174 - Fix RSpec rake targetsBrice Figureau2009-04-191-2/+2
| | | | | | | | | | | | | | | | | | | | The target generation was wrong, as it created some strange target for isolated test files. It now creates two types of targets: * directory targets, like: rake integration/network/server or rake unit/network Those run all tests in a specific directory * spec targets like: rake unit:indirector:catalog:yaml or rake unit:parser:ast:definition Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixing #2112 - Transactions handle conflicting generated resourcesLuke Kanies2009-04-1710-91/+54
| | | | | | | | | | This commit rips out all of the 'implicit resource' crap, replacing it with a simple system that just skips resources that the catalog says are in conflict. Removes a bunch of code, and fixes the bug to boot. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding another stacktrace for debuggingLuke Kanies2009-04-171-0/+1
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing puppet -e; it got broken in the move to ApplicationLuke Kanies2009-04-172-2/+9
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Partially fixing #2029 - failed caches doesn't throw an exceptionLuke Kanies2009-04-172-7/+32
| | | | | | | If the main terminus fails you get an exception, but not if a cache terminus fails. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2111 - SimpleGraph only creates valid adjacenciesLuke Kanies2009-04-122-1/+10
| | | | | | | | | | | The way this class was testing edges was causing them to appear adjacencies to appear magically, because it was only testing that a hash had a key, not that the value had any edges. This fixes the infinite recursion mentioned in #2111. Signed-off-by: Luke Kanies <luke@madstop.com>
* Switching to new() in the Puppet::Type.instances() class methodLuke Kanies2009-04-121-1/+1
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>