From dd7133fdc0e9ecd0dfffbf43f5672849aa83602e Mon Sep 17 00:00:00 2001 From: Gerben Meijer Date: Wed, 23 Mar 2016 11:01:14 +0100 Subject: [PATCH] Add dynamic kernel and initrd startup checks Allows for changing kernel or initrd at 'vagrant up' --- lib/vagrant-libvirt/action/start_domain.rb | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/vagrant-libvirt/action/start_domain.rb b/lib/vagrant-libvirt/action/start_domain.rb index 6736932..623211a 100644 --- a/lib/vagrant-libvirt/action/start_domain.rb +++ b/lib/vagrant-libvirt/action/start_domain.rb @@ -239,6 +239,34 @@ module VagrantPlugins end end + # kernel and initrd + if config.kernel + kernel= REXML::XPath.first(xml_descr,'/domain/os/kernel') + if kernel.nil? + descr_changed = true + kernel = REXML::Element.new('kernel', REXML::XPath.first(xml_descr,'/domain/os')) + kernel.text = config.kernel + else + if kernel.text != config.kernel + descr_changed = true + kernel.text = config.kernel + end + end + end + if config.initrd + initrd = REXML::XPath.first(xml_descr,'/domain/os/initrd') + if initrd.nil? + descr_changed = true + initrd = REXML::Element.new('initrd', REXML::XPath.first(xml_descr,'/domain/os')) + initrd.text = config.initrd + else + if initrd.text != config.initrd + descr_changed = true + initrd.text = config.initrd + end + end + end + # Apply if descr_changed begin