vagrant-openstack-illuin-provider 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 (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