diff --git a/lib/puppet/provider/elasticsearch_user/elasticsearch_users.rb b/lib/puppet/provider/elasticsearch_user/elasticsearch_users.rb index 9bfe962..ba47d9e 100644 --- a/lib/puppet/provider/elasticsearch_user/elasticsearch_users.rb +++ b/lib/puppet/provider/elasticsearch_user/elasticsearch_users.rb @@ -1,15 +1,16 @@ require File.join(File.dirname(__FILE__), '..', '..', '..', 'puppet/provider/elastic_user_command') Puppet::Type.type(:elasticsearch_user).provide( :elasticsearch_users, :parent => Puppet::Provider::ElasticUserCommand ) do desc 'Provider for OSS X-Pack user resources.' + confine :exists => "#{homedir}/bin/elasticsearch-users" has_feature :manages_plaintext_passwords mk_resource_methods commands :users_cli => "#{homedir}/bin/elasticsearch-users" commands :es => "#{homedir}/bin/elasticsearch" end diff --git a/lib/puppet/provider/elasticsearch_user/users.rb b/lib/puppet/provider/elasticsearch_user/users.rb index 08f01a8..83e02ee 100644 --- a/lib/puppet/provider/elasticsearch_user/users.rb +++ b/lib/puppet/provider/elasticsearch_user/users.rb @@ -1,16 +1,25 @@ require File.join(File.dirname(__FILE__), '..', '..', '..', 'puppet/provider/elastic_user_command') Puppet::Type.type(:elasticsearch_user).provide( :users, :parent => Puppet::Provider::ElasticUserCommand ) do desc 'Provider for X-Pack file (users) user resources.' - confine :false => (Puppet::FileSystem.exist? "#{homedir}/bin/elasticsearch-users") + + # Prefer the newer 'elasticsearch-users' command provider + # if the 'elasticsearch_users' command exists. + # The logic looks a bit backwards here, but that's because + # Puppet evals the 'confine' statement early on. + # So we could hit false-positives due to the package + # being installed in the same Puppet run. + confine :true => begin + false if File.exist?("#{homedir}/bin/elasticsearch-users") + end has_feature :manages_plaintext_passwords mk_resource_methods commands :users_cli => "#{homedir}/bin/x-pack/users" commands :es => "#{homedir}/bin/elasticsearch" end