vagrant-rimu 0.0.1 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +3 -2
  3. data/.gitignore +2 -0
  4. data/.travis.yml +5 -35
  5. data/Gemfile +4 -2
  6. data/README.md +12 -3
  7. data/Rakefile +6 -3
  8. data/Vagrantfile +12 -3
  9. data/gemfiles/vagrant_1.5.gemfile +3 -1
  10. data/gemfiles/vagrant_1.6.gemfile +5 -3
  11. data/gemfiles/vagrant_1.7.gemfile +10 -8
  12. data/lib/vagrant-rimu.rb +10 -0
  13. data/lib/vagrant-rimu/actions.rb +117 -89
  14. data/lib/vagrant-rimu/actions/abstract_action.rb +20 -0
  15. data/lib/vagrant-rimu/actions/billing_methods.rb +13 -7
  16. data/lib/vagrant-rimu/actions/connect_to_rimu.rb +12 -6
  17. data/lib/vagrant-rimu/actions/create.rb +25 -6
  18. data/lib/vagrant-rimu/actions/is_created.rb +4 -2
  19. data/lib/vagrant-rimu/actions/is_stopped.rb +5 -3
  20. data/lib/vagrant-rimu/actions/list_distributions.rb +13 -7
  21. data/lib/vagrant-rimu/actions/list_servers.rb +13 -7
  22. data/lib/vagrant-rimu/actions/message_action_not_supported.rb +19 -0
  23. data/lib/vagrant-rimu/actions/message_already_created.rb +4 -2
  24. data/lib/vagrant-rimu/actions/message_already_off.rb +4 -2
  25. data/lib/vagrant-rimu/actions/message_not_created.rb +4 -2
  26. data/lib/vagrant-rimu/actions/message_will_not_destroy.rb +4 -2
  27. data/lib/vagrant-rimu/actions/message_will_not_stop.rb +19 -0
  28. data/lib/vagrant-rimu/actions/modify_provision_path.rb +5 -3
  29. data/lib/vagrant-rimu/actions/move.rb +32 -5
  30. data/lib/vagrant-rimu/actions/read_ssh_info.rb +10 -7
  31. data/lib/vagrant-rimu/actions/read_state.rb +14 -6
  32. data/lib/vagrant-rimu/actions/rebuild.rb +34 -6
  33. data/lib/vagrant-rimu/actions/reload.rb +11 -4
  34. data/lib/vagrant-rimu/actions/setup_sudo.rb +15 -8
  35. data/lib/vagrant-rimu/actions/setup_user.rb +45 -25
  36. data/lib/vagrant-rimu/actions/ssh_utils.rb +44 -0
  37. data/lib/vagrant-rimu/actions/start_instance.rb +6 -4
  38. data/lib/vagrant-rimu/actions/stop_instance.rb +18 -7
  39. data/lib/vagrant-rimu/actions/terminate_instance.rb +12 -6
  40. data/lib/vagrant-rimu/commands/abstract_command.rb +47 -0
  41. data/lib/vagrant-rimu/commands/billing_methods.rb +10 -10
  42. data/lib/vagrant-rimu/commands/distributions.rb +10 -10
  43. data/lib/vagrant-rimu/commands/list_servers.rb +10 -10
  44. data/lib/vagrant-rimu/commands/move.rb +10 -10
  45. data/lib/vagrant-rimu/commands/rebuild.rb +5 -7
  46. data/lib/vagrant-rimu/commands/rimu_command.rb +13 -0
  47. data/lib/vagrant-rimu/commands/root.rb +26 -43
  48. data/lib/vagrant-rimu/commands/utils.rb +22 -0
  49. data/lib/vagrant-rimu/config.rb +5 -2
  50. data/lib/vagrant-rimu/errors.rb +6 -0
  51. data/lib/vagrant-rimu/logging.rb +28 -0
  52. data/lib/vagrant-rimu/plugin.rb +11 -37
  53. data/lib/vagrant-rimu/provider.rb +4 -2
  54. data/lib/vagrant-rimu/version.rb +1 -1
  55. data/locales/en.yml +70 -19
  56. data/spec/spec_helper.rb +13 -6
  57. data/spec/vagrant-rimu/actions/billing_methods_spec.rb +49 -0
  58. data/spec/vagrant-rimu/actions/connect_to_rimu_spec.rb +2 -1
  59. data/spec/vagrant-rimu/actions/create_spec.rb +167 -0
  60. data/spec/vagrant-rimu/actions/is_created_spec.rb +49 -0
  61. data/spec/vagrant-rimu/actions/is_stopped_spec.rb +49 -0
  62. data/spec/vagrant-rimu/actions/list_distributions_spec.rb +49 -0
  63. data/spec/vagrant-rimu/actions/list_servers_spec.rb +51 -0
  64. data/spec/vagrant-rimu/actions/message_action_not_supported_spec.rb +30 -0
  65. data/spec/vagrant-rimu/actions/message_already_created_spec.rb +1 -4
  66. data/spec/vagrant-rimu/actions/message_will_not_destroy_spec.rb +1 -2
  67. data/spec/vagrant-rimu/actions/message_will_not_stop_spec.rb +35 -0
  68. data/spec/vagrant-rimu/actions/modify_provision_path_spec.rb +2 -7
  69. data/spec/vagrant-rimu/actions/move_spec.rb +75 -0
  70. data/spec/vagrant-rimu/actions/read_ssh_info_spec.rb +21 -0
  71. data/spec/vagrant-rimu/actions/rebuild_spec.rb +7 -1
  72. data/spec/vagrant-rimu/actions/stop_instance_spec.rb +4 -4
  73. data/spec/vagrant-rimu/commands/billing_methods_spec.rb +17 -0
  74. data/spec/vagrant-rimu/commands/distributions_spec.rb +17 -0
  75. data/spec/vagrant-rimu/commands/list_servers_spec.rb +17 -0
  76. data/spec/vagrant-rimu/commands/move_spec.rb +17 -0
  77. data/spec/vagrant-rimu/commands/rebuild_spec.rb +20 -0
  78. data/spec/vagrant-rimu/config_spec.rb +1 -1
  79. data/test/Vagrantfile +4 -2
  80. data/vagrant-rimu.gemspec +5 -1
  81. metadata +81 -27
