vagrant-lxc 0.8.0 → 1.0.0.alpha.1

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/BOXES.md +13 -21
  4. data/CHANGELOG.md +49 -0
  5. data/CONTRIBUTING.md +5 -2
  6. data/Gemfile +12 -13
  7. data/Gemfile.lock +66 -51
  8. data/README.md +39 -25
  9. data/development/Vagrantfile +0 -2
  10. data/lib/vagrant-backports/README.md +12 -0
  11. data/lib/vagrant-backports/action/handle_box.rb +1 -0
  12. data/lib/vagrant-backports/action/is_state.rb +34 -0
  13. data/lib/vagrant-backports/action/message.rb +20 -0
  14. data/lib/{vagrant-lxc → vagrant-backports}/action/wait_for_communicator.rb +6 -5
  15. data/lib/vagrant-backports/ui.rb +12 -0
  16. data/lib/vagrant-backports/utils.rb +27 -0
  17. data/lib/vagrant-lxc.rb +8 -0
  18. data/lib/vagrant-lxc/action.rb +81 -48
  19. data/lib/vagrant-lxc/action/boot.rb +2 -1
  20. data/lib/vagrant-lxc/action/fetch_ip_from_dnsmasq_leases.rb +1 -0
  21. data/lib/vagrant-lxc/action/handle_box_metadata.rb +36 -14
  22. data/lib/vagrant-lxc/action/message.rb +0 -23
  23. data/lib/vagrant-lxc/action/prepare_nfs_settings.rb +64 -0
  24. data/lib/vagrant-lxc/action/prepare_nfs_valid_ids.rb +19 -0
  25. data/lib/vagrant-lxc/action/setup_package_files.rb +6 -2
  26. data/lib/vagrant-lxc/{action → backports/action}/share_folders.rb +0 -0
  27. data/lib/vagrant-lxc/command/root.rb +58 -0
  28. data/lib/vagrant-lxc/command/sudoers.rb +87 -0
  29. data/lib/vagrant-lxc/driver.rb +21 -11
  30. data/lib/vagrant-lxc/plugin.rb +23 -5
  31. data/lib/vagrant-lxc/provider/cap/public_address.rb +17 -0
  32. data/lib/vagrant-lxc/synced_folder.rb +42 -0
  33. data/lib/vagrant-lxc/version.rb +1 -1
  34. data/locales/en.yml +6 -5
  35. data/scripts/lxc-template +165 -0
  36. data/spec/spec_helper.rb +9 -13
  37. data/spec/unit/action/clear_forwarded_ports_spec.rb +3 -3
  38. data/spec/unit/action/compress_rootfs_spec.rb +7 -5
  39. data/spec/unit/action/forward_ports_spec.rb +8 -8
  40. data/spec/unit/action/handle_box_metadata_spec.rb +71 -15
  41. data/spec/unit/action/setup_package_files_spec.rb +32 -8
  42. data/spec/unit/driver/cli_spec.rb +31 -30
  43. data/spec/unit/driver_spec.rb +35 -27
  44. data/spec/unit/support/unit_example_group.rb +6 -6
  45. data/spec/unit_helper.rb +4 -2
  46. data/tasks/spec.rake +18 -11
  47. data/vagrant-lxc.gemspec +7 -0
  48. data/vagrant-spec.config.rb +24 -0
  49. metadata +24 -36
  50. data/boxes/build-all.sh +0 -22
  51. data/boxes/build-debian-box.sh +0 -167
  52. data/boxes/build-openmandriva-box.sh +0 -159
  53. data/boxes/build-ubuntu-box.sh +0 -151
  54. data/boxes/common/cleanup +0 -7
  55. data/boxes/common/install-babushka +0 -16
  56. data/boxes/common/install-chef +0 -15
  57. data/boxes/common/install-puppet +0 -13
  58. data/boxes/common/install-salt +0 -12
  59. data/boxes/common/install-salt-debian +0 -28
  60. data/boxes/common/lxc-template +0 -226
  61. data/boxes/common/lxc-template-openmandriva +0 -225
  62. data/boxes/common/lxc.conf +0 -49
  63. data/boxes/common/metadata.json +0 -5
  64. data/lib/vagrant-lxc/action/check_created.rb +0 -21
  65. data/lib/vagrant-lxc/action/check_running.rb +0 -21
  66. data/lib/vagrant-lxc/action/created.rb +0 -20
  67. data/lib/vagrant-lxc/action/disconnect.rb +0 -18
  68. data/lib/vagrant-lxc/action/is_running.rb +0 -19
  69. data/spec/acceptance/sanity_check_spec.rb +0 -111
  70. data/spec/acceptance/support/acceptance_example_group.rb +0 -76
  71. data/spec/acceptance/support/machine_ext.rb +0 -12
  72. data/spec/acceptance/support/test_ui.rb +0 -22
  73. data/spec/acceptance_helper.rb +0 -21
