summaryrefslogtreecommitdiffstats
path: root/spec/unit/parser/resource.rb
Commit message (Collapse)AuthorAgeFilesLines
* [#3994] rename the specs to have _spec.rb at the endMarkus Roberts2010-06-231-564/+0
| | | | | | | | | Some spec files like active_record.rb had names that would confuse the load path and get loaded instead of the intended implentation when the spec was run from the same directory as the file. Author: Matt Robinson <matt@puppetlabs.com> Date: Fri Jun 11 15:29:33 2010 -0700
* Fixing #1903 - metaparam inheritance is much fasterLuke Kanies2010-02-171-37/+0
| | | | | | | | | | | | This doesn't actually fix the specific request in #1903, which said there should be no inheritance at all, but I've changed my mind on that. Static inheritance is good, it should just be faster. This change could result in up to 70% speed improvements in compiling. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing Parser::Resource param validationLuke Kanies2010-02-171-0/+5
| | | | | | It was previously not allowing false values. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fix for #3556 Plussignment value meldingMarkus Roberts2010-02-171-0/+18
| | | | | | | | | | | | | | The plussignment operator was constructing the new parameter value by modifying the param object's value in place (so as to preserve the file and line information for debugging). However, when multiple resources are overridden by the same plussignment this would result in all of the resources sharing the same value (the union of all the prior values and the new value), which is wrong. Instead, we need to give each resource its own copy of the value (e.g., a copy of the param object), which this patch implements. Signed-off-by: Markus Roberts <Markus@reality.com>
* Puppet::Parser::Resource.new parameters have changedJesse Wolfe2010-04-091-1/+1
|
* Adding environment support to parser resourcesLuke Kanies2010-02-171-0/+9
| | | | | | We just use the scope's environment. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Converging the Resource classes furtherLuke Kanies2010-02-171-13/+13
| | | | | | | | | | | I was using 'params' and 'parameters', so I fixed that and extracted the differences in how they handle parameters into a stubbable method. This allowed me to almost entirely remove the subclass's 'initialize' method. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing most of the broken tests in test/Luke Kanies2010-02-171-26/+10
| | | | | | | | This involves a bit of refactoring in the rest of the code to make it all work, but most of the changes are fixing or removing old tests. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Removing Resource::Reference classesLuke Kanies2010-02-171-46/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is hopefully less messy than it first appears, but it's certainly cross-cutting. The reason for all of this is that we previously only looked up builtin resource types from outside the parser, but now that the defined resource types are available globally via environments, we can push that lookup code to Resource. Once we do that, however, we have to have environment and namespace information in every resource. Here I remove the Resource::Reference classes (except the AST class), and use Resource instances instead. I did this because the shared code between the two classes got incredibly complicated, such that they should have had a hierarchical relationship disallowed by their constants. This complexity convinced me just to get rid of References entirely. I also make Puppet::Parser::Resource a subclass of Puppet::Resource. There are still broken tests in test/, but this was a big enough commit I wanted to get it in. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Renaming Parser::ResourceType to Resource::TypeLuke Kanies2010-02-171-4/+4
| | | | | | | | | | Basically, these classes (ResourceType and ResourceTypeCollection) don't really belong in Parser, so I'm moving them to the Resource namespace. This will be where anything RAL-related goes from now on, and as we migrate functionality out of Puppet::Type, it should go here. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* All non-transient parser references are goneLuke Kanies2010-02-171-9/+22
| | | | | | | | | We now use references to the ResourceTypeCollection instances through the environment, which is much cleaner. The next step is to remove the Interpreter class. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding []/[]= support to Parser::ResourceLuke Kanies2010-02-171-0/+10
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* ReFix 2675 ending slash in directory should get stripped offJesse Wolfe2010-01-011-0/+11
| | | | | | | | | There was an intermittent bug in Puppet::Parser::Resource::Reference, during initialization, and object could sometimes have its title set before its type is set. This prevented the title from going through type-specific canonicalization. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Bug #2534 Raise error if property appears twiceJesse Wolfe2009-10-271-1/+14
| | | | | | | This patch changes Puppet::Parser::Resource to check if it has been passed two Puppet::Parser::Resource::Param objects with the same name. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixing relationship metaparam backward compatibilityLuke Kanies2009-09-221-1/+39
| | | | | | | | | | We broke some cases of metaparam compatibility in 0.25. Most of it was pretty esoteric, but one thing that wasn't working was relationship metaparams specified on defined resources. This adds a compatibility method for older clients. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #2507 - Exported resources were not correctly collected.Brice Figureau2009-08-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | #2507 contains two issues: * a crash when we filters-out an unwanted resource which had edges pointing to it. * resources are losing their virtuality when they are transformed from Puppet::Parser::Resource to Puppet::Resource. This means we weren't able to distinguish anymore between an exported resource collected in the same node as it was exported and an exported resource collected in another node. The net result is that we can't apply exported resources that are collected in the same node because they are filtered out by the catalog filter (see the commits for #2391 for more information). The fix is to keep the virtuality of the resources so that we can differentiate those two types of exported resources. We keep this until the catalog is ready to be sent, where we filter out the virtual resouces only, the other still exported ones needs to be sent to the client. To be real sure, the transaction also skips virtual resources. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Make sure overriding a tag also produces a tagBrice Figureau2009-06-111-0/+10
| | | | | | | This is so that overriding the "tag" metaparameter ends-up in the resource tags on the server. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Make sure resources are tagged with the user tag on the serverBrice Figureau2009-06-061-0/+7
| | | | | | | | It appears that resources were not tagged with user tag on the server, which prevents those tags to be persisted as tag in the storeconfigs. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixing #2230 - exported resources work againLuke Kanies2009-06-031-0/+5
| | | | | | | | This somehow got lost in the conversion from Parser resources to Puppet resources. We now copy over the 'exported' value. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #1885 - Relationships metaparams do not cascadeLuke Kanies2009-04-221-27/+8
| | | | | | | | | | | | | | | 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>
* Merge branch '0.24.x'Luke Kanies2009-04-021-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/ralsh lib/puppet/executables/client/certhandler.rb lib/puppet/parser/functions/versioncmp.rb lib/puppet/parser/resource/reference.rb lib/puppet/provider/augeas/augeas.rb lib/puppet/provider/nameservice/directoryservice.rb lib/puppet/provider/ssh_authorized_key/parsed.rb lib/puppet/type.rb lib/puppet/type/file/checksum.rb spec/integration/defaults.rb spec/integration/transaction/report.rb spec/unit/executables/client/certhandler.rb spec/unit/indirector/ssl_rsa/file.rb spec/unit/node/catalog.rb spec/unit/provider/augeas/augeas.rb spec/unit/rails.rb spec/unit/type/ssh_authorized_key.rb spec/unit/type/tidy.rb test/executables/filebucket.rb test/executables/puppetbin.rb
| * Using the FileCollection where appropriate.Luke Kanies2009-02-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit just replaces the :file and :line accessors with the use of the new FileCollection Lookup module. This should mean that we've normalized all file names in a given process, which *might* have drastic RAM improvements. For initial simplicity, I've gone with a single global collection of file names, but it's built so it's easy to use individual file collections instead. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Fix #2107 - flatten resource references arrays properlyBrice Figureau2009-03-271-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resource parameters of the form [Res[a], Res[a,b]] ends being evaluated as [Res[a], [ Res[a], Res[b] ] This last form was not flattened when transfomed into RAL type, which in turn prevented the sub array to be converted in regular resource references. Thus the type was choking when encountering those native parser references instead of usual resource reference. The fix consists in flattening array of references before transformation to trans objects for RAL. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | Fixing #1914 - 'undef' relationship metaparameters do not stackLuke Kanies2009-02-061-0/+9
| | | | | | | | | | | | | | | | This allows you to specify that a metaparameter is undef inside a definition and keep any parameters from being inherited from the parent. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Finishing the work to use Puppet::Resource instead of TransObjectLuke Kanies2008-12-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | This was a complicated project because TransObject had made its way into too many classes. The usage by Util::Settings was particularly nefarious. Refactoring and fixing this exposed some other issues. The main complication, though, was the extent to which the Puppet::Type class depended on TransObject. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Renaming the "Catalog#to_type" method to "Catalog#to_ral"Luke Kanies2008-12-181-2/+2
| | | | | | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* | Using Puppet::Resource to convert parser resources to RAL resourcesLuke Kanies2008-12-181-3/+3
| | | | | | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* | Adding resource convertion to the parser resourcesLuke Kanies2008-12-181-0/+80
|/ | | | | | | Also uses Puppet::Resource's method for creating transportable resources. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixed #1045 - Multiple metaparams all get added to resources.Luke Kanies2008-09-241-0/+10
| | | | | | | The problem was that I was using a 'return' in a loop where I should have been using a 'next'. Signed-off-by: Luke Kanies <luke@madstop.com>
* Modified the 'master' handler to use the Catalog class toLuke Kanies2008-04-111-0/+7
| | | | | | | | | | compile node configurations, rather than using the Configuration handler, which was never used directly. I removed the Configuration handler as a result. Modified the 'master' handler (responsible for sending configurations to clients) to always return Time.now as its compile date, so configurations will always get recompiled.
* Fixing some tests that only failed under certainLuke Kanies2008-03-181-3/+1
| | | | | circumstances (mostly, when loaded with other files, or when loaded from rake or autotest rather than separately).
* Always duplicating resource defaults in the parser, so thatLuke Kanies2008-03-061-5/+156
| | | | | | stacked metaparameter values do not result in all resources that receive a given default also getting those stacked values.
* Fixing the fact that resources that model defined resourcesLuke Kanies2008-02-291-0/+6
| | | | | were getting finished multiple times, which meant they got multiple copies of metaparams.
* Fixing #1084 -- the node catalog asks the individualLuke Kanies2008-02-251-98/+113
| | | | | | resources whether they're isomorphic, and they in turn ask the resource types (or default to true for defined resource types).
* Changing the name of the Compile class to Compiler,Luke Kanies2008-02-111-4/+4
| | | | | since it's stupid to have a class named after a verb.
* More AST refactoring -- each of the code wrapping classesLuke Kanies2008-02-081-3/+3
| | | | | | | | | | | just returns a resource from its evaluate() method, and all of the work is done in the evaluate_code method. This makes the code cleaner, because it means 1) evaluate() has the same prototype as all of the other AST classes, 2) evaluate() is no longer called indirectly through the Parser Resource class, and 3) the classes themselves are responsible for creating the resources, rather than it being done in the Compile class.
* Refactoring the AST classes just a bit. I realized thatLuke Kanies2008-02-081-3/+3
| | | | | | all of the evaluate() methods only ever accepted a scope, and sometimes one other option, so I switched them all to use named arguments instead of a hash.
* Fixing #976 -- both the full name of qualified classes andLuke Kanies2008-01-191-0/+60
| | | | | | the class parts are now added as tags. I've also created a Tagging module that we should push throughout the rest of the system that uses tags.
* Fixing #446. I ended up largely not using porridge's patch,Luke Kanies2007-11-191-0/+50
| | | | | | but only because the code (and my coding style, to some extent) has changed so much in the last few months. Also, added specs.
* Doing a small amount of refactoring, toward being able to use Parser ↵Luke Kanies2007-09-031-0/+39
resources to evaluate classes and nodes, not just definitions. This will hopefully simplify some of the parsing work, and it will enable the use of a Configuration object that more completely models a configuration.