@@ -1,4 +1,6 @@
1
- require "vagrant-rimu/actions"
1
+ require 'vagrant'
2
+
3
+ require 'vagrant-rimu/actions'
2
4
 
3
5
  module VagrantPlugins
4
6
  module Rimu
@@ -31,7 +33,7 @@ module VagrantPlugins
31
33
  # key in the environment.
32
34
  env = @machine.action("read_state")
33
35
 
34
- state_id = env[:machine_state_id]
36
+ state_id = env[:machine_state]
35
37
 
36
38
  # Get the short and long description
37
39
  short = I18n.t("vagrant_rimu.states.short_#{state_id}")
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Rimu
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.6'
4
4
  end
5
5
  end
@@ -14,6 +14,8 @@ en:
14
14
  Starting the VPS...
15
15
  stopping: |-
16
16
  Stopping the VPS...
17
+ moving: |-
18
+ Moving the VPS to different host...
17
19
  terminating: |-
18
20
  Terminating the VPS...
19
21
  waiting_for_ready: |-
@@ -21,10 +23,15 @@ en:
21
23
  will_not_destroy: |-
22
24
  The VPS '%{name}' will not be destroyed, since the confirmation
23
25
  was declined.
26
+ will_not_stop: |-
27
+ The VPS '%{name}' will not be stopped, as the Rimu API does not
28
+ support this action. To stop your VPS run `vagrant ssh` and then
29
+ `halt` on the VPS console.
24
30
  ip_address: |-
25
31
  Assigned IP address: %{ip}
26
32
  creating_user: "Creating user account: %{user}..."
27
33
  modifying_sudo: "Modifying sudoers file to remove tty requirement..."
34
+ action_not_supported: "The requested command is not supported by this provider"
28
35
  reloading: "Rebooting the VPS..."
29
36
  rebuilding: "Rebuilding the VPS..."
30
37
  config:
@@ -35,25 +42,6 @@ en:
35
42
  private_key: "A valid SSH private key path option: [private_key_path] is required"
36
43
  missing_private_key: "SSH private key not found: %{key}"
37
44
  public_key: "SSH public key not found: %{key}"