@@ -1,76 +0,0 @@
1
- module AcceptanceExampleGroup
2
- def self.included(base)
3
- base.metadata[:type] = :acceptance
4
- end
5
-
6
- ID_FILE = "/vagrant/spec/.vagrant/machines/default/lxc/id"
7
- def vagrant_container_name
8
- File.read(ID_FILE).strip.chomp if File.exists?(ID_FILE)
9
- end
10
-
11
- def destroy_container
12
- if name = vagrant_container_name
13
- `sudo lxc-shutdown -n #{name} 2>/dev/null`
14
- `sudo lxc-wait -n #{name} --state STOPPED 2>/dev/null`
15
- `sudo lxc-destroy -n #{name} 2>/dev/null`
16
- `rm -rf /vagrant/spec/.vagrant/`
17
- end
18
- `sudo killall -9 redir 2>/dev/null`
19
- end
20
-
21
- def with_vagrant_environment
22
- opts = { cwd: '/vagrant/spec', ui_class: TestUI }
23
- env = Vagrant::Environment.new(opts)
24
- yield env
25
- env.unload
26
- end
27
-
28
- def vagrant_up
29
- with_vagrant_environment do |env|
30
- env.cli('up', '--provider', 'lxc')
31
- end
32
- end
33
-
34
- def vagrant_halt
35
- with_vagrant_environment do |env|
36
- env.cli('halt')
37
- end
38
- end
39
-
40
- def vagrant_destroy
41
- with_vagrant_environment do |env|
42
- env.cli('destroy', '-f')
43
- end
44
- end
45
-
46
- def vagrant_ssh(cmd)
47
- output = nil
48
- with_vagrant_environment do |env|
49
- result = env.cli('ssh', '-c', cmd)
50
- if result.to_i != 0
51
- raise "SSH command failed: '#{cmd}'\n#{env.ui.messages.inspect}"
52
- end
53
- output = env.ui.messages[:info].join("\n").chomp
54
- end
55
- output
56
- end
57
-
58
- def vagrant_package
59
- with_vagrant_environment do |env|
60
- pkg = '/vagrant/spec/tmp/package.box'
61
- `rm -f #{pkg}`
62
- env.cli('package', '--output', pkg)
63
- end
64
- end
65
-
66
- def vagrant_box_remove(name)
67
- with_vagrant_environment do |env|
68
- env.cli('box', 'list')
69
- output = env.ui.messages[:info].join("\n").chomp
70
-
71
- if output.include?(name)
72
- env.cli('box', 'remove', name)
73
- end
74
- end
75
- end
76
- end
@@ -1,12 +0,0 @@
1
- # Monkey patch vagrant in order to reuse the UI test object that is set on
2
- # our Vagrant::Environments
3
- #
4
- require 'vagrant/machine'
5
- Vagrant::Machine.class_eval do
6
- alias :old_action :action
7
-
8
- define_method :action do |action_name, extra_env = nil|
9
- extra_env = { ui: @env.ui }.merge(extra_env || {})
10
- old_action action_name, extra_env
11
- end
12
- end
@@ -1,22 +0,0 @@
1
- class TestUI < Vagrant::UI::Interface
2
- attr_reader :messages
3
-
4
- METHODS = [:clear_line, :report_progress, :warn, :error, :info, :success]
5
-
6
- def initialize
7
- super
8
- @messages = METHODS.each_with_object({}) { |m, h| h[m] = [] }
9
- end
10
-
11
- def ask(*args)
12
- super
13
- # Automated tests should not depend on user input, obviously.
14
- raise Errors::UIExpectsTTY
15
- end
16
-
17
- METHODS.each do |method|
18
- define_method(method) do |*args|#message, *opts|
19
- @messages[method].push args[0]
20
- end
21
- end
22
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- unless ENV['USER'] == 'vagrant'
4
- puts 'Acceptance specs are supposed to run from one of the vagrant-lxc dev machines'
5
- exit 1
6
- end
7
-
8
- if defined? SimpleCov
9
- SimpleCov.command_name 'acceptance'
10
- end
11
-
12
- require 'vagrant'
13
- require 'vagrant-lxc'
14
-
15
- Dir[File.dirname(__FILE__) + "/acceptance/support/**/*.rb"].each { |f| require f }
16
-
17
- RSpec.configure do |config|
18
- config.include AcceptanceExampleGroup, :type => :acceptance, :example_group => {
19
- :file_path => /\bspec\/acceptance\//
20
- }
21
- end