vagrant-openstack-plugin 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3dcce594bbe89b2624bcc31f9b1a80a7e7df14b
4
- data.tar.gz: 281278e8d8d942f5e18c186ec4df3ccd6a36566b
3
+ metadata.gz: 4b57c6221fd8bcfe94b1be1c952742f10224fc55
4
+ data.tar.gz: 6f65f3af923abc32f53ec5d22015cc5cf2fec267
5
5
  SHA512:
6
- metadata.gz: 4c3db3dbd720db49e69e1a39b41770a3a39ab64c43699744a56066837571c3373f9c4170105b459e382f60eebf850c8ea7f12e9ef99487b2c67f0c051d141d9d
7
- data.tar.gz: 1fe21df47a4bc70807c68daf78b404ae67da0f43593afdd4efef5530bc2991449b3350f6006937f682d38b84d56f1100799eeae2ad5d5a6b581eb32f70655f82
6
+ metadata.gz: 13e6a3c80a50ac260f0f2bcbae43c58f9349f5f3533f7ca62dbe7f7bb58d3d9d5212dda6a56741f5feb9704cc4869cc08dff4f27ac4420fcff423a4ab76dae80
7
+ data.tar.gz: 3c2bb0c482457bc42836d5f0ae4615e74f1169513d2743d7bace39d471a2b485f3ea38a972a82137fa06282d0505cef572b0987d83c20cc50343d691da68f867
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog for vagrant-openstack-plugin
2
2
 
3
+ ## 0.7.0
4
+
5
+ - Merge pull request #35 from johnbellone/master [view commit](http://github.com///commit/5969261f11585e19348e903eec15617634c3c899)
6
+ - Fix issues with SSH private keys in Vagrant 1.4. [view commit](http://github.com///commit/a8bf7574de48dc1c62928f5ad73fb6d1e7dd4347)
7
+ - Refactor OpenStack actions to match AWS. [view commit](http://github.com///commit/c7177dc98ba43e3434075186a76df57d27ce7b26)
8
+
3
9
  ## 0.6.1
4
10
 
5
11
  - Merge pull request #60 from matope/fix-floating_ip-NoMethodError [view commit](http://github.com///commit/a058256c27573c7545afbc09cce60214731e6e4e)
@@ -120,7 +120,7 @@ module VagrantPlugins
120
120
  # If we don't have an error about a state transition, then
121
121
  # we just move on.
122
122
  raise if e.message !~ /should have transitioned/
123
- raise Errors::CreateBadState, :state => server.state
123
+ raise Errors::CreateBadState, :state => server.state.downcase
124
124
  end
125
125
  end
126
126
 
@@ -16,6 +16,8 @@ module VagrantPlugins
16
16
 
17
17
  if id
18
18
  env[:ui].info(I18n.t("vagrant_openstack.deleting_server"))
19
+
20
+ # TODO: Validate the fact that we get a server back from the API.
19
21
  server = env[:openstack_compute].servers.get(id)
20
22
  server.destroy
21
23
  env[:machine].id = nil
@@ -0,0 +1,27 @@
1
+ require "log4r"
2
+
3
+ module VagrantPlugins
4
+ module OpenStack
5
+ module Action
6
+ # This hard reboots a running server, if there is one.
7
+ class HardRebootServer
8
+ def initialize(app, env)
9
+ @app = app
10
+ @logger = Log4r::Logger.new("vagrant_openstack::action::hard_reboot_server")
11
+ end
12
+
13
+ def call(env)
14
+ if env[:machine].id
15
+ env[:ui].info(I18n.t("vagrant_openstack.hard_rebooting_server"))
16
+
17
+ # TODO: Validate the fact that we get a server back from the API.
18
+ server = env[:openstack_compute].servers.get(env[:machine].id)
19
+ server.reboot('HARD')
20
+ end
21
+
22
+ @app.call(env)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -7,7 +7,7 @@ module VagrantPlugins
7
7
  end
8
8
 
9
9
  def call(env)
10
- env[:result] = env[:machine].state.id != :not_created
10
+ env[:result] = env[:machine].state.id == :active
11
11
  @app.call(env)
12
12
  end
13
13
  end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class IsPaused
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:result] = env[:machine].state.id == :paused
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class IsSuspended
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:result] = env[:machine].state.id == :suspended
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class MessageAlreadyPaused
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_openstack.already_paused"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class MessageAlreadySuspended
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_openstack.already_suspended"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class MessageServerRunning
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_openstack.server_running", name: env[:machine].name))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ module Action
4
+ class MessageWillNotDestroy
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_openstack.will_not_destroy", name: env[:machine].name))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -13,8 +13,10 @@ module VagrantPlugins
13
13
  def call(env)
