| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Puppet's autoloader has an incompatibility with ruby's native 'require'
statement that makes it possible to reach the same code multiple times,
which can cause genclass to create multiple classes with the same name.
This patch fixes the uses of some puppet types so that they are loaded
using the autoloader instead of using 'require'.
Paired-With: Jacob Helwig <jacob@puppetlabs.com>
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 2.6.x:
(maint) Indentation fixes
(#6490) Add plugin initialization callback system to core
Fix #4339 - Locally save the last report to $lastrunreport
Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
Fixed #3127 - removed legacy debug code
Fixed #3127 - Fixed gem selection regex
(#5437) Invalidate cached TypeCollection when there was an error parsing
(#6937) Adjust formatting of recurse's desc
(#6937) Document the recurse parameter of File type.
(#6893) Document the cron type in the case of specials.
(#5670) Don't trigger refresh from a failed resource
Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9
Conflicts (Manually resolved):
lib/puppet/application/agent.rb
lib/puppet/application/apply.rb
lib/puppet/configurer.rb
lib/puppet/resource/type_collection.rb
lib/puppet/type/file.rb
spec/integration/configurer_spec.rb
spec/unit/application/agent_spec.rb
spec/unit/application/apply_spec.rb
spec/unit/configurer_spec.rb
spec/unit/indirector/report/yaml_spec.rb
spec/unit/resource/type_collection_spec.rb
Paired-with: Nick Lewis
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 2.6.next:
Fix #4339 - Locally save the last report to $lastrunreport
Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
Fixed #3127 - removed legacy debug code
Fixed #3127 - Fixed gem selection regex
(#5437) Invalidate cached TypeCollection when there was an error parsing
(#6937) Adjust formatting of recurse's desc
(#6937) Document the recurse parameter of File type.
(#6893) Document the cron type in the case of specials.
(#5670) Don't trigger refresh from a failed resource
Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add in a better desc block for "specials" in cron provider, and outline
it's limitations.
The previous text was purely a placeholder.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Using the cache terminus system, when --report is on, we are now
caching the last report as a yaml file in the $lastrunreport file
(which by default is $statedir/last_run_report.yaml).
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Once a configuration run is done, puppetd will save on the node a
yaml summary report roughly akin to:
---
time:
notify: 0.001025
last_run: 1289561427
schedule: 0.00071
config_retrieval: 0.039518
filebucket: 0.000126
resources:
changed: 1
total: 8
out_of_sync: 1
events:
total: 1
success: 1
changes:
total: 1
This is almost an hash version of the current --summarize output, with
the notable exception that the time section includes the last run unix
timestamp.
The whole idea is to be able to monitor locally if a puppetd does its job.
For instance this could be used in a nagios check or to send an SNMP trap.
The last_run information might help detect staleness, and this summary
can also be used for performance monitoring (ie time section).
The resource section can also show the number of failed resources.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
| | |\ \
| | | | |
| | | | |
| | | | |
| | | | | |
* tickets/2.6.x/3127:
Fixed #3127 - removed legacy debug code
|
| | | | | |
|
| | |\| |
| | | | |
| | | | |
| | | | |
| | | | | |
* tickets/2.6.x/3127:
Fixed #3127 - Fixed gem selection regex
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously if the gem json_pure was installed and you requested the
gem json then the regex matched too soon and falshly indicated that
the json gem was already installed.
Also updated to add the --no-ri and no-rdoc options and fix tests.
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* ticket/2.6.x/5437-report-manifest-errors-on-agent:
(#5437) Invalidate cached TypeCollection when there was an error parsing
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The caching of the TypeCollection in Puppet::Node::Environment would cause
parse errors to occur (and be reported) only once and never again, until
the file had changed on disk. This would also cause empty catalogs to be
sent down to the agents further hiding the problem.
Now, when a file fails to parse, it will be re-parsed every time on every
following compilation, causing the parse error to be reported every time,
and preventing sending down empty catalogs to agents.
Paired-with: Nick Lewis <nick@puppetlabs.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Prevous formatting would result in broken Markdown after the docs were generated,
as Markdown does not recognize a two-space tab as a syntactical element.
This patch also changes the list of values to a bulleted list instead of a code block.
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Update the desc block with information gleaned from #1469 and the code
about recurse => remote and other types of recursion.
The auto generated documentation was sparse and this is an area that often
comes up on the mailing list/IRC.
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Resources were triggering their subscribing/notified resources when they
failed, which is incorrect. Now, events are only queued if the resource was
successful.
Paired-With: Max Martin
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The recurring pattern "drop-in code needs to have something done at startup"
is presently being solved with a variety of ad-hock mechanism. This commit
adds a general, extensible, centralized system for adding such hooks and
manages an extensible set of metadata about plugins which it collects by
searching for files named "plugin_init.rb" in a series of directories.
Initially, these are simply the $LOAD_PATH. Applications can add more places
to look for plugins without risk of adding duplicates or changing the order of
ones that have already been found with:
Puppet::Plugins.look_in(*paths)
The contents of each file found is executed in the context of a Puppet::Plugins
object (and thus scoped). An example file might contain:
-------------------------------------------------------
@name = "Greet the CA"
@description = %q{
This plugin causes a friendly greeting to print out on a master
that is operating as the CA, after it has been set up but before
it does anything.
}
def after_application_setup(options)
if options[:application_object].is_a?(Puppet::Application::Master) && Puppet::SSL::CertificateAuthority.ca?
puts "Hey, this is the CA! Hi everyone!!!"
end
end
-------------------------------------------------------
Note that the instance variables are local to this Puppet::Plugin (and so may be
used for maintaining state, etc.) but the plugin system does not provide any
thread safety assurances, so they may not be adequate for some complex use cases.
Presently supported hooks:
before_application_preinit( :application_object => ... )
after_application_preinit( :application_object => ... )
before_application_parse_options( :application_object => ... )
after_application_parse_options( :application_object => ... )
before_application_setup( :application_object => ... )
after_application_setup( :application_object => ... )
before_application_run_command( :application_object => ... )
after_application_run_command( :application_object => ... )
on_commandline_initialization(:command_line_object => ... )
on_application_initialization(:appliation_object => ... )
Paired-with: Daniel Pitman
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit removes the last remaining use of topsort (in SimpleGraph#splice!) by
fixing #5200 in a way that is compatible with graph fontiers. Instead of replacing
containers with many-to-many relationships, we now replace them with a pair of
sentinals (whits) that bracket them.
Thus a graph consisting of two containers, each containing ten resources, and a
dependency between the containers, which would have gone from 21 edges to 100
edges will instead have only 43, and a graph consisting of two containers (e.g.
stages) each containing a similar graph, which would have gone from 45 edges to
400 will only go to 95.
This change had minor consequences on many parts of the system and required lots
of small changes for consistancy, but the core of it is in Catelog#splice! (which
replaces SimpleGraph#splice!) and Transaction#eval_generate. Everything else is
just adjustments to the fact that some one-step edges are now two-step edges and
tests, event propagation, etc. need to reflect that.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The preceeding changes left some rough edges in the Transactions (a short,
badly named method that was only used in one place and would be clearer in-
line, a return value that was carfully retained and never used, etc.) This
commit clears some of that up.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is the core change of the ticket; rather than using a topological sort to statically
determine the order in which resources should be applied, we use the graph wrapper
introduced in the prior commit to dynamically determine the order in which to apply
resources based on 1) the status of the resource (ready, done) 2) the explicit &
implied dependencies, 3) the salted SHA1 of the title (for stability).
Further work is needed:
1) Resolving the handling of failed resources
2) Tests of the new behavior, to the extent posible
3) Newly-dead-code removal in simple_graph & transaction
4) Fix the name-prefix ordering hack in eval_generate by either:
a) Moving the logic into file
b) Refactoring Type#eval_generate to return a tree
c) ....?
5) Rough performace testing to look for hotspots
6) Investigation of possible interaction with #3788, #5351, #5414, #5876, #6020, #6810,
and #6944 which may simplify or complicate their resolution.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To implement graph frontiers transactions need to track information about the
catalog's relationship graph. For various reasons (serialzation, lifetime,
etc.) the data belongs with the transaction rather than the catalog or its
relationship graph. This commit introduces a facade around the property used
to cheat Demeter which has the apropriate lifetime and can be used to hold the
state information durring a traversal.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The previous commit left only one meaningful value for the method parameter
of generate_additional_resources, making it a constant not a parameter. This
commit removes it.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To implement #6911 we will need to be able to make incremental descisions about
order of application based only on the contents of the resource graph and local
"working data." This commit begins to pull the needed structure into a method
(visit_resources) while, for the moment, maintaining the original semantic.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The recent AIX work added a dependency on Puppet::Parameter::Keyvalue in
the group type, but didn't add the requisite require, causing failures
under some load orders.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There was a class instance variable that was used to determine if a resource
types's children should be processed before or after the parent, to support
the one type (tidy) which did this. Instead, we define a normal function in
Type to return false and override it in Tidy to return true.
Paired-with: Jesse Wolfe
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
err: Could not apply complete catalog: Could not autoload group: uninitialized constant Puppet::Property::KeyValue
Encountered this while generating certificate requests via
Puppet Strings/Faces, which doesn't load the full Puppet stack
by default.
Paired-With: Matt Robinson
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* feature/master/5528-certificates_signing_api:
(#5528) Add REST API for signing, revoking, retrieving, cleaning certs
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit introduces a new Indirector terminus, certificate_status,
which allows for signing, revoking, listing, and cleaning
SSL certificates over HTTP via REST. Documentation for these new
features can be found in our REST API documentation on the docs site:
http://docs.puppetlabs.com/guides/rest_api.html
This documentation has not been updated as of the writing of this
commit, but will be very soon. Puppet::SSL::Host is now fully integrated
into the Indirector.
Paired-with:Matt Robinson, Jacob Helwig, Jesse Wolfe, Richard Crowley,
Luke Kanies
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Update the desc block with information gleaned from #1469 and the code
about recurse => remote and other types of recursion.
The auto generated documentation was sparse and this is an area that often
comes up on the mailing list/IRC.
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | | |
* 2.6.x:
(#5908) Add support for new update-rc.d disable API
(#6862) Add a default subject for the mail_patches rake task
Fixed #6256 - Creation of rrd directory.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Added support for the new disable API to update-rc.d and
added spec tests to check this functionality. This change was made
because in versions of sysv-rc >= 2.88, 'update-rc.d stop' is broken and
actually enables the service.
We only changed the disable case as the enable case still works on
systems which use sysv-rc 2.88 or greater (atm, only Debian Lenny). We
wanted to change as little as possible because update-rc.d prints a
message stating that the new enable/disable API is unstable and may
change in the future.
Paired-with:Matt Robinson, Jacob Helwig
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* tickets/2.6.x/6256:
Fixed #6256 - Creation of rrd directory.
|
| | | |/
| | |/|
| | | |
| | | | |
Added :metrics to the settings used by the master
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The watch_file mechanism would refuse to monitor paths to files that
didn't exist. This patch makes it possible to watch a file that hasn't
been created yet, so when it is created, you manifests will get
reparsed.
Backported this change to 2.6.x
Paired-With: Jacob Helwig <jacob@puppetlabs.com>
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
into next
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The Augeas setm command can set the value of multiple nodes in a single
operation. Takes a base path, then a subnode path expression (relative
to the base) and then the value itself.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Moves the first node to the position of the second, deleting it and its
children if it already exists.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Uses Augeas' defnode command which creates a variable pointing to a node,
creating it with 'set' if it doesn't already exist.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Uses Augeas' native defvar command to define variables for certain expressions
that can then be referenced later with $variable.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
into next
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
updated spec
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If state is running, using svcadm enable is harmless and prevents errors with
execute().
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
into next
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* Alphabetized properties
* Added documentation for acceptable values
* Added the following properties:
atime
canmount
checksum
devices
exec
logbias
nbmand
readonly
refquota
refreservation
setuid
shareiscsi
sharesmb
version
volsize
vscan
xattr
zoned
vscan
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
into next
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This function allows you to dynamically generate resources,
passing them as a hash to the create_resources function.
This was originally written to be used together with an ENC.
Resources can be programitally generated as yaml and passed to a class.
classes:
webserver::instances:
instances:
instance1:
foo: bar
instance2:
foo: blah
Then puppet code can consume the hash parameters and convert then into resources
class webserver::instances (
$instances = {}
) {
create_resources('webserver::instance', $instances)
}
Now I can dynamically determine how webserver instances are deployed to nodes
by updating the YAML files.
|