vagrant-openstack-illuin-provider 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.rubocop.yml +40 -0
  4. data/CHANGELOG.md +282 -0
  5. data/Gemfile +18 -0
  6. data/RELEASE.md +15 -0
  7. data/Rakefile +25 -0
  8. data/Vagrantfile +20 -0
  9. data/dummy.box +0 -0
  10. data/example_box/README.md +13 -0
  11. data/example_box/metadata.json +3 -0
  12. data/functional_tests/Vagrantfile +58 -0
  13. data/functional_tests/keys/vagrant-openstack +27 -0
  14. data/functional_tests/keys/vagrant-openstack.pub +1 -0
  15. data/functional_tests/run_tests.sh +142 -0
  16. data/lib/vagrant-openstack-illuin-provider.rb +29 -0
  17. data/lib/vagrant-openstack-illuin-provider/action.rb +344 -0
  18. data/lib/vagrant-openstack-illuin-provider/action/abstract_action.rb +22 -0
  19. data/lib/vagrant-openstack-illuin-provider/action/connect_openstack.rb +60 -0
  20. data/lib/vagrant-openstack-illuin-provider/action/create_server.rb +187 -0
  21. data/lib/vagrant-openstack-illuin-provider/action/create_stack.rb +76 -0
  22. data/lib/vagrant-openstack-illuin-provider/action/delete_server.rb +53 -0
  23. data/lib/vagrant-openstack-illuin-provider/action/delete_stack.rb +73 -0
  24. data/lib/vagrant-openstack-illuin-provider/action/message.rb +19 -0
  25. data/lib/vagrant-openstack-illuin-provider/action/provision.rb +60 -0
  26. data/lib/vagrant-openstack-illuin-provider/action/read_ssh_info.rb +74 -0
  27. data/lib/vagrant-openstack-illuin-provider/action/read_state.rb +43 -0
  28. data/lib/vagrant-openstack-illuin-provider/action/resume.rb +24 -0
  29. data/lib/vagrant-openstack-illuin-provider/action/snapshot_cleanup.rb +32 -0
  30. data/lib/vagrant-openstack-illuin-provider/action/snapshot_delete.rb +32 -0
  31. data/lib/vagrant-openstack-illuin-provider/action/snapshot_list.rb +22 -0
  32. data/lib/vagrant-openstack-illuin-provider/action/snapshot_restore.rb +29 -0
  33. data/lib/vagrant-openstack-illuin-provider/action/snapshot_save.rb +51 -0
  34. data/lib/vagrant-openstack-illuin-provider/action/start_server.rb +24 -0
  35. data/lib/vagrant-openstack-illuin-provider/action/stop_server.rb +25 -0
  36. data/lib/vagrant-openstack-illuin-provider/action/suspend.rb +24 -0
  37. data/lib/vagrant-openstack-illuin-provider/action/sync_folders.rb +138 -0
  38. data/lib/vagrant-openstack-illuin-provider/action/wait_active.rb +33 -0
  39. data/lib/vagrant-openstack-illuin-provider/action/wait_stop.rb +33 -0
  40. data/lib/vagrant-openstack-illuin-provider/cap/snapshot_list.rb +15 -0
  41. data/lib/vagrant-openstack-illuin-provider/catalog/openstack_catalog.rb +90 -0
  42. data/lib/vagrant-openstack-illuin-provider/client/cinder.rb +39 -0
  43. data/lib/vagrant-openstack-illuin-provider/client/domain.rb +163 -0
  44. data/lib/vagrant-openstack-illuin-provider/client/glance.rb +65 -0
  45. data/lib/vagrant-openstack-illuin-provider/client/heat.rb +49 -0
  46. data/lib/vagrant-openstack-illuin-provider/client/http_utils.rb +116 -0
  47. data/lib/vagrant-openstack-illuin-provider/client/keystone.rb +128 -0
  48. data/lib/vagrant-openstack-illuin-provider/client/neutron.rb +48 -0
  49. data/lib/vagrant-openstack-illuin-provider/client/nova.rb +303 -0
  50. data/lib/vagrant-openstack-illuin-provider/client/openstack.rb +59 -0
  51. data/lib/vagrant-openstack-illuin-provider/client/request_logger.rb +23 -0
  52. data/lib/vagrant-openstack-illuin-provider/client/rest_utils.rb +28 -0
  53. data/lib/vagrant-openstack-illuin-provider/command/abstract_command.rb +51 -0
  54. data/lib/vagrant-openstack-illuin-provider/command/flavor_list.rb +24 -0
  55. data/lib/vagrant-openstack-illuin-provider/command/floatingip_list.rb +32 -0
  56. data/lib/vagrant-openstack-illuin-provider/command/image_list.rb +29 -0
  57. data/lib/vagrant-openstack-illuin-provider/command/main.rb +52 -0
  58. data/lib/vagrant-openstack-illuin-provider/command/network_list.rb +25 -0
  59. data/lib/vagrant-openstack-illuin-provider/command/openstack_command.rb +16 -0
  60. data/lib/vagrant-openstack-illuin-provider/command/reset.rb +20 -0
  61. data/lib/vagrant-openstack-illuin-provider/command/subnet_list.rb +22 -0
  62. data/lib/vagrant-openstack-illuin-provider/command/utils.rb +22 -0
  63. data/lib/vagrant-openstack-illuin-provider/command/volume_list.rb +25 -0
  64. data/lib/vagrant-openstack-illuin-provider/config.rb +505 -0
  65. data/lib/vagrant-openstack-illuin-provider/config/http.rb +39 -0
  66. data/lib/vagrant-openstack-illuin-provider/config_resolver.rb +334 -0
  67. data/lib/vagrant-openstack-illuin-provider/errors.rb +187 -0
  68. data/lib/vagrant-openstack-illuin-provider/logging.rb +39 -0
  69. data/lib/vagrant-openstack-illuin-provider/plugin.rb +58 -0
  70. data/lib/vagrant-openstack-illuin-provider/provider.rb +50 -0
  71. data/lib/vagrant-openstack-illuin-provider/utils.rb +81 -0
  72. data/lib/vagrant-openstack-illuin-provider/version.rb +15 -0
  73. data/lib/vagrant-openstack-illuin-provider/version_checker.rb +76 -0
  74. data/locales/en.yml +412 -0
  75. data/spec/vagrant-openstack-illuin-provider/action/connect_openstack_spec.rb +770 -0
  76. data/spec/vagrant-openstack-illuin-provider/action/create_server_spec.rb +260 -0
  77. data/spec/vagrant-openstack-illuin-provider/action/create_stack_spec.rb +99 -0
  78. data/spec/vagrant-openstack-illuin-provider/action/delete_server_spec.rb +89 -0
  79. data/spec/vagrant-openstack-illuin-provider/action/delete_stack_spec.rb +63 -0
  80. data/spec/vagrant-openstack-illuin-provider/action/message_spec.rb +33 -0
  81. data/spec/vagrant-openstack-illuin-provider/action/provision_spec.rb +97 -0
  82. data/spec/vagrant-openstack-illuin-provider/action/read_ssh_info_spec.rb +202 -0
  83. data/spec/vagrant-openstack-illuin-provider/action/read_state_spec.rb +81 -0
  84. data/spec/vagrant-openstack-illuin-provider/action/resume_server_spec.rb +49 -0
  85. data/spec/vagrant-openstack-illuin-provider/action/start_server_spec.rb +49 -0
  86. data/spec/vagrant-openstack-illuin-provider/action/stop_server_spec.rb +49 -0
  87. data/spec/vagrant-openstack-illuin-provider/action/suspend_server_spec.rb +49 -0
  88. data/spec/vagrant-openstack-illuin-provider/action/sync_folders_spec.rb +155 -0
  89. data/spec/vagrant-openstack-illuin-provider/action/wait_active_spec.rb +53 -0
  90. data/spec/vagrant-openstack-illuin-provider/action/wait_stop_spec.rb +53 -0
  91. data/spec/vagrant-openstack-illuin-provider/action_spec.rb +120 -0
  92. data/spec/vagrant-openstack-illuin-provider/client/cinder_spec.rb +129 -0
  93. data/spec/vagrant-openstack-illuin-provider/client/glance_spec.rb +145 -0
  94. data/spec/vagrant-openstack-illuin-provider/client/heat_spec.rb +130 -0
  95. data/spec/vagrant-openstack-illuin-provider/client/keystone_spec.rb +226 -0
  96. data/spec/vagrant-openstack-illuin-provider/client/neutron_spec.rb +173 -0
  97. data/spec/vagrant-openstack-illuin-provider/client/nova_spec.rb +760 -0
  98. data/spec/vagrant-openstack-illuin-provider/client/utils_spec.rb +176 -0
  99. data/spec/vagrant-openstack-illuin-provider/command/flavor_list_spec.rb +43 -0
  100. data/spec/vagrant-openstack-illuin-provider/command/floatingip_list_spec.rb +74 -0
  101. data/spec/vagrant-openstack-illuin-provider/command/image_list_spec.rb +95 -0
  102. data/spec/vagrant-openstack-illuin-provider/command/network_list_spec.rb +65 -0
  103. data/spec/vagrant-openstack-illuin-provider/command/reset_spec.rb +24 -0
  104. data/spec/vagrant-openstack-illuin-provider/command/subnet_list_spec.rb +45 -0
  105. data/spec/vagrant-openstack-illuin-provider/command/volume_list_spec.rb +40 -0
  106. data/spec/vagrant-openstack-illuin-provider/config_resolver_spec.rb +879 -0
  107. data/spec/vagrant-openstack-illuin-provider/config_spec.rb +416 -0
  108. data/spec/vagrant-openstack-illuin-provider/e2e_spec.rb.save +27 -0
  109. data/spec/vagrant-openstack-illuin-provider/provider_spec.rb +13 -0
  110. data/spec/vagrant-openstack-illuin-provider/spec_helper.rb +37 -0
  111. data/spec/vagrant-openstack-illuin-provider/utils_spec.rb +197 -0
  112. data/spec/vagrant-openstack-illuin-provider/version_checker_spec.rb +39 -0
  113. data/stackrc +25 -0
  114. data/vagrant-openstack-illuin-provider.gemspec +35 -0
  115. metadata +379 -0
