31 lines
774 B
Ruby
31 lines
774 B
Ruby
require "vagrant/util/template_renderer"
|
|
|
|
module Vagrant
|
|
module Action
|
|
module Builtin
|
|
# This class validates the configuration and raises an exception
|
|
# if there are any validation errors.
|
|
class ConfigValidate
|
|
def initialize(app, env)
|
|
@app = app
|
|
end
|
|
|
|
def call(env)
|
|
if !env.has_key?(:config_validate) || env[:config_validate]
|
|
errors = env[:machine].config.validate(env[:machine])
|
|
|
|
if errors && !errors.empty?
|
|
raise Errors::ConfigInvalid,
|
|
errors: Util::TemplateRenderer.render(
|
|
"config/validation_failed",
|
|
errors: errors)
|
|
end
|
|
end
|
|
|
|
@app.call(env)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|