Move provisioner superclass into the V1 namespace

This commit is contained in:
Mitchell Hashimoto 2012-06-26 14:59:26 -07:00
parent 798704c6d2
commit 2e00a007ce
9 changed files with 58 additions and 58 deletions

View File

@ -73,7 +73,6 @@ module Vagrant
autoload :Guest, 'vagrant/guest'
autoload :Hosts, 'vagrant/hosts'
autoload :Plugin, 'vagrant/plugin'
autoload :Provisioners, 'vagrant/provisioners'
autoload :Registry, 'vagrant/registry'
autoload :SSH, 'vagrant/ssh'
autoload :TestHelpers, 'vagrant/test_helpers'

View File

@ -0,0 +1,50 @@
module Vagrant
module Plugin
module V1
# This is the base class for a provisioner for the V1 API. A provisioner
# is primarily responsible for installing software on a Vagrant guest.
class Provisioner
# The environment which provisioner is running in. This is the
# action environment, not a Vagrant::Environment.
attr_reader :env
# The configuration for this provisioner. This will be an instance of
# the `Config` class which is part of the provisioner.
attr_reader :config
def initialize(env, config)
@env = env
@config = config
end
# This method is expected to return a class that is used for
# configuring the provisioner. This return value is expected to be
# a subclass of {Config}.
#
# @return [Config]
def self.config_class
end
# This is the method called to "prepare" the provisioner. This is called
# before any actions are run by the action runner (see {Vagrant::Actions::Runner}).
# This can be used to setup shared folders, forward ports, etc. Whatever is
# necessary on a "meta" level.
#
# No return value is expected.
def prepare
end
# This is the method called to provision the system. This method
# is expected to do whatever necessary to provision the system (create files,
# SSH, etc.)
def provision!
end
# This is the method called to when the system is being destroyed
# and allows the provisioners to engage in any cleanup tasks necessary.
def cleanup
end
end
end
end
end

View File

@ -1,44 +0,0 @@
module Vagrant
module Provisioners
# The base class for a "provisioner." A provisioner is responsible for
# provisioning a Vagrant system.
#
# This has been abstracted out so it is easy to provide support for
# multiple solutions.
class Base
include Vagrant::Util
# The environment which provisioner is running in. This is the
# action environment, not a Vagrant::Environment.
attr_reader :env
# The configuration for this provisioner. This will be an instance of
# the `Config` class which is part of the provisioner.
attr_reader :config
def initialize(env, config)
@env = env
@config = config
end
# This method is expected to return a class that is used for configuration
# for the provisioner.
def self.config_class; end
# This is the method called to "prepare" the provisioner. This is called
# before any actions are run by the action runner (see {Vagrant::Actions::Runner}).
# This can be used to setup shared folders, forward ports, etc. Whatever is
# necessary on a "meta" level.
def prepare; end
# This is the method called to provision the system. This method
# is expected to do whatever necessary to provision the system (create files,
# SSH, etc.)
def provision!; end
# This is the method called to when the system is being destroyed
# and allows the provisioners to engage in any cleanup tasks necessary.
def cleanup; end
end
end
end

View File

@ -48,7 +48,7 @@ module VagrantPlugins
return
end
if !(provisioner <= Vagrant::Provisioners::Base)
if !(provisioner <= Vagrant::Plugin::V1::Provisioner)
errors.add(I18n.t("vagrant.config.vm.provisioner_invalid_class", :shortcut => shortcut))
end

View File

@ -6,7 +6,7 @@ module VagrantPlugins
# This class is a base class where the common functionality shared between
# chef-solo and chef-client provisioning are stored. This is **not an actual
# provisioner**. Instead, {ChefSolo} or {ChefServer} should be used.
class Base < Vagrant::Provisioners::Base
class Base < Vagrant::Plugin::V1::Provisioner
include Vagrant::Util::Counter
def initialize(env, config)
@ -15,10 +15,6 @@ module VagrantPlugins
config.provisioning_path ||= "/tmp/vagrant-chef-#{get_and_update_counter(:provisioning_path)}"
end
def prepare
raise ChefError, :invalid_provisioner
end
def verify_binary(binary)
# Checks for the existence of chef binary and error if it
# doesn't exist.

View File

@ -7,7 +7,7 @@ module VagrantPlugins
error_namespace("vagrant.provisioners.puppet")
end
class Puppet < Vagrant::Provisioners::Base
class Puppet < Vagrant::Plugin::V1::Provisioner
class Config < Vagrant::Plugin::V1::Config
attr_accessor :manifest_file
attr_accessor :manifests_path

View File

@ -5,7 +5,7 @@ module VagrantPlugins
error_namespace("vagrant.provisioners.puppet_server")
end
class PuppetServer < Base
class PuppetServer < Vagrant::Plugin::V1::Provisioner
class Config < Vagrant::Plugin::V1::Config
attr_accessor :puppet_server
attr_accessor :puppet_node

View File

@ -3,7 +3,7 @@ require "tempfile"
module VagrantPlugins
module Shell
class Provisioner < Vagrant::Provisioners::Base
class Provisioner < Vagrant::Plugin::V1::Provisioner
class Config < Vagrant::Plugin::V1::Config
attr_accessor :inline
attr_accessor :path

View File

@ -251,7 +251,9 @@ en:
shared_folder_nfs_owner_group: |-
Shared folder '%{name}': NFS does not support the owner/group settings.
provisioner_not_found: "The provisioner '%{shortcut}' doesn't exist."
provisioner_invalid_class: "The provisioner '%{shortcut}' must inherit from `Vagrant::Provisioners::Base`."
provisioner_invalid_class: |-
The provisioner '%{shortcut}' must inherit from
`Vagrant::Plugin::V1::Provisioner`."
#-------------------------------------------------------------------------------
# Translations for commands. e.g. `vagrant x`
@ -647,9 +649,6 @@ en:
running_client_again: "Running chef-client again (failed to converge)..."
running_solo: "Running chef-solo..."
running_solo_again: "Running chef-solo again (failed to converge)..."
invalid_provisioner: |-
Vagrant::Provisioners::Chef is not a valid provisioner! Use
ChefSolo or ChefClient instead.
missing_shared_folders: |-
Shared folders that Chef requires are missing on the virtual machine.
This is usually due to configuration changing after already booting the