14
14
  if env[:machine].id
15
15
  env[:ui].info(I18n.t("vagrant_openstack.pausing_server"))
16
+
17
+ # TODO: Validate the fact that we get a server back from the API.
16
18
  server = env[:openstack_compute].servers.get(env[:machine].id)
17
- server.pause
19
+ env[:openstack_compute].pause_server(server.id)
18
20
  end
19
21
 
20
22
  @app.call(env)
@@ -6,6 +6,8 @@ module VagrantPlugins
6
6
  # This action reads the state of the machine and puts it in the
7
7
  # `:machine_state_id` key in the environment.
8
8
  class ReadState
9
+ NOT_CREATED_STATES = [:deleted, :soft_deleted, :building, :error].freeze
10
+
9
11
  def initialize(app, env)
10
12
  @app = app
11
13
  @logger = Log4r::Logger.new("vagrant_openstack::action::read_state")
@@ -13,7 +15,6 @@ module VagrantPlugins
13
15
 
14
16
  def call(env)
15
17
  env[:machine_state_id] = read_state(env[:openstack_compute], env[:machine])
16
-
17
18
  @app.call(env)
18
19
  end
19
20
 
@@ -21,18 +22,17 @@ module VagrantPlugins
21
22
  id = machine.id || openstack.servers.all( :name => machine.name ).first.id rescue nil
22
23
  return :not_created if id.nil?
23
24
 
24
- # Find the machine
25
- server = openstack.servers.get(id)
26
- if server.nil? || server.state == "DELETED"
27
- # The machine can't be found
28
- @logger.info("Machine not found or deleted, assuming it got destroyed.")
25
+ # Find the machine using the OpenStack API.
26
+ server = openstack.servers.get(machine.id)
27
+ if server.nil? || NOT_CREATED_STATES.include?(server.state.downcase.to_sym)
28
+ @logger.info(I18n.t("vagrant_openstack.not_created"))
29
29
  machine.id = nil
30
30
  return :not_created
31
31
  end
32
32
 
33
- # Return the state
34
- return server.state.downcase.to_sym
33
+ server.state.downcase.to_sym
35
34
  end
35
+
36
36
  end
37
37
  end
38
38
  end
@@ -3,18 +3,20 @@ require "log4r"
3
3
  module VagrantPlugins
4
4
  module OpenStack
5
5
  module Action
6
- # This starts the pause server, if there is one.
7
- class UnpauseServer
6
+ # This reboots a running server, if there is one.
7
+ class RebootServer
8
8
  def initialize(app, env)
9
9
  @app = app
10
- @logger = Log4r::Logger.new("vagrant_openstack::action::unpause_server")
10
+ @logger = Log4r::Logger.new("vagrant_openstack::action::reboot_server")
11
11
  end
12
12
 
13
13
  def call(env)
14
14
  if env[:machine].id
15
- env[:ui].info(I18n.t("vagrant_openstack.unpausing_server"))
15
+ env[:ui].info(I18n.t("vagrant_openstack.rebooting_server"))
16
+
17
+ # TODO: Validate the fact that we get a server back from the API.
16
18
  server = env[:openstack_compute].servers.get(env[:machine].id)
17
- server.unpause
19
+ server.reboot('SOFT')
18
20
  end
19
21
 
20
22
  @app.call(env)
@@ -13,8 +13,14 @@ module VagrantPlugins
13
13
  def call(env)
14
14
  if env[:machine].id
15
15
  env[:ui].info(I18n.t("vagrant_openstack.resuming_server"))
16
+
17
+ # TODO: Validate the fact that we get a server back from the API.
16
18
  server = env[:openstack_compute].servers.get(env[:machine].id)
