vagrant-openstack-plugin-tom 0.12.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.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.travis.yml +11 -0
  4. data/Authors.txt +11 -0
  5. data/CHANGELOG.md +185 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +23 -0
  8. data/README.md +278 -0
  9. data/Rakefile +21 -0
  10. data/dummy.box +0 -0
  11. data/example_box/README.md +13 -0
  12. data/example_box/metadata.json +3 -0
  13. data/example_vagrant_file +24 -0
  14. data/lib/vagrant-openstack-plugin.rb +53 -0
  15. data/lib/vagrant-openstack-plugin/action.rb +268 -0
  16. data/lib/vagrant-openstack-plugin/action/connect_openstack.rb +90 -0
  17. data/lib/vagrant-openstack-plugin/action/create_network_interfaces.rb +52 -0
  18. data/lib/vagrant-openstack-plugin/action/create_orchestration_stack.rb +97 -0
  19. data/lib/vagrant-openstack-plugin/action/create_server.rb +263 -0
  20. data/lib/vagrant-openstack-plugin/action/delete_orchestration_stack.rb +78 -0
  21. data/lib/vagrant-openstack-plugin/action/delete_server.rb +84 -0
  22. data/lib/vagrant-openstack-plugin/action/hard_reboot_server.rb +27 -0
  23. data/lib/vagrant-openstack-plugin/action/is_created.rb +16 -0
  24. data/lib/vagrant-openstack-plugin/action/is_paused.rb +16 -0
  25. data/lib/vagrant-openstack-plugin/action/is_snapshoting.rb +24 -0
  26. data/lib/vagrant-openstack-plugin/action/is_suspended.rb +16 -0
  27. data/lib/vagrant-openstack-plugin/action/message_already_created.rb +16 -0
  28. data/lib/vagrant-openstack-plugin/action/message_already_paused.rb +16 -0
  29. data/lib/vagrant-openstack-plugin/action/message_already_suspended.rb +16 -0
  30. data/lib/vagrant-openstack-plugin/action/message_not_created.rb +16 -0
  31. data/lib/vagrant-openstack-plugin/action/message_server_running.rb +16 -0
  32. data/lib/vagrant-openstack-plugin/action/message_snapshot_done.rb +16 -0
  33. data/lib/vagrant-openstack-plugin/action/message_snapshot_in_progress.rb +16 -0
  34. data/lib/vagrant-openstack-plugin/action/message_will_not_destroy.rb +16 -0
  35. data/lib/vagrant-openstack-plugin/action/pause_server.rb +27 -0
  36. data/lib/vagrant-openstack-plugin/action/read_ssh_info.rb +103 -0
  37. data/lib/vagrant-openstack-plugin/action/read_state.rb +39 -0
  38. data/lib/vagrant-openstack-plugin/action/reboot_server.rb +27 -0
  39. data/lib/vagrant-openstack-plugin/action/resume_server.rb +31 -0
  40. data/lib/vagrant-openstack-plugin/action/suspend_server.rb +27 -0
  41. data/lib/vagrant-openstack-plugin/action/sync_folders.rb +104 -0
  42. data/lib/vagrant-openstack-plugin/action/take_snapshot.rb +26 -0
  43. data/lib/vagrant-openstack-plugin/action/wait_for_state.rb +39 -0
  44. data/lib/vagrant-openstack-plugin/action/wait_for_task.rb +44 -0
  45. data/lib/vagrant-openstack-plugin/action/warn_networks.rb +19 -0
  46. data/lib/vagrant-openstack-plugin/command.rb +70 -0
  47. data/lib/vagrant-openstack-plugin/command/command_snapshot.rb +43 -0
  48. data/lib/vagrant-openstack-plugin/config.rb +246 -0
  49. data/lib/vagrant-openstack-plugin/errors.rb +71 -0
  50. data/lib/vagrant-openstack-plugin/plugin.rb +45 -0
  51. data/lib/vagrant-openstack-plugin/provider.rb +50 -0
  52. data/lib/vagrant-openstack-plugin/version.rb +5 -0
  53. data/locales/en.yml +154 -0
  54. data/spec/vagrant-openstack-plugin/config_spec.rb +152 -0
  55. data/vagrant-openstack-plugin.gemspec +24 -0
  56. metadata +142 -0