38
- errors:
39
- api_error: |-
40
- The API request failed. Please inspect the error message
41
- below for more info.
42
-
43
- Error: %{stderr}
44
- public_key: |-
45
- There was an issue reading the public key at:
46
-
47
- Path: %{path}
48
-
49
- Please check the file's permissions.
50
- rsync: |-
51
- There was an error when attemping to rsync a share folder.
52
- Please inspect the error message below for more info.
53
-
54
- Host path: %{hostpath}
55
- Guest path: %{guestpath}
56
- Error: %{stderr}
57
45
  states:
58
46
  short_not_created: |-
59
47
  not created
@@ -65,8 +53,12 @@ en:
65
53
  The VPS is starting.
66
54
  short_stopped: |-
67
55
  stopped
56
+ short_off: |-
57
+ stopped
68
58
  long_stopped: |-
69
59
  The VPS is stopped. Run `vagrant up` to start it.
60
+ long_off: |-
61
+ The VPS is stopped. Run `vagrant up` to start it.
70
62
  short_stopping: |-
71
63
  stopping
72
64
  long_stopping: |-
@@ -74,6 +66,65 @@ en:
74
66
  run `vagrant up` and start it.
75
67
  short_running: |-
76
68
  running
69
+ short_active: |-
70
+ running
77
71
  long_running: |-
78
72
  The VPS is running. To stop this machine, you can run
79
73
  `vagrant halt`. To destroy the machine, you can run `vagrant destroy`.
74
+ long_active: |-
75
+ The VPS is running. To stop this machine, you can run
76
+ `vagrant halt`. To destroy the machine, you can run `vagrant destroy`.
77
+ current_state: |-
78
+ Machine state is `%{state}`
79
+ commands:
80
+ root_synopsis: |-
81
+ Rimu provider specific commands
82
+ root_usage: |-
83
+ Usage: vagrant rimu <subcommand> [<args>]
84
+ rebuild_usage: |-
85
+ Usage: vagrant rebuild [vm-name]
86
+ available_subcommands: |-
87
+ Available subcommands:
88
+ billing_methods: |-
89
+ List billing methods
90
+ list_distributions: |-
91
+ List Distributions
92
+ list_servers: |-
93
+ List servers
94
+ move: |-
95
+ Moves server to different host
96
+ rebuild: |-
97
+ Rebuilds the server, retaining the current IP address
98
+ errors:
99
+ global_error: |-
100
+ An unknown error happened in Vagrant Rimu provider
101
+
102
+ To easily debug what happened, we recommend to set the environment
103
+ variable VAGRANT_RIMU_LOG to debug
104
+
105
+ $ export VAGRANT_RIMU_LOG=debug
106
+
107
+ If doing this does not help fixing your issue, there may be a bug
108
+ in the provider. Please submit an issue on Github at
109
+ https://github.com/akissa/vagrant-rimu
110
+ with the stracktrace and the logs.
111
+ no_args: |-
112
+ Command '%{cmd}' does not required any argument.
113
+ api_error: |-
114
+ The API request failed. Please inspect the error message
115
+ below for more info.
116
+
117
+ Error: %{stderr}
118
+ public_key: |-
119
+ There was an issue reading the public key at:
120
+
121
+ Path: %{path}
122
+
123
+ Please check the file permissions.
124
+ rsync: |-
125
+ There was an error when attemping to rsync a share folder.
126
+ Please inspect the error message below for more info.
127
+
128
+ Host path: %{hostpath}
129
+ Guest path: %{guestpath}
130
+ Error: %{stderr}
@@ -1,14 +1,19 @@
1
1
  require 'simplecov'
2
- require 'coveralls'
3
- require 'codeclimate-test-reporter'
4
2
 
5
- SimpleCov.start
6
3
  if ENV['CI']=='true'
7
4
  require 'codecov'
8
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
5
+ require 'coveralls'
6
+ require 'codeclimate-test-reporter'
7
+ SimpleCov.formatters = [
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ Coveralls::SimpleCov::Formatter,
10
+ SimpleCov::Formatter::Codecov,
11
+ CodeClimate::TestReporter::Formatter,
12
+ ]
9
13
  Coveralls.wear!
10
14
  CodeClimate::TestReporter.start
11
15
  end
16
+ SimpleCov.start
12
17
 
13
18
  Dir['lib/**/*.rb'].each do|file|
14
19
  require_string = file.match(/lib\/(.*)\.rb/)[1]
@@ -17,8 +22,6 @@ end
17
22
 