17
- server.resume
19
+ if server.state == 'PAUSED'
20
+ env[:openstack_compute].unpause_server(server.id)
21
+ elsif server.state == 'SUSPENDED'
22
+ env[:openstack_compute].resume_server(server.id)
23
+ end
18
24
  end
19
25
 
20
26
  @app.call(env)
@@ -13,8 +13,10 @@ module VagrantPlugins
13
13
  def call(env)
14
14
  if env[:machine].id
15
15
  env[:ui].info(I18n.t("vagrant_openstack.suspending_server"))
16
+
17
+ # TODO: Validate the fact that we get a server back from the API.
16
18
  server = env[:openstack_compute].servers.get(env[:machine].id)
17
- server.suspend
19
+ env[:openstack_compute].suspend_server(server.id)
18
20
  end
19
21
 
20
22
  @app.call(env)
@@ -19,7 +19,6 @@ module VagrantPlugins
19
19
  ssh_info = env[:machine].ssh_info
20
20
 
21
21
  env[:machine].config.vm.synced_folders.each do |id, data|
22
-
23
22
  # ignore disabled shared folders
24
23
  if data[:disabled]
25
24
  @logger.info "Not syncing disabled folder: #{data[:hostpath]} => #{data[:guestpath]}"
@@ -42,6 +41,9 @@ module VagrantPlugins
42
41
  env[:machine].communicate.sudo(
43
42
  "chown #{ssh_info[:username]} '#{guestpath}'")
44
43
 
44
+ #collect rsync excludes specified :rsync_excludes=>['path1',...] in synced_folder options
45
+ excludes = ['.vagrant/', 'Vagrantfile', *Array(data[:rsync_excludes])].uniq
46
+
45
47
  # Rsync over to the guest path using the SSH info
46
48
  if env[:machine].config.ssh.proxy_command
47
49
  proxy_cmd = "-o ProxyCommand='#{env[:machine].config.ssh.proxy_command}'"
@@ -57,9 +59,9 @@ module VagrantPlugins
57
59
  end
58
60
 
59
61
  command = [
60
- "rsync", "--verbose", "--archive", "-z", "--delete",
61
- "--exclude", ".vagrant/",
62
- "-e", "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no #{proxy_cmd} #{ssh_key_options(ssh_info)}",
62
+ 'rsync', '--verbose', '--archive', '-z', '--delete',
63
+ *excludes.map{|e|['--exclude', e]}.flatten,
64
+ '-e', "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no #{proxy_cmd} #{ssh_key_options(ssh_info)}",
63
65
  hostpath,
64
66
  user_at_host + ":" + guestpath]
65
67
 
@@ -77,7 +79,7 @@ module VagrantPlugins
77
79
 
78
80
  def ssh_key_options(ssh_info)
79
81
  # Ensure that `private_key_path` is an Array (for Vagrant < 1.4)
80
- Array(ssh_info[:private_key_path]).map { |path| "-i '#{path}' " }.join
82
+ Array(ssh_info[:private_key_path]).map { |path| "-i '#{path}'" }.join
81
83
  end
82
84
  end
83
85
  end
@@ -0,0 +1,39 @@
1
+ # coding: utf-8
2
+ require 'log4r'
3
+ require 'timeout'
4
+
5
+ module VagrantPlugins
6
+ module OpenStack
7
+ module Action
8
+ # This action will wait for a machine to reach a specific state or quit by timeout.
9
+ class WaitForState
10
+ def initialize(app, env, state, timeout)
11
+ @app = app
12
+ @logger = Log4r::Logger.new('vagrant_openstack::action::wait_for_state')
13
+ @state = Array.new(state).flatten
14
+ @timeout = timeout
15
+ end
16
+
17
+ def call(env)
18
+ env[:result] = true
19
+ state = env[:machine].state.id.to_sym
20
+
21
+ if @state.include?(state)
22
+ @logger.info("Machine already at status #{ state.to_s }")
23
+ else
24
+ @logger.info("Waiting for machine to reach state...")
25
+ begin
26
+ Timeout.timeout(@timeout) do
27
+ sleep 2 until @state.include?(env[:machine].state.id)
28
+ end
29
+ rescue Timeout::Error
30
+ env[:result] = false
31
+ end
32
+
33
+ @app.call(env)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -8,18 +8,17 @@ module VagrantPlugins
8
8
  # Include the built-in modules so we can use them as top-level things.
