providers/docker: smarter about setting ID to nil for machine

This commit is contained in:
Mitchell Hashimoto 2014-05-05 21:35:08 -07:00
parent d526dd54fe
commit b26ecb0150
2 changed files with 16 additions and 10 deletions

View File

@ -143,6 +143,7 @@ module VagrantPlugins
b.use Call, IsState, :not_created do |env, b2| b.use Call, IsState, :not_created do |env, b2|
if env[:result] if env[:result]
b2.use Message, I18n.t("docker_provider.messages.not_created") b2.use Message, I18n.t("docker_provider.messages.not_created")
b2.use Destroy
next next
end end

View File

@ -7,9 +7,10 @@ module VagrantPlugins
end end
def call(env) def call(env)
env[:ui].info I18n.t("docker_provider.messages.destroying")
machine = env[:machine] machine = env[:machine]
# If the container actually exists, destroy it
if machine.state.id != :not_created
driver = machine.provider.driver driver = machine.provider.driver
# If we have a build image, store that # If we have a build image, store that
@ -20,7 +21,11 @@ module VagrantPlugins
end end
env[:build_image] = image env[:build_image] = image
env[:ui].info I18n.t("docker_provider.messages.destroying")
driver.rm(machine.id) driver.rm(machine.id)
end
# Otherwise, always make sure we remove the ID
machine.id = nil machine.id = nil
@app.call(env) @app.call(env)