@@ -0,0 +1,246 @@
1
+ require "vagrant"
2
+
3
+ module VagrantPlugins
4
+ module OpenStack
5
+ class Config < Vagrant.plugin("2", :config)
6
+ # The API key to access OpenStack.
7
+ #
8
+ # @return [String]
9
+ attr_accessor :api_key
10
+
11
+ # The endpoint to access OpenStack. If nil, it will default
12
+ # to DFW.
13
+ #
14
+ # @return [String]
15
+ attr_accessor :endpoint
16
+
17
+ # The flavor of server to launch, either the ID or name. This
18
+ # can also be a regular expression to partially match a name.
19
+ attr_accessor :flavor
20
+
21
+ # The name or ID of the image to use. This can also be a regular
22
+ # expression to partially match a name.
23
+ attr_accessor :image
24
+
25
+ # The name of the server. This defaults to the name of the machine
26
+ # defined by Vagrant (via `config.vm.define`), but can be overriden
27
+ # here.
28
+ attr_accessor :server_name
29
+
30
+ # The username to access OpenStack.
31
+ #
32
+ # @return [String]
33
+ attr_accessor :username
34
+
35
+ # The name of the keypair to use.
36
+ #
37
+ # @return [String]
38
+ attr_accessor :keypair_name
39
+
40
+ # Network configurations for the instance
41
+ #
42
+ # @return [String]
43
+ attr_accessor :network
44
+
45
+ # @return [Array]
46
+ attr_accessor :networks
47
+
48
+ # A specific address identifier to use when connecting.
49
+ # Overrides `network` above if both are set.
50
+ #
51
+ attr_accessor :address_id
52
+
53
+ # Pass hints to the OpenStack scheduler, e.g. { "cell": "some cell name" }
54
+ attr_accessor :scheduler_hints
55
+
56
+ # Specify the availability zone in which to create the instance
57
+ attr_accessor :availability_zone
58
+
59
+ # List of strings representing the security groups to apply.
60
+ # e.g. ['ssh', 'http']
61
+ #
62
+ # @return [Array[String]]
63
+ attr_accessor :security_groups
64
+
65
+ # The SSH username to use with this OpenStack instance. This overrides
66
+ # the `config.ssh.username` variable.
67
+ #
68
+ # @return [String]
69
+ attr_accessor :ssh_username
70
+
71
+ # The IP address family that will be used to connect to the instance
72
+ #
73
+ # @return [String]
74
+ attr_accessor :ssh_ip_family
75
+
76
+ # A Hash of metadata that will be sent to the instance for configuration
77
+ #
78
+ # @return [Hash]
79
+ attr_accessor :metadata
80
+
81
+ # The tenant to use.
82
+ #
83
+ # @return [String]
84
+ attr_accessor :tenant
85
+
86
+ # User data to be sent to the newly created OpenStack instance. Use this
87
+ # e.g. to inject a script at boot time.
88
+ #
89
+ # @return [String]
90
+ attr_accessor :user_data
91
+
92
+ # The floating IP address from the IP pool which will be assigned to the instance.
93
+ #
94
+ # @return [String]
95
+ attr_accessor :floating_ip
96
+
97
+ # The floating IP pool from which IP addresses can be allocated
98
+ #
99
+ # @return [String]
100
+ attr_accessor :floating_ip_pool
101
+
102
+ # The region to specify when the OpenStack cloud has multiple regions
103
+ #
104
+ # @return [String]
105
+ attr_accessor :region
106
+
107
+ # The region to specify when the OpenStack cloud has multiple regions
108
+ #
109
+ # @return [String]
110
+ attr_accessor :project_name
111
+
112
+ # The region to specify when the OpenStack cloud has multiple regions
113
+ #
114
+ # @return [String]
115
+ attr_accessor :project_domain
116
+
117
+ # The region to specify when the OpenStack cloud has multiple regions
118
+ #
119
+ # @return [String]
120
+ attr_accessor :user_domain
121
+
122
+ # The proxy to specify when making connection to OpenStack API.
123
+ #
124
+ # @return [String]
125
+ attr_accessor :proxy
126
+
127
+ # The disks to create as OpenStack volumes.
128
+ #
129
+ # @return [Array]
130
+ attr_accessor :disks
131
+
132
+ # Value for SSL_VERIFY_PEER, defaults to true. Set to false for self
133
+ # signed ssl certificate
134
+ attr_accessor :ssl_verify_peer
135
+
136
+ # Heat orchestration configuration parameters.
137
+ attr_accessor :orchestration_stack_name
138
+ attr_accessor :orchestration_stack_destroy
139
+ attr_accessor :orchestration_cfn_template
140
+ attr_accessor :orchestration_cfn_template_file
141
+ attr_accessor :orchestration_cfn_template_url
142
+ attr_accessor :orchestration_cfn_template_parameters
143
+
144
+ def initialize
145
+ @api_key = UNSET_VALUE
146
+ @endpoint = UNSET_VALUE
147
+ @flavor = UNSET_VALUE
148
+ @image = UNSET_VALUE
149
+ @server_name = UNSET_VALUE
150
+ @metatdata = UNSET_VALUE
151
+ @username = UNSET_VALUE
152
+ @keypair_name = UNSET_VALUE
153
+ @network = UNSET_VALUE
154
+ @networks = UNSET_VALUE
155
+ @address_id = UNSET_VALUE
156
+ @scheduler_hints = UNSET_VALUE
157
+ @availability_zone = UNSET_VALUE
158
+ @security_groups = UNSET_VALUE
159
+ @ssh_username = UNSET_VALUE
160
+ @ssh_ip_family = UNSET_VALUE
161
+ @tenant = UNSET_VALUE
162
+ @user_data = UNSET_VALUE
163
+ @floating_ip = UNSET_VALUE
164
+ @floating_ip_pool = UNSET_VALUE
165
+ @region = UNSET_VALUE
166
+ @project_name = UNSET_VALUE
167
+ @project_domain = UNSET_VALUE
168
+ @user_domain = UNSET_VALUE
169
+ @proxy = UNSET_VALUE
170
+ @ssl_verify_peer = UNSET_VALUE
171
+ @disks = UNSET_VALUE
172
+ @orchestration_stack_name = UNSET_VALUE
173
+ @orchestration_stack_destroy = UNSET_VALUE
174
+ @orchestration_cfn_template = UNSET_VALUE
175
+ @orchestration_cfn_template_file = UNSET_VALUE
176
+ @orchestration_cfn_template_url = UNSET_VALUE
177
+ @orchestration_cfn_template_parameters = UNSET_VALUE
178
+ end
179
+
180
+ def finalize!
181
+ @api_key = nil if @api_key == UNSET_VALUE
182
+ @endpoint = nil if @endpoint == UNSET_VALUE
183
+ @flavor = /m1.tiny/ if @flavor == UNSET_VALUE
184
+ @image = /cirros/ if @image == UNSET_VALUE
185
+ @server_name = nil if @server_name == UNSET_VALUE
186
+ @metadata = nil if @metadata == UNSET_VALUE
187
+ @username = nil if @username == UNSET_VALUE
188
+ @network = nil if @network == UNSET_VALUE
189
+ @networks = nil if @networks == UNSET_VALUE
190
+ @address_id = 'public' if @address_id == UNSET_VALUE
191
+
192
+ # Keypair defaults to nil
193
+ @keypair_name = nil if @keypair_name == UNSET_VALUE
194
+
195
+ @scheduler_hints = nil if @scheduler_hints == UNSET_VALUE
196
+ @availability_zone = nil if @availability_zone == UNSET_VALUE
197
+ @security_groups = nil if @security_groups == UNSET_VALUE
198
+
199
+ # The SSH values by default are nil, and the top-level config
200
+ # `config.ssh` values are used.
201
+ @ssh_username = nil if @ssh_username == UNSET_VALUE
202
+ @ssh_ip_family = nil if @ssh_ip_family == UNSET_VALUE
203
+
204
+ @tenant = nil if @tenant == UNSET_VALUE
205
+ @user_data = "" if @user_data == UNSET_VALUE
206
+ @floating_ip = nil if @floating_ip == UNSET_VALUE
207
+ @floating_ip_pool = nil if @floating_ip_pool == UNSET_VALUE
208
+
209
+ @region = nil if @region == UNSET_VALUE
210
+ @project_name = nil if @project_name == UNSET_VALUE
211
+ @project_domain = nil if @project_domain == UNSET_VALUE
212
+ @user_domain = nil if @user_domain == UNSET_VALUE
213
+
214
+ @disks = nil if @disks == UNSET_VALUE
215
+
216
+ @region = nil if @region == UNSET_VALUE
217
+ @proxy = nil if @proxy == UNSET_VALUE
218
+ @ssl_verify_peer = nil if @ssl_verify_peer == UNSET_VALUE
219
+
220
+ @orchestration_stack_name = nil if @orchestration_stack_name == UNSET_VALUE
221
+ @orchestration_stack_destroy = false if @orchestration_stack_destroy == UNSET_VALUE
222
+ @orchestration_cfn_template = nil if @orchestration_cfn_template == UNSET_VALUE
223
+ @orchestration_cfn_template_file = nil if @orchestration_cfn_template_file == UNSET_VALUE
224
+ @orchestration_cfn_template_url = nil if @orchestration_cfn_template_url == UNSET_VALUE
225
+ @orchestration_cfn_template_parameters = nil if @orchestration_cfn_template_parameters == UNSET_VALUE
226
+ end
227
+
228
+ def validate(machine)
229
+ errors = []
230
+
231
+ errors << I18n.t("vagrant_openstack.config.api_key_required") if !@api_key
232
+ errors << I18n.t("vagrant_openstack.config.username_required") if !@username
233
+
234
+ if @disks and @disks.any?{|a| not a.respond_to?("include?")}
235
+ errors << I18n.t("vagrant_openstack.config.disks.specification_required")
236
+ elsif @disks
237
+ errors << I18n.t("vagrant_openstack.config.disks.name_required") if @disks.any?{|a| not a.include?("name")}
238
+ errors << I18n.t("vagrant_openstack.config.disks.description_required") if @disks.any?{|a| not a.include?("description")}
239
+ errors << I18n.t("vagrant_openstack.config.disks.size_required") if @disks.any?{|a| not a.include?("size")}
240
+ end
241
+
242
+ { "OpenStack Provider" => errors }
243
+ end
244
+ end
245
+ end
246
+ end
@@ -0,0 +1,71 @@
1
+ require "vagrant"
2
+
3
+ module VagrantPlugins
4
+ module OpenStack
5
+ module Errors
6
+ class VagrantOpenStackError < Vagrant::Errors::VagrantError
7
+ error_namespace("vagrant_openstack.errors")
8
+ end
9
+
10
+ class VolumeBadState < VagrantOpenStackError
11
+ error_key(:volume_bad_state)
12
+ end
13
+
14
+ class CreateBadState < VagrantOpenStackError
15
+ error_key(:create_bad_state)
16
+ end
17
+
18
+ class NoMatchingFlavor < VagrantOpenStackError
19
+ error_key(:no_matching_flavor)
20
+ end
21
+
22
+ class NoMatchingImage < VagrantOpenStackError
23
+ error_key(:no_matching_image)
24
+ end
25
+
26
+ class RsyncError < VagrantOpenStackError
27
+ error_key(:rsync_error)
28
+ end
29
+
30
+ class SSHNoValidHost < VagrantOpenStackError
31
+ error_key(:ssh_no_valid_host)
32
+ end
33
+
34
+ class FloatingIPNotValid < VagrantOpenStackError
35
+ error_key(:floating_ip_not_valid)
36
+ end
37
+
38
+ class FloatingIPNotFound < VagrantOpenStackError
39
+ error_key(:floating_ip_not_found)
40
+ end
41
+
42
+ class FloatingIPNotAllocated < VagrantOpenStackError
43
+ error_key(:floating_ip_not_allocated)
44
+ end
45
+
46
+ class FloatingUnassignedIPNotFound < VagrantOpenStackError
47
+ error_key(:floating_unassigned_ip_not_found)
48
+ end
49
+
50
+ class FloatingIPFailedAssociate < VagrantOpenStackError
51
+ error_key(:floating_ip_failed_associate)
52
+ end
53
+
54
+ class FloatingUnassignedRequiresPool < VagrantOpenStackError
55
+ error_key(:floating_unassigned_requires_pool)
56
+ end
57
+
58
+ class OrchestrationTemplateError < VagrantOpenStackError
59
+ error_key(:orchestration_template_error)
60
+ end
61
+
62
+ class OrchestrationNoTemplateFileError < VagrantOpenStackError
63
+ error_key(:orchestration_no_template_file_error)
64
+ end
65
+
66
+ class ServerNotDestroyed < VagrantOpenStackError
67
+ error_key(:server_not_destroyed)
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,45 @@
1
+ begin
2
+ require "vagrant"
3
+ rescue LoadError
4
+ raise "The OpenStack Cloud provider must be run within Vagrant."
5
+ end
6
+
7
+ # This is a sanity check to make sure no one is attempting to install
8
+ # this into an early Vagrant version.
9
+ if Vagrant::VERSION < "1.1.0"
10
+ raise "OpenStack Cloud provider is only compatible with Vagrant 1.1+"
11
+ end
12
+
13
+ module VagrantPlugins
14
+ module OpenStack
15
+ module Action
16
+ class Plugin < Vagrant.plugin("2")
17
+ name "OpenStack Cloud"
18
+ description <<-DESC
19
+ This plugin enables Vagrant to manage machines in OpenStack Cloud.
20
+ DESC
21
+
22
+ config(:openstack, :provider) do
23
+ require_relative "config"
24
+ Config
25
+ end
26
+
27
+ provider(:openstack, parallel: true) do
28
+ # Setup some things
29
+ OpenStack.init_i18n
30
+ OpenStack.init_logging
31
+
32
+ # Load the actual provider
33
+ require_relative "provider"
34
+ Provider
35
+ end
36
+
37
+ command "openstack" do
38
+ require_relative "command"
39
+ Command
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ require "vagrant"
2
+
3
+ require "vagrant-openstack-plugin/action"
4
+
5
+ module VagrantPlugins
6
+ module OpenStack
7
+ class Provider < Vagrant.plugin("2", :provider)
8
+ def initialize(machine)
9
+ @machine = machine
10
+ end
11
+
12
+ def action(name)
13
+ # Attempt to get the action method from the Action class if it
14
+ # exists, otherwise return nil to show that we don't support the
15
+ # given action.
16
+ action_method = "action_#{name}"
17
+ return Action.send(action_method) if Action.respond_to?(action_method)
18
+ nil
19
+ end
20
+
21
+ def ssh_info
22
+ # Run a custom action called "read_ssh_info" which does what it
23
+ # says and puts the resulting SSH info into the `:machine_ssh_info`
24
+ # key in the environment.
25
+ env = @machine.action("read_ssh_info")
26
+ env[:machine_ssh_info]
27
+ end
28
+
29
+ def state
30
+ # Run a custom action we define called "read_state" which does
31
+ # what it says. It puts the state in the `:machine_state_id`
32
+ # key in the environment.
33
+ env = @machine.action("read_state")
34
+
35
+ state_id = env[:machine_state_id]
36
+
37
+ # Get the short and long description
38
+ short = I18n.t("vagrant_openstack.states.short_#{state_id}")
39
+ long = I18n.t("vagrant_openstack.states.long_#{state_id}")
40
+
41
+ # Return the MachineState object
42
+ Vagrant::MachineState.new(state_id, short, long)
43
+ end
44
+
45
+ def to_s
46
+ "OpenStack Cloud"
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,5 @@
1
+ module VagrantPlugins
2
+ module OpenStack
3
+ VERSION = '0.12.0'
4
+ end
5
+ end
data/locales/en.yml ADDED
@@ -0,0 +1,154 @@
1
+ en:
2
+ vagrant_openstack:
3
+ already_created: |-
4
+ The server is already created.
5
+ already_paused: |-
6
+ The server is already paused.
7
+ already_suspended: |-
8
+ The server is already suspended.
9
+ creating_disks: |-
10
+ Creating disks with the folowing settings...
11
+ deleting_server: |-
12
+ Deleting server...
13
+ deleting_volumes: |-
14
+ Deleting volumes...
15
+ finding_flavor: |-
16
+ Finding flavor for server...
17
+ finding_image: |-
18
+ Finding image for server...
19
+ finding_network: |-
20
+ Finding network for server...
21
+ hard_rebooting_server: |-
22
+ Hard rebooting server instance.
23
+ launching_server: |-
24
+ Launching a server with the following settings...
25
+ not_created: |-
26
+ The server hasn't been created yet. Run `vagrant up` first.
27
+ pausing_server: |-
28
+ The server instance has been paused.
29
+ ready: |-
30
+ The server is ready!
31
+ rebooting_server: |-
32
+ This server instance is rebooting!
33
+ snapshoting_server: |-
34
+ This server instance is snapshoting!
35
+ snapshot_done: |-
36
+ Snapshot is ok
37
+ snapshot_in_progress: |-
38
+ Snapshot is in progress
39
+ resuming_server: |-
40
+ The server instance has been resumed.
41
+ rsync_folder: |-
42
+ Rsyncing folder: %{hostpath} => %{guestpath}
43
+ server_running: |-
44
+ The instance '%{name}' is already running!
45
+ suspending_server: |-
46
+ The server instance has been suspended!
47
+ waiting_for_build: |-
48
+ Waiting for the server to be built...
49
+ waiting_for_ssh: |-
50
+ Waiting for SSH to become available...
51
+ warn_networks: |-
52
+ Warning! The OpenStack provider doesn't support any of the Vagrant
53
+ high-level network configurations (`config.vm.network`). They
54
+ will be silently ignored.
55
+ will_not_destroy: |-
56
+ The instance '%{name}' will not be destroyed, since the confirmation
57
+ was declined.
58
+ creating_orchestration_stack: |-
59
+ Creating orchestration stack...
60
+ deleting_orchestration_stacks: |-
61
+ Deleting orchestration stacks...
62
+ config:
63
+ api_key_required: |-
64
+ An API key is required.
65
+ username_required: |-
66
+ A username is required.
67
+ metadata_must_be_hash: |-
68
+ Metadata must be a hash.
69
+ disks:
70
+ specification_required: |-
71
+ A disk specification is required for a disk configuration (array of hashes including name, description and size keys).
72
+ name_required: |-
73
+ A disk name is required for all disk specifications.
74
+ description_required: |-
75
+ A disk description is required for all disk specifications.
76
+ size_required: |-
77
+ A disk size is required for all disk specifications.
78
+
79
+ errors:
80
+ volume_bad_state: |-
81
+ The OpenStack volume '%{volume}' requested is in an unexpected state:
82
+ '%{state}'
83
+ Please run `vagrant destroy` if you want to start over.
84
+ create_bad_state: |-
85
+ While creating the server, it transitioned to an unexpected
86
+ state: '%{state}', instead of properly booting. Run `vagrant status`
87
+ to find out what can be done about this state, or `vagrant destroy`
88
+ if you want to start over.
89
+ no_matching_flavor: |-
90
+ No matching flavor was found! Please check your flavor setting
91
+ to make sure you have a valid flavor chosen.
92
+ no_matching_image: |-
93
+ No matching image was found! Please check your image setting to
94
+ make sure you have a valid image chosen.
95
+ rsync_error: |-
96
+ There was an error when attemping to rsync a share folder.
97
+ Please inspect the error message below for more info.
98
+
99
+ Host path: %{hostpath}
100
+ Guest path: %{guestpath}
101
+ Error: %{stderr}
102
+ ssh_no_valid_host: |-
103
+ Unable to determine what host to connect to. Run `vagrant up` in
104
+ debug mode to see a list of networks available to your tenant.
105
+ Then set either `os.network` or `os.address_id` to one of the
106
+ network names.
107
+ floating_ip_not_valid: |-
108
+ The floating IP specified in the Vagrantfile does not match an
109
+ available public IP address returned by OpenStack.
110
+ floating_ip_not_found: |-
111
+ A floating IP could not be allocated, as no available floating
112
+ IPs were found in OpenStack
113
+ floating_ip_not_allocated: |-
114
+ A floating IP could not be allocated from the pool.
115
+ floating_unassigned_ip_not_found: |-
116
+ An unassigned floating IP could not be found in the specified pool.
117
+ floating_ip_failed_associate: |-
118
+ The selected IP failed to associate
119
+ floating_unassigned_requires_pool: |-
120
+ You must specifiy a pool in floating_ip_pool when using associate_unassigned
121
+ orchestration_template_error: |-
122
+ There was an error while reading orchestration template.
123
+ Error: %{err}
124
+ orchestration_no_template_file_error: |-
125
+ Orchestration template file not found (%{fname}).
126
+ server_not_destroyed: |-
127
+ OpenStack server was not fully destroyed.
128
+
129
+ states:
130
+ short_active: |-
131
+ active
132
+ long_active: |-
133
+ The server is up and running. Run `vagrant ssh` to access it.
134
+ short_build: |-
135
+ building
136
+ short_suspended: |-
137
+ suspended
138
+ short_paused: |-
139
+ paused
140
+ short_shutoff: |-
141
+ shutdown
142
+ long_build: |-
143
+ The server is currently being built. You must wait for this to
144
+ complete before you can access it. You can delete the server, however,
145
+ by running `vagrant destroy`.
146
+ short_error: |-
147
+ error
148
+ long_error: |-
149
+ The server is in an erroneous state. Destroy the machine with
150
+ `vagrant destroy`.
151
+ short_not_created: |-
152
+ not created
153
+ long_not_created: |-
154
+ The server is not created. Run `vagrant up` to create it.