OpenSearch/distribution
Ryan Ernst a052dfeb38 Plugins: Reduce complexity of plugin cli
The plugin cli currently is extremely lenient, allowing most errors to
simply be logged. This can lead to either corrupt installations (eg
partially installed plugins), or confused users.

This change rewrites the plugin cli to have almost no leniency.
Unfortunately it was not possible to remove all leniency, due in
particular to how config files are handled.

The following functionality was simplified:
* The format of the name argument to install a plugin is now an official
  plugin name, maven coordinates, or a URL.
* Checksum files are required, and only checked, for official plugins
  and maven plugins. Checksums are also only SHA1.
* Downloading no longer uses a separate thread, and no longer has a timeout.
* Installation, and removal, attempts to be atomic. This only truly works
  when no config or bin files exist.
* config and bin directories are verified before copying is attempted.
* Permissions and user/group are no longer set on config and bin files.
  We rely on the users umask.
* config and bin directories must only contain files, no subdirectories.
* The code is reorganized so each command is a separate class. These
  classes already existed, but were embedded in the plugin cli class, as
  an extra layer between the cli code and the code running for each command.
2016-01-31 20:30:45 -08:00
..
deb Remove wildcard imports 2015-12-18 12:43:47 -08:00
integ-test-zip Remove wildcard imports 2015-12-18 12:43:47 -08:00
licenses Update lucene to r1725675 2016-01-20 03:32:51 -05:00
rpm Remove wildcard imports 2015-12-18 12:43:47 -08:00
src/main Plugins: Reduce complexity of plugin cli 2016-01-31 20:30:45 -08:00
tar Remove wildcard imports 2015-12-18 12:43:47 -08:00
zip Remove wildcard imports 2015-12-18 12:43:47 -08:00
build.gradle Remove wildcard imports 2015-12-18 12:43:47 -08:00