diff --git a/README.md b/README.md index 8c3183d..2934234 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,11 @@ Usage ===== libvirt_network 'fake_network' do - netmask '255.255.0.0' - gateway '192.168.42.1' - bridge 'fakebr' - forward 'nat' + netmask '255.255.0.0' + gateway '192.168.42.1' + bridge 'fakebr' + forward 'nat' + virtualport 'openvswitch' dhcp_range :start => '192.168.42.100', :end => '192.168.42.200' action [:define, :create, :autostart] diff --git a/metadata.rb b/metadata.rb index 46ef148..e1560a7 100644 --- a/metadata.rb +++ b/metadata.rb @@ -1,9 +1,10 @@ -maintainer "VPSLab" -maintainer_email "pawel.pacana@gmail.com" -license "Apache 2.0" -description "Installs libvirt and provides libvirt resources." +name 'libvirt' +maintainer 'VPSLab' +maintainer_email 'pawel.pacana@gmail.com' +license 'Apache 2.0' +description 'Installs libvirt and provides libvirt resources.' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.2.1" +version '0.2.2' %w(ubuntu debian).each do |os| supports os diff --git a/providers/domain_kvm.rb b/providers/domain_kvm.rb index f1de437..3ee7cde 100644 --- a/providers/domain_kvm.rb +++ b/providers/domain_kvm.rb @@ -21,6 +21,7 @@ def load_current_resource :memory => memory_in_bytes, :vcpu => new_resource.vcpu, :arch => libvirt_arch, + :boot => new_resource.boot, :uuid => ::UUIDTools::UUID.random_create ) action :nothing diff --git a/providers/network.rb b/providers/network.rb index 84ffc6e..ab59bb4 100644 --- a/providers/network.rb +++ b/providers/network.rb @@ -1,5 +1,3 @@ -require 'uuidtools' - def load_current_resource @current_resource = Chef::Resource::LibvirtNetwork.new(new_resource.name) @libvirt = ::Libvirt.open(new_resource.uri) @@ -19,6 +17,7 @@ def load_current_resource :netmask => new_resource.netmask, :gateway => new_resource.gateway, :forward => new_resource.forward, + :virtualport => new_resource.virtualport, :dhcp => new_resource.dhcp_range, :uuid => ::UUIDTools::UUID.random_create ) diff --git a/recipes/default.rb b/recipes/default.rb index f9dd0f2..f8dcba0 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -1,4 +1,4 @@ -%w(libvirt-bin libvirt-dev).each do |name| +%w(libvirt-bin libvirt-dev build-essential).each do |name| package name do action :nothing end.run_action(:install) @@ -12,3 +12,4 @@ $LOAD_PATH.delete("/usr/bin/../lib") # scumbag LOAD_PATH: https://github.com/opscode/chef/blob/master/bin/chef-solo#L22 require 'libvirt' +require 'uuidtools' \ No newline at end of file diff --git a/resources/domain.rb b/resources/domain.rb index 49afa3f..a3450e2 100644 --- a/resources/domain.rb +++ b/resources/domain.rb @@ -8,4 +8,5 @@ def initialize(*args) attribute :vcpu, :kind_of => [Integer, String], :required => true attribute :memory, :kind_of => [Integer, String], :required => true attribute :arch, :kind_of => String, :required => true +attribute :boot, :kind_of => String, :default => 'hd' attribute :uri, :kind_of => String, :default => 'qemu:///system' diff --git a/resources/network.rb b/resources/network.rb index 5c9783c..77c918a 100644 --- a/resources/network.rb +++ b/resources/network.rb @@ -10,4 +10,5 @@ def initialize(*args) attribute :gateway, :kind_of => String attribute :forward, :kind_of => String attribute :dhcp_range, :kind_of => Hash +attribute :virtualport, :kind_of => String attribute :uri, :kind_of => String, :default => 'qemu:///system' diff --git a/templates/default/kvm_domain.xml b/templates/default/kvm_domain.xml index 9f3654b..af25d3f 100644 --- a/templates/default/kvm_domain.xml +++ b/templates/default/kvm_domain.xml @@ -6,7 +6,7 @@ <%= @uuid %> hvm - + diff --git a/templates/default/network.xml b/templates/default/network.xml index 40c07f0..f9f06dd 100644 --- a/templates/default/network.xml +++ b/templates/default/network.xml @@ -4,7 +4,11 @@ <% if @forward %> -<%end %> +<% end %> +<% if @virtualport %> + +<% end %> +<% if @gateway && @netmask %> <% if @dhcp %> @@ -12,4 +16,5 @@ <% end %> +<% end %>