Update packaging tests to work with meta plugins (#28336)

The current install_plugin() does not play well with meta plugins because 
it always checks for the plugin's descriptor file.

This commit changes the install_plugin() so that it only runs the install plugin 
command and lets the caller verify that the required files are correctly installed. 
It also adds a install_meta_plugin() function to install meta plugins.
This commit is contained in:
Tanguy Leroux 2018-01-25 08:50:16 +01:00 committed by GitHub
parent a57a0ae78b
commit f4d0cf55be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 12 deletions

View File

@ -30,7 +30,7 @@
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
# Install a plugin an run all the common post installation tests. # Install a plugin
install_plugin() { install_plugin() {
local name=$1 local name=$1
local path="$2" local path="$2"
@ -52,8 +52,6 @@ install_plugin() {
sudo -E -u $ESPLUGIN_COMMAND_USER bash -c "umask $umask && \"$ESHOME/bin/elasticsearch-plugin\" install -batch \"file://$path\"" sudo -E -u $ESPLUGIN_COMMAND_USER bash -c "umask $umask && \"$ESHOME/bin/elasticsearch-plugin\" install -batch \"file://$path\""
fi fi
assert_file_exist "$ESPLUGINS/$name"
assert_file_exist "$ESPLUGINS/$name/plugin-descriptor.properties"
#check we did not accidentially create a log file as root as /usr/share/elasticsearch #check we did not accidentially create a log file as root as /usr/share/elasticsearch
assert_file_not_exist "/usr/share/elasticsearch/logs" assert_file_not_exist "/usr/share/elasticsearch/logs"
@ -66,13 +64,6 @@ install_plugin() {
fi fi
} }
install_jvm_plugin() {
local name=$1
local path="$2"
install_plugin $name "$path" $3
assert_file_exist "$ESPLUGINS/$name/$name"*".jar"
}
# Remove a plugin and make sure its plugin directory is removed. # Remove a plugin and make sure its plugin directory is removed.
remove_plugin() { remove_plugin() {
local name=$1 local name=$1
@ -95,7 +86,7 @@ remove_plugin() {
# placements for non-site plugins. # placements for non-site plugins.
install_jvm_example() { install_jvm_example() {
local relativePath=${1:-$(readlink -m jvm-example-*.zip)} local relativePath=${1:-$(readlink -m jvm-example-*.zip)}
install_jvm_plugin jvm-example "$relativePath" $2 install_plugin jvm-example "$relativePath" $2
bin_user=$(find "$ESHOME/bin" -maxdepth 0 -printf "%u") bin_user=$(find "$ESHOME/bin" -maxdepth 0 -printf "%u")
bin_owner=$(find "$ESHOME/bin" -maxdepth 0 -printf "%g") bin_owner=$(find "$ESHOME/bin" -maxdepth 0 -printf "%g")
@ -156,9 +147,11 @@ install_and_check_plugin() {
local full_name="$prefix-$name" local full_name="$prefix-$name"
fi fi
install_jvm_plugin $full_name "$(readlink -m $full_name-*.zip)" install_plugin $full_name "$(readlink -m $full_name-*.zip)"
assert_module_or_plugin_directory "$ESPLUGINS/$full_name" assert_module_or_plugin_directory "$ESPLUGINS/$full_name"
assert_file_exist "$ESPLUGINS/$full_name/plugin-descriptor.properties"
assert_file_exist "$ESPLUGINS/$full_name/$full_name"*".jar"
# analysis plugins have a corresponding analyzers jar # analysis plugins have a corresponding analyzers jar
if [ $prefix == 'analysis' ]; then if [ $prefix == 'analysis' ]; then
@ -176,6 +169,17 @@ install_and_check_plugin() {
done done
} }
# Install a meta plugin
# $1 - the plugin name
# $@ - all remaining arguments are jars that must exist in the plugin's
# installation directory
install_meta_plugin() {
local name=$1
install_plugin $name "$(readlink -m $name-*.zip)"
assert_module_or_plugin_directory "$ESPLUGINS/$name"
}
# Compare a list of plugin names to the plugins in the plugins pom and see if they are the same # Compare a list of plugin names to the plugins in the plugins pom and see if they are the same
# $1 the file containing the list of plugins we want to compare to # $1 the file containing the list of plugins we want to compare to
# $2 description of the source of the plugin list # $2 description of the source of the plugin list