diff --git a/plugins/provisioners/cfengine/config.rb b/plugins/provisioners/cfengine/config.rb index 7d00b1c8c..a209c5257 100644 --- a/plugins/provisioners/cfengine/config.rb +++ b/plugins/provisioners/cfengine/config.rb @@ -3,6 +3,7 @@ require "vagrant" module VagrantPlugins module CFEngine class Config < Vagrant.plugin("2", :config) + attr_accessor :extra_agent_args attr_accessor :classes attr_accessor :deb_repo_file attr_accessor :deb_repo_line @@ -20,6 +21,7 @@ module VagrantPlugins @classes = UNSET_VALUE @deb_repo_file = UNSET_VALUE @deb_repo_line = UNSET_VALUE + @extra_agent_args = UNSET_VALUE @force_bootstrap = UNSET_VALUE @install = UNSET_VALUE @mode = UNSET_VALUE @@ -42,6 +44,8 @@ module VagrantPlugins @deb_repo_line = "deb http://cfengine.com/pub/apt $(lsb_release -cs) main" end + @extra_agent_args = nil if @extra_agent_args == UNSET_VALUE + @force_bootstrap = false if @force_bootstrap == UNSET_VALUE @install = true if @install == UNSET_VALUE diff --git a/plugins/provisioners/cfengine/provisioner.rb b/plugins/provisioners/cfengine/provisioner.rb index 95ea19a3a..0b18b1ccd 100644 --- a/plugins/provisioners/cfengine/provisioner.rb +++ b/plugins/provisioners/cfengine/provisioner.rb @@ -21,7 +21,7 @@ module VagrantPlugins @machine.ui.info(I18n.t("vagrant.cfengine_single_run_execute")) path = Pathname.new(@config.run_file).expand_path(@machine.env.root_path) machine.communicate.upload(path.to_s, @config.upload_path) - cfagent("-KI -f #{@config.upload_path}#{cfagent_classes_args}") + cfagent("-KI -f #{@config.upload_path}#{cfagent_classes_args}#{cfagent_extra_args}") end end @@ -46,6 +46,8 @@ module VagrantPlugins # Returns the arguments for the classes configuration if they are # set. + # + # @return [String] def cfagent_classes_args return "" if !@config.classes @@ -53,6 +55,14 @@ module VagrantPlugins return " #{args}" end + # Extra arguments for calles to cf-agent. + # + # @return [String] + def cfagent_extra_args + return "" if !@config.extra_agent_args + return " #{@config.extra_agent_args}" + end + # This handles checking if the CFEngine installation needs to # be bootstrapped, and bootstraps if it does. def handle_cfengine_bootstrap