9
9
  include Vagrant::Action::Builtin
10
10
 
11
- # This action is called to destroy the remote machine.
11
+ # This action is called when `vagrant destroy` is executed.
12
12
  def self.action_destroy
13
13
  Vagrant::Action::Builder.new.tap do |b|
14
14
  b.use ConfigValidate
15
- b.use Call, IsCreated do |env, b2|
16
- if !env[:result]
17
- b2.use MessageNotCreated
18
- next
15
+ b.use Call, DestroyConfirm do |env, b1|
16
+ if env[:result]
17
+ b1.use ConnectOpenStack
18
+ b1.use DeleteServer
19
+ else
20
+ b1.use MessageWillNotDestroy
19
21
  end
20
-
21
- b2.use ConnectOpenStack
22
- b2.use DeleteServer
23
22
  end
24
23
  end
25
24
  end
@@ -46,16 +45,17 @@ module VagrantPlugins
46
45
  end
47
46
  end
48
47
 
48
+ # This action is called when `vagrant ssh` is executed.
49
49
  def self.action_ssh
50
50
  Vagrant::Action::Builder.new.tap do |b|
51
51
  b.use ConfigValidate
52
- b.use Call, IsCreated do |env, b2|
53
- if !env[:result]
54
- b2.use MessageNotCreated
52
+ b.use Call, IsCreated do |env, b1|
53
+ unless env[:result]
54
+ b1.use MessageNotCreated
55
55
  next
56
56
  end
57
57
 
58
- b2.use SSHExec
58
+ b1.use SSHExec
59
59
  end
60
60
  end
61
61
  end
@@ -63,48 +63,137 @@ module VagrantPlugins
63
63
  def self.action_ssh_run
64
64
  Vagrant::Action::Builder.new.tap do |b|
65
65
  b.use ConfigValidate
66
- b.use Call, IsCreated do |env, b2|
67
- if !env[:result]
68
- b2.use MessageNotCreated
66
+ b.use Call, IsCreated do |env, b1|
67
+ unless env[:result]
68
+ b1.use MessageNotCreated
69
69
  next
70
70
  end
71
71
 
72
- b2.use SSHRun
72
+ b1.use SSHRun
73
73
  end
74
74
  end
75
75
  end
76
76
 
77
+ def self.action_prepare_boot
78
+ Vagrant::Action::Builder.new.tap do |b|
79
+ b.use Provision
80
+ b.use SyncFolders
81
+ b.use WarnNetworks
82
+ b.use SetHostname
83
+ end
84
+ end
85
+
86
+ # This action is called when `vagrant up` is executed.
77
87
  def self.action_up
78
88
  Vagrant::Action::Builder.new.tap do |b|
79
89
  b.use HandleBoxUrl
80
90
  b.use ConfigValidate
81
- b.use Call, IsCreated do |env, b2|
82
- if env[:result]
83
- b2.use MessageAlreadyCreated
91
+ b.use Call, IsCreated do |env, b1|
92
+ unless env[:result]
93
+ b1.use action_prepare_boot
94
+ b1.use ConnectOpenStack
95
+ b1.use CreateServer
96
+ else
97
+ b1.use action_resume
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ # This action is called when `vagrant provision` is executed.
104
+ def self.action_provision
105
+ Vagrant::Action::Builder.new.tap do |b|
106
+ b.use ConfigValidate
107
+ b.use Call, IsCreated do |env, b1|
108
+ unless env[:result]
109
+ b1.use MessageNotCreated
84
110
  next
85
111
  end
86
112
 
87
- b2.use ConnectOpenStack
88
- b2.use Provision
89
- b2.use SyncFolders
90
- b2.use SetHostname
91
- b2.use WarnNetworks
92
- b2.use CreateServer
113
+ b1.use ConnectOpenStack
114
+ b1.use Provision
115
+ b1.use SyncFolders
93
116
  end
94
117
  end
95
118
  end
96
119
 