@@ -0,0 +1,39 @@
1
+ module VagrantPlugins
2
+ module Openstack
3
+ module Logging
4
+ # This initializes the logging so that our logs are outputted at
5
+ # the same level as Vagrant core logs.
6
+ def self.init
7
+ # Initialize logging
8
+ level = nil
9
+ begin
10
+ level = Log4r.const_get(ENV['VAGRANT_LOG'].upcase)
11
+ rescue NameError
12
+ # This means that the logging constant wasn't found,
13
+ # which is fine. We just keep `level` as `nil`. But
14
+ # we tell the user.
15
+ begin
16
+ level = Log4r.const_get(ENV['VAGRANT_OPENSTACK_LOG'].upcase)
17
+ rescue NameError
18
+ level = nil
19
+ end
20
+ end
21
+
22
+ # Some constants, such as "true" resolve to booleans, so the
23
+ # above error checking doesn't catch it. This will check to make
24
+ # sure that the log level is an integer, as Log4r requires.
25
+ level = nil unless level.is_a?(Integer)
26
+
27
+ # Set the logging level
28
+ # logs as long as we have a valid level.
29
+ if level
30
+ logger = Log4r::Logger.new('vagrant_openstack')
31
+ out = Log4r::Outputter.stdout
32
+ out.formatter = Log4r::PatternFormatter.new(pattern: '%d | %5l | %m', date_pattern: '%Y-%m-%d %H:%M')
33
+ logger.outputters = out
34
+ logger.level = level
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,58 @@
1
+ begin
2
+ require 'vagrant'
3
+ rescue LoadError
4
+ raise 'The Openstack Cloud provider must be run within Vagrant.'
5
+ end
6
+
7
+ require 'vagrant-openstack-illuin-provider/version_checker'
8
+
9
+ # This is a sanity check to make sure no one is attempting to install
10
+ # this into an early Vagrant version.
11
+ if Vagrant::VERSION < '1.4.0'
12
+ fail 'Openstack Cloud provider is only compatible with Vagrant 1.4+'
13
+ end
14
+
15
+ module VagrantPlugins
16
+ module Openstack
17
+ class Plugin < Vagrant.plugin('2')
18
+ name 'Openstack Cloud'
19
+ description <<-DESC
20
+ This plugin enables Vagrant to manage machines in Openstack Cloud.
21
+ DESC
22
+
23
+ config(:openstack_illuin, :provider) do
24
+ require_relative 'config'
25
+ Config
26
+ end
27
+
28
+ provider(:openstack_illuin, box_optional: true, parallel: true) do
29
+ Openstack.init_i18n
30
+ Openstack.init_logging
31
+ VagrantPlugins::Openstack.check_version
32
+
33
+ # Load the actual provider
34
+ require_relative 'provider'
35
+ Provider
36
+ end
37
+
38
+ # TODO: Remove the if guard when Vagrant 1.8.0 is the minimum version.
39
+ # rubocop:disable IndentationWidth
40
+ if Gem::Version.new(Vagrant::VERSION) >= Gem::Version.new('1.8.0')
41
+ provider_capability('openstack', 'snapshot_list') do
42
+ require_relative 'cap/snapshot_list'
43
+ Cap::SnapshotList
44
+ end
45
+ end
46
+ # rubocop:enable IndentationWidth
47
+
48
+ command('openstack') do
49
+ Openstack.init_i18n
50
+ Openstack.init_logging
51
+ VagrantPlugins::Openstack.check_version
52
+
53
+ require_relative 'command/main'
54
+ Command::Main
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,50 @@
1
+ require 'vagrant'
2
+
3
+ require 'vagrant-openstack-illuin-provider/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', lock: false)
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', lock: false)
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,81 @@
1
+ module VagrantPlugins
2
+ module Openstack
3
+ class Utils
4
+ def initialize
5
+ @logger = Log4r::Logger.new('vagrant_openstack::action::config_resolver')
6
+ end
7
+
8
+ def get_ip_address(env)
9
+ addresses = env[:openstack_client].nova.get_server_details(env, env[:machine].id)['addresses']
10
+ # First, try to get a floating ip with the right version. If none of the floating ip is of the right version,
11
+ # return the first floating ip anyway.
12
+ fallback = nil
13
+ addresses.each do |_, network|
14
+ network.each do |network_detail|
15
+ next unless network_detail['OS-EXT-IPS:type'] == 'floating'
16
+ if env[:machine].provider_config.ip_version.nil?
17
+ return network_detail['addr']
18
+ elsif network_detail['version'] == env[:machine].provider_config.ip_version
19
+ return network_detail['addr']
20
+ end
21
+ fallback ||= network_detail['addr']
22
+ end
23
+ end
24
+ return fallback unless fallback.nil?
25
+
26
+ fail Errors::UnableToResolveIP if addresses.size == 0
27
+
28
+ # If only one network, we don't use networks config and return the first IP of the correct version
29
+ # If no IP for this version, return the first IP anyway
30
+ if addresses.size == 1
31
+ net_addresses = addresses.first[1]
32
+ fail Errors::UnableToResolveIP if net_addresses.size == 0
33
+ if env[:machine].provider_config.ip_version.nil?
34
+ return net_addresses[0]['addr']
35
+ else
36
+ right_version_ip = filter_by_version(net_addresses, env[:machine].provider_config.ip_version)
37
+ if right_version_ip.nil?
38
+ return net_addresses[0]['addr']
39
+ else
40
+ return right_version_ip
41
+ end
42
+ end
43
+ end
44
+
45
+ # If multiple networks exist, follow the order of the networks config and return the first IP of the correct
46
+ # version, be it in the first network or not.
47
+ fallback = nil
48
+ env[:machine].provider_config.networks.each do |network|
49
+ if network.is_a? String
50
+ net_addresses = addresses[network]
51
+ else
52
+ net_addresses = addresses[network[:name]]
53
+ end
54
+ next if net_addresses.size == 0
55
+ fallback ||= net_addresses[0]['addr']
56
+ if env[:machine].provider_config.ip_version.nil?
57
+ return net_addresses[0]['addr']
58
+ else
59
+ right_version_ip = filter_by_version(net_addresses, env[:machine].provider_config.ip_version)
60
+ if right_version_ip.nil?
61
+ next
62
+ else
63
+ return right_version_ip
64
+ end
65
+ end
66
+ end
67
+ fail Errors::UnableToResolveIP if fallback.nil?
68
+ fallback
69
+ end
70
+
71
+ private
72
+
73
+ def filter_by_version(net_addresses, wanted_ip_version)
74
+ net_addresses.each do |address|
75
+ return address['addr'] if address['version'] == wanted_ip_version
76
+ end
77
+ nil
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,15 @@
1
+ module VagrantPlugins
2
+ module Openstack
3
+ #
4
+ # Stable versions must respect the pattern given
5
+ # by VagrantPlugins::Openstack::VERSION_PATTERN
6
+ #
7
+ VERSION = '0.12.0'
8
+
9
+ #
10
+ # Stable version must respect the naming convention 'x.y.z'
11
+ # where x, y and z are integers inside the range [0, 999]
12
+ #
13
+ VERSION_PATTERN = /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/
14
+ end
15
+ end
@@ -0,0 +1,76 @@
1
+ require 'colorize'
2
+ require 'singleton'
3
+ require 'vagrant-openstack-illuin-provider/version'
4
+
5
+ module VagrantPlugins
6
+ module Openstack
7
+ class VersionChecker
8
+ include Singleton
9
+
10
+ #
11
+ # :latest, :outdated or :unstable
12
+ #
13
+ # A version is considered unstable if it does not
14
+ # respect the pattern or if it is greater than the
15
+ # latest from rubygem
16
+ #
17
+ attr_accessor :status
18
+
19
+ def initialize
20
+ @status = nil
21
+ end
22
+
23
+ #
24
+ # Check the latest version from rubygem and set the status
25
+ #
26
+ def check
27
+ return @status unless @status.nil?
28
+ latest = Gem.latest_spec_for('vagrant-openstack-illuin-provider').version.version
29
+ current = VagrantPlugins::Openstack::VERSION
30
+
31
+ unless current =~ VERSION_PATTERN
32
+ @status = :unstable
33
+ print I18n.t('vagrant_openstack.version_unstable')
34
+ return
35
+ end
36
+
37
+ if latest.eql? current
38
+ @status = :latest
39
+ return
40
+ end
41
+
42
+ v_latest = latest.split('.').map(&:to_i)
43
+ v_current = current.split('.').map(&:to_i)
44
+
45
+ i_latest = v_latest[2] + v_latest[1] * 1000 + v_latest[0] * 1_000_000
46
+ i_current = v_current[2] + v_current[1] * 1000 + v_current[0] * 1_000_000
47
+
48
+ if i_current > i_latest
49
+ @status = :unstable
50
+ print I18n.t('vagrant_openstack.version_unstable')
51
+ return
52
+ end
53
+
54
+ @status = :outdated
55
+ print I18n.t('vagrant_openstack.version_outdated', latest: latest, current: current)
56
+ end
57
+
58
+ private
59
+
60
+ def print(message)
61
+ puts message.yellow
62
+ puts ''
63
+ end
64
+ end
65
+
66
+ # rubocop:disable Lint/HandleExceptions
67
+ def self.check_version
68
+ Timeout.timeout(3, Errors::Timeout) do
69
+ VersionChecker.instance.check
70
+ end
71
+ rescue
72
+ # Do nothing whatever the failure cause
73
+ end
74
+ # rubocop:enable Lint/HandleExceptions
75
+ end
76
+ end
@@ -0,0 +1,412 @@
1
+ en:
2
+ vagrant_openstack:
3
+ global_error: |-
4
+ An unknown error happened in Vagrant OpenStack provider
5
+
6
+ To easily debug what happened, we recommend to set the environment
7
+ variable VAGRANT_OPENSTACK_LOG to debug
8
+
9
+ $ export VAGRANT_OPENSTACK_LOG=debug
10
+
11
+ If doing this does not help fixing your issue, there may be a bug
12
+ in the provider. Please submit an issue on Github at
13
+ https://github.com/ggiamarchi/vagrant-openstack-provider
14
+ with the stracktrace and the logs.
15
+
16
+ We are looking for feedback, so feel free to ask questions or
17
+ describe features you would like to see in this provider.
18
+ version_outdated: |-
19
+ You're not using the latest version of the 'vagrant-openstack-provider' plugin.
20
+ The latest version is %{latest}, yours is %{current}. You should update to the latest
21
+ version running the command :
22
+
23
+ $ vagrant plugin update vagrant-openstack-provider
24
+ version_unstable: |-
25
+ You're not running a stable version of the 'vagrant-openstack-provider' plugin.
26
+ Unless you are either developing on vagrant or have deliberately installed a not
27
+ stable version, you should uninstall it an install the latest stable version
28
+ running commands :
29
+
30
+ $ vagrant plugin uninstall vagrant-openstack-provider
31
+ $ vagrant plugin install vagrant-openstack-provider
32
+ already_created: |-
33
+ The server is already created.
34
+ create_stack: |-
35
+ Creating Heat Stack.
36
+ delete_stack: |-
37
+ Deleting Heat Stack.
38
+ already_suspended: |-
39
+ The server is already suspended.
40
+ ongoing_task: |-
41
+ The server is currently running a task and cannot execute your request.
42
+ not_suspended: |-
43
+ The server is not currently "suspended" and cannot be resumed.
44
+ deleting_server: |-
45
+ Deleting server...
46
+ finding_flavor: |-
47
+ Finding flavor for server...
48
+ finding_image: |-
49
+ Finding image for server...
50
+ finding_networks: |-
51
+ Finding network(s) for server...
52
+ finding_volumes: |-
53
+ Finding volume(s) to attach on server...
54
+ launching_server: |-
55
+ Launching a server with the following settings...
56
+ not_created: |-
57
+ The server hasn't been created yet. Run `vagrant up` first.
58
+ ready: |-
59
+ The server is ready!
60
+ stopping_server: |-
61
+ Stopping server...
62
+ starting_server: |-
63
+ Starting server...
64
+ timeout: |-
65
+ Timeout!
66
+ trying_authentication: |-
67
+ Trying authentication...
68
+ rsync_folder: |-
69
+ Rsyncing folder: %{hostpath} => %{guestpath}
70
+ using_floating_ip: |-
71
+ Using floating IP %{floating_ip}
72
+ waiting_for_floating_ip: |-
73
+ Waiting for floating IP %{floating_ip} to be assigned...
74
+ waiting_for_build: |-
75
+ Waiting for the server to be built...
76
+ waiting_for_ssh: |-
77
+ Waiting for SSH to become available...
78
+ waiting_stop: |-
79
+ Waiting for the server to stop...
80
+ waiting_start: |-
81
+ Waiting for the server to start...
82
+ waiting_deleted: |-
83
+ Waiting for the server to be deleted...
84
+ waiting_for_stack: |-
85
+ Waiting for Heat Stack to be created...
86
+ waiting_for_stack_deleted: |-
87
+ Waiting for Heat Stack to be created...
88
+ warn_networks: |-
89
+ Warning! The OpenStack provider doesn't support any of the Vagrant
90
+ high-level network configurations (`config.vm.network`). They
91
+ will be silently ignored.
92
+ warn_network_identifier_is_assumed_to_be_an_id: |-
93
+ As Neutron endpoint is not available, the identifier '%{network}' is assumed to be an id (not a name).
94
+ warn_volume_identifier_is_assumed_to_be_an_id: |-
95
+ As Cinder endpoint is not available, the identifier '%{volume}' is assumed to be an id (not a name).
96
+ ssh_disabled_provisioning: |-
97
+ Provisioning will not be performed because provider config ssh_disabled is set to true
98
+ ssh_disabled_sync_folders: |-
99
+ Folders will not be synced because provider config ssh_disabled is set to true
100
+ disabled_sync_folders: |-
101
+ Sync folders are disabled in the provider configuration
102
+
103
+ config:
104
+ password_required: |-
105
+ A password is required.
106
+ username_required: |-
107
+ A username is required.
108
+ tenant_name_required: |-
109
+ A tenant name is required.
110
+ invalid_uri: |-
111
+ The value for %{key} is not a valid URI: %{uri}
112
+ invalid_stack: |-
113
+ One of the stacks in the stacks provider configuration is invalid
114
+ The configuration option should have the following format:
115
+ os.stacks = [{
116
+ name: 'mystack',
117
+ template: '/path/to/heat_template.yml',
118
+ }]
119
+ invalid_endpoint_type: |-
120
+ endpoint_type must be publicURL, adminURL or internalURL (if not provided, default is publicURL)
121
+ metadata_must_be_hash: |-
122
+ Metadata must be a hash.
123
+ keypair_name_required: |-
124
+ Warning! You have specified ssh.private_key_path in your Vagrant configuration.
125
+ but nor keypair_name neither public_key_path are present. The OpenStack provider
126
+ will automatically generate a new keypair and your configuration option
127
+ ssh.private_key_path will be overriden
128
+ private_key_missing: |-
129
+ config.ssh.private_key_path is required when either keypair_name or
130
+ public_key_path is set in Vagrantfile
131
+ ssh_username_deprecated: |-
132
+ ssh_username provider config is deprecated for vagrant-openstack provider.
133
+ If you are using it, it will continue to work but we recommend to switch to the
134
+ standard vagrant configuration option `config.ssh.username` instead
135
+ ssh_username_required: |-
136
+ vagrant standard configuration option `ssh.username` is required
137
+ ssh_timeout_deprecated: |-
138
+ ssh_timeout provider config is deprecated for vagrant-openstack provider.
139
+ If you are using it, it will continue to work but we recommend switching
140
+ to the standard vagrant configuration option `config.vm.boot_timeout`.
141
+ invalid_value_for_parameter: |-
142
+ Invalid value '%{value}' for parameter '%{parameter}'
143
+ sync_folders_deprecated: |-
144
+ The following configuration settings are deprecated and should be
145
+ removed: rsync_includes, rsync_ignore_files, sync_method. Using these
146
+ settings causes the OpenStack provider to fall back to an old synced
147
+ folder implementation instead of using standard Vagrant synced folders.
148
+ domain_required: |-
149
+ A domain is required when using identity API version 3
150
+ project_name_required: |-
151
+ A project name is required when using identity API version 3
152
+ invalid_interface_type: |-
153
+ Interface type must be public, admin or internal (if not provided, default is public)
154
+ invalid_api_version: |-
155
+ identity API verison must be 2 or 3 (if not provided, default is 2)
156
+
157
+ errors:
158
+ default: |-
159
+ %{message}
160
+ timeout: |-
161
+ Timeout occurred
162
+ authentication_required: |-
163
+ Authentication token is missing or no longer valid.
164
+ floating_ip_already_assigned: |-
165
+ Floating IP %{floating_ip} already assigned to another server
166
+ floating_ip_not_available: |-
167
+ Floating IP %{floating_ip} not available for this tenant
168
+ authentication_failed: |-
169
+ Authentication failed.
170
+ bad_authentication_endpoint: |-
171
+ Bad authentication endpoint.
172
+ create_bad_state: |-
173
+ While creating the server, it transitioned to an unexpected
174
+ state: '%{state}', instead of properly booting. Run `vagrant status`
175
+ to find out what can be done about this state, or `vagrant destroy`
176
+ if you want to start over.
177
+ no_matching_api_version: |-
178
+ No matching version found for %{api_name} API
179
+
180
+ %{version_list}
181
+ You must specify the desired %{api_name} API url by setting
182
+ the provider's property '%{url_property}'.
183
+ no_matching_flavor: |-
184
+ No matching flavor was found! Please check your flavor setting
185
+ to make sure you have a valid flavor chosen.
186
+ no_matching_image: |-
187
+ No matching image was found! Please check your image setting to
188
+ make sure you have a valid image chosen.
189
+ conflict_boot_volume: |-
190
+ When booting from an existing volume it is not authorized to specify in your Vagrantfile either 'image' or 'size' or 'delete_on_destroy'.
191
+ When booting from a newly creating volume it is not authorized to specify in your Vagrantfile either 'id' or 'name'.
192
+ sync_method_error: |-
193
+ Value '%{sync_method_value}' is not allowed for 'sync_method' configuration parameter. Valid values are 'rsync' and 'none'
194
+ rsync_error: |-
195
+ There was an error when attempting to rsync a share folder.
196
+ Please inspect the error message below for more info.
197
+
198
+ Host path: %{hostpath}
199
+ Guest path: %{guestpath}
200
+ Error: %{stderr}
201
+ ssh_unavailble: |-
202
+ SSH server unavailable on instance %{host}. You should maybe increase the timeout value which currently is %{timeout} second(s).
203
+ no_arg_required_for_command: |-
204
+ Command '%{cmd}' does not required any argument.
205
+ unrecognized_arg_for_command: |-
206
+ Argument '%{arg}' unrecognized for command '%{cmd}'.
207
+ unable_to_resolve_floating_ip: |-
208
+ Vagrant was unable to resolve a floating ip to communicate with your OpenStack instance. Please specify in your Vagrantfile either `floating_ip` or `floating_ip_pool`.
209
+ unable_to_resolve_ip: |-
210
+ Vagrant was unable to resolve a valid ip to ssh on your OpenStack instance.
211
+ unable_to_resolve_ssh_key: |-
212
+ Vagrant was unable to resolve a valid ssh key to connect to your OpenStack instance. Please specify in your Vagrantfile either `public_key_path` or `keypair_name`.
213
+ invalid_network_format: |-
214
+ Network '%{network}' is not valid.
215
+ unresolved_network: |-
216
+ No matching network with id or name '%{network}'
217
+ unresolved_network_id: |-
218
+ No matching network with id '%{id}'
219
+ unresolved_network_name: |-
220
+ No matching network with name '%{name}'
221
+ conflict_network_name_id: |-
222
+ One (and only one) of 'id' or 'name' must be specified in network definition : %{network}
223
+ multiple_network_name: |-
224
+ More than one network exists with name '%{name}'. In this case you can't use name in network definition. Please, use id instead.
225
+ invalid_volume_format: |-
226
+ Volume '%{volume}' is not valid.
227
+ unresolved_volume: |-
228
+ No matching volume with id or name '%{volume}'
229
+ unresolved_volume_id: |-
230
+ No matching volume with id '%{id}'
231
+ unresolved_volume_name: |-
232
+ No matching volume with name '%{name}'
233
+ conflict_volume_name_id: |-
234
+ One (and only one) of 'id' or 'name' must be specified in volume definition : %{volume}
235
+ multiple_volume_name: |-
236
+ More than one volume exists with name '%{name}'. In this case you can't use name in volume definition. Please, use id instead.
237
+ missing_boot_option: |-
238
+ Either 'image' or 'volume_boot' configuration must be provided
239
+ conflict_boot_option: |-
240
+ Only one of 'image' and 'volume_boot' configuration must be provided
241
+ ssh_username_missing: |-
242
+ Vagrant was unable to resolve which ssh username to use to connect to the machine. Please provide config parameter `ssh.username`
243
+ instance_not_found: |-
244
+ Vagrant was unable to find the OpenStack instance used for your vagrant machine.
245
+ This can happen when the instance has been deleted via OpenStack APIs or OpenStack
246
+ Dashboard instead of using vagrant commands.
247
+ We recommend using the command `vagrant openstack reset` to reset
248
+ vagrant to a clear state
249
+ stack_not_found: |-
250
+ Heat stack not found
251
+ nerwork_service_unavailable: |-
252
+ Neutron service endpoint is not available, thus there is not way to retrieve
253
+ network id from its name. You have to provide only ids in your Vagrantfile.
254
+ volume_service_unavailable: |-
255
+ Cinder service endpoint is not available, thus there is not way to retrieve
256
+ volume id from its name. You have to provide only ids in your Vagrantfile.
257
+ server_status_error: |-
258
+ Server '%{server}' is in error status.
259
+ stack_status_error: |-
260
+ Heat Stack '%{stack}' is in error status.
261
+ missing_nova_endpoint: |-
262
+ Nova endpoint must either be present in your keystone service catalog or be
263
+ specified using the provider's attribute 'openstack_compute_url'
264
+
265
+ states:
266
+ short_active: |-
267
+ active
268
+ long_active: |-
269
+ The server is up and running. Run `vagrant ssh` to access it.
270
+ short_build: |-
271
+ building
272
+ long_build: |-
273
+ The server is currently being built. You must wait for this to
274
+ complete before you can access it. You can delete the server, however,
275
+ by running `vagrant destroy`.
276
+ short_error: |-
277
+ error
278
+ long_error: |-
279
+ The server is in an erroneous state. Contact your OpenStack administrator
280
+ or destroy the machine with `vagrant destroy`.
281
+ short_hard_reboot: |-
282
+ hard reboot
283
+ long_hard_reboot: |-
284
+ The server is hard rebooting. This is equivalent to pulling the power plug
285
+ on a physical server, plugging it back in, and rebooting it.
286
+ short_password: |-
287
+ password reset
288
+ long_password: |-
289
+ The password is being reset on the server.
290
+ short_reboot: |-
291
+ reboot
292
+ long_reboot: |-
293
+ The server is in a soft reboot state. A reboot command was passed to the operating system.
294
+ short_rebuild: |-
295
+ rebuild
296
+ long_rebuild: |-
297
+ The server is currently being rebuilt from an image.
298
+ short_rescue: |-
299
+ rescue
300
+ long_rescue: |-
301
+ The server is in rescue mode.
302
+ short_resize: |-
303
+ resize
304
+ long_resize: |-
305
+ Server is performing the differential copy of data that changed during
306
+ its initial copy. Server is down for this stage.
307
+ short_revert_resize: |-
308
+ revert resize
309
+ long_revert_resize: |-
310
+ The resize or migration of a server failed for some reason. The destination
311
+ server is being cleaned up and the original source server is restarting.
312
+ short_shutoff: |-
313
+ shutoff
314
+ long_shutoff: |-
315
+ The virtual machine (VM) was powered down by the user, but not through the
316
+ OpenStack Compute API. For example, the user issued a shutdown -h command
317
+ from within the server instance. If the OpenStack Compute manager detects
318
+ that the VM was powered down, it transitions the server instance to the
319
+ SHUTOFF status. If you use the OpenStack Compute API to restart the instance,
320
+ the instance might be deleted first, depending on the value in the
321
+ shutdown_terminate database field on the Instance model.
322
+ short_suspended: |-
323
+ suspended
324
+ long_suspended: |-
325
+ The server is suspended, either by request or necessity. This status appears
326
+ for only the following hypervisors: XenServer/XCP, KVM, and ESXi.
327
+ short_unknown: |-
328
+ unknown
329
+ long_unknown: |-
330
+ The state of the server is unknown. Contact your cloud provider.
331
+ short_verify_resize: |-
332
+ verify resize
333
+ long_verifiy_resize: |-
334
+ System is awaiting confirmation that the server is operational after a move or resize.
335
+ short_not_created: |-
336
+ not created
337
+ long_not_created: |-
338
+ The server is not created. Run `vagrant up` to create it.
339
+ short_suspending: |-
340
+ suspending
341
+ long_suspending: |-
342
+ The server is active and currently suspending, either by request or necessity.
343
+ short_resuming: |-
344
+ resuming
345
+ long_resuming: |-
346
+ The server is suspended and currently resuming by request.
347
+ short_spawning: |-
348
+ spawning
349
+ long_spawning: |-
350
+ The server is not created yet but is currently spawning by request.
351
+ short_scheduling: |-
352
+ scheduling
353
+ long_scheduling: |-
354
+ The server is building and currently scheduling by necessity.
355
+ short_deleting: |-
356
+ deleting
357
+ long_deleting: |-
358
+ The server is created and currently deleting by request.
359
+ short_rebooting: |-
360
+ rebooting
361
+ long_rebooting: |-
362
+ The server is currently rebooting, either by request or necessity.
363
+ short_reboot_pending: |-
364
+ reboot_pending
365
+ long_reboot_pending: |-
366
+ The server reboot is pending by necessity.
367
+ short_reboot_started: |-
368
+ reboot_started
369
+ long_reboot_started: |-
370
+ The server is starting to reboot, either by request or necessity.
371
+ short_rebooting_hard: |-
372
+ rebooting_hard
373
+ long_rebooting_hard: |-
374
+ The server is currently hard rebooting, either by request.
375
+ short_reboot_pending_hard: |-
376
+ reboot_pending_hard
377
+ long_reboot_pending_hard: |-
378
+ The server hard reboot is pending by necessity.
379
+ short_reboot_started_hard: |-
380
+ reboot_started_hard
381
+ long_reboot_started_hard: |-
382
+ The server is starting to hard reboot by request.
383
+
384
+ client:
385
+ looking_for_available_endpoints: |-
386
+ Looking for available endpoints...
387
+ multiple_endpoint: |-
388
+ %{size} endpoints are available for service '%{type}' but only the first one will be used
389
+ authentication: |-
390
+ Authentication on project %{project} with user %{user}
391
+
392
+ command:
393
+ main_synopsis: |-
394
+ OpenStack provider specific commands
395
+ main_usage : |-
396
+ Usage: vagrant openstack command
397
+ available_subcommands: |-
398
+ Available subcommands:
399
+ image_list_synopsis : |-
400
+ List available images
401
+ flavor_list_synopsis : |-
402
+ List available flavors
403
+ network_list_synopsis : |-
404
+ List private networks in project
405
+ subnet_list_synopsis : |-
406
+ List subnets for available networks
407
+ flaotingip_list_synopsis : |-
408
+ List floating IP and floating IP pools
409
+ volume_list_synopsis : |-
410
+ List existing volumes
411
+ reset : |-
412
+ Reset Vagrant OpenStack provider to a clear state