linux_admin 1.2.4 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/linux_admin.rb +0 -8
  3. data/lib/linux_admin/disk.rb +12 -5
  4. data/lib/linux_admin/registration_system.rb +8 -4
  5. data/lib/linux_admin/scap.rb +1 -1
  6. data/lib/linux_admin/service/sys_v_init_service.rb +2 -1
  7. data/lib/linux_admin/service/systemd_service.rb +6 -2
  8. data/lib/linux_admin/version.rb +1 -1
  9. metadata +8 -100
  10. data/lib/linux_admin/registration_system/rhn.rb +0 -111
  11. data/spec/chrony_spec.rb +0 -64
  12. data/spec/common_spec.rb +0 -37
  13. data/spec/data/rhn/output_rhn-channel_list +0 -2
  14. data/spec/data/rhn/output_rhn-channel_list_available +0 -4
  15. data/spec/data/rhn/systemid +0 -57
  16. data/spec/data/rhn/systemid.missing_system_id +0 -57
  17. data/spec/data/rpm/cmd_output_for_list_installed +0 -20
  18. data/spec/data/subscription_manager/output_list_all_available +0 -42
  19. data/spec/data/subscription_manager/output_list_installed_not_subscribed +0 -19
  20. data/spec/data/subscription_manager/output_list_installed_subscribed +0 -19
  21. data/spec/data/subscription_manager/output_orgs +0 -6
  22. data/spec/data/subscription_manager/output_repos +0 -18
  23. data/spec/data/time_date/timedatectl_output +0 -14
  24. data/spec/data/yum/first.repo +0 -19
  25. data/spec/data/yum/output_repo_list +0 -13
  26. data/spec/data/yum/output_repoquery_multiple +0 -3
  27. data/spec/data/yum/output_repoquery_single +0 -1
  28. data/spec/data/yum/second.repo +0 -9
  29. data/spec/deb_spec.rb +0 -52
  30. data/spec/disk_spec.rb +0 -307
  31. data/spec/distro_spec.rb +0 -77
  32. data/spec/dns_spec.rb +0 -105
  33. data/spec/etc_issue_spec.rb +0 -37
  34. data/spec/fstab_spec.rb +0 -132
  35. data/spec/hardware_spec.rb +0 -46
  36. data/spec/hosts_spec.rb +0 -150
  37. data/spec/ip_address_spec.rb +0 -148
  38. data/spec/logical_volume_spec.rb +0 -166
  39. data/spec/mountable_spec.rb +0 -182
  40. data/spec/network_interface/network_interface_rh_spec.rb +0 -291
  41. data/spec/network_interface_spec.rb +0 -284
  42. data/spec/partition_spec.rb +0 -24
  43. data/spec/physical_volume_spec.rb +0 -101
  44. data/spec/registration_system_spec.rb +0 -85
  45. data/spec/rhn_spec.rb +0 -144
  46. data/spec/rpm_spec.rb +0 -85
  47. data/spec/scap_spec.rb +0 -48
  48. data/spec/service/sys_v_init_service_spec.rb +0 -127
  49. data/spec/service/systemd_service_spec.rb +0 -133
  50. data/spec/service_spec.rb +0 -54
  51. data/spec/spec_helper.rb +0 -116
  52. data/spec/ssh_spec.rb +0 -53
  53. data/spec/subscription_manager_spec.rb +0 -228
  54. data/spec/system_spec.rb +0 -15
  55. data/spec/time_date_spec.rb +0 -106
  56. data/spec/volume_group_spec.rb +0 -99
  57. data/spec/yum_spec.rb +0 -155