97
- def self.action_provision
120
+ # This action is called when `vagrant reload` is executed.
121
+ def self.action_reload
122
+ Vagrant::Action::Builder.new.tap do |b|
123
+ b.use ConfigValidate
124
+ b.use ConnectOpenStack
125
+ b.use Call, IsPaused do |env, b1|
126
+ unless env[:result]
127
+ b1.use Call, IsSuspended do |env2, b2|
128
+ b1.use action_halt unless env2[:result]
129
+ end
130
+ end
131
+
132
+ b1.use Call, WaitForState, [:paused, :suspended], 120 do |env2, b2|
133
+ if env2[:result]
134
+ b2.use action_up
135
+ else
136
+ b2.use HardRebootServer
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+
143
+ # This action is called when `vagrant halt` is executed.
144
+ def self.action_halt
145
+ Vagrant::Action::Builder.new.tap do |b|
146
+ b.use ConfigValidate
147
+ b.use Call, IsCreated do |env, b1|
148
+ unless env[:result]
149
+ b1.use Call, IsSuspended do |env2, b2|
150
+ if env2[:result]
151
+ b1.use MessageAlreadySuspended
152
+ next
153
+ end
154
+ end
155
+ end
156
+
157
+ b1.use ConnectOpenStack
158
+ b1.use PauseServer
159
+ end
160
+ end
161
+ end
162
+
163
+ # This action is called when `vagrant resume` is executed.
164
+ def self.action_resume
98
165
  Vagrant::Action::Builder.new.tap do |b|
99
166
  b.use ConfigValidate
100
- b.use Call, IsCreated do |env, b2|
101
- if !env[:result]
102
- b2.use MessageNotCreated
167
+ b.use Call, IsCreated do |env, b1|
168
+ if env[:result]
169
+ b1.use MessageServerRunning
103
170
  next
104
171
  end
105
172
 
106
- b2.use Provision
107
- b2.use SyncFolders
173
+ b1.use ConnectOpenStack
174
+ b1.use ResumeServer
175
+ b1.use SyncFolders
176
+ end
177
+ end
178
+ end
179
+
180
+ # This action is called when `vagrant suspend` is executed.
181
+ def self.action_suspend
182
+ Vagrant::Action::Builder.new.tap do |b|
183
+ b.use ConfigValidate
184
+ b.use Call, IsCreated do |env, b1|
185
+ if env[:result]
186
+ b1.use ConnectOpenStack
187
+ b1.use SuspendServer
188
+ else
189
+ b1.use Call, IsPaused do |env2, b2|
190
+ if env2[:result]
191
+ b2.use MessageAlreadyPaused
192
+ else
193
+ b2.use MessageAlreadySuspended
194
+ end
195
+ end
196
+ end
108
197
  end
109
198
  end
110
199
  end
@@ -114,12 +203,25 @@ module VagrantPlugins
114
203
  autoload :ConnectOpenStack, action_root.join("connect_openstack")
115
204
  autoload :CreateServer, action_root.join("create_server")
116
205
  autoload :DeleteServer, action_root.join("delete_server")
206
+ autoload :HardRebootServer, action_root.join("hard_reboot_server")
117
207
  autoload :IsCreated, action_root.join("is_created")
208
+ autoload :IsPaused, action_root.join("is_paused")
209
+ autoload :IsSuspended, action_root.join("is_suspended")
118
210
  autoload :MessageAlreadyCreated, action_root.join("message_already_created")
211
+ autoload :MessageAlreadyPaused, action_root.join("message_already_paused")
212
+ autoload :MessageAlreadySuspended, action_root.join("message_already_suspended")
119
213
  autoload :MessageNotCreated, action_root.join("message_not_created")
214
+ autoload :MessageNotSuspended, action_root.join("message_not_suspended")
215
+ autoload :MessageWillNotDestroy, action_root.join("message_will_not_destroy")
216
+ autoload :MessageServerRunning, action_root.join("message_server_running")
217
+ autoload :PauseServer, action_root.join("pause_server")
120
218
  autoload :ReadSSHInfo, action_root.join("read_ssh_info")
121
219
  autoload :ReadState, action_root.join("read_state")
220
+ autoload :RebootServer, action_root.join("reboot_server")
221
+ autoload :ResumeServer, action_root.join("resume_server")
222
+ autoload :SuspendServer, action_root.join("suspend_server")
122
223
  autoload :SyncFolders, action_root.join("sync_folders")
