summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/interpreter.rb
Commit message (Collapse)AuthorAgeFilesLines
* Fixing virtual object collection. I apparently broke it when I added rails ↵luke2006-10-181-2/+4
| | | | | | collection back, and I never created any end-to-end tests. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1805 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing gennode; it was not actually adding the class code to the generated node.luke2006-10-161-13/+19
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1792 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing weird case where the default node is in one node source and the real ↵luke2006-10-051-8/+14
| | | | | | node is in a different one git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1734 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing ldap nodes -- they were always returning true because i was returning ↵luke2006-10-051-1/+5
| | | | | | an empty array for missing nodes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1733 980ebf18-57e1-0310-9a29-db15c13687c0
* Merging the changes from the override-refactor branch. This is a ↵luke2006-10-041-374/+685
| | | | | | significant rewrite of the parser, but it has little affect on the rest of the code tree. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1726 980ebf18-57e1-0310-9a29-db15c13687c0
* Trying to fix a bug where files other than site.pp do not get noticed for ↵luke2006-09-191-12/+5
| | | | | | reparsing git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1621 980ebf18-57e1-0310-9a29-db15c13687c0
* Using the "trace" configuration parameter to determine whether a stack trace ↵luke2006-09-151-4/+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
* Reverting the work done in [1605] and [1606]. I have added it as a patch in ↵luke2006-09-151-12/+0
| | | | | | #271. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1610 980ebf18-57e1-0310-9a29-db15c13687c0
* This commit adds two important features (but which probably were notluke2006-09-151-0/+12
| | | | | | | | | | | | | | | | | | | | | | | worth the priority I suddenly placed on them). First, it adds search paths as I originally requested in #114. There is now a 'lib' setting, which can be used to tell Puppet where to find manifests. Any file you tell Puppet to parse will have its directory automatically added to the lib path. Also, Puppet will check the PUPPETLIB environment variable for further directories to search. Second, it converts the 'import' mechanism into a normal function, which means that you can now use variables and what-have-you in it. Of course, this function uses the lib mechanism. This is something that's always bothered me about the language, and having it fixed means you can do simple things like have custom code in the top scope for each operating system and then do "import os/$operatingsystem" to evaluate that code. Without this, you would either need a huge case statement or the code would need to be in a class, which often isn't sufficient. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1605 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the interpreter to nodesearch across all listed names, just like is ↵luke2006-09-131-11/+13
| | | | | | done in the manifests. Also fixing a comment in type.rb git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1586 980ebf18-57e1-0310-9a29-db15c13687c0
* Renaming parsedfile to loadedfile, which makes much more sense and reduces ↵luke2006-09-031-1/+1
| | | | | | some naming conflicts git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1544 980ebf18-57e1-0310-9a29-db15c13687c0
* First round of bugfixes in preparation for 0.18.4luke2006-07-211-11/+4
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1421 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing bug in scope/interpreter where nodes found in ldap must have parent ↵luke2006-07-181-0/+4
| | | | | | nodes. The problem was that the the scope was using the presence of a parent node to determine whether a node was found. Instead I added a flag in the arguments to "Scope#evaluate" to mark nodes as found. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1401 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding a unit test for plain "nodesearch"luke2006-07-181-0/+10
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1400 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding minimal update checking for templates. It will only check the ↵luke2006-07-031-63/+92
| | | | | | templates that have been parsed in this process, but it is better than nothing. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1353 980ebf18-57e1-0310-9a29-db15c13687c0
* Trying to merge metrics and reports. There is now a separate transaction ↵luke2006-06-301-2/+2
| | | | | | 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
* Fixing #182. Added a retry section to try reconnecting to ldap. Only one ↵luke2006-06-201-1/+9
| | | | | | reconnect is attempted in a given search, and LDAP produces bad enough error messages that we reconnect regardless of the error thrown. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1305 980ebf18-57e1-0310-9a29-db15c13687c0
* fixing interpreter to initialize ldap in the nodesearch_ldap method, which ↵luke2006-06-151-3/+5
| | | | | | really only matters for testing (since it is already being inited in the nodesearch method git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1287 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing some logging issues with puppetmasterd when daemonized with verbose ↵luke2006-06-141-11/+22
| | | | | | mode on, and fixing ldap support when daemonizing git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1276 980ebf18-57e1-0310-9a29-db15c13687c0
* abstracting out ldap connections so that there is a single method ↵luke2006-06-131-12/+22
| | | | | | responsible for all of them and a single connection can be shared in all classes if necessary git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1270 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing ldap usage when ldap libs are not availableluke2006-06-131-20/+28
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1268 980ebf18-57e1-0310-9a29-db15c13687c0
* removing extraneous debuggingluke2006-06-131-2/+0
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1267 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding support for default nodes as requested in #136.luke2006-06-131-6/+21
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1261 980ebf18-57e1-0310-9a29-db15c13687c0
* A round of bug-fixing in preparation for the next release.luke2006-06-131-1/+17
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1256 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing ldap node lookup. The test was set up badly, in that it did not ↵luke2006-06-121-3/+11
| | | | | | actually provide a way to enable ldap node support, even though there was a config option that should have worked. All works now. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1254 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding support for following referralsluke2006-06-121-0/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1252 980ebf18-57e1-0310-9a29-db15c13687c0
* Wrapping the host storage into a transaction. It might have a slight ↵luke2006-05-151-9/+15
| | | | | | performance improvement, but, ah, unlikely. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1200 980ebf18-57e1-0310-9a29-db15c13687c0
* I had to redo how the scopes handled collectable objects (which I will soon ↵luke2006-05-141-7/+34
| | | | | | change to being called "exported objects"). All seems to work now, though. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1192 980ebf18-57e1-0310-9a29-db15c13687c0
* Made a *huge* performance difference in storing hosts -- down from about 25 ↵luke2006-05-131-5/+7
| | | | | | seconds per host to about 5 seconds on my machine. I will almost definitely still use forking or something to make this not affect the clients git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1191 980ebf18-57e1-0310-9a29-db15c13687c0
* The "collectable" syntax now works end-to-end -- the parser correctly ↵luke2006-05-131-1/+9
| | | | | | recognizes it, the AST objects retain the settings, the scopes do the right conversion, the interpreter stores them all in the database, and then it strips the collectable objects out before sending the object list to the client git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1189 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding initial rails support. One can now store host configurations using ↵luke2006-05-131-24/+25
| | | | | | ActiveRecord into a database (I have only tested sqlite3). Tomorrow will be the grammars used to retrieve those records for object collection. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1187 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the language side of #109. Added a "set" keyword.luke2006-04-111-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1103 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding a few informative facts on the server side: serverversion, ↵luke2006-04-111-1/+7
| | | | | | servername, serverip. And only printing the parse time in the interpreter if it is not a local connection. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1102 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding simple benchmarking, and using it in a few of the more obvious ↵luke2006-04-101-4/+8
| | | | | | places. Also, fixed a bug in Scope#gennode. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1098 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #103. There are now no such things as node scopes; the entire tree ↵luke2006-04-051-48/+47
| | | | | | is evaluated on every node connection, and node facts are set at the top-level scope. This includes,um, the code; the last commit was accidentally just test changes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1073 980ebf18-57e1-0310-9a29-db15c13687c0
* adding -e ability to puppet executableluke2006-04-041-20/+26
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1065 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the class file to actually store class names, not object ids. Also ↵luke2006-04-041-2/+0
| | | | | | added tests to make sure it all stays that way. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1063 980ebf18-57e1-0310-9a29-db15c13687c0
* Manifests can now specify node names with fully qualified domain names, too.lutter2006-03-311-2/+4
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1047 980ebf18-57e1-0310-9a29-db15c13687c0
* Changing the setdefaults input format somewhat. It is always a hash of some ↵luke2006-03-011-9/+9
| | | | | | kind now. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@962 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing bug #60. Converting nodes to use types everywhere instead of names, ↵luke2006-02-281-2/+0
| | | | | | and adding a localobjectable to keep track of what parameters have been defined locally. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@957 980ebf18-57e1-0310-9a29-db15c13687c0
* Mostly, this is a refactoring commit. There is one significant new feature,luke2006-02-271-4/+14
| | | | | | | | | | | | | | | | | though: overrides now only work within a class heirarchy, which is to say that a subclass can override an element in a base class, but a child scope cannot otherwise override an element in a base scope. I've also done a good bit of refactoring, though; notably, AST#evaluate now takes named arguments, and I changed the 'name' parameter to 'type' in all of the Component classes (this was all internal, but was confusing as it was). I also removed the need for the autonaming stuff -- it's now acceptable for components not to have names, and everything behaves correctly. I haven't yet removed the autoname code, though; I'll do that on the next commit. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@952 980ebf18-57e1-0310-9a29-db15c13687c0
* Changed the parsedtype definition of exists(), and fixed a few smaller bugs. ↵luke2006-02-151-1/+5
| | | | | | Last code commit before 0.13.2 git-svn-id: https://reductivelabs.com/svn/puppet/trunk@915 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing the initial ldap support -- puppet can now look up node ↵luke2006-02-141-1/+124
| | | | | | configurations in ldap. The test scripts currently only work on my home network. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@909 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing class storage -- it was not working for nodescopesluke2006-01-301-10/+2
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@858 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing a small checksumming bug, reorganizing the client stuff a bit, and ↵luke2006-01-181-4/+22
| | | | | | adding freshness checking for the configuration, so the config is recompiled every time nor is it downloaded unless it has been recompiled git-svn-id: https://reductivelabs.com/svn/puppet/trunk@845 980ebf18-57e1-0310-9a29-db15c13687c0
* Made lots of small changes, mostly to help usability but also fixed a couple ↵luke2006-01-181-6/+4
| | | | | | of key bugs git-svn-id: https://reductivelabs.com/svn/puppet/trunk@841 980ebf18-57e1-0310-9a29-db15c13687c0
* Converting transport format to YAML instead of Marshal, and caching the file ↵luke2006-01-121-1/+8
| | | | | | in a YAML format, also. This required a significant rework of both Transportable classes. Lastly, I am also now caching the list of classes in a class file in /etc/puppet. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@816 980ebf18-57e1-0310-9a29-db15c13687c0
* Supporting puppetmasterd running as a non-root user, and doing some basic ↵luke2006-01-101-1/+3
| | | | | | message cleanup git-svn-id: https://reductivelabs.com/svn/puppet/trunk@798 980ebf18-57e1-0310-9a29-db15c13687c0
* adding cfengine module, which required passing the cfengine classes all the ↵luke2005-11-171-1/+5
| | | | | | way through the stack to the scope git-svn-id: https://reductivelabs.com/svn/puppet/trunk@746 980ebf18-57e1-0310-9a29-db15c13687c0
* Further small bug fixes towards running puppet on my networkluke2005-10-251-29/+3
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@729 980ebf18-57e1-0310-9a29-db15c13687c0