| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
The auto-generated references are meant to be pithy, dense, and fast -- to be
references, not guides. The configuration reference was front-loaded with
several pages of explanatory text that properly belongs in the guides on the
docs site. This commit removes that text in preparation for a reorganization of
the docs.
This is a doc string only commit.
|
|
|
|
|
|
|
|
|
| |
Previously, the signals accepted by the agent and master daemons were only
documented in the configuration reference, which didn't make any particular
sense. This commit moves their documentation to a blurb in the relevant
man pages.
This is a doc string only commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we are asked to compile a catalog we need to update the set of known
resource types, along with the node declaration, from the pool of manifests on
disk. This is, obviously, a per-environment pool of resource types.
To reduce the scope of the race where an update to those manifest files on
disk can be updated during a compilation, we tried to cache the set of known
resources in the current thread at the start of compilation, then flush it
after compile finished and used the cache unconditionally if it was set.
Theoretically, this would assure us that we would parse the set of manifests
once, use them for the entire compile, flush the cache, and then carry on.
Practically, this was enforced as described: flush *after* the compile, assume
this would mean that it was clear at the start of the next compile.
That presumably worked more or less right until a change was made to push
extra data into the catalog at the start of the 2.6 series; that made
serialization of the catalog depend on the pool of known resource types.
When that happened we would reload the cache (and reparse the manifests)
during serialization, but after compilation ... and leave that in the thread
cache, so the precondition for the compiler was no longer true. It would see
the cache as of the end of the previous compile run, not the start of the next
compile run.
This, in turn, was what made Puppet wait for multiple runs of the agent before
showing you a change in your manifests under Passenger, but *not* under
Webrick: Passenger would reuse the same thread for the next request, cache in
place, while Webrick would create a new thread and (by side-effect) "flush"
the cache as the compiler expected.
To minimally fix this, with as little change of side-effect as possible, we
move the cache flush from after compile runs to before compile runs.
This might have minimal memory cost until another compile request runs in the
same thread, because we cache the data longer, but most models won't cause
that to be too much trouble.
Reviewed-By: Matt Robinson <matt@puppetlabs.com>
|
|
|
|
|
|
|
|
| |
It used to be that to list the faces available and their actions and
options, you had this legacy based face application. This functionality
has all been moved into the puppet help face application.
Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ticket/2.7rc/maint-doc_changes_without_failures
* ticket/2.7rc/maint-faces_docs_spec_fixes:
maint: Fix order dependent spec failure for face indirection
(#7690) Don't blow up when listing terminuses available for faces
maint: Dedup the loadpath so we don't have to walk it multiple times
Maint: Fix ellipses for short descriptions
Resolved Conflicts:
lib/puppet/interface/documentation.rb
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, in order to list the available terminuses for an indirected
face we loaded all the the terminuses in order to list them. This meant
that if a terminus like active_record didn't have the dependencies it
needed, the documentation would raise errors and not list terminuses.
<Puppet::Error: Could not autoload filename uninitialized constant Object::ActiveRecord>
Now we just list the terminuses available in the load path without
trying to load them. The terminus will still raise an error if you try
to use it without its dependencies being met.
Paired-with: Max Martin <max@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the user's path has duplicate entries, we end up looking at them
multiple times. This has bitten people in the past in that if you get a
lot of duplication it can make autloading a lot slower. Really the user
shouldn't be duplicating their path, but since we can't control that,
this is a safe fix to prevent them from having autoload slowness.
Paired-with: Max Martin <max@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, we were adding ellipsis to any short_description, which was
misleading; they were only necessary when we were truncating in the _middle_ of
a paragraph.
This commit changes the behavior, and updates the tests to show when we expect
ellipsis.
Paired-with: Matt Robinson <matt@puppetlabs.com>
|
| |
| |
| |
| |
| | |
Termini lists are now being generated in the help templates. This commit
removes the hardcoded lists from each of the affected faces.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a rebase of the following commits:
* (#7563) Add a template for manpages
In order to generate manpages in a reasonably maintainable way, we need
to format text from the Faces help API for use with Ronn
(https://github.com/rtomayko/ronn/).
This commit adds a man template to the help templates folder; it has
been verified to generate Ronn-friendly input text. It isn't currently
called by any applications, but can be demonstrated by exchanging it for
face.erb.
* (#7634) Change ERB trim mode used in the Faces help API
<%= something -%> tags (note the minus) are unavoidably necessary at at
least one point in the Faces help templates. ERB objects instantiated
with the % trim mode will blow up horribly whenever one of these tags
appears.
This commit changes the trim mode to `-` and refactors all help
templates accordingly.
* (#7563) Refactor short help templates
This commit attempts to bring the short face and action help templates closer to the goals of fitting cleanly on one screen, fitting the prevailing *nix aesthetic, and being useful without overwhelming the user.
|
| |
| |
| |
| |
| |
| | |
Faces help output relies on input from the documentation methods in each
of the faces to be documented. This commit calls those methods in each of our
faces, with varying levels of detail depending on their complexity.
|
| |
| |
| |
| |
| |
| |
| | |
Auto-generated short descriptions cut off at five lines with no
indication that they are truncated.
This commit adds ellipsis in brackets to indicate incompleteness.
|
|/
|
|
|
|
|
|
|
|
| |
Since some actions take arguments and some do not, action synopses were
incomplete and ambiguous.
This commit adds a method for explicitly declaring what argument(s) an
action takes, and places the arguments at the appropriate spot in the
action's synopsis. By convention, individual arguments should be wrapped
in angle brackets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The commit df088c9ba16dce50c17a79920c1ac186db67b9e9 introduced a regression
where
$files = ["/tmp/one", "/tmp/two"]
file { "/tmp/one": content => "one", }
file { "/tmp/two": content => "two", }
file { "/tmp/three":
content => "three",
require => File[$files],
}
no longer worked. File[$files] was concatenating the elements of $files to
create a single title, instead of expanding to multiple File dependencies.
Since resource reference titles are implicitly wrapped in an array, if one of
the elements of that array is a variable containing an array, the list of
titles is a nested array. Prior to the change causing the regression, we would
flatten arrays when evaluating them, under certain circumstances. We no longer
ever flatten AST arrays when evaluating them, so anywhere that we really do
need a flattened array, we have to manually flatten it.
ResourceReference expects its list of titles to be a single, flat list of
titles, so we have to make it so.
Paired-with: Jacob Helwig <jacob@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
| |
Also removed some monkey patching on Signal that would have
theoretically done this without having to explicitly call trap on Signal
in order to stub it, but it's not working.
This allows us to ctrl+c (send SIGINT) in the middle of a spec run.
Paired-with: Josh Cooper <josh@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When configuring the Indirector routes, we should only try loading the
Terminus classes that are referenced by the configuration.
Previously, we were loading all Terminus classes, which would cause
errors if we didn't have all of the prerequisites for all of them,
even if the ones with missing prerequisites weren't being used by the
configuration.
Paired-with: Nick Lewis <nick@puppetlabs.com>
|
|\
| |
| |
| |
| |
| | |
* ticket/2.7.x/7507-filter_19_failures:
(#7507) Add ability to filter Ruby 1.9 spec failures
(#7507) Fix when_invoked action specs in Ruby 1.9
|
| |
| |
| |
| |
| |
| |
| |
| | |
Ruby 1.9 is strict about argument arity for methods that are
metaprogrammatically defined. A ton of specs that were setting up
when_invoked didn't pass options even though they should have been.
Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This method was relying on the implicit join in Ruby 1.8's Array#to_s, eg.
[1,2,3].to_s => "123". The behavior in Ruby 1.9 is more akin to Array#inspect,
eg. [1,2,3].to_s => "[1, 2, 3]". Since the array we were building was lines
to be printed, the latter behavior is incorrect. So we just join into a
single string, which prints consistently in all versions of Ruby.
Paired-With: Josh Cooper
Original patch by Aria Stewart <aredridel@nbtsc.org>
|
|/
|
|
|
|
|
|
|
| |
This had been coming from 'cgi', but in Ruby 1.9, cgi no longer requires
English. Since we use $CHILD_STATUS when execing, we need to have it available,
so require it manually. This also provides the other named special globals,
should we choose to use them.
Paired-With: Josh Cooper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instance_methods in Ruby 1.8.7 returns an array of strings, but returns
an array of symbols in 1.9.2. This manifested itself when running the
tests because in 1.9.2 we were trying to call sub on a sybmol. The
original proposed solution was to monkey patch symbols to have a sub
method, but this didn't deal with the real issue of need to check
whether a method was defined, and actually made it worse.
Turns out that checking for the presence of a method in an array that
may contain symbols and may contain strings is better done by just
calling method_defined? instead.
This patch addresses all the places ack turned up the code doing this
include? check instead of directly calling method_defined?.
Thanks to Alex Sharp ajsharp@gmail.com for pointing out the Ruby 1.9
problems and working toward a solution.
Reviewed-by: Nick Lewis <nick@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As with the previous commit, there was a problem loading a face because
Ruby 1.9.2 doesn't like using non-standard ascii characters without
declaring the encoding at the top of the file.
SyntaxError Exception: /Users/matthewrobinson/work/puppet/lib/puppet/face/resource.rb:10:
invalid multibyte char (US-ASCII)
Rather than declare the encoding to allow the French word, I've
translated it (after having to look it up myself).
Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The certificate face wasn't being loaded, but it wasn't clear from the
test failure why:
lib/puppet/interface.rb:61:in `[]': Could not find Puppet Face
:certificate (Puppet::Error)
The problem is that when the certificate face is required you get:
SyntaxError Exception:
/Users/matthewrobinson/work/puppet/lib/puppet/face/certificate.rb:11:
invalid multibyte char (US-ASCII)
However this error is caught and logged, but then ignored. This
behavior was a decision in #7314 and is currently under review.
A space character in the description was ASCII 160 instead of the typical ASCII 32
Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>
|
|
|
|
|
|
|
|
| |
This is a doc string only commit.
The metaparameter reference was not clear about subscribe and notify being
supersets of require and before, respectively. This commit also cleans up
some unrelated quoting, arrow-alignment, and language flow issues.
|
|
|
|
|
|
|
| |
We were leaking some mocks in the network device singleton from
tests to tests.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
|
|
|
|
|
|
| |
This is a different fix than the one proposed by Stefan Schulte, based
on Luke comments.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
|
|
|
|
|
|
|
| |
Since we never shipped this in a real release, we don't need to maintain
compatibility. So, remove it entirely from the codebase.
Reviewed-By: Max Martin <max@puppetlabs.com>
|
|\ |
|
| |
| |
| |
| |
| | |
The patch from issue #7221 permits indented heredocs. This patch takes advantage
of that to make the doc strings less messy.
|
| |
| |
| |
| | |
We haven't implemented the `man` action yet, so let's not mention it until we have.
|
| |
| |
| |
| |
| |
| | |
This patch adds documentation strings to most of the faces, actions, and options
introduced in 2.7.0. There are a small number of TK notes remaining, and longer strings
have not been indented to take advantage of the patch from issue #7221.
|
| |
| |
| |
| |
| |
| | |
Faces isn't a face, interestingly, so it doesn't get a summary line in the puppet help.
This will output the appropriately-formatted manpage text using the normal
mechanism.
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
By default, it is useful to permit an individual node to query
information about itself, and there is no good reason to reject
this by default.
Paired-With: Nick Lewis
|
| |
| |
| |
| |
| |
| |
| |
| | |
In order to make the error message more visible to the user,
we tell them about the puppet help command but don't automatically run it,
so the error doesn't scroll off the screen.
Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Where we need special support for :for_humans as an alias for :console, call
it out in comments. This makes it clear to someone who wonders why what the
actual underlying purpose of the whole thing is.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we have unified things, stop using the compatibility name in favour
of the new :console name for the output format. No functional effect beyond
avoiding a deprecated output mode.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We now move over to using only network FormatHandler rendering code for
output, ditching all the support we had in the application.
We include a compatibility shim to ensure that the :for_humans format that was
supported for a while is now an alias for the :console format we are using
moving forward.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a console rendering format to the Network FormatHandler subsystem;
it provides the same human-friendly textual rendering as the Faces application
did, except it uses JSON rather than PP as the fall-back rendering mode.
This paves the path for unification of all formatting into the same subsystem,
rather than the half-measures we used to have.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
|
|\ \
| | |
| | |
| | | |
'bug/2.7.x/7277-improve-secret-agent-face-and-supporting-actions' into 2.7.x
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This cleans up the behaviours and ensures that we have parity between the
basic actions of the agent and the secret_agent.
Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was unconditionally removing the trailing file separator ('/'), which is
only valid when the file separator isn't the entire path. This fixes 'puppet
resource file <path>'.
Paired-With: Jacob Helwig
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We refer to rendering formats pretty consistently as `json`, `yaml`, `s`, and
so forth; unqualified names.
On the other hand, we refer to the rendering hooks *mostly* as `to_*`, except
the `:for_humans` and `:json` formats. Which is kind of confusing because of
the internal inconsistency, and because it doesn't match the public name.
Fix the code to resolve both, so the `to_*` format still works, but we mostly
expect to use the `*` version, to match public expectation.
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Turns out that String#each_line on Ruby 1.8.5 only takes a block, and will not
return an enumerable. Rewrite to use split(/\n/) which has the same effect
but works on all our platforms.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
The environment returned by uri2indirection used to be a
Puppet::Node::Environment. When this changed to simply being the
string of the environment name, this broke assumptions made in other
areas of the code.
Paired-with: Nick Lewis <nick@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of just returning vague values, return useful information when
rendering for a human being.
Based on work by Luke Kaines <luke@puppetlabs.com> in
https://github.com/lak/puppet/commit/a61cc770ca9b2cad744b5b21b9776a834d6ca895
Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need a boilerplate application file and class to expose a face on the
command line; this adds that for the plugin face, to expose it to users.
Based on work by Luke Kaines <luke@puppetlabs.com> in
https://github.com/lak/puppet/commit/a61cc770ca9b2cad744b5b21b9776a834d6ca895
Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We want to be able to document the data returned from an action, since this is
one of the most critical parts of the API for Ruby developers. This adds a
multiline documentation block that captures that.
Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>
|