From 6492e0ae6340712194ae29aa5fef7fea2b0645b8 Mon Sep 17 00:00:00 2001 From: Mathilde Ffrench Date: Tue, 19 Nov 2013 19:22:11 +0100 Subject: [PATCH 1/3] add default network and ssk key file parameters --- lib/vagrant-libvirt/action/connect_libvirt.rb | 9 ++++++--- .../action/create_network_interfaces.rb | 5 +++-- lib/vagrant-libvirt/config.rb | 10 ++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/vagrant-libvirt/action/connect_libvirt.rb b/lib/vagrant-libvirt/action/connect_libvirt.rb index 1f089de..20f2cbc 100644 --- a/lib/vagrant-libvirt/action/connect_libvirt.rb +++ b/lib/vagrant-libvirt/action/connect_libvirt.rb @@ -53,9 +53,12 @@ module VagrantPlugins uri << virt_path uri << '?no_verify=1' - # set ssh key for access to libvirt host - home_dir = `echo ${HOME}`.chomp - uri << "&keyfile=#{home_dir}/.ssh/id_rsa" + + if config.id_ssh_key_file + # set ssh key for access to libvirt host + home_dir = `echo ${HOME}`.chomp + uri << "&keyfile=#{home_dir}/.ssh/"+config.id_ssh_key_file + end conn_attr = {} conn_attr[:provider] = 'libvirt' diff --git a/lib/vagrant-libvirt/action/create_network_interfaces.rb b/lib/vagrant-libvirt/action/create_network_interfaces.rb index cae02cf..d74ea20 100644 --- a/lib/vagrant-libvirt/action/create_network_interfaces.rb +++ b/lib/vagrant-libvirt/action/create_network_interfaces.rb @@ -16,6 +16,7 @@ module VagrantPlugins def initialize(app, env) @logger = Log4r::Logger.new('vagrant_libvirt::action::create_network_interfaces') + @default_network = env[:machine].provider_config.default_network; @app = app end @@ -58,7 +59,7 @@ module VagrantPlugins # We have slot for interface, fill it with interface configuration. adapters[free_slot] = options adapters[free_slot][:network_name] = interface_network( - env[:libvirt_compute].client, adapters[free_slot]) + env[:libvirt_compute].client, adapters[free_slot], ) end # Create each interface as new domain device. @@ -151,7 +152,7 @@ module VagrantPlugins end # TODO Network default can be missing or named different. - return 'default' + return @default_network; end end end diff --git a/lib/vagrant-libvirt/config.rb b/lib/vagrant-libvirt/config.rb index 166c833..71e426d 100644 --- a/lib/vagrant-libvirt/config.rb +++ b/lib/vagrant-libvirt/config.rb @@ -18,10 +18,16 @@ module VagrantPlugins # Password for Libvirt connection. attr_accessor :password + # ID SSH key file + attr_accessor :id_ssh_key_file + # Libvirt storage pool name, where box image and instance snapshots will # be stored. attr_accessor :storage_pool_name + # Libvirt default network + attr_accessor :default_network + # Domain specific settings used while creating new domain. attr_accessor :memory attr_accessor :cpus @@ -34,7 +40,9 @@ module VagrantPlugins @connect_via_ssh = UNSET_VALUE @username = UNSET_VALUE @password = UNSET_VALUE + @id_ssh_key_file = UNSET_VALUE @storage_pool_name = UNSET_VALUE + @default_network = UNSET_VALUE # Domain specific settings. @memory = UNSET_VALUE @@ -49,7 +57,9 @@ module VagrantPlugins @connect_via_ssh = false if @connect_via_ssh == UNSET_VALUE @username = nil if @username == UNSET_VALUE @password = nil if @password == UNSET_VALUE + @id_ssh_key_file = nil if @id_ssh_key_file == UNSET_VALUE @storage_pool_name = 'default' if @storage_pool_name == UNSET_VALUE + @default_network = 'default' if @default_network == UNSET_VALUE # Domain specific settings. @memory = 512 if @memory == UNSET_VALUE From 149253acd44e8008bd23096a71310db075bafd9b Mon Sep 17 00:00:00 2001 From: Mathilde Ffrench Date: Tue, 19 Nov 2013 19:25:31 +0100 Subject: [PATCH 2/3] remove erronous , --- lib/vagrant-libvirt/action/create_network_interfaces.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vagrant-libvirt/action/create_network_interfaces.rb b/lib/vagrant-libvirt/action/create_network_interfaces.rb index d74ea20..3f51b41 100644 --- a/lib/vagrant-libvirt/action/create_network_interfaces.rb +++ b/lib/vagrant-libvirt/action/create_network_interfaces.rb @@ -59,7 +59,7 @@ module VagrantPlugins # We have slot for interface, fill it with interface configuration. adapters[free_slot] = options adapters[free_slot][:network_name] = interface_network( - env[:libvirt_compute].client, adapters[free_slot], ) + env[:libvirt_compute].client, adapters[free_slot]) end # Create each interface as new domain device. From 6383297c8661790cf812a5c33f8cdd23410dd77f Mon Sep 17 00:00:00 2001 From: Mathilde Ffrench Date: Tue, 19 Nov 2013 19:41:29 +0100 Subject: [PATCH 3/3] Add new options descriptions in README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 178a93d..da426a8 100644 --- a/README.md +++ b/README.md @@ -96,8 +96,9 @@ This provider exposes quite a few provider-specific configuration options: * `connect_via_ssh` - If use ssh tunnel to connect to Libvirt. * `username` - Username and password to access Libvirt. * `password` - Password to access Libvirt. -* `storage_pool_name` - Libvirt storage pool name, where box image and - instance snapshots will be stored. +* `id_ssh_key_file` - The id ssh key file name to access Libvirt (eg: id_dsa or id_rsa or ... in the user .ssh directory) +* `storage_pool_name` - Libvirt storage pool name, where box image and instance snapshots will be stored. +* `default_network` - Libvirt default network name. If not specified default network name is 'default'. ### Domain Specific Options