vagrant-lxc 0.8.0 → 1.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
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