summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Making a Puppet::Module test more resilientLuke Kanies2010-04-131-3/+3
| | | | | | It would fail if a directory unexpectedly existed. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing yumrepo type to use 'flush'Luke Kanies2010-04-121-25/+1
| | | | | | | | It was previously relying on monkey-patching the last 'Change' instance in 'evaluate', but we removed 'evaluate', so this wasn't working any more. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Only trying to retrieve passwords on OS X when rootLuke Kanies2010-04-121-2/+2
| | | | | | | We were otherwise failing whenever we tried to read a user. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing a warning in the aix package providerLuke Kanies2010-04-121-1/+1
| | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Removing tests for code that was removed in the REST refactorLuke Kanies2010-04-121-38/+0
| | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing and porting Transaction Report testsLuke Kanies2010-04-121-3/+3
| | | | | | | There are still a few unported tests, but it's at least better now. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing Property#change_to_s in rare case failuresLuke Kanies2010-04-121-3/+3
| | | | | | | | | If we were removing a field, which really only 'cron' does, then we got an exception. This is fixed, and now tested. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing Hash functionality with non-constant keysLuke Kanies2010-04-121-1/+2
| | | | | | | It was only apparently working with constant keys, not, say, AST strings. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Removing vistigial method in ASTHashLuke Kanies2010-04-121-3/+0
| | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Porting/removing group test/unit testsLuke Kanies2010-04-121-5/+0
| | | | | | | Most of it was just complicated, and the rest useless. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Cleaning up content/source codeLuke Kanies2010-04-122-15/+11
| | | | | | | | | | This is probably a slight refactor, but only because it fixed a bug (content not being copied over correctly from metadata), which required that slight refactor. Mostly this just makes the code a bit cleaner. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Making SshAuthorizedKeys tests less brittleLuke Kanies2010-04-121-1/+1
| | | | | | | Also making them less likely to try to modify the local filesystem in any way. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Markus's patch concerning string interpolationJesse Wolfe2010-04-123-1674/+1759
| | | | | | | | | | | From email: Some of the errors I needed to track down were actually coming from my string interpolation branch: * I wasn't handling "Foo ${1} bar" as a regexp back reference (and I don't like it, but hey) * I wasn't warning about & passing on the "unneeded" backslash in strings like 'foo\"bar' * I fumbled part of the conflict resolution with Brice's hash patch.
* The pure-ruby YAML lib doesn't accept parametersJesse Wolfe2010-04-091-1/+1
|
* Fix a failure in new FileBucket where it was impossible to read from aJesse Wolfe2010-04-093-4/+6
| | | | | | bucket with a non-default path. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixing various broken Resource::Type testsLuke Kanies2010-04-091-2/+7
| | | | | | Also making the code a bit cleaner. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Renaming and fixing puppetrun tests.Luke Kanies2010-04-091-1/+4
| | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Removing any mentions of :casesensitive settingLuke Kanies2010-04-094-13/+7
| | | | | | | | | | | | | | | | | It is a setting that was added years ago as a backward compatibility option and even if it still works, which is questionable, it has no purpose any longer. It just complicated the code and didn't do much, so it's gone now. Also simplified the interface of Leaf#evaluate_match, since it was now using none of the passed-in options. Finally, removed/migrated the last of the Selector/CaseStatement test/unit tests. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fixing syntax warningLuke Kanies2010-04-091-1/+1
| | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Repair validate_checksum codepath, even though it is disabled.Jesse Wolfe2010-04-091-1/+5
|
* Resolving conflicts with ???Markus Roberts2010-02-171-5/+5
| | | | | | | | | When checksum is a parameter corresponding to checksum_type in the filesets rather than a checksum "strategy" the value :none should generally be computed rather than provided. If neither a source nor contents are provided, there is no need for a checksum and thus it should be :none; otherwise, use the provided value (or, if it's nil, let it pass through and be replaced by the default (:md5) in the bowels of the beast).
* Fixing a typo from a regexLuke Kanies2010-02-171-1/+1
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing change printing for content/ensureLuke Kanies2010-02-172-4/+9
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Converted File[checksum] to a parameter not propertyLuke Kanies2010-02-174-273/+29
| | | | | | | | | At the same time I removed all of the code in checksum that managed tracking changes to the checksum over time. I'll add it back in as I fix the fact that changes aren't being tracked like the should at the moment. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding "checksum?" helper method to Checksums moduleLuke Kanies2010-02-171-0/+5
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Resolving conflicts with luke:tickets/testing/2954Markus Roberts2010-02-171-1/+1
|
* Adding virtual and exported resource support to the DSLLuke Kanies2010-02-172-7/+60
| | | | | | | | | | | Also changed the internals - we're no longer using Resource instances with the ruby block, instead we're using a simple new class. We had to do this because Resource has too many methods - e.g., 'file' returned the file name rather than created a new resource type. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* s/DSL::ResourceHelper/DSL::ResourceAPI/gLuke Kanies2010-02-173-3/+3
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding simplistic pure ruby interfaceLuke Kanies2010-02-175-5/+128
| | | | | | | | | This is a simplistic DSL - you can create resource types (defined resources), classes, and nodes, and they can call functions and create resources. Nothing else, at this point. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding environment support to parser resourcesLuke Kanies2010-02-171-0/+2
| | | | | | We just use the scope's environment. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Resolving conflicts with ???Markus Roberts2010-02-171-3/+2
| | | | | Brice's hash implementation introduces new occurances of SQTEXT/DQTEXT which, with string interpolation, should simply be STRING.
* Moving the string interpolation parsing to the parser/lexerMarkus Roberts2010-02-174-1134/+1232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves the syntactic aspects of string interpolation up into the lexer/parser phase, preparatory to moving the semantic portions down to the as yet unnamed futures resolution phase. This is an enabling move, designed to allow: * Futures resolution in and between interpolated strings * Interpolation of hash elements into strings * Removal of certain order-dependent paths * Further modularization of the lexer/parser The key change is switching from viewing strings with interpolation as single lexical entities (which await later special case processing) to viewing them as formulas for constructing strings, with the internal structure of the string exposed by the parser. Thus a string like: "Hello $name, are you enjoying ${language_feature}?" internally becomes something like: concat("Hello ",$name,", are you enjoying ",$language_feature,"?") where "concat" is an internal string concatenation function. A few test cases to show the user observable effects of this change: notice("string with ${'a nested single quoted string'} inside it.") $v2 = 3+4 notice("string with ${['an array ',3,'+',4,'=',$v2]} in it.") notice("string with ${(3+5)/4} nested math ops in it.") ...and so forth. The key changes in the internals are: * Unification of SQTEXT and DQTEXT into a new token type STRING (since nothing past the lexer cares about the distinction. * Creation of several new token types to represent the components of an interpolated string: DQPRE The initial portion of an interpolated string DQMID The portion of a string betwixt two interpolations DQPOST The final portion of an interpolated string DQCONT The as-yet-unlexed portion after an interpolation Thus, in the example above (phantom curly braces added for clarity), DQPRE "Hello ${ DQMID }, are you enjoying ${ DQPOST }?" DQCONT is a bookkeeping token and is never generated. * Creation of a DOLLAR_VAR token to strip the "$" off of variables with explicit dollar signs, so that the VARIABLEs produced from things like "Test ${x}" (where the "$" has already been consumed) do not fail for want of a "$" * Reworking the grammar rules in the obvious way * Introduction of a "concatenation" AST node type (which will be going away in a subsequent refactor). Note finally that this is a component of a set of interrelated refactors, and some of the changes around the edges of the above will only makes sense in context of the other parts.
* Resolving conflicts with jesse:feature/master/3394Markus Roberts2010-02-171-1/+0
| | | | Without this change, rake spec crashes with a message about feature being undefined.
* Resolving conflicts with luke:tickets/master/2759Markus Roberts2010-02-171-1/+1
|
* Resolving conflicts with ???Markus Roberts2010-02-171-1/+1
| | | | class_scope was moved to scope.
* Finishing renaming :params to :parameters internallyLuke Kanies2010-02-178-23/+23
| | | | | | | | | | | | I had only done this partway, because it seemed easier, but not surprisingly, it ended up being more complex. In addition to those renames, this commit includes fixes to whatever tests I needed to fix to confirm that things were again working. I think most of these broken tests have been broken for a while. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Forcing parent evaluation in resource typesLuke Kanies2010-02-171-2/+17
| | | | | | | | | When a class is evaluated, its parent class needs to be evaluated first. This forces that evaluation. We somehow lost it when we converted the resource types out of AST. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing type/title resource resolutionLuke Kanies2010-02-171-35/+121
| | | | | | | | | | | | | This code is impressively difficult, because sometimes resource types act like resources (classes and nodes are singletons) and sometimes like resource types (defined and builtin resources). So, to get nodes to show as Node[foo] and classes as Class[Foo::Bar], but defined resources to show up as Foo::Bar[baz], we have to do some silliness. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Converging the Resource classes furtherLuke Kanies2010-02-173-50/+28
| | | | | | | | | | | 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>
* Adding strictness checking to resourcesLuke Kanies2010-02-173-10/+21
| | | | | | | This is used for AST resources (and fixed the last of the tests I broke in spec/). Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing most of the broken tests in test/Luke Kanies2010-02-175-20/+47
| | | | | | | | 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-1723-448/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Adding support for class parametersLuke Kanies2010-02-172-10/+4
| | | | | | | | | This is functional syntactically but not yet through the whole system, because of the changes made to how resource types are managed. See the next commit for that fix. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Removing :paramcheck and :typecheck settingsLuke Kanies2010-02-171-5/+0
| | | | | | | These were also set to true and are holdovers from YAGNI stuff from years ago. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Allowing Environment.new to take an environmentLuke Kanies2010-02-171-0/+1
| | | | | | | | | This can happen because we're almost always converting to environment instances from strings. Shouldn't happen often, but it's easier to be more failure-tolerant. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* TypeCollection now supports namespace arraysLuke Kanies2010-02-172-22/+20
| | | | | | | | | We previously only supported a single namespace when searching for resource types et al, but the whole system actually relies on an array of namespaces and search paths, so this adds that functionality all the way down, as it were. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding parameter validation to Puppet::ResourceLuke Kanies2010-02-178-16/+61
| | | | | | | | | | | | | This will allow us to remove all of the parameter validation from the other Resource classes. This is possible because resource types defined in the language are visible outside of the parser, via the environment. This will enable lots of code removal and simplication. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Tuning file load orderLuke Kanies2010-02-172-0/+4
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Removing obsolete Settings comments and requireLuke Kanies2010-02-171-3/+0
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Adding an environment helperLuke Kanies2010-02-171-0/+14
| | | | Signed-off-by: Luke Kanies <luke@reductivelabs.com>