224
+ autoload :WaitForState, action_root.join("wait_for_state")
123
225
  autoload :WarnNetworks, action_root.join("warn_networks")
124
226
  end
125
227
  end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module OpenStack
3
- VERSION = "0.6.1"
3
+ VERSION = "0.7.0"
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -2,6 +2,10 @@ en:
2
2
  vagrant_openstack:
3
3
  already_created: |-
4
4
  The server is already created.
5
+ already_paused: |-
6
+ The server is already paused.
7
+ already_suspended: |-
8
+ The server is already suspended.
5
9
  deleting_server: |-
6
10
  Deleting server...
7
11
  finding_flavor: |-
@@ -10,14 +14,26 @@ en:
10
14
  Finding image for server...
11
15
  finding_network: |-
12
16
  Finding network for server...
17
+ hard_rebooting_server: |-
18
+ Hard rebooting server instance.
13
19
  launching_server: |-
14
20
  Launching a server with the following settings...
15
21
  not_created: |-
16
22
  The server hasn't been created yet. Run `vagrant up` first.
23
+ pausing_server: |-
24
+ The server instance has been paused.
17
25
  ready: |-
18
26
  The server is ready!
27
+ rebooting_server: |-
28
+ This server instance is rebooting!
29
+ resuming_server: |-
30
+ The server instance has been resumed.
19
31
  rsync_folder: |-
20
32
  Rsyncing folder: %{hostpath} => %{guestpath}
33
+ server_running: |-
34
+ The instance '%{name}' is already running!
35
+ suspending_server: |-
36
+ The server instance has been suspended!
21
37
  waiting_for_build: |-
22
38
  Waiting for the server to be built...
23
39
  waiting_for_ssh: |-
@@ -26,6 +42,9 @@ en:
26
42
  Warning! The OpenStack provider doesn't support any of the Vagrant
27
43
  high-level network configurations (`config.vm.network`). They
28
44
  will be silently ignored.
45
+ will_not_destroy: |-
46
+ The instance '%{name}' will not be destroyed, since the confirmation
47
+ was declined.
29
48
 
30
49
  config:
31
50
  api_key_required: |-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-openstack-plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmund Haselwanter
@@ -75,16 +75,24 @@ files:
75
75
  - lib/vagrant-openstack-plugin/action/connect_openstack.rb
76
76
  - lib/vagrant-openstack-plugin/action/create_server.rb
77
77
  - lib/vagrant-openstack-plugin/action/delete_server.rb
78
+ - lib/vagrant-openstack-plugin/action/hard_reboot_server.rb
78
79
  - lib/vagrant-openstack-plugin/action/is_created.rb
80
+ - lib/vagrant-openstack-plugin/action/is_paused.rb
81
+ - lib/vagrant-openstack-plugin/action/is_suspended.rb
79
82
  - lib/vagrant-openstack-plugin/action/message_already_created.rb
83
+ - lib/vagrant-openstack-plugin/action/message_already_paused.rb
84
+ - lib/vagrant-openstack-plugin/action/message_already_suspended.rb
80
85
  - lib/vagrant-openstack-plugin/action/message_not_created.rb
86
+ - lib/vagrant-openstack-plugin/action/message_server_running.rb
87
+ - lib/vagrant-openstack-plugin/action/message_will_not_destroy.rb
81
88
  - lib/vagrant-openstack-plugin/action/pause_server.rb
82
89
  - lib/vagrant-openstack-plugin/action/read_ssh_info.rb
83
90
  - lib/vagrant-openstack-plugin/action/read_state.rb
91
+ - lib/vagrant-openstack-plugin/action/reboot_server.rb
84
92
  - lib/vagrant-openstack-plugin/action/resume_server.rb
85
93
  - lib/vagrant-openstack-plugin/action/suspend_server.rb
86
94
  - lib/vagrant-openstack-plugin/action/sync_folders.rb
87
- - lib/vagrant-openstack-plugin/action/unpause_server.rb
95
+ - lib/vagrant-openstack-plugin/action/wait_for_state.rb
88
96
  - lib/vagrant-openstack-plugin/action/warn_networks.rb
89
97
  - lib/vagrant-openstack-plugin/config.rb
90
98
  - lib/vagrant-openstack-plugin/errors.rb