@@ -1,148 +0,0 @@
1
- describe LinuxAdmin::IpAddress do
2
- let(:ip) { described_class.new }
3
-
4
- ADDR_SPAWN_ARGS = [
5
- LinuxAdmin::Common.cmd("hostname"),
6
- :params => ["-I"]
7
- ]
8
-
9
- MAC_SPAWN_ARGS = [
10
- LinuxAdmin::Common.cmd("ip"),
11
- :params => %w(addr show eth0)
12
- ]
13
-
14
- MASK_SPAWN_ARGS = [
15
- LinuxAdmin::Common.cmd("ifconfig"),
16
- :params => %w(eth0)
17
- ]
18
-
19
- GW_SPAWN_ARGS = [
20
- LinuxAdmin::Common.cmd("ip"),
21
- :params => %w(route)
22
- ]
23
-
24
- IP_ADDR_SHOW_ETH0 = <<-IP_OUT
25
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
26
- link/ether 00:0c:29:ed:0e:8b brd ff:ff:ff:ff:ff:ff
27
- inet 192.168.1.9/24 brd 192.168.1.255 scope global dynamic eth0
28
- valid_lft 1297sec preferred_lft 1297sec
29
- inet6 fe80::20c:29ff:feed:e8b/64 scope link
30
- valid_lft forever preferred_lft forever
31
-
32
- IP_OUT
33
-
34
- IFCFG = <<-IP_OUT
35
- eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
36
- inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
37
- inet6 fe80::20c:29ff:feed:e8b prefixlen 64 scopeid 0x20<link>
38
- ether 00:0c:29:ed:0e:8b txqueuelen 1000 (Ethernet)
39
- RX packets 10171 bytes 8163955 (7.7 MiB)
40
- RX errors 0 dropped 0 overruns 0 frame 0
41
- TX packets 2871 bytes 321915 (314.3 KiB)
42
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
43
-
44
- IP_OUT
45
-
46
- IP_ROUTE = <<-IP_OUT
47
- default via 192.168.1.1 dev eth0 proto static metric 100
48
- 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.9 metric 100
49
- IP_OUT
50
-
51
- def result(output, exit_status)
52
- AwesomeSpawn::CommandResult.new("", output, "", exit_status)
53
- end
54
-
55
- describe "#address" do
56
- it "returns an address" do
57
- ip_addr = "192.168.1.2"
58
- expect(AwesomeSpawn).to receive(:run).with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 0))
59
- expect(ip.address).to eq(ip_addr)
60
- end
61
-
62
- it "returns nil when no address is found" do
63
- ip_addr = ""
64
- expect(AwesomeSpawn).to receive(:run).at_least(5).times.with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 1))
65
- expect(ip.address).to be_nil
66
- end
67
-
68
- it "returns only IPv4 addresses" do
69
- ip_addr = "fd12:3456:789a:1::1 192.168.1.2"
70
- expect(AwesomeSpawn).to receive(:run).with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 0))
71
- expect(ip.address).to eq("192.168.1.2")
72
- end
73
- end
74
-
75
- describe "#address6" do
76
- it "returns an address" do
77
- ip_addr = "fd12:3456:789a:1::1"
78
- expect(AwesomeSpawn).to receive(:run).with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 0))
79
- expect(ip.address6).to eq(ip_addr)
80
- end
81
-
82
- it "returns nil when no address is found" do
83
- ip_addr = ""
84
- expect(AwesomeSpawn).to receive(:run).at_least(5).times.with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 1))
85
- expect(ip.address6).to be_nil
86
- end
87
-
88
- it "returns only IPv6 addresses" do
89
- ip_addr = "192.168.1.2 fd12:3456:789a:1::1"
90
- expect(AwesomeSpawn).to receive(:run).with(*ADDR_SPAWN_ARGS).and_return(result(ip_addr, 0))
91
- expect(ip.address6).to eq("fd12:3456:789a:1::1")
92
- end
93
- end
94
-
95
- describe "#mac_address" do
96
- it "returns the correct MAC address" do
97
- expect(AwesomeSpawn).to receive(:run).with(*MAC_SPAWN_ARGS).and_return(result(IP_ADDR_SHOW_ETH0, 0))
98
- expect(ip.mac_address("eth0")).to eq("00:0c:29:ed:0e:8b")
99
- end
100
-
101
- it "returns nil when the command fails" do
102
- expect(AwesomeSpawn).to receive(:run).with(*MAC_SPAWN_ARGS).and_return(result("", 1))
103
- expect(ip.mac_address("eth0")).to be_nil
104
- end
105
-
106
- it "returns nil if the link/ether line is not present" do
107
- bad_output = IP_ADDR_SHOW_ETH0.gsub(%r{link/ether}, "")
108
- expect(AwesomeSpawn).to receive(:run).with(*MAC_SPAWN_ARGS).and_return(result(bad_output, 0))
109
- expect(ip.mac_address("eth0")).to be_nil
110
- end
111
- end
112
-
113
- describe "#netmask" do
114
- it "returns the correct netmask" do
115
- expect(AwesomeSpawn).to receive(:run).with(*MASK_SPAWN_ARGS).and_return(result(IFCFG, 0))
116
- expect(ip.netmask("eth0")).to eq("255.255.255.0")
117
- end
118
-
119
- it "returns nil when the command fails" do
120
- expect(AwesomeSpawn).to receive(:run).with(*MASK_SPAWN_ARGS).and_return(result("", 1))
121
- expect(ip.netmask("eth0")).to be_nil
122
- end
123
-
124
- it "returns nil if the netmask line is not present" do
125
- bad_output = IFCFG.gsub(/netmask/, "")
126
- expect(AwesomeSpawn).to receive(:run).with(*MASK_SPAWN_ARGS).and_return(result(bad_output, 0))
127
- expect(ip.netmask("eth0")).to be_nil
128
- end
129
- end
130
-
131
- describe "#gateway" do
132
- it "returns the correct gateway address" do
133
- expect(AwesomeSpawn).to receive(:run).with(*GW_SPAWN_ARGS).and_return(result(IP_ROUTE, 0))
134
- expect(ip.gateway).to eq("192.168.1.1")
135
- end
136
-
137
- it "returns nil when the command fails" do
138
- expect(AwesomeSpawn).to receive(:run).with(*GW_SPAWN_ARGS).and_return(result("", 1))
139
- expect(ip.gateway).to be_nil
140
- end
141
-
142
- it "returns nil if the default line is not present" do
143
- bad_output = IP_ROUTE.gsub(/default/, "")
144
- expect(AwesomeSpawn).to receive(:run).with(*GW_SPAWN_ARGS).and_return(result(bad_output, 0))
145
- expect(ip.gateway).to be_nil
146
- end
147
- end
148
- end
@@ -1,166 +0,0 @@
1
- describe LinuxAdmin::LogicalVolume do
2
- before(:each) do
3
- @logical_volumes = <<eos
4
- /dev/vg_foobar/lv_swap:vg_foobar:3:1:-1:2:4128768:63:-1:0:-1:253:0
5
- /dev/vg_foobar/lv_root:vg_foobar:3:1:-1:1:19988480:305:-1:0:-1:253:1
6
- eos
7
-
8
- @groups = <<eos
9
- vg_foobar:r/w:772:-1:0:2:2:-1:0:1:1:12058624:32768:368:368:0:tILZUF-IspH-H90I-pT5j-vVFl-b76L-zWx3CW
10
- eos
11
- end
12
-
13
- after(:each) do
14
- # reset local copies of volumes / groups
15
- described_class.instance_variable_set(:@lvs, nil)
16
- LinuxAdmin::PhysicalVolume.instance_variable_set(:@pvs, nil)
17
- LinuxAdmin::VolumeGroup.instance_variable_set(:@vgs, nil)
18
- end
19
-
20
- describe "#extend_with" do
21
- it "uses lvextend" do
22
- vg = LinuxAdmin::VolumeGroup.new :name => 'vg'
23
- lv = described_class.new :name => 'lv', :volume_group => vg
24
- expect(LinuxAdmin::Common).to receive(:run!)
25
- .with(LinuxAdmin::Common.cmd(:lvextend),
26
- :params => %w(lv vg))
27
- lv.extend_with(vg)
28
- end
29
-
30
- it "returns self" do
31
- vg = LinuxAdmin::VolumeGroup.new :name => 'vg'
32
- lv = described_class.new :name => 'lv', :volume_group => vg
33
- allow(LinuxAdmin::Common).to receive(:run!)
34
- expect(lv.extend_with(vg)).to eq(lv)
35
- end
36
- end
37
-
38
- describe "#path" do
39
- it "returns /dev/vgname/lvname" do
40
- vg = LinuxAdmin::VolumeGroup.new :name => 'vg'
41
- lv = described_class.new :name => 'lv', :volume_group => vg
42
- expect(lv.path).to eq('/dev/vg/lv')
43
- end
44
- end
45
-
46
- describe "#create" do
47
- before(:each) do
48
- @vg = LinuxAdmin::VolumeGroup.new :name => 'vg'
49
- end
50
-
51
- it "uses lvcreate" do
52
- described_class.instance_variable_set(:@lvs, [])
53
- expect(LinuxAdmin::Common).to receive(:run!)
54
- .with(LinuxAdmin::Common.cmd(:lvcreate),
55
- :params => {'-n' => 'lv',
56
- nil => 'vg',
57
- '-L' => '256G'})
58
- described_class.create 'lv', @vg, 274_877_906_944 # 256.gigabytes
59
- end
60
-
61
- context "size is specified" do
62
- it "passes -L option to lvcreate" do
63
- described_class.instance_variable_set(:@lvs, [])
64
- expect(LinuxAdmin::Common).to receive(:run!)
65
- .with(LinuxAdmin::Common.cmd(:lvcreate),
66
- :params => {'-n' => 'lv',
67
- nil => 'vg',
68
- '-L' => '256G'})
69
- described_class.create 'lv', @vg, 274_877_906_944 # 256.gigabytes
70
- end
71
- end
72
-
73
- context "extents is specified" do
74
- it "passes -l option to lvcreate" do
75
- described_class.instance_variable_set(:@lvs, [])
76
- expect(LinuxAdmin::Common).to receive(:run!)
77
- .with(LinuxAdmin::Common.cmd(:lvcreate),
78
- :params => {'-n' => 'lv',
79
- nil => 'vg',
80
- '-l' => '100%FREE'})
81
- described_class.create 'lv', @vg, 100
82
- end
83
- end
84
-
85
- it "returns new logical volume" do
86
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
87
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
88
- lv = described_class.create 'lv', @vg, 274_877_906_944 # 256.gigabytes
89
- expect(lv).to be_an_instance_of(described_class)
90
- expect(lv.name).to eq('lv')
91
- end
92
-
93
- context "name is specified" do
94
- it "sets path under volume group" do
95
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
96
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
97
- lv = described_class.create 'lv', @vg, 274_877_906_944 # 256.gigabytes
98
- expect(lv.path.to_s).to eq("#{described_class::DEVICE_PATH}#{@vg.name}/lv")
99
- end
100
- end
101
-
102
- context "path is specified" do
103
- it "sets name" do
104
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
105
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
106
- lv = described_class.create '/dev/lv', @vg, 274_877_906_944 # 256.gigabytes
107
- expect(lv.name).to eq("lv")
108
- end
109
- end
110
-
111
- context "path is specified as Pathname" do
112
- it "sets name" do
113
- require 'pathname'
114
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
115
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
116
- lv = described_class.create Pathname.new("/dev/#{@vg.name}/lv"), @vg, 274_877_906_944 # 256.gigabytes
117
- expect(lv.name).to eq("lv")
118
- expect(lv.path).to eq("/dev/vg/lv")
119
- end
120
- end
121
-
122
- it "adds logical volume to local registry" do
123
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
124
- allow(LinuxAdmin::Common).to receive_messages(:run! => double(:output => ""))
125
- lv = described_class.create 'lv', @vg, 274_877_906_944 # 256.gigabytes
126
- expect(described_class.scan).to include(lv)
127
- end
128
- end
129
-
130
- describe "#scan" do
131
- it "uses lvdisplay" do
132
- expect(LinuxAdmin::Common).to receive(:run!)
133
- .with(LinuxAdmin::Common.cmd(:lvdisplay),
134
- :params => {'-c' => nil})
135
- .and_return(double(:output => @logical_volumes))
136
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @groups)) # stub out call to vgdisplay
137
- described_class.scan
138
- end
139
-
140
- it "returns local logical volumes" do
141
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @logical_volumes))
142
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @groups))
143
- lvs = described_class.scan
144
-
145
- expect(lvs[0]).to be_an_instance_of(described_class)
146
- expect(lvs[0].path).to eq('/dev/vg_foobar/lv_swap')
147
- expect(lvs[0].name).to eq('lv_swap')
148
- expect(lvs[0].sectors).to eq(4128768)
149
-
150
- expect(lvs[1]).to be_an_instance_of(described_class)
151
- expect(lvs[1].path).to eq('/dev/vg_foobar/lv_root')
152
- expect(lvs[1].name).to eq('lv_root')
153
- expect(lvs[1].sectors).to eq(19988480)
154
- end
155
-
156
- it "resolves volume group references" do
157
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @logical_volumes))
158
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @groups))
159
- lvs = described_class.scan
160
- expect(lvs[0].volume_group).to be_an_instance_of(LinuxAdmin::VolumeGroup)
161
- expect(lvs[0].volume_group.name).to eq('vg_foobar')
162
- expect(lvs[1].volume_group).to be_an_instance_of(LinuxAdmin::VolumeGroup)
163
- expect(lvs[1].volume_group.name).to eq('vg_foobar')
164
- end
165
- end
166
- end
@@ -1,182 +0,0 @@
1
- class TestMountable
2
- include LinuxAdmin::Mountable
3
-
4
- def path
5
- "/dev/foo"
6
- end
7
- end
8
-
9
- describe LinuxAdmin::Mountable do
10
- before(:each) do
11
- @mountable = TestMountable.new
12
-
13
- # stub out calls that modify system
14
- allow(FileUtils).to receive(:mkdir)
15
- allow(LinuxAdmin::Common).to receive(:run!)
16
-
17
- @mount_out1 = <<eos
18
- /dev/sda on /mnt/usb type vfat (rw)
19
- eos
20
- @mount_out2 = <<eos
21
- cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
22
- systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=26,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
23
- eos
24
-
25
- @mount_out3 = <<eos
26
- /dev/mapper/vg_data-lv_pg on /var/opt/rh/rh-postgresql95/lib/pgsql type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
27
- /dev/foo on /tmp type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
28
- /dev/foo on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
29
- eos
30
- end
31
-
32
- describe "#mount_point_exists?" do
33
- it "uses mount" do
34
- expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:mount))
35
- .and_return(double(:output => ""))
36
- TestMountable.mount_point_exists?('/mnt/usb')
37
- end
38
-
39
- context "disk mounted at specified location" do
40
- before do
41
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out1))
42
- end
43
-
44
- it "returns true" do
45
- expect(TestMountable.mount_point_exists?('/mnt/usb')).to be_truthy
46
- end
47
-
48
- it "returns true when using a pathname" do
49
- path = Pathname.new("/mnt/usb")
50
- expect(TestMountable.mount_point_exists?(path)).to be_truthy
51
- end
52
- end
53
-
54
- context "no disk mounted at specified location" do
55
- before do
56
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out2))
57
- end
58
-
59
- it "returns false" do
60
- expect(TestMountable.mount_point_exists?('/mnt/usb')).to be_falsey
61
- end
62
-
63
- it "returns false when using a pathname" do
64
- path = Pathname.new("/mnt/usb")
65
- expect(TestMountable.mount_point_exists?(path)).to be_falsey
66
- end
67
- end
68
- end
69
-
70
- describe "#mount_point_available?" do
71
- it "uses mount" do
72
- expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:mount))
73
- .and_return(double(:output => ""))
74
- TestMountable.mount_point_available?('/mnt/usb')
75
- end
76
-
77
- context "disk mounted at specified location" do
78
- before do
79
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out1))
80
- end
81
-
82
- it "returns false" do
83
- expect(TestMountable.mount_point_available?('/mnt/usb')).to be_falsey
84
- end
85
-
86
- it "returns false when using a pathname" do
87
- path = Pathname.new("/mnt/usb")
88
- expect(TestMountable.mount_point_available?(path)).to be_falsey
89
- end
90
- end
91
-
92
- context "no disk mounted at specified location" do
93
- before do
94
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out2))
95
- end
96
-
97
- it "returns true" do
98
- expect(TestMountable.mount_point_available?('/mnt/usb')).to be_truthy
99
- end
100
-
101
- it "returns true when using a pathname" do
102
- path = Pathname.new("/mnt/usb")
103
- expect(TestMountable.mount_point_available?(path)).to be_truthy
104
- end
105
- end
106
- end
107
-
108
- describe "#discover_mount_point" do
109
- it "sets the correct mountpoint when the path is mounted" do
110
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out3))
111
- @mountable.discover_mount_point
112
- expect(@mountable.mount_point).to eq("/tmp")
113
- end
114
-
115
- it "sets mount_point to nil when the path is not mounted" do
116
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => @mount_out1))
117
- @mountable.discover_mount_point
118
- expect(@mountable.mount_point).to be_nil
119
- end
120
- end
121
-
122
- describe "#format_to" do
123
- it "uses mke2fs" do
124
- expect(LinuxAdmin::Common).to receive(:run!)
125
- .with(LinuxAdmin::Common.cmd(:mke2fs),
126
- :params => {'-t' => 'ext4', nil => '/dev/foo'})
127
- @mountable.format_to('ext4')
128
- end
129
-
130
- it "sets fs type" do
131
- expect(LinuxAdmin::Common).to receive(:run!) # ignore actual formatting cmd
132
- @mountable.format_to('ext4')
133
- expect(@mountable.fs_type).to eq('ext4')
134
- end
135
- end
136
-
137
- describe "#mount" do
138
- it "sets mount point" do
139
- # ignore actual mount cmds
140
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => ""))
141
- expect(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => ""))
142
-
143
- expect(@mountable.mount('/mnt/sda2')).to eq('/mnt/sda2')
144
- expect(@mountable.mount_point).to eq('/mnt/sda2')
145
- end
146
-
147
- context "mountpoint does not exist" do
148
- it "creates mountpoint" do
149
- expect(TestMountable).to receive(:mount_point_exists?).and_return(false)
150
- expect(File).to receive(:directory?).with('/mnt/sda2').and_return(false)
151
- expect(FileUtils).to receive(:mkdir).with('/mnt/sda2')
152
- expect(LinuxAdmin::Common).to receive(:run!) # ignore actual mount cmd
153
- @mountable.mount '/mnt/sda2'
154
- end
155
- end
156
-
157
- context "disk mounted at mountpoint" do
158
- it "raises argument error" do
159
- expect(TestMountable).to receive(:mount_point_exists?).and_return(true)
160
- expect(File).to receive(:directory?).with('/mnt/sda2').and_return(true)
161
- expect { @mountable.mount '/mnt/sda2' }.to raise_error(ArgumentError, "disk already mounted at /mnt/sda2")
162
- end
163
- end
164
-
165
- it "mounts partition" do
166
- expect(TestMountable).to receive(:mount_point_exists?).and_return(false)
167
- expect(LinuxAdmin::Common).to receive(:run!)
168
- .with(LinuxAdmin::Common.cmd(:mount),
169
- :params => {nil => ['/dev/foo', '/mnt/sda2']})
170
- @mountable.mount '/mnt/sda2'
171
- end
172
- end
173
-
174
- describe "#umount" do
175
- it "unmounts partition" do
176
- @mountable.mount_point = '/mnt/sda2'
177
- expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:umount),
178
- :params => {nil => ['/mnt/sda2']})
179
- @mountable.umount
180
- end
181
- end
182
- end