18
23
  require 'rspec/its'
19
24
 
20
- I18n.load_path << File.expand_path('locales/en.yml', Pathname.new(File.expand_path('../../', __FILE__)))
21
-
22
25
  RSpec.configure do |config|
23
26
  config.mock_with :rspec do |c|
24
27
  c.syntax = [:should, :expect]
@@ -27,3 +30,7 @@ RSpec.configure do |config|
27
30
  c.syntax = [:should, :expect]
28
31
  end
29
32
  end
33
+
34
+ I18n.load_path << File.expand_path('locales/en.yml', Pathname.new(File.expand_path('../../', __FILE__)))
35
+
36
+ VagrantPlugins::Rimu::Logging.init
@@ -0,0 +1,49 @@
1
+ require 'ostruct'
2
+ require 'pathname'
3
+
4
+ require 'spec_helper'
5
+
6
+ # action_root = Pathname.new(File.expand_path('../../../../lib/vagrant-rimu/actions', __FILE__))
7
+ # autoload :StopInstance, action_root.join('stop_instance')
8
+
9
+ describe VagrantPlugins::Rimu::Actions::BillingMethods do
10
+ let(:billing_methods) { double('billing_methods') }
11
+ let(:machine) { double('machine') }
12
+ let(:method1) { OpenStruct.new({:billing_oid => 1012, :billing_method_type => 'TS_WIRE', :description => 'Wire Transfer'}) }
13
+ let(:method2) { OpenStruct.new({:billing_oid => 2000, :billing_method_type => 'TS_CARD', :description => 'Credit Card'}) }
14
+
15
+
16
+ let(:env) do
17
+ {}.tap do |env|
18
+ env[:ui] = double('ui').tap do |ui|
19
+ ui.stub(:info).with(anything)
20
+ ui.stub(:error).with(anything)
21
+ end
22
+ env[:rimu_api] = double('rimu_api').tap do |os|
23
+ billing_methods.stub(:each).and_yield(method1).and_yield(method2)
24
+ os.stub(:billing_methods) { billing_methods }
25
+ end
26
+ end
27
+ end
28
+
29
+ let(:app) do
30
+ double('app').tap do |app|
31
+ app.stub(:call).with(anything)
32
+ end
33
+ end
34
+
35
+ describe 'call' do
36
+ it 'return a billing_methods listing' do
37
+ expect(env[:rimu_api].billing_methods).to receive(:each)
38
+ rows = []
39
+ [method1, method2].each do |b|
40
+ rows << [b.billing_oid, b.billing_method_type, b.description]
41
+ end
42
+ table = Terminal::Table.new headings: ['ID', 'Type', 'Description'], rows: rows
43
+ expect(env[:ui]).to receive(:info).with("\n#{table}")
44
+ expect(app).to receive(:call)
45
+ @action = VagrantPlugins::Rimu::Actions::BillingMethods.new(app, env)
46
+ @action.call(env)
47
+ end
48
+ end
49
+ end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe VagrantPlugins::Rimu::Actions::ConnectToRimu do
4
+ let(:rimu_api) { double('rimu_api') }
4
5
  let(:app) do
5
6
  double.tap do |app|
6
7
  app.stub(:call)
@@ -21,7 +22,7 @@ describe VagrantPlugins::Rimu::Actions::ConnectToRimu do
21
22
  env[:ui].stub(:warn).with(anything)
22
23
  env[:machine] = double('machine')
23
24
  env[:machine].stub(:provider_config) { config }
24
- env[:rimu_api] = double('rimu_api')
25
+ env[:rimu_api] = rimu_api
25
26
  end
26
27
  end
27
28
 
