Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

updated docs, coverage skips, stopwords, and README

  • Loading branch information...
commit 9936b0897f976100240cfb1104d713937b3840df 1 parent 186f48d
@dagolden authored
Showing with 123 additions and 17 deletions.
  1. +69 −4 README.pod
  2. +6 −5 dist.ini
  3. +2 −4 lib/Pantry/App/Command.pm
  4. +46 −4 pod/bin/pantry
View
73 README.pod
@@ -48,20 +48,31 @@ Prints to STDOUT a list of nodes managed within the pantry.
=head2 Managing nodes
+In this section, when a node NAME is required, the name is
+expected to be a valid DNS name or IP address. The name
+will be converted to lowercase for consistency.
+
+Also, whenever a command takes a single 'node NAME' target,
+you may give a single dash ('-') as the NAME and the command
+will be run against a list of nodes read from STDIN.
+
+You can combine this with the C<pantry list> command to do
+batch operations. For example, to sync all nodes:
+
+ $ pantry list nodes | pantry sync node -
+
=head3 create
$ pantry create node NAME
-Creates a node configuration file for the given C<NAME>. The C<NAME>
-must be a valid DNS name or IP address.
+Creates a node configuration file for the given C<NAME>.
=head3 rename
$ pantry rename node NAME DESTINATION
Renames a node to a new name. The old node data file
-is renamed. The C<NAME> must exist and the
-C<DESTINATION> must be a valid DNS name or IP address.
+is renamed. The C<NAME> must exist.
=head3 delete
@@ -151,6 +162,21 @@ The resulting file must be valid JSON in a form acceptable to Chef. Generally,
you should use the C<apply> or C<strip> commands instead of editing the node
file directly.
+=head2 Getting help
+
+=head3 commands
+
+ $ pantry commands
+
+This gives a list of all pantry commands with a short description of each.
+
+=head3 help
+
+ $ pantry help COMMAND
+
+This gives some detailed help for a command, including the options and
+arguments that may be used.
+
=head1 AUTHENTICATION
C<pantry> relies on OpenSSH for secure communications with managed nodes,
@@ -185,6 +211,45 @@ C<ssh-add>:
See the documentation for C<ssh-add> for control over how long keys
stay unlocked.
+=head1 ROADMAP
+
+In the future, I hope to extend pantry to support some or all of the following:
+
+=over 4
+
+=item *
+
+Chef role creation and application
+
+=item *
+
+environments
+
+=item *
+
+tagging nodes
+
+=item *
+
+searching nodes based on configuration
+
+=item *
+
+data bags
+
+=item *
+
+cookbook download from Opscode community repository
+
+=item *
+
+bootstrapping Chef over ssh
+
+=back
+
+If you are interested in contributing features or bug fixes, please let me
+know!
+
=head1 SEE ALSO
Inspiration for this tool came from similar chef-solo management tools.
View
11 dist.ini
@@ -13,13 +13,14 @@ match = ^dev_notes/.*
[@DAGOLDEN]
:version = 0.028
no_bugtracker = 1
-stopwords = subcommand
+stopwords = DNS
stopwords = OpenSSH
+stopwords = ROADMAP
stopwords = littlechef
-stopwords = subshell
-stopwords = wildcard
-stopwords = DNS
-stopwords = subkeys
stopwords = runlist
+stopwords = subcommand
+stopwords = subkeys
+stopwords = subshell
stopwords = thawer
+stopwords = wildcard
View
6 lib/Pantry/App/Command.pm
@@ -227,14 +227,12 @@ sub data_options {
1;
=for Pod::Coverage
+command_type
+valid_types
data_options
-help_type
options
options_desc
pantry
-target_desc
-target_description
-target_usage
validate
=head1 DESCRIPTION
View
50 pod/bin/pantry
@@ -40,20 +40,31 @@ Prints to STDOUT a list of nodes managed within the pantry.
=head2 Managing nodes
+In this section, when a node NAME is required, the name is
+expected to be a valid DNS name or IP address. The name
+will be converted to lowercase for consistency.
+
+Also, whenever a command takes a single 'node NAME' target,
+you may give a single dash ('-') as the NAME and the command
+will be run against a list of nodes read from STDIN.
+
+You can combine this with the C<pantry list> command to do
+batch operations. For example, to sync all nodes:
+
+ $ pantry list nodes | pantry sync node -
+
=head3 create
$ pantry create node NAME
-Creates a node configuration file for the given C<NAME>. The C<NAME>
-must be a valid DNS name or IP address.
+Creates a node configuration file for the given C<NAME>.
=head3 rename
$ pantry rename node NAME DESTINATION
Renames a node to a new name. The old node data file
-is renamed. The C<NAME> must exist and the
-C<DESTINATION> must be a valid DNS name or IP address.
+is renamed. The C<NAME> must exist.
=head3 delete
@@ -143,6 +154,21 @@ The resulting file must be valid JSON in a form acceptable to Chef. Generally,
you should use the C<apply> or C<strip> commands instead of editing the node
file directly.
+=head2 Getting help
+
+=head3 commands
+
+ $ pantry commands
+
+This gives a list of all pantry commands with a short description of each.
+
+=head3 help
+
+ $ pantry help COMMAND
+
+This gives some detailed help for a command, including the options and
+arguments that may be used.
+
=head1 AUTHENTICATION
C<pantry> relies on OpenSSH for secure communications with managed nodes,
@@ -177,6 +203,22 @@ C<ssh-add>:
See the documentation for C<ssh-add> for control over how long keys
stay unlocked.
+=head1 ROADMAP
+
+In the future, I hope to extend pantry to support some or all of the following:
+
+=for :list
+* Chef role creation and application
+* environments
+* tagging nodes
+* searching nodes based on configuration
+* data bags
+* cookbook download from Opscode community repository
+* bootstrapping Chef over ssh
+
+If you are interested in contributing features or bug fixes, please let me
+know!
+
=head1 SEE ALSO
Inspiration for this tool came from similar chef-solo management tools.
Please sign in to comment.
Something went wrong with that request. Please try again.