summaryrefslogtreecommitdiffstats
path: root/lib/puppet/transaction.rb
Commit message (Collapse)AuthorAgeFilesLines
* Some more graph optimizations; I think I am now close enough that I am ↵luke2006-12-171-31/+66
| | | | | | basically just going to spend a bit more time making sure the modeling is right in the transactions, and then walk away for now. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1947 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the next round of bugs, mostly little things but I had to modify ↵luke2006-12-131-1/+11
| | | | | | transactions so they are willing to delete implicit resources even if they have dependencies, else we would often not be able to purge files at all. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1917 980ebf18-57e1-0310-9a29-db15c13687c0
* Almost all tests now pass. I have basically reached the point where I was ↵luke2006-12-111-5/+6
| | | | | | before I integrated graphing, except that all of the relationship handling is now inside the transaction, and any kind of recursion (including file) is *tons* easier to model and manage. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1905 980ebf18-57e1-0310-9a29-db15c13687c0
* Most tests now pass in the whole system, but there are still about 8 cases ↵luke2006-12-111-0/+5
| | | | | | that do not work. I am working on those now. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1904 980ebf18-57e1-0310-9a29-db15c13687c0
* Most of the graph handling is now done, and all of the recursive types ↵luke2006-12-101-42/+67
| | | | | | (basically just file, tidy, and component) now correctly use the generation mechanisms in the transactions, instead of sticking them in their @children array. Now I just need to go through the rest of the tests and make sure everything passes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1901 980ebf18-57e1-0310-9a29-db15c13687c0
* Another intermediate commit. Most of the graphing work itself is now done, ↵luke2006-12-091-71/+153
| | | | | | but I am in the middle of converting files to use the graphs and at the same time am writing some actually decent tests for the file recursion stuff. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1899 980ebf18-57e1-0310-9a29-db15c13687c0
* Most of the graphing work is now done. I have also added the generator work ↵luke2006-12-011-66/+113
| | | | | | in transactions, but I need to migrate files to using it. Until that migration is done, files will not work correctly for many cases. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1896 980ebf18-57e1-0310-9a29-db15c13687c0
* Intermediate commit -- I am ready to start pushing the graph stuff into the ↵luke2006-11-261-2/+6
| | | | | | types and transactions, which will break everything for a little while. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1894 980ebf18-57e1-0310-9a29-db15c13687c0
* An intermediate commit. All of the classes that use parsedfile are ↵luke2006-11-111-0/+1
| | | | | | | | assuredly broken, since I have basically completely rewritten it. These classes have been a thorn in my side almost since I created them, yet they have been significantly less functional that I wanted. So, I decided to do the rewrite I have been putting off, just to spend all of the maintenance time now so I do not spend 3 days on them every release. Tomorrow I will be porting all of the existing types (including cron, hopefully) over to this new base. This will also make it possible to add other types of providers to these classes; we should be able to reuse the netinfo provider for os x types, and we should be able to create a cron provider that writes to /etc/crontab instead of user crontabs. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1856 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding prefetch of providers to transactions. Nothing is using it yet. I ↵luke2006-10-181-0/+18
| | | | | | wrote it for cron jobs, but it is too much work to fix this for cron jobs right now. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1806 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the rrdgraph report so that it creates a separate rrd directory for ↵luke2006-10-051-9/+9
| | | | | | each host git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1735 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding flush functionality as requested by Scott Seagoluke2006-09-271-0/+5
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1697 980ebf18-57e1-0310-9a29-db15c13687c0
* As requested by Christian Warden, triggering an object now results inluke2006-09-221-7/+25
| | | | | | | | an event, which can result in further triggers. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1660 980ebf18-57e1-0310-9a29-db15c13687c0
* Using the "trace" configuration parameter to determine whether a stack trace ↵luke2006-09-151-1/+1
| | | | | | should be printed, rather than just using "debug". I added the param a little while ago and was using it internally in Puppet::DevError, but I just now went through the whole configuration and switched to using it. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1613 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding an "ignoretags" attribute to transaction, and setting it for ↵luke2006-09-051-2/+2
| | | | | | downloading plugins or facts, and for creating config directories git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1562 980ebf18-57e1-0310-9a29-db15c13687c0
* Removing all of the changes I made towards refactoring in the last couple of ↵luke2006-09-051-16/+1
| | | | | | days. They have all been moved into the sync-retrieve-refactor branch. This branch will soon become 0.19.0, and will not include that refactoring. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1555 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing functional mount support. All that's left in this chunk of work ↵luke2006-09-051-1/+1
| | | | | | is cron. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1552 980ebf18-57e1-0310-9a29-db15c13687c0
* Beginning the process of moving parsedtypes to a provider. Each parsedluke2006-09-031-0/+9
| | | | | | | | | | | | | | | | | | type will have a parsedfile provider, which will be responsible for all of the file parsing and generation. This should allow us to create a useful DSL for file handling, but it also *drastically* simplifies these types. These types have always been a bit fragile, and it was never quite clear who was responsible for what. Now, with the type/provider split, everything is much clearer. I still need to convert host, sshkey, and mount, and something needs to be done with cron. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1547 980ebf18-57e1-0310-9a29-db15c13687c0
* This is the initial commit of the changes to sync and retrieve. Theluke2006-09-031-1/+7
| | | | | | | | | | | | | structure itself is now in place, and a few of the types (the most complicated ones -- file, user, group, plus exec since it was my easy first test) have been converted. I'm now going to finish going through all of the types and finish chnaging them so that they don't produce any warnings. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1546 980ebf18-57e1-0310-9a29-db15c13687c0
* Upgrading Triggering line from info to noticeluke2006-08-281-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1505 980ebf18-57e1-0310-9a29-db15c13687c0
* A first pass of changing one of the types of names to titles. I still have ↵luke2006-08-161-3/+8
| | | | | | to fix a lot of tests, but the core itself is now working. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1471 980ebf18-57e1-0310-9a29-db15c13687c0
* Merging r1468 from the implementations branch with r1438 from when the ↵luke2006-08-141-1/+4
| | | | | | branch was first created. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1469 980ebf18-57e1-0310-9a29-db15c13687c0
* More report and metrics manipulations. This should be the last of it.luke2006-07-011-7/+40
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1351 980ebf18-57e1-0310-9a29-db15c13687c0
* Trying to merge metrics and reports. There is now a separate transaction ↵luke2006-06-301-48/+76
| | | | | | report class, and it works throughout the previously existing system. I will next go through trying to make a metric report that graphs the metrics in rrd. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1347 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding report collection to both statechange and transaction.luke2006-06-291-0/+6
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1336 980ebf18-57e1-0310-9a29-db15c13687c0
* Cleaning up plugin handling a bit -- they can now be colon-separated paths, ↵luke2006-06-281-0/+5
| | | | | | and I added a separate "plugindest" setting for determining where plugins are synchronized to. The major feature I added, though, is that Puppet::Type now knows how to load plugins, and treats :pluginpath as a search path for plugins. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1330 980ebf18-57e1-0310-9a29-db15c13687c0
* Catching errors thrown during object evaluation and marking the objects as ↵luke2006-06-271-1/+16
| | | | | | failed. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1321 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding plugins and plugin management. The Master Client will now ↵luke2006-06-201-1/+7
| | | | | | automatically download plugins if pluginsync is enabled, and they will be automatically sourced. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1302 980ebf18-57e1-0310-9a29-db15c13687c0
* A round of bug-fixing in preparation for the next release.luke2006-06-131-3/+20
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1256 980ebf18-57e1-0310-9a29-db15c13687c0
* Added the last of the tests for the runner, along with the necessary work in ↵luke2006-05-181-2/+5
| | | | | | puppetd to be able to start it. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1213 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding a lot of structure to puppet.rb to make it easier to manage multiple ↵luke2006-05-181-4/+5
| | | | | | | | objects in a single process, including making it easy to add threads. Added some testing for all of that. Also added a "runner" server, meant to be started within puppetd, so that clients can have runs triggered from a central host git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1212 980ebf18-57e1-0310-9a29-db15c13687c0
* Making trigger logs much clearer -- you now get info logs indicating how ↵luke2006-05-051-7/+33
| | | | | | many dependencies changed, and debug logs indicating what those dependencies are git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1178 980ebf18-57e1-0310-9a29-db15c13687c0
* Changing how events work. Events are now responded to inline, while an ↵luke2006-05-051-115/+147
| | | | | | object is being applied. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1177 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #82. You can now specify comma-separated tags to get run in puppet ↵luke2006-03-111-0/+19
| | | | | | or puppetd: puppetd --onetime --tags "enhost, facter" -v. You cannot specify classes explicitly, but tags map well to classes and have the benefit of being more generic. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1005 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #95. I had to redesign how events were triggered; the transaction ↵luke2006-03-091-91/+29
| | | | | | now individually triggers each subscription, so that it has control in how to respond to failures. Eventually, this will lead the way to error handling within puppet, but for now, it just allows us to trigger every appropriate subscription, whether some have failed or not. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@998 980ebf18-57e1-0310-9a29-db15c13687c0
* Okay, Puppet is now almost entirely capable of configuring itself. I have ↵luke2006-03-021-1/+1
| | | | | | not yet added the extra tests to puppetmasterd to make sure it can start as a normal user, and the executables still fail some simple tests because they are producing output when they start (I will get rid of the output), but overall things look pretty good. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@965 980ebf18-57e1-0310-9a29-db15c13687c0
* Changing transactions to be one-stage instead of two, and changing most of ↵luke2006-02-161-24/+78
| | | | | | the type classes to use "obj[:name]" instead of "obj.name" where appropriate, because "obj.name" might be a symbolic name (e.g., File.unlink(file.name) will not do what you want if file.name == "sshdconfig" but file[:path] == "/etc/ssh/sshd_config") git-svn-id: https://reductivelabs.com/svn/puppet/trunk@922 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing class storage -- it was not working for nodescopesluke2006-01-301-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@858 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding the event-loop stuff to the repository and switching to using it. ↵luke2006-01-241-3/+3
| | | | | | Also, breaking many classes out into their own class files. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@848 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing most of the scheduling stuff. There is still a bit of work to do ↵luke2006-01-231-3/+15
| | | | | | in terms of how puppetd interacts with scheduling, but the bulk of the work is done. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@847 980ebf18-57e1-0310-9a29-db15c13687c0
* Made lots of small changes, mostly to help usability but also fixed a couple ↵luke2006-01-181-1/+2
| | | | | | of key bugs git-svn-id: https://reductivelabs.com/svn/puppet/trunk@841 980ebf18-57e1-0310-9a29-db15c13687c0
* Added "ensure" state to some classes, and added infrastructure for it to ↵luke2006-01-161-3/+8
| | | | | | work elsewhere. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@831 980ebf18-57e1-0310-9a29-db15c13687c0
* Merging changes from the head of the rework1 branch, r 784luke2006-01-081-2/+0
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@787 980ebf18-57e1-0310-9a29-db15c13687c0
* Undoing the merge that happened in 785luke2006-01-071-0/+2
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@786 980ebf18-57e1-0310-9a29-db15c13687c0
* Merging in refactoring from version 774 into version 784luke2006-01-071-2/+0
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@785 980ebf18-57e1-0310-9a29-db15c13687c0
* Further progress towards the next release. Lots of small bugs fixed, the ↵luke2005-11-011-4/+1
| | | | | | paths look much better now, and Transportable is much cleaner. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@740 980ebf18-57e1-0310-9a29-db15c13687c0
* "latest" is now a valid value for packages, and yum support is also includedluke2005-10-201-4/+2
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@718 980ebf18-57e1-0310-9a29-db15c13687c0
* switching all relationships to be centrally maintained and to use symbolic ↵luke2005-10-011-2/+5
| | | | | | references, rather than literal ones; also going through and making all tests pass again after mucking with services git-svn-id: https://reductivelabs.com/svn/puppet/trunk@710 980ebf18-57e1-0310-9a29-db15c13687c0
* Users and groups now work on OS X. I had to make some key changes to how ↵luke2005-09-171-5/+12
| | | | | | transactions and state changes work -- the most important is that it is no longer an error to try to sync a state that is already in sync. I could not find another way to handle all user states being out of sync but the first state actually syncs everything. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@686 980ebf18-57e1-0310-9a29-db15c13687c0
* Users and groups now nearly work on normal machines and on os x, and I think ↵luke2005-09-171-1/+6
| | | | | | I have a decent platform for expansion to some of the other important elements like hosts (probably most important after users and groups). Some tests are still failing on os x, because netinfo sucks, but I will hopefully be able to figure out a solution soon. Stupid OS X and NetInfo. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@684 980ebf18-57e1-0310-9a29-db15c13687c0