Remove support for setting target rootfs path

This commit is contained in:
Fabio Rehm 2013-04-05 02:28:25 -03:00
parent 514736bdd6
commit 14f769ee0d
8 changed files with 7 additions and 38 deletions

View file

@ -64,8 +64,6 @@ Vagrant.configure("2") do |config|
config.vm.synced_folder "/tmp", "/host_tmp" config.vm.synced_folder "/tmp", "/host_tmp"
config.vm.provider :lxc do |lxc| config.vm.provider :lxc do |lxc|
# Set the folder where container's rootfs will be stored when created
lxc.target_rootfs_path = '/path/to/container/rootfs'
# Same as 'customize ["modifyvm", :id, "--memory", "1024"]' for VirtualBox # Same as 'customize ["modifyvm", :id, "--memory", "1024"]' for VirtualBox
lxc.start_opts << 'lxc.cgroup.memory.limit_in_bytes=400M' lxc.start_opts << 'lxc.cgroup.memory.limit_in_bytes=400M'
# Limits swap size # Limits swap size

View file

@ -64,8 +64,6 @@ Vagrant.configure("2") do |config|
lxc_config.vm.provider :lxc do |lxc| lxc_config.vm.provider :lxc do |lxc|
# Required to boot nested containers # Required to boot nested containers
lxc.start_opts << 'lxc.aa_profile=unconfined' lxc.start_opts << 'lxc.aa_profile=unconfined'
# Change this to override the path where the rootfs gets stored
# lxc.target_rootfs_path = '/path/to/vagrant-lxc-dev-box-rootfs'
end end
end end

View file

@ -10,9 +10,7 @@ module Vagrant
base_name = env[:root_path].basename.to_s base_name = env[:root_path].basename.to_s
base_name.gsub!(/[^-a-z0-9_]/i, "") base_name.gsub!(/[^-a-z0-9_]/i, "")
target_rootfs_path = env[:machine].provider_config.target_rootfs_path machine_id = env[:machine].provider.driver.create(base_name, env[:machine].box.metadata)
machine_id = env[:machine].provider.driver.create(base_name, target_rootfs_path, env[:machine].box.metadata)
env[:machine].id = machine_id env[:machine].id = machine_id
env[:just_created] = true env[:just_created] = true
@app.call env @app.call env

View file

@ -6,15 +6,8 @@ module Vagrant
# @return [Array] # @return [Array]
attr_reader :start_opts attr_reader :start_opts
# Base directory to store container's rootfs
#
# Defaults to nil, which means it will be stored wherever the lxc template
# tells it to be stored
attr_accessor :target_rootfs_path
def initialize def initialize
@start_opts = [] @start_opts = []
@target_rootfs_path = nil
end end
end end
end end

View file

@ -39,7 +39,7 @@ module Vagrant
Pathname.new(base_path.join('config').read.match(/^lxc\.rootfs\s+=\s+(.+)$/)[1]) Pathname.new(base_path.join('config').read.match(/^lxc\.rootfs\s+=\s+(.+)$/)[1])
end end
def create(base_name, target_rootfs_path, metadata = {}) def create(base_name, metadata = {})
@logger.debug('Creating container using lxc-create...') @logger.debug('Creating container using lxc-create...')
@name = "#{base_name}-#{SecureRandom.hex(6)}" @name = "#{base_name}-#{SecureRandom.hex(6)}"
@ -50,7 +50,7 @@ module Vagrant
) )
@cli.name = @name @cli.name = @name
@cli.create(metadata.fetch('template-name'), target_rootfs_path, meta_opts) @cli.create(metadata.fetch('template-name'), meta_opts)
@name @name
end end

View file

@ -31,18 +31,14 @@ module Vagrant
end end
end end
def create(template, target_rootfs_path, template_opts = {}) def create(template, template_opts = {})
extra = template_opts.to_a.flatten extra = template_opts.to_a.flatten
extra.unshift '--' unless extra.empty? extra.unshift '--' unless extra.empty?
rootfs_args = target_rootfs_path ?
['-B', 'dir', '--dir', target_rootfs_path] :
[]
run :create, run :create,
'--template', template, '--template', template,
'--name', @name, '--name', @name,
*(rootfs_args + extra) *extra
end end
def destroy def destroy

View file

@ -33,12 +33,9 @@ describe Vagrant::LXC::Driver::CLI do
before do before do
subject.stub(:run) { |*args| @run_args = args } subject.stub(:run) { |*args| @run_args = args }
subject.create(template, rootfs, template_args) subject.create(template, template_args)
end end
context 'when no rootfs is passed' do
let(:rootfs) { nil }
it 'issues a lxc-create with provided template, container name and hash of arguments' do it 'issues a lxc-create with provided template, container name and hash of arguments' do
subject.should have_received(:run).with( subject.should have_received(:run).with(
:create, :create,
@ -49,15 +46,6 @@ describe Vagrant::LXC::Driver::CLI do
'--other', 'value' '--other', 'value'
) )
end end
end
context 'when the rootfs is passed' do
let(:rootfs) { 'rootfs_path' }
it 'issues a lxc-create with the right rootfs arguments' do
@run_args.join(' ').should =~ /-B dir --dir #{rootfs}/
end
end
end end
describe 'destroy' do describe 'destroy' do

View file

@ -37,7 +37,6 @@ describe Vagrant::LXC::Driver do
let(:suffix) { 'random-suffix' } let(:suffix) { 'random-suffix' }
let(:template_name) { 'template-name' } let(:template_name) { 'template-name' }
let(:rootfs_tarball) { '/path/to/cache/rootfs.tar.gz' } let(:rootfs_tarball) { '/path/to/cache/rootfs.tar.gz' }
let(:target_rootfs) { '/path/to/rootfs' }
let(:public_key_path) { Vagrant.source_root.join('keys', 'vagrant.pub').expand_path.to_s } let(:public_key_path) { Vagrant.source_root.join('keys', 'vagrant.pub').expand_path.to_s }
let(:cli) { fire_double('Vagrant::LXC::Driver::CLI', :create => true, :name= => true) } let(:cli) { fire_double('Vagrant::LXC::Driver::CLI', :create => true, :name= => true) }
@ -45,14 +44,13 @@ describe Vagrant::LXC::Driver do
before do before do
SecureRandom.stub(hex: suffix) SecureRandom.stub(hex: suffix)
subject.create base_name, target_rootfs, 'template-name' => template_name, 'rootfs-tarball' => rootfs_tarball, 'template-opts' => { '--foo' => 'bar'} subject.create base_name, 'template-name' => template_name, 'rootfs-tarball' => rootfs_tarball, 'template-opts' => { '--foo' => 'bar'}
end end
it 'creates container with the right arguments' do it 'creates container with the right arguments' do
cli.should have_received(:name=).with("#{base_name}-#{suffix}") cli.should have_received(:name=).with("#{base_name}-#{suffix}")
cli.should have_received(:create).with( cli.should have_received(:create).with(
template_name, template_name,
target_rootfs,
'--auth-key' => public_key_path, '--auth-key' => public_key_path,
'--tarball' => rootfs_tarball, '--tarball' => rootfs_tarball,
'--foo' => 'bar' '--foo' => 'bar'