@@ -0,0 +1,167 @@
1
+ require 'pathname'
2
+ require 'spec_helper'
3
+
4
+ # action_root = Pathname.new(File.expand_path('../../../../lib/vagrant-rimu/actions', __FILE__))
5
+ # autoload :StopInstance, action_root.join('stop_instance')
6
+
7
+ describe VagrantPlugins::Rimu::Actions::Create do
8
+ let(:dup) { double('dup') }
9
+ let(:ssh) { double('ssh') }
10
+ let(:root_path) { '.' }
11
+ let(:servers) { double('servers') }
12
+ let(:machine) { double('machine') }
13
+ let(:create) { double('create') }
14
+ let(:communicate) { double('communicate') }
15
+ let(:id) { '200' }
16
+
17
+ let(:config) do
18
+ double.tap do |config|
19
+ config.stub(:api_url) { nil }
20
+ config.stub(:api_key) { 'foo' }
21
+ config.stub(:host_name) { 'rimu.example.com' }
22
+ config.stub(:root_password) { 'P455w0rd' }
23
+ config.stub(:distro_code) { nil }
24
+ config.stub(:control_panel) { nil }
25
+ config.stub(:vps_to_clone) { nil }
26
+ config.stub(:minimal_init) { nil }
27
+ config.stub(:disk_space_mb) { nil }
28
+ config.stub(:memory_mb) { nil }
29
+ config.stub(:disk_space_2_mb) { nil }
30
+ config.stub(:billing_id) { nil }
31
+ config.stub(:data_centre) { nil }
32
+ config.stub(:host_server_id) { nil }
33
+ config.stub(:extra_ip_reason) { nil }
34
+ config.stub(:num_ips) { nil }
35
+ config.stub(:private_ips) { nil }
36
+ config.stub(:vps_type) { nil }
37
+ config.stub(:setup?) { true }
38
+ ssh.stub(:username) { 'rimu' }
39
+ ssh.stub(:username=) { 'rimu' }
40
+ ssh.stub(:password=).with(anything)
41
+ ssh.stub(:private_key_path) { 'test/test_rimu_id_rsa' }
42
+ config.stub(:ssh) { ssh }
43
+ end
44
+ end
45
+
46
+ let(:env) do
47
+ {}.tap do |env|
48
+ env[:ui] = double('ui').tap do |ui|
49
+ ui.stub(:info).with(anything)
50
+ ui.stub(:error).with(anything)
51
+ end
52
+ env[:rimu_api] = double('rimu_api').tap do |os|
53
+ create.stub(:order_oid) { id }
54
+ create.stub(:allocated_ips) { {:primary_ip => '192.168.1.10'} }
55
+ servers.stub(:create) { create }
56
+ os.stub(:servers) { servers }
57
+ end
58
+ env.stub(:root_path) { root_path }
59
+ machine.stub(:id) { id }
60
+ machine.stub(:id=) { id }
61
+ machine.stub(:env) { env }
62
+ env[:machine] = machine
63
+ env[:machine].stub(:config) { config }
64
+ env[:machine].stub(:provider_config) { config }
65
+ communicate.stub(:execute).with(anything)
66
+ communicate.stub(:ready?) { true }
67
+ env[:machine].stub(:communicate) { communicate }
68
+ # dup.stub(:delete) { double('delete') }
69
+ # dup.stub(:[]=) { double('[]=') }
70
+ # env.stub(:dup) { dup }
71
+ # action_runner.stub(:run) { double('run') }
72
+ # env[:action_runner] = action_runner
73
+ end
74
+ end
75
+
76
+ let(:app) do
77
+ double('app').tap do |app|
78
+ app.stub(:call).with(anything)
79
+ # app.stub(:terminate).with(anything)
80
+ end
81
+ end
82
+
83
+ describe 'call' do
84
+ context 'when vps_to_clone option is not set' do
85
+ it 'should install the server using instantiation_options' do
86
+ expect(env[:machine].provider_config).to receive(:setup?)
87
+ expect(env[:machine].communicate).to receive(:ready?)
88
+ expect(env[:machine].config.ssh).to receive(:username=).with(ssh.username)
89
+ expect(env[:rimu_api].servers).to receive(:create).with(
90
+ {
91
+ :billing_oid => config.billing_id,
92
+ :dc_location => config.data_centre,
93
+ :host_server_oid => config.host_server_id,
94
+ :instantiation_options=> {
95
+ :domain_name=>config.host_name,
96
+ :password=>config.root_password,
97
+ :distro=>config.distro_code,
98
+ :control_panel=>config.control_panel
99
+ },
100
+ :ip_request => {
101
+ :extra_ip_reason => config.extra_ip_reason,
102
+ :num_ips => config.num_ips,
103
+ :requested_ips => config.private_ips,
104
+ },
105
+ :is_just_minimal_init=>nil,
106
+ :vps_parameters=>{
107
+ :disk_space_mb=>nil,
108
+ :memory_mb=>nil,
109
+ :disk_space_2_mb=>nil
110
+ },
111
+ :vps_type => config.vps_type,
112
+ }
113
+ )
114
+ expect(app).to receive(:call)
115
+ @action = VagrantPlugins::Rimu::Actions::Create.new(app, env)
116
+ @action.call(env)
117
+ end
118
+ end
119
+
120
+ context 'when vps_to_clone option is set' do
121
+ it 'should install the server using instantiation_via_clone_options' do
122
+ vps_clone = 9999
123
+ env[:machine].provider_config.stub(:vps_to_clone) { vps_clone }
124
+ expect(env[:machine].provider_config).to receive(:setup?)
125
+ expect(env[:machine].communicate).not_to receive(:ready?)
126
+ expect(env[:machine].config.ssh).to receive(:username=).with(ssh.username)
127
+ expect(env[:rimu_api].servers).to receive(:create).with(
128
+ {
129
+ :billing_oid => config.billing_id,
130
+ :dc_location => config.data_centre,
131
+ :host_server_oid => config.host_server_id,
132
+ :instantiation_via_clone_options=> {
133
+ :domain_name=>config.host_name,
134
+ :vps_order_oid_to_clone => vps_clone,
135
+ },
136
+ :ip_request => {
137
+ :extra_ip_reason => config.extra_ip_reason,
138
+ :num_ips => config.num_ips,
139
+ :requested_ips => config.private_ips,
140
+ },
141
+ :is_just_minimal_init=>nil,
142
+ :vps_parameters=>{
143
+ :disk_space_mb=>nil,
144
+ :memory_mb=>nil,
145
+ :disk_space_2_mb=>nil
146
+ },
147
+ :vps_type => config.vps_type,
148
+ }
149
+ )
150
+ expect(app).to receive(:call)
151
+ @action = VagrantPlugins::Rimu::Actions::Create.new(app, env)
152
+ @action.call(env)
153
+ end
154
+ end
155
+
156
+ # context 'when terminate is run' do
157
+ # it 'should call the destroy action' do
158
+ # expect(app.dup).to receive(:[]=).with(:config_validate, false)
159
+ # expect(app.dup).to receive(:[]=).with(:force_confirm_destroy, true)
160
+ # expect(env[:action_runner]).to receive(:run)
161
+ # expect(app).to receive(:terminate)
162
+ # @action = VagrantPlugins::Rimu::Actions::Create.new(app, env)
163
+ # @action.terminate(env)
164
+ # end
165
+ # end
166
+ end
167
+ end
@@ -0,0 +1,49 @@
1
+ require 'pathname'
2
+ require 'spec_helper'
3
+
4
+ # action_root = Pathname.new(File.expand_path('../../../../lib/vagrant-rimu/actions', __FILE__))
5
+ # autoload :StopInstance, action_root.join('stop_instance')
6
+
7
+ describe VagrantPlugins::Rimu::Actions::IsCreated do
8
+ let(:state) { double('state') }
9
+ let(:machine) { double('machine') }
10
+
11
+ let(:env) do
12
+ {}.tap do |env|
13
+ env[:ui] = double('ui').tap do |ui|
14
+ ui.stub(:info).with(anything)
15
+ ui.stub(:error).with(anything)
16
+ end
17
+ machine.stub(:state) { state }
18
+ env[:machine] = machine
19
+ end
20
+ end
21
+
22
+ let(:app) do
23
+ double('app').tap do |app|
24
+ app.stub(:call).with(anything)
25
+ end
26
+ end
27
+
28
+ describe 'call' do
29
+ context 'when server is created' do
30
+ it 'returns true' do
31
+ env[:machine].state.stub(:id) { :off }
32
+ expect(app).to receive(:call)
33
+ @action = VagrantPlugins::Rimu::Actions::IsCreated.new(app, env)
34
+ @action.call(env)
35
+ env[:result].should == true
36
+ end
37
+ end
38
+
39
+ context 'when server is not created' do
40
+ it 'returns false' do
41
+ env[:machine].state.stub(:id) { :not_created }
42
+ expect(app).to receive(:call)
43
+ @action = VagrantPlugins::Rimu::Actions::IsCreated.new(app, env)
44
+ @action.call(env)
45
+ env[:result].should == false
46
+ end
47
+ end
48
+ end
49
+ end