diff --git a/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb b/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb index 3c3bbf1..f2885da 100644 --- a/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb +++ b/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb @@ -31,8 +31,7 @@ module Devops ::Validators::FieldValidator::Expires] set_field_validators :chef_client_options, [::Validators::FieldValidator::Nil, - ::Validators::FieldValidator::FieldType::String, - ::Validators::FieldValidator::NotEmpty] + ::Validators::FieldValidator::FieldType::String] def initialize d={} self.identifier = d["identifier"] diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 7cf84e8..08e4dc3 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -394,7 +394,7 @@ module Devops @out.flush cmd << " -j http://#{DevopsConfig.config[:address]}:#{DevopsConfig.config[:port]}/#{DevopsConfig.config[:url_prefix]}/v2.0/deploy/data/#{file}" else - if @deploy_env.chef_client_options + if @deploy_env.chef_client_options && !@deploy_env.chef_client_options.empty? cmd << " #{@deploy_env.chef_client_options}" else cmd << " -r #{deploy_info["run_list"].join(",")}" unless @server.stack.nil? diff --git a/devops-service/spec/executors/server_executor_spec.rb b/devops-service/spec/executors/server_executor_spec.rb index db48152..ce8135f 100644 --- a/devops-service/spec/executors/server_executor_spec.rb +++ b/devops-service/spec/executors/server_executor_spec.rb @@ -581,6 +581,12 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec expect(stubbed_knife).to receive(:ssh_stream).with(anything, 'chef-client --no-color -r role', any_args) deploy_server end + + it "doesn't use deploy_env's chef_client_options if it's blank string" do + deploy_env.chef_client_options = '' + expect(stubbed_knife).to receive(:ssh_stream).with(anything, 'chef-client --no-color', any_args) + deploy_server + end end it "uses server's key" do diff --git a/devops-service/spec/models/deploy_env/shared_deploy_env_specs.rb b/devops-service/spec/models/deploy_env/shared_deploy_env_specs.rb index e8e8b42..ffdd708 100644 --- a/devops-service/spec/models/deploy_env/shared_deploy_env_specs.rb +++ b/devops-service/spec/models/deploy_env/shared_deploy_env_specs.rb @@ -10,7 +10,7 @@ RSpec.shared_examples 'deploy env' do include_examples 'field type validation', :run_list, :not_nil, :maybe_empty_array, :run_list, :field_validator include_examples 'field type validation', :users, :not_nil, :maybe_empty_array, :field_validator include_examples 'field type validation', :expires, :maybe_nil, :non_empty_string, :field_validator - include_examples 'field type validation', :chef_client_options, :maybe_nil, :non_empty_string, :field_validator + include_examples 'field type validation', :chef_client_options, :maybe_nil, :maybe_empty_string, :field_validator it 'should be valid only with all users available' do expect(build(validated_model_name, users: ['root'])).to be_valid