core: call #state in any #action call [GH-4513]
This commit is contained in:
parent
bb22a37ed1
commit
f0a73c7c05
|
@ -29,6 +29,7 @@ BUG FIXES:
|
||||||
- core: Box downloads recognize more complex content types that include
|
- core: Box downloads recognize more complex content types that include
|
||||||
"application/json" [GH-4525]
|
"application/json" [GH-4525]
|
||||||
- core: If all sub-machines are `autostart: false`, don't start any. [GH-4552]
|
- core: If all sub-machines are `autostart: false`, don't start any. [GH-4552]
|
||||||
|
- core: Update global-status state in more cases. [GH-4513]
|
||||||
- commands/box: `--cert` flag works properly. [GH-4691]
|
- commands/box: `--cert` flag works properly. [GH-4691]
|
||||||
- command/docker-logs: Won't crash if container is removed. [GH-3990]
|
- command/docker-logs: Won't crash if container is removed. [GH-3990]
|
||||||
- command/docker-run: Synced folders will be attached properly. [GH-3873]
|
- command/docker-run: Synced folders will be attached properly. [GH-3873]
|
||||||
|
|
|
@ -178,7 +178,19 @@ module Vagrant
|
||||||
provider: @provider.to_s
|
provider: @provider.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
action_raw(name, callable, extra_env)
|
# Call the action
|
||||||
|
result = action_raw(name, callable, extra_env)
|
||||||
|
|
||||||
|
# Call the state method so that we update our index state. Don't
|
||||||
|
# worry about exceptions here, since we just care about updating
|
||||||
|
# the cache.
|
||||||
|
begin
|
||||||
|
# Called for side effects
|
||||||
|
self.state
|
||||||
|
rescue Errors::VagrantError
|
||||||
|
end
|
||||||
|
|
||||||
|
return result
|
||||||
end
|
end
|
||||||
rescue Errors::EnvironmentLockedError
|
rescue Errors::EnvironmentLockedError
|
||||||
raise Errors::MachineActionLockedError,
|
raise Errors::MachineActionLockedError,
|
||||||
|
|
|
@ -216,6 +216,10 @@ describe Vagrant::Machine do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#action" do
|
describe "#action" do
|
||||||
|
before do
|
||||||
|
provider.stub(state: Vagrant::MachineState.new(:foo, "", ""))
|
||||||
|
end
|
||||||
|
|
||||||
it "should be able to run an action that exists" do
|
it "should be able to run an action that exists" do
|
||||||
action_name = :up
|
action_name = :up
|
||||||
called = false
|
called = false
|
||||||
|
@ -266,6 +270,17 @@ describe Vagrant::Machine do
|
||||||
expect { instance.action(action_name) }.
|
expect { instance.action(action_name) }.
|
||||||
to raise_error(Vagrant::Errors::UnimplementedProviderAction)
|
to raise_error(Vagrant::Errors::UnimplementedProviderAction)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "calls #state to update the machine index" do
|
||||||
|
action_name = :up
|
||||||
|
called = false
|
||||||
|
callable = lambda { |_env| called = true }
|
||||||
|
|
||||||
|
expect(provider).to receive(:action).with(action_name).and_return(callable)
|
||||||
|
expect(instance).to receive(:state)
|
||||||
|
instance.action(:up)
|
||||||
|
expect(called).to be
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#action_raw" do
|
describe "#action_raw" do
|
||||||
|
|
Loading…
Reference in New Issue