From 081c809fc369210c6bb06ad9786b8f9be4fb8570 Mon Sep 17 00:00:00 2001 From: Lalatendu Mohanty Date: Mon, 16 Nov 2015 02:32:00 +0530 Subject: [PATCH] Fixes Issue #163: Modification for DNF package manager Dnf is the new package manager for Fedora. And it is the default package manager for F22 and F23 Signed-off-by: Lalatendu Mohanty --- lib/vagrant-cachier/bucket.rb | 1 + lib/vagrant-cachier/bucket/dnf.rb | 25 +++++++++++++++++++ .../cap/fedora/dnf_cache_dir.rb | 13 ++++++++++ lib/vagrant-cachier/capabilities.rb | 5 ++++ 4 files changed, 44 insertions(+) create mode 100644 lib/vagrant-cachier/bucket/dnf.rb create mode 100644 lib/vagrant-cachier/cap/fedora/dnf_cache_dir.rb diff --git a/lib/vagrant-cachier/bucket.rb b/lib/vagrant-cachier/bucket.rb index 4d392a6..576b019 100644 --- a/lib/vagrant-cachier/bucket.rb +++ b/lib/vagrant-cachier/bucket.rb @@ -93,6 +93,7 @@ require_relative "bucket/gem" require_relative "bucket/chef_gem" require_relative "bucket/pacman" require_relative "bucket/yum" +require_relative "bucket/dnf" require_relative "bucket/rvm" require_relative "bucket/apt_cacher" require_relative "bucket/apt_lists" diff --git a/lib/vagrant-cachier/bucket/dnf.rb b/lib/vagrant-cachier/bucket/dnf.rb new file mode 100644 index 0000000..fb54c8d --- /dev/null +++ b/lib/vagrant-cachier/bucket/dnf.rb @@ -0,0 +1,25 @@ +module VagrantPlugins + module Cachier + class Bucket + class Dnf < Bucket + def self.capability + :dnf_cache_dir + end + + def install + if guest.capability?(:dnf_cache_dir) + guest_path = guest.capability(:dnf_cache_dir) + return if @env[:cache_dirs].include?(guest_path) + + # Ensure caching is enabled + comm.sudo("echo 'keepcache=true' >> /etc/dnf/dnf.conf") + + symlink(guest_path) + else + @env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'Dnf') + end + end + end + end + end +end diff --git a/lib/vagrant-cachier/cap/fedora/dnf_cache_dir.rb b/lib/vagrant-cachier/cap/fedora/dnf_cache_dir.rb new file mode 100644 index 0000000..f1735b5 --- /dev/null +++ b/lib/vagrant-cachier/cap/fedora/dnf_cache_dir.rb @@ -0,0 +1,13 @@ +module VagrantPlugins + module Cachier + module Cap + module Fedora + module DnfCacheDir + def self.dnf_cache_dir(machine) + '/var/cache/dnf' + end + end + end + end + end +end diff --git a/lib/vagrant-cachier/capabilities.rb b/lib/vagrant-cachier/capabilities.rb index fab48c2..9d7c0a6 100644 --- a/lib/vagrant-cachier/capabilities.rb +++ b/lib/vagrant-cachier/capabilities.rb @@ -61,6 +61,11 @@ module VagrantPlugins Cap::RedHat::YumCacheDir end + guest_capability 'fedora', 'dnf_cache_dir' do + require_relative 'cap/fedora/dnf_cache_dir' + Cap::Fedora::DnfCacheDir + end + guest_capability 'suse', 'yum_cache_dir' do # Disable Yum on suse guests end