| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This failure was getting caused by what I believe to be a bug in
Puppet::Configurer where it always generated a new
Puppet::Transaction::Report, even if one existed in an outer scope.
In puppetd --test, a different Report was getting queried to generate
the exit status than the one that was passed to the transaction -- this
Report had no Metrics and would fail when queried.
This obscured a second bug that Metrics could return nil for values if
the Transaction had applied an empty Catalog, but Transaction::Report
assumes that values will always be integers.
It could be argued that an empty Report should be populated with empty
Metrics before a Transaction is run, which would have prevented
Report#exit_status from raising an exception ... which would have made
these bugs much harder to track down. So, I've decided to leave that
unchanged.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This involved essentially moving all of the importing and loading
code out of the Parser and into a new 'TypeLoader' class.
The parser and the ResourceTypeCollection classes now delegate
to that class for all file handling. Most of the code paths are
also now much cleaner, and a bit of redundancy was removed.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pson serialization of resources was behaving incorrectly on
parameters that are references to other resources:
1. Dependency parameters (require, subscribe, notify) were getting
serialized as anonymous objects that looked like partially constructed
resources
2. During de-serialization the pson parser would inflate them
into hashes (rather than into resources)
3. The outer resource would try to coerce the hash into a resource by
passing it to Resource.new
4. Resource.new would fail with a cryptic message, since it does not
accept a hash as its first parameter (but the error is obfuscated by
Resource.new's complicated argument handler)
This patch solves the problem by explicitly converting dependency
parameters into strings in the pson serialization.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Also adding JSON support.
This is so that we can remotely retrieve information
about resource types and classes, such as what arguments
are required.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
| |
Added some tests to make the single executable command behavior
explicit.
Added logic to display the usage message if we're on a tty and no
arguments are passed.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a test in:
./spec/unit/provider/package/pkgdmg.rb
To test flat package support.
The case where a package is a .pkg bundle, curl will attempt
to download and not work. The "installer" command will then
fail, as the source will be "not found" and the resource will
fail. The puppet run will continue.
Signed-off-by: Roy Nielsen <rsn@lanl.gov>
|
|
|
|
| |
and more I get the feeling that FreeBSD's rc system is totally unsuitable for Puppet. What about porting Upstart or SMF to FreeBSD ... ?)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Find and replace to the rescue...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are several issues with changing the real, effective, and saved group
and user ids in different environments (which methods to call, in what order,
etc). While the code being replaced by this patch appeared to work for Linux,
Solaris, and (with a special case test) Darwin; it was failing under AIX and
may have had edge-case problems under the others.
Ruby back to 1.8.1 has supported a higher level interface that deals with the
problem and captures a broader range of OSes; it's a single call for group and
one for user--the details of rid/eid/svid, etc ordering are handled internally.
Switching to that simplifies our code and should improve/unify our support of
various OSes.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
service start stop
This provider supports start/stop and restart of AIX services using the
native AIX service manager, called the System Resource Controller.
Currently it will not stop and start (but only refresh) a service that
uses sockets or message queues as its communication method. It will run
stopsrc and then startsrc for services that use signals as their
communication method.
Signed-off-by: Andrew Forgue <andrew.forgue@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zypper is the replacement for `rug' from earlier SuSE releases. Zypper
is backward compatible with the rug command (mostly) and supports most
of the same commands that rug does.
This version fixes a number of bugs in the original:
* when installing with a specified version, fix bug where the package
name was being doubled ("foo" became "foofoo").
* fix bug where package name and version were separated by a "=" when it
should have been a "-".
* Update specs to reflect the implementation's use of the "-l" flag as
recommended in http://groups.google.com/group/puppet-dev/msg/d86416c079bd3faf
Signed-off-by: Rein Henrichs <reinh@reinh.com>
|
|
|
|
|
|
|
|
|
|
| |
* corrected missing status
* added cloning and support for default router
* RH: Fix spec to return accurate value for @resource[:clone]
* RH: Add spec for untested install case when @resource[:clone] returns
a (non-falsy) value
Signed-off-by: Rein Henrichs <rein@puppetlabs.com>
|
|
|
|
|
|
|
| |
This allows you to ask for a node's catalog in
dot format, for inputting into graphviz et al.
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
|
|
|
|
|
|
| |
It's really slow and has no actual functionality
any more, since we just remove the catalogs from memory
anyway.
This should be a good speed boost for very little effort.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The semantic interaction of tidy/matches and tidy/recurse is tricky to get
right; it only makes sense to use matches with recursion (a fixed path will
either statically match or it won't, no need for a run-time check) but there
was nothing to warn users of this fact. To compound matters, the example
in the matches parameter doc string even made this mistake.
This patch: 1) fixes the doc string; 2) prohibits the use of match without a
value of recurse capable of generating files to match, 3) fixes tests that
were passing for the wrong reason and adds tests on the prohibition added
in (2).
|
|
|
|
|
|
|
| |
Puppet::Resource::Catalog's spec
This issue causes other specs to fail, because they depend on the
default terminus being unchanged.
|
|
|
|
|
|
| |
The output variable in the inner block wasn't visible in the outer block,
and wasn't needed in any case, since the results are returned naturally
if you just leave everything alone.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a targeted fix to the issue of permissions when writing ssh authorized
key files by 1) requiring that an existing users be specified on the resource
and 2) doing the write as that user. It's based on Michael DeHaan's initial
implementation of Luke's idea, but with a number of simplifications (mostly by
testing necessary conditions as early as possible so the code isn't cluttered
up with a lot of checks).
The tests in this version are modified slightly to remove some additional
implementation couplings that were added in master.
|
|
|
|
|
|
| |
It's about 10x faster to read the whole file than to read each line and
concatenate them (actually, it's O(n) vs. O(n^2), so the exact speedup
depends on the file size).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Thanks to Benedikt Böhm for the patch
|
| |
|
| |
|
|
|
|
| |
modules
|
| |
|
|
|
|
|
| |
As purged is not contained by default within ensureable we need to
extend the parameter to properly deal with purged lists.
|
|
|
|
|
| |
The "Ensure Parameter" tries to call destroy on the
provider and not delete.
|
|
|
|
|
|
| |
containing the specified command.
Also adds rspec tests for generate().
|
|
|
|
| |
Thanks to Jasper Lievisse Adriaanse for the fix.
|
| |
|
|
|
|
| |
/var/lib/puppet
|
|
|
|
|
|
|
|
|
|
|
| |
Due to a bug in Ruby 1.8.7 net/http will attempt to close a connection
that wasn't successfully opened (it's nil), first checking to see if the
connection is already close, and thus raising a method missing exception.
This bug causes error messages that are confusing / misleading.
To get around this, we add a closed? method to nil such that a nil (unopened)
connection is always considered closed, allowing the real problem to be
reported.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch reverts the semantically significant parts of #2890 due to the
issues discussed on #3360 (security concerns when used with autosign,
inconsistency between REST & XMLRPC semantics) but leaves the semantically
neutral changes (code cleanup, added tests) in place.
This patch is intended for 0.25.x, but may also be applied as a step in the
resolution of #3450 (refactored #2890, add "remove_certs" flag) in Rolwf.
|
|
|
|
| |
dev-lang/php).
|
| |
|
|
|
|
| |
Thanks for Eric Sorenson for the patch.
|
|
|
|
|
|
|
|
|
|
| |
This will rarely be used, but it enables even more architectural
flexibility, such as precompiling catalogs and storing them in memcached
or equivalent. With this setup, a single host can probably serve all
catalogs and you would then just have as many compiling hosts as
needed.
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
| |
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
|
|
|
|
|
| |
This basically allows a sysadmin to control when a client
will compile a new catalog - with this option enabled,
the client will use the cached catalog as long as it has
one, only recompiling when run with the option disabled.
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
| |
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following manifest:
case $var {
/match/: {
if $var =~ /matchagain/ {
}
}
}
is failing because the "=~" operators when matching sets an ephemeral
variable in the scope. But the case regex also did it, and since they
both belong to the same scope, and Puppet variables are immutables, the
scope raises an error.
This patch fixes this issue by adding to the current scope a stack
of ephemeral symbol tables. Each new match operator or case/selector
with regex adds a new scope. When we get out of the case/if/selector
structure the scope is reset to the ephemeral level we were when
entering it.
This way the following manifest produces the correct output:
case $var {
/match(rematch)/: {
notice("1. \$0 = $0, \$1 = $1")
if $var =~ /matchagain/ {
notice("2. \$0 = $0, \$1 = $1")
}
notice("3. \$0 = $0, \$1 = $1")
}
}
notice("4. \$0 = $0")
And the output is:
1. $0 = match, $1 = rematch
2. $0 = matchagain, $1 = rematch
3. $0 = match, $1 = rematch
4. $0 =
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
| |
|
| |
|