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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/BOXES.md +13 -21
- data/CHANGELOG.md +49 -0
- data/CONTRIBUTING.md +5 -2
- data/Gemfile +12 -13
- data/Gemfile.lock +66 -51
- data/README.md +39 -25
- data/development/Vagrantfile +0 -2
- data/lib/vagrant-backports/README.md +12 -0
- data/lib/vagrant-backports/action/handle_box.rb +1 -0
- data/lib/vagrant-backports/action/is_state.rb +34 -0
- data/lib/vagrant-backports/action/message.rb +20 -0
- data/lib/{vagrant-lxc → vagrant-backports}/action/wait_for_communicator.rb +6 -5
- data/lib/vagrant-backports/ui.rb +12 -0
- data/lib/vagrant-backports/utils.rb +27 -0
- data/lib/vagrant-lxc.rb +8 -0
- data/lib/vagrant-lxc/action.rb +81 -48
- data/lib/vagrant-lxc/action/boot.rb +2 -1
- data/lib/vagrant-lxc/action/fetch_ip_from_dnsmasq_leases.rb +1 -0
- data/lib/vagrant-lxc/action/handle_box_metadata.rb +36 -14
- data/lib/vagrant-lxc/action/message.rb +0 -23
- data/lib/vagrant-lxc/action/prepare_nfs_settings.rb +64 -0
- data/lib/vagrant-lxc/action/prepare_nfs_valid_ids.rb +19 -0
- data/lib/vagrant-lxc/action/setup_package_files.rb +6 -2
- data/lib/vagrant-lxc/{action → backports/action}/share_folders.rb +0 -0
- data/lib/vagrant-lxc/command/root.rb +58 -0
- data/lib/vagrant-lxc/command/sudoers.rb +87 -0
- data/lib/vagrant-lxc/driver.rb +21 -11
- data/lib/vagrant-lxc/plugin.rb +23 -5
- data/lib/vagrant-lxc/provider/cap/public_address.rb +17 -0
- data/lib/vagrant-lxc/synced_folder.rb +42 -0
- data/lib/vagrant-lxc/version.rb +1 -1
- data/locales/en.yml +6 -5
- data/scripts/lxc-template +165 -0
- data/spec/spec_helper.rb +9 -13
- data/spec/unit/action/clear_forwarded_ports_spec.rb +3 -3
- data/spec/unit/action/compress_rootfs_spec.rb +7 -5
- data/spec/unit/action/forward_ports_spec.rb +8 -8
- data/spec/unit/action/handle_box_metadata_spec.rb +71 -15
- data/spec/unit/action/setup_package_files_spec.rb +32 -8
- data/spec/unit/driver/cli_spec.rb +31 -30
- data/spec/unit/driver_spec.rb +35 -27
- data/spec/unit/support/unit_example_group.rb +6 -6
- data/spec/unit_helper.rb +4 -2
- data/tasks/spec.rake +18 -11
- data/vagrant-lxc.gemspec +7 -0
- data/vagrant-spec.config.rb +24 -0
- metadata +24 -36
- data/boxes/build-all.sh +0 -22
- data/boxes/build-debian-box.sh +0 -167
- data/boxes/build-openmandriva-box.sh +0 -159
- data/boxes/build-ubuntu-box.sh +0 -151
- data/boxes/common/cleanup +0 -7
- data/boxes/common/install-babushka +0 -16
- data/boxes/common/install-chef +0 -15
- data/boxes/common/install-puppet +0 -13
- data/boxes/common/install-salt +0 -12
- data/boxes/common/install-salt-debian +0 -28
- data/boxes/common/lxc-template +0 -226
- data/boxes/common/lxc-template-openmandriva +0 -225
- data/boxes/common/lxc.conf +0 -49
- data/boxes/common/metadata.json +0 -5
- data/lib/vagrant-lxc/action/check_created.rb +0 -21
- data/lib/vagrant-lxc/action/check_running.rb +0 -21
- data/lib/vagrant-lxc/action/created.rb +0 -20
- data/lib/vagrant-lxc/action/disconnect.rb +0 -18
- data/lib/vagrant-lxc/action/is_running.rb +0 -19
- data/spec/acceptance/sanity_check_spec.rb +0 -111
- data/spec/acceptance/support/acceptance_example_group.rb +0 -76
- data/spec/acceptance/support/machine_ext.rb +0 -12
- data/spec/acceptance/support/test_ui.rb +0 -22
- 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
|
data/spec/acceptance_helper.rb
DELETED
@@ -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
|