-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
170 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# | ||
# Handling of /etc/mtab and /mnt/etc/mtab | ||
# | ||
require "yast" | ||
|
||
module Yast | ||
class MtabClass < Module | ||
include Yast::Logger | ||
|
||
MTABNAME = "/etc/mtab" | ||
|
||
def main | ||
Yast.import "Installation" | ||
end | ||
|
||
# | ||
# Reads /etc/mtab from inst-sys, remove all /mnt headings | ||
# and writes this patches mtab into target system. | ||
# | ||
def clone_to_target | ||
log.info("Copying /etc/mtab to the target system...") | ||
mtab = WFM.Read(path(".local.string"), MTABNAME) | ||
# remove non-existing mount points | ||
mtab_lines = mtab.split("\n") | ||
mtab_lines.collect! do |mtab_line| | ||
# Filter out all non-existing entries/directories | ||
columns = mtab_line.split | ||
if File.directory?(columns[1]) | ||
# remove heading /mnt from directory entry | ||
columns[1].sub!(/^#{Regexp.escape("/mnt")}/, '') | ||
columns.join(" ") | ||
else | ||
nil | ||
end | ||
end | ||
|
||
# join back the lines | ||
mtab = mtab_lines.compact.join("\n") | ||
log.info("Target /etc/mtab file: #{mtab}") | ||
SCR.Write(path(".target.string"), | ||
File.join(Installation.destdir, MTABNAME), mtab) | ||
end | ||
|
||
publish :function => :clone_to_target, :type => "boolean ()" | ||
end | ||
|
||
Mtab = MtabClass.new | ||
Mtab.main | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
tmpfs / tmpfs rw,relatime,size=1016112k,nr_inodes=0 0 0 | ||
proc /proc proc rw,relatime 0 0 | ||
sysfs /sys sysfs rw,relatime 0 0 | ||
/dev/loop0 /parts/mp_0000 squashfs ro,relatime 0 0 | ||
/dev/loop1 /parts/mp_0001 squashfs ro,relatime 0 0 | ||
devtmpfs /dev devtmpfs rw,relatime,size=462120k,nr_inodes=115530,mode=755 0 0 | ||
devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0 | ||
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 | ||
/dev/loop2 /mounts/mp_0000 squashfs ro,relatime 0 0 | ||
/dev/loop3 /mounts/mp_0001 squashfs ro,relatime 0 0 | ||
/dev/loop4 /mounts/mp_0002 squashfs ro,relatime 0 0 | ||
/dev/loop5 /mounts/mp_0003 squashfs ro,relatime 0 0 | ||
/dev/loop6 /mounts/mp_0004 squashfs ro,relatime 0 0 | ||
/dev/vda2 /mnt btrfs rw,relatime,space_cache,subvolid=257,subvol=/@ 0 0 | ||
/dev/vda2 /mnt/boot/grub2/i386-pc btrfs rw,relatime,space_cache,subvolid=258,subvol=/@/boot/grub2/i386-pc 0 0 | ||
/dev/vda2 /mnt/boot/grub2/x86_64-efi btrfs rw,relatime,space_cache,subvolid=259,subvol=/@/boot/grub2/x86_64-efi 0 0 | ||
/dev/vda2 /mnt/home btrfs rw,relatime,space_cache,subvolid=260,subvol=/@/home 0 0 | ||
/dev/vda2 /mnt/opt btrfs rw,relatime,space_cache,subvolid=261,subvol=/@/opt 0 0 | ||
/dev/vda2 /mnt/srv btrfs rw,relatime,space_cache,subvolid=262,subvol=/@/srv 0 0 | ||
/dev/vda2 /mnt/tmp btrfs rw,relatime,space_cache,subvolid=263,subvol=/@/tmp 0 0 | ||
/dev/vda2 /mnt/usr/local btrfs rw,relatime,space_cache,subvolid=264,subvol=/@/usr/local 0 0 | ||
/dev/vda2 /mnt/var/cache btrfs rw,relatime,space_cache,subvolid=265,subvol=/@/var/cache 0 0 | ||
/dev/vda2 /mnt/var/crash btrfs rw,relatime,space_cache,subvolid=266,subvol=/@/var/crash 0 0 | ||
/dev/vda2 /mnt/var/lib/libvirt/images btrfs rw,relatime,space_cache,subvolid=267,subvol=/@/var/lib/libvirt/images 0 0 | ||
/dev/vda2 /mnt/var/lib/machines btrfs rw,relatime,space_cache,subvolid=268,subvol=/@/var/lib/machines 0 0 | ||
/dev/vda2 /mnt/var/lib/mailman btrfs rw,relatime,space_cache,subvolid=269,subvol=/@/var/lib/mailman 0 0 | ||
/dev/vda2 /mnt/var/lib/mariadb btrfs rw,relatime,space_cache,subvolid=270,subvol=/@/var/lib/mariadb 0 0 | ||
/dev/vda2 /mnt/var/lib/mysql btrfs rw,relatime,space_cache,subvolid=271,subvol=/@/var/lib/mysql 0 0 | ||
/dev/vda2 /mnt/var/lib/named btrfs rw,relatime,space_cache,subvolid=272,subvol=/@/var/lib/named 0 0 | ||
/dev/vda2 /mnt/var/lib/pgsql btrfs rw,relatime,space_cache,subvolid=273,subvol=/@/var/lib/pgsql 0 0 | ||
/dev/vda2 /mnt/var/log btrfs rw,relatime,space_cache,subvolid=274,subvol=/@/var/log 0 0 | ||
/dev/vda2 /mnt/var/opt btrfs rw,relatime,space_cache,subvolid=275,subvol=/@/var/opt 0 0 | ||
/dev/vda2 /mnt/var/spool btrfs rw,relatime,space_cache,subvolid=276,subvol=/@/var/spool 0 0 | ||
/dev/vda2 /mnt/var/tmp btrfs rw,relatime,space_cache,subvolid=277,subvol=/@/var/tmp 0 0 | ||
devtmpfs /mnt/dev devtmpfs rw,relatime,size=462120k,nr_inodes=115530,mode=755 0 0 | ||
proc /mnt/proc proc rw,relatime 0 0 | ||
sysfs /mnt/sys sysfs rw,relatime 0 0 | ||
tmpfs /mnt/run tmpfs rw,relatime,size=1016112k,nr_inodes=0 0 0 | ||
/dev/sr0 /mnt/var/tmp/AP_0xdxoI8b iso9660 ro,relatime 0 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
tmpfs / tmpfs rw,relatime,size=1016112k,nr_inodes=0 0 0 | ||
proc /proc proc rw,relatime 0 0 | ||
sysfs /sys sysfs rw,relatime 0 0 | ||
/dev/loop0 /parts/mp_0000 squashfs ro,relatime 0 0 | ||
/dev/loop1 /parts/mp_0001 squashfs ro,relatime 0 0 | ||
devtmpfs /dev devtmpfs rw,relatime,size=462120k,nr_inodes=115530,mode=755 0 0 | ||
devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0 | ||
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 | ||
/dev/loop2 /mounts/mp_0000 squashfs ro,relatime 0 0 | ||
/dev/loop3 /mounts/mp_0001 squashfs ro,relatime 0 0 | ||
/dev/loop4 /mounts/mp_0002 squashfs ro,relatime 0 0 | ||
/dev/loop5 /mounts/mp_0003 squashfs ro,relatime 0 0 | ||
/dev/loop6 /mounts/mp_0004 squashfs ro,relatime 0 0 | ||
/dev/vda2 btrfs rw,relatime,space_cache,subvolid=257,subvol=/@ 0 0 | ||
/dev/vda2 /boot/grub2/i386-pc btrfs rw,relatime,space_cache,subvolid=258,subvol=/@/boot/grub2/i386-pc 0 0 | ||
/dev/vda2 /boot/grub2/x86_64-efi btrfs rw,relatime,space_cache,subvolid=259,subvol=/@/boot/grub2/x86_64-efi 0 0 | ||
/dev/vda2 /home btrfs rw,relatime,space_cache,subvolid=260,subvol=/@/home 0 0 | ||
/dev/vda2 /opt btrfs rw,relatime,space_cache,subvolid=261,subvol=/@/opt 0 0 | ||
/dev/vda2 /srv btrfs rw,relatime,space_cache,subvolid=262,subvol=/@/srv 0 0 | ||
/dev/vda2 /tmp btrfs rw,relatime,space_cache,subvolid=263,subvol=/@/tmp 0 0 | ||
/dev/vda2 /usr/local btrfs rw,relatime,space_cache,subvolid=264,subvol=/@/usr/local 0 0 | ||
/dev/vda2 /var/cache btrfs rw,relatime,space_cache,subvolid=265,subvol=/@/var/cache 0 0 | ||
/dev/vda2 /var/crash btrfs rw,relatime,space_cache,subvolid=266,subvol=/@/var/crash 0 0 | ||
/dev/vda2 /var/lib/libvirt/images btrfs rw,relatime,space_cache,subvolid=267,subvol=/@/var/lib/libvirt/images 0 0 | ||
/dev/vda2 /var/lib/machines btrfs rw,relatime,space_cache,subvolid=268,subvol=/@/var/lib/machines 0 0 | ||
/dev/vda2 /var/lib/mailman btrfs rw,relatime,space_cache,subvolid=269,subvol=/@/var/lib/mailman 0 0 | ||
/dev/vda2 /var/lib/mariadb btrfs rw,relatime,space_cache,subvolid=270,subvol=/@/var/lib/mariadb 0 0 | ||
/dev/vda2 /var/lib/mysql btrfs rw,relatime,space_cache,subvolid=271,subvol=/@/var/lib/mysql 0 0 | ||
/dev/vda2 /var/lib/named btrfs rw,relatime,space_cache,subvolid=272,subvol=/@/var/lib/named 0 0 | ||
/dev/vda2 /var/lib/pgsql btrfs rw,relatime,space_cache,subvolid=273,subvol=/@/var/lib/pgsql 0 0 | ||
/dev/vda2 /var/log btrfs rw,relatime,space_cache,subvolid=274,subvol=/@/var/log 0 0 | ||
/dev/vda2 /var/opt btrfs rw,relatime,space_cache,subvolid=275,subvol=/@/var/opt 0 0 | ||
/dev/vda2 /var/spool btrfs rw,relatime,space_cache,subvolid=276,subvol=/@/var/spool 0 0 | ||
/dev/vda2 /var/tmp btrfs rw,relatime,space_cache,subvolid=277,subvol=/@/var/tmp 0 0 | ||
devtmpfs /dev devtmpfs rw,relatime,size=462120k,nr_inodes=115530,mode=755 0 0 | ||
proc /proc proc rw,relatime 0 0 | ||
sysfs /sys sysfs rw,relatime 0 0 | ||
tmpfs /run tmpfs rw,relatime,size=1016112k,nr_inodes=0 0 0 | ||
/dev/sr0 /var/tmp/AP_0xdxoI8b iso9660 ro,relatime 0 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#!/usr/bin/env rspec | ||
|
||
require_relative "test_helper" | ||
|
||
Yast.import "Mtab" | ||
Yast.import "WFM" | ||
Yast.import "SCR" | ||
|
||
DATA_PATH = File.join(File.expand_path(File.dirname(__FILE__)), "data") | ||
MTABNAME = "/etc/mtab" | ||
DESTDIR = "/mnt" | ||
|
||
describe Yast::Mtab do | ||
subject(:mtab) { Yast::Mtab } | ||
|
||
describe "#clone_to_target" do | ||
let (:org_mtab) { File.open(File.join(DATA_PATH, "org_mtab"), "rb") { |file| file.read } } | ||
let (:patched_mtab) { File.open(File.join(DATA_PATH, "patched_mtab"), "rb") { |file| file.read } } | ||
|
||
before do | ||
expect(Yast::WFM).to receive(:Read). | ||
with(Yast::Path.new(".local.string"), MTABNAME). | ||
and_return(org_mtab) | ||
expect(Yast::SCR).to receive(:Write). | ||
with(Yast::Path.new(".target.string"), File.join(DESTDIR, MTABNAME), patched_mtab) | ||
allow(File).to receive(:directory?).and_return(true) | ||
allow(Yast::Installation).to receive(:destdir).and_return(DESTDIR) | ||
end | ||
|
||
it "writes /etc/mtab to target system" do | ||
mtab.clone_to_target | ||
end | ||
end | ||
end |