linux_admin 1.2.4 → 2.0.0

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.
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