| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
|
|
|
|
| |
* defaults to "facter"
|
|
|
|
|
|
| |
* Remove require statements
* explicity define namespace modules/classes for
Puppet::Resource::Status to avoid require dependency cycle.
|
|
|
|
|
|
|
| |
Syck/Yaml quietly passes on undefined classes as strings, so that if objects
of those classes are loaded and re-serialized they passthrough unmodified.
While not technically correct, it's still the POLS behavior, and we now support
it.
|
|
|
|
| |
"clientcert"
|
|
|
|
|
|
|
|
|
|
|
|
| |
deprecation warnings from Rails ActiveSupport
The metaid.rb file came straight from why the lucky stiff's "seeing
metaclasses clearly" article. Rails used this too, but they recently
deprecated the name metaclass in favor of singleton_class to match what
ruby-core decided to do. meta, eigen and singlton class were all
suggested and in the end singleton was agreed upon.
http://redmine.ruby-lang.org/issues/show/1082
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you have the following code or equivalent:
file { "/foo": content => "{md5}foobar" }
Puppet will attempt to pull the content associated with
that file from whatever the default filebucket is for the
resource in question.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
| |
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The FileBucket code had a bunch of checksum code
that was already available in a library, and it used a
checksum format (type + data) that was incompatible with
what we were using everywhere else.
This just fixes that code duplication.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
| |
Signed-off-by: Ross West <westr@connection.ca>
|
|
|
|
| |
Code cleanup/spacing fixed
|
|
|
|
|
|
|
|
|
|
|
| |
Description:
- Initial submission of new freebsd package manager for ports (portupgrade.rb)
Dependencies:
- Ports system application (ports-mgmt/portupgrade)
Notes:
- Package[:name] needs to be the origin code of the port (eg: "ports-mgmt/portupgrade")
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Node#environment wasn't being set correctly, in
that it had to have the right answer out of the gate
or it was never corrected.
It was lazy-binding in 0.25 but I managed to make
it no longer that way. This resulted in the environment
basically not being set during compilation, so the default
server environment was always used.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
| |
LDAP group membership comparison was happening on an unsorted string.
Sorting the string for now, may want to do something smarter by
comparing something other than strings later.
Signed-off-by: Matt Robinson <matt@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
| |
"${myclass::var}" was lexed as a CLASSNAME instead of a VARIABLE token,
giving an error while parsing because a rvalue can't be a bare CLASSNAME
token.
This commit (based of Brice's) fixes it by restricting the contexts in which
the CLASSNAME and CLASSREF tokens are acceptable, analagous with the handling
for NAME tokens.
|
|
|
|
|
|
|
|
|
|
|
| |
"${myclass::var}" was lexed as a CLASSNAME instead of a VARIABLE token,
giving an error while parsing because a rvalue can't be a bare CLASSNAME
token.
This patch fixes the issue by making VARIABLE lexing higher priority than
CLASSNAME.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
|
|
|
|
|
| |
Remove a stale comment about how settings work
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
| |
There are two codepaths for setting settings in the settings object: one
for setting individual settings, and one was setting settings in mass,
like in the system settings file.
This patch unifies some of that logic.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Historically, the Puppet[:name] setting has been settable, but the
results of chaning it are poorly defined.
The switch to modes instead of executable names seems like a good time
to disable this complexity.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
| |
An incorrect variable name is used in an error message, causing the
error to throw an error.
This can't appear in the wild, since it's actually just an argument
check for the defaults.rb file.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
A process's settings are now determined by Puppet::Mode rather than by
the executable name.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
It's useful to be able to require specific applications' ruby source by
name, even if we aren't about to run them.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Fix breakage caused by changing the name of "puppetca"
It's not clear to me what the ideal answer for this is: I don't think
that "cert" should be a type of Puppet::Mode, so I'm not sure how to
model it more intelligently than as the command-line name.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
| |
defaults.rb was cluttered with unnessesary "self." decorations.
I removed them in preparation for a refactor of where settings are
handled, but that change has been postponed.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
Use a predicate method to check if we're running as root, rather than
comparing the effective user id
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
Use a predicate function on the Mode object instead of comparing with
the executable name everywhere
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
Update documentation strings everywhere to use single-executable
notation rather than the old executable names.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
| |
The puppet-internal settings sections aren't actually exposed to the
user, but to reduce confusion I've renamed them to be consistent with
the single-executable application names.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
| |
Add declarations for each application's run mode.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Because environments have to declare their mode before puppet tries to
load defaults.rb, it reduces the complexity considerably to have
application classes to load their lib dependencies at the last possible
moment.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
| |
Create a Mode class and Puppet.mode and application.mode methods
Mode can be "agent", "master", or "user". Each application sets a mode.
The Mode object has some smarts about the defaults for that mode.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
| |
The usage message should show the single-executable variant of commands.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
| |
move Util::CommandLine methods into instances instead of on the class,
as suggested by Markus
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The way stages were implemented caused backward compatibility
to be completely broken for 0.24.x.
This commit fixes that, mostly by assuming Stage[main] will be the
top node in the graph rather than Class[main].
Other stages are not supported in 0.24.x, and explicitly throw a warning
(although not an error).
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows you to specify a run stage for either
a class or a resource.
By default, all classes get directly added to the
'main' stage. You can create new stages as resources:
stage { [pre, post]: }
To order stages, use standard relationships:
stage { pre: before => Stage[main] }
Or use the new relationship syntax:
stage { pre: } -> Stage[main] -> stage { post: }
Then use the new class parameters to specify a stage:
class { foo: stage => pre }
If you set a stage on an individual resource, it will
fail; stages can only be set on class resources.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
| |
A simple fix for this one.
This doesn't fix the general case, just the --compile case.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
| |
We were previously just adding these values as variables in
the local scope, but we now add them to the resources so they
get passed to the client in the catalog and are thus inspectable.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Parser resources were not correctly being converted
to Puppet::Resource instances, which meant a ton more
information was being kept in the catalog.
This probably didn't have much affect in real life, because
of how we serialized, but it made debugging a lot harder.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
It was previously not allowing false values.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
| |
This is accomplished by adding the --force-yes option to the apt-get
command line when a package version is specified.
Signed-off-by: Paul Lathrop <plathrop@digg.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If the target is not specified it is automatically set to the user's
home directory. If the user does not exist when the generation of
the target path occurs then an ArgumentError exception is raised
but not caught. This patch catches the ArgumentError and raises
a Puppet::Error instead to more gracefully notify the user and allow
any remaining resources to be applied.
Signed-off-by: Sean Millichamp <sean@bruenor.org>
|
| |
|
|
|
|
| |
Adds a --signed option to the --list feature that only displays signed certificates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now specify relationships directly in the language:
File[/foo] -> Service[bar]
Specifies a normal dependency while:
File[/foo] ~> Service[bar]
Specifies a subscription.
You can also do relationship chaining, specifying multiple
relationships on a single line:
File[/foo] -> Package[baz] -> Service[bar]
Note that while it's confusing, you don't have to have all
of the arrows be the same direction:
File[/foo] -> Service[bar] <~ Package[baz]
This can provide some succinctness at the cost of readability.
You can also specify full resources, rather than just
resource refs:
file { "/foo": ensure => present } -> package { bar: ensure => installed }
But wait! There's more! You can also specify a subscription on either side
of the relationship marker:
yumrepo { foo: .... }
package { bar: provider => yum, ... }
Yumrepo <| |> -> Package <| provider == yum |>
This, finally, provides easy many to many relationships in Puppet, but it also opens
the door to massive dependency cycles. This last feature is a very powerful stick,
and you can considerably hurt yourself with it.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds HTTP response decompression (both gzip and deflate streams).
This feature is disabled by default, and enabled with --http_compression.
This feature can be activated only if the local ruby version supports the
zlib ruby extension.
HTTP response decompression is active for all REST communications and file
sourcing.
To enable http compression on the server side, it is needed to use a
reverse proxy like Apache or Nginx with adhoc configuration:
Nginx:
gzip on;
gzip_types text/pson text/json text/marshall text/yaml application/x-raw text/plain;
Apache:
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/plain text/pson text/json text/marshall text/yaml application/x-raw
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
|
|
|
|
|
|
|
|
|
| |
This was a classic semantic merge conflict; one patch adds a new type of
checksum, with a routine to compute it on files; the other adds streams with
routines to compute all the existing checksum types on them. They merge
cleanly but theresult is incorrect.
This patch completes the square by adding a none_stream routine to not-compute
a checksum on a stream.
|
|
|
|
|
|
|
|
|
|
| |
This patch moves file content writing to the content properties and
always write (or read) contents by chunks.
This reduces drastically puppetd memory consumption when handling large
sourced files.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
|
|
|
|
|
|
|
|
| |
This patch allows the puppetmaster to serve file chunks by chunks without
ever reading the file content in RAM.
This allows serving large files directly with the master without impacting
the master memory footprint.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
| |
|