linux_admin 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/linux_admin/fstab.rb +29 -14
- data/lib/linux_admin/version.rb +1 -1
- data/spec/fstab_spec.rb +78 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b829f3cc2362f608bad95b43d9e3fe8b97a57bf027c84d16cd38c758dc841840
|
4
|
+
data.tar.gz: 0f9741c5305f8dee09358f9c1c44edf12ad150fa11a79514c59a8110c8254094
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e80cc3ce27b7b68d4d74947e81d8fa9451849aa0995a008874ec741ad30ff57a9c7306fca270299463a22785a490722aa55a0ffa036dd03903a6e79517beb755
|
7
|
+
data.tar.gz: 6887b3343ea5220c23c86373e049d4ff497babdda16bc70b8d542d506641575392092a3ecf1b85ec42060d31fc6f263efe5e29cd3fcb9bc7e7696bf100ccce83
|
data/lib/linux_admin/fstab.rb
CHANGED
@@ -25,13 +25,13 @@ module LinuxAdmin
|
|
25
25
|
comment = "##{comment}" unless comment.blank?
|
26
26
|
columns = columns.chomp.split
|
27
27
|
|
28
|
-
FSTabEntry.new
|
28
|
+
FSTabEntry.new(:device => columns[0],
|
29
29
|
:mount_point => columns[1],
|
30
30
|
:fs_type => columns[2],
|
31
31
|
:mount_options => columns[3],
|
32
32
|
:dumpable => columns[4],
|
33
33
|
:fsck_order => columns[5],
|
34
|
-
:comment => comment
|
34
|
+
:comment => comment)
|
35
35
|
end
|
36
36
|
|
37
37
|
def has_content?
|
@@ -44,30 +44,35 @@ module LinuxAdmin
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def column_lengths
|
47
|
-
|
47
|
+
columns.collect { |c| c ? c.to_s.size : 0 }
|
48
48
|
end
|
49
49
|
|
50
50
|
def formatted_columns(max_lengths)
|
51
51
|
self.columns.collect.
|
52
|
-
with_index { |col, i| col.to_s.rjust(max_lengths[i]) }.join(" ")
|
52
|
+
with_index { |col, i| col.to_s.rjust(max_lengths[i]) }.join(" ").rstrip
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
class FSTab
|
57
57
|
include Singleton
|
58
58
|
|
59
|
-
attr_accessor :entries
|
60
|
-
attr_accessor :maximum_column_lengths
|
61
|
-
|
62
59
|
def initialize
|
63
60
|
refresh
|
64
61
|
end
|
65
62
|
|
63
|
+
def entries
|
64
|
+
@entries ||= LinuxAdmin::FSTab::EntryCollection.new
|
65
|
+
end
|
66
|
+
|
67
|
+
def maximum_column_lengths
|
68
|
+
entries.maximum_column_lengths
|
69
|
+
end
|
70
|
+
|
66
71
|
def write!
|
67
72
|
content = ''
|
68
|
-
|
73
|
+
entries.each do |entry|
|
69
74
|
if entry.has_content?
|
70
|
-
content << entry.formatted_columns(
|
75
|
+
content << entry.formatted_columns(entries.maximum_column_lengths) << "\n"
|
71
76
|
else
|
72
77
|
content << "#{entry.comment}"
|
73
78
|
end
|
@@ -84,17 +89,27 @@ module LinuxAdmin
|
|
84
89
|
end
|
85
90
|
|
86
91
|
def refresh
|
87
|
-
@entries
|
88
|
-
@maximum_column_lengths = Array.new(7, 0) # # of columns
|
92
|
+
@entries = nil
|
89
93
|
read.each do |line|
|
90
94
|
entry = FSTabEntry.from_line(line)
|
91
|
-
|
95
|
+
entries << entry
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class EntryCollection < Array
|
100
|
+
attr_reader :maximum_column_lengths
|
92
101
|
|
102
|
+
def initialize
|
103
|
+
@maximum_column_lengths = Array.new(7, 0) # # of columns
|
104
|
+
end
|
105
|
+
|
106
|
+
def <<(entry)
|
93
107
|
lengths = entry.column_lengths
|
94
108
|
lengths.each_index do |i|
|
95
|
-
|
96
|
-
lengths[i] if lengths[i] > @maximum_column_lengths[i]
|
109
|
+
maximum_column_lengths[i] = [lengths[i], maximum_column_lengths[i]].max
|
97
110
|
end
|
111
|
+
|
112
|
+
super
|
98
113
|
end
|
99
114
|
end
|
100
115
|
end
|
data/lib/linux_admin/version.rb
CHANGED
data/spec/fstab_spec.rb
CHANGED
@@ -46,20 +46,86 @@ eos
|
|
46
46
|
|
47
47
|
describe "#write!" do
|
48
48
|
it "writes entries to /etc/fstab" do
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
subject.instance.entries = [entry]
|
49
|
+
expect(File).to receive(:read).with("/etc/fstab").and_return("")
|
50
|
+
|
51
|
+
subject.instance.entries << LinuxAdmin::FSTabEntry.new(
|
52
|
+
:device => '/dev/sda1',
|
53
|
+
:mount_point => '/',
|
54
|
+
:fs_type => 'ext4',
|
55
|
+
:mount_options => 'defaults',
|
56
|
+
:dumpable => 1,
|
57
|
+
:fsck_order => 1,
|
58
|
+
:comment => "# more"
|
59
|
+
)
|
61
60
|
|
62
61
|
expect(File).to receive(:write).with('/etc/fstab', "/dev/sda1 / ext4 defaults 1 1 # more\n")
|
62
|
+
|
63
|
+
subject.instance.write!
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#entries" do
|
68
|
+
it "#<< updates maximum_column_lengths" do
|
69
|
+
expect(File).to receive(:read).with("/etc/fstab").and_return("")
|
70
|
+
|
71
|
+
subject.instance.entries << LinuxAdmin::FSTabEntry.new(
|
72
|
+
:device => '/dev/sda1',
|
73
|
+
:mount_point => '/',
|
74
|
+
:fs_type => 'ext4',
|
75
|
+
:mount_options => 'defaults',
|
76
|
+
:dumpable => 1,
|
77
|
+
:fsck_order => 1,
|
78
|
+
:comment => "# more"
|
79
|
+
)
|
80
|
+
|
81
|
+
expect(subject.instance.entries.maximum_column_lengths).to eq([9, 1, 4, 8, 1, 1, 6])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "integration test" do
|
86
|
+
it "input equals output, just alignment changed" do
|
87
|
+
original_fstab = <<~END_OF_FSTAB
|
88
|
+
|
89
|
+
#
|
90
|
+
# /etc/fstab
|
91
|
+
# Created by anaconda on Wed May 29 12:37:40 2019
|
92
|
+
#
|
93
|
+
# Accessible filesystems, by reference, are maintained under '/dev/disk'
|
94
|
+
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
|
95
|
+
#
|
96
|
+
/dev/mapper/VG--MIQ-lv_os / xfs defaults 0 0
|
97
|
+
UUID=02bf07b5-2404-4779-b93c-d8eb7f2eedea /boot xfs defaults 0 0
|
98
|
+
/dev/mapper/VG--MIQ-lv_home /home xfs defaults 0 0
|
99
|
+
/dev/mapper/VG--MIQ-lv_tmp /tmp xfs defaults 0 0
|
100
|
+
/dev/mapper/VG--MIQ-lv_var /var xfs defaults 0 0
|
101
|
+
/dev/mapper/VG--MIQ-lv_var_log /var/log xfs defaults 0 0
|
102
|
+
/dev/mapper/VG--MIQ-lv_var_log_audit /var/log/audit xfs defaults 0 0
|
103
|
+
/dev/mapper/VG--MIQ-lv_log /var/www/miq/vmdb/log xfs defaults 0 0
|
104
|
+
/dev/mapper/VG--MIQ-lv_swap swap swap defaults 0 0
|
105
|
+
END_OF_FSTAB
|
106
|
+
|
107
|
+
new_fstab = <<~END_OF_FSTAB
|
108
|
+
|
109
|
+
# /etc/fstab
|
110
|
+
# Created by anaconda on Wed May 29 12:37:40 2019
|
111
|
+
|
112
|
+
# Accessible filesystems, by reference, are maintained under '/dev/disk'
|
113
|
+
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
|
114
|
+
|
115
|
+
/dev/mapper/VG--MIQ-lv_os / xfs defaults 0 0
|
116
|
+
UUID=02bf07b5-2404-4779-b93c-d8eb7f2eedea /boot xfs defaults 0 0
|
117
|
+
/dev/mapper/VG--MIQ-lv_home /home xfs defaults 0 0
|
118
|
+
/dev/mapper/VG--MIQ-lv_tmp /tmp xfs defaults 0 0
|
119
|
+
/dev/mapper/VG--MIQ-lv_var /var xfs defaults 0 0
|
120
|
+
/dev/mapper/VG--MIQ-lv_var_log /var/log xfs defaults 0 0
|
121
|
+
/dev/mapper/VG--MIQ-lv_var_log_audit /var/log/audit xfs defaults 0 0
|
122
|
+
/dev/mapper/VG--MIQ-lv_log /var/www/miq/vmdb/log xfs defaults 0 0
|
123
|
+
/dev/mapper/VG--MIQ-lv_swap swap swap defaults 0 0
|
124
|
+
END_OF_FSTAB
|
125
|
+
|
126
|
+
expect(File).to receive(:read).with("/etc/fstab").and_return(original_fstab)
|
127
|
+
expect(File).to receive(:write).with("/etc/fstab", new_fstab)
|
128
|
+
|
63
129
|
subject.instance.write!
|
64
130
|
end
|
65
131
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linux_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Dunne
|
@@ -24,7 +24,7 @@ authors:
|
|
24
24
|
autorequire:
|
25
25
|
bindir: bin
|
26
26
|
cert_chain: []
|
27
|
-
date: 2019-
|
27
|
+
date: 2019-07-08 00:00:00.000000000 Z
|
28
28
|
dependencies:
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
@@ -326,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
326
|
version: '0'
|
327
327
|
requirements: []
|
328
328
|
rubyforge_project:
|
329
|
-
rubygems_version: 2.6.
|
329
|
+
rubygems_version: 2.7.6.2
|
330
330
|
signing_key:
|
331
331
|
specification_version: 4
|
332
332
|
summary: LinuxAdmin is a module to simplify management of linux systems.
|