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.
- checksums.yaml +4 -4
- data/lib/linux_admin.rb +0 -8
- data/lib/linux_admin/disk.rb +12 -5
- data/lib/linux_admin/registration_system.rb +8 -4
- data/lib/linux_admin/scap.rb +1 -1
- data/lib/linux_admin/service/sys_v_init_service.rb +2 -1
- data/lib/linux_admin/service/systemd_service.rb +6 -2
- data/lib/linux_admin/version.rb +1 -1
- metadata +8 -100
- data/lib/linux_admin/registration_system/rhn.rb +0 -111
- data/spec/chrony_spec.rb +0 -64
- data/spec/common_spec.rb +0 -37
- data/spec/data/rhn/output_rhn-channel_list +0 -2
- data/spec/data/rhn/output_rhn-channel_list_available +0 -4
- data/spec/data/rhn/systemid +0 -57
- data/spec/data/rhn/systemid.missing_system_id +0 -57
- data/spec/data/rpm/cmd_output_for_list_installed +0 -20
- data/spec/data/subscription_manager/output_list_all_available +0 -42
- data/spec/data/subscription_manager/output_list_installed_not_subscribed +0 -19
- data/spec/data/subscription_manager/output_list_installed_subscribed +0 -19
- data/spec/data/subscription_manager/output_orgs +0 -6
- data/spec/data/subscription_manager/output_repos +0 -18
- data/spec/data/time_date/timedatectl_output +0 -14
- data/spec/data/yum/first.repo +0 -19
- data/spec/data/yum/output_repo_list +0 -13
- data/spec/data/yum/output_repoquery_multiple +0 -3
- data/spec/data/yum/output_repoquery_single +0 -1
- data/spec/data/yum/second.repo +0 -9
- data/spec/deb_spec.rb +0 -52
- data/spec/disk_spec.rb +0 -307
- data/spec/distro_spec.rb +0 -77
- data/spec/dns_spec.rb +0 -105
- data/spec/etc_issue_spec.rb +0 -37
- data/spec/fstab_spec.rb +0 -132
- data/spec/hardware_spec.rb +0 -46
- data/spec/hosts_spec.rb +0 -150
- data/spec/ip_address_spec.rb +0 -148
- data/spec/logical_volume_spec.rb +0 -166
- data/spec/mountable_spec.rb +0 -182
- data/spec/network_interface/network_interface_rh_spec.rb +0 -291
- data/spec/network_interface_spec.rb +0 -284
- data/spec/partition_spec.rb +0 -24
- data/spec/physical_volume_spec.rb +0 -101
- data/spec/registration_system_spec.rb +0 -85
- data/spec/rhn_spec.rb +0 -144
- data/spec/rpm_spec.rb +0 -85
- data/spec/scap_spec.rb +0 -48
- data/spec/service/sys_v_init_service_spec.rb +0 -127
- data/spec/service/systemd_service_spec.rb +0 -133
- data/spec/service_spec.rb +0 -54
- data/spec/spec_helper.rb +0 -116
- data/spec/ssh_spec.rb +0 -53
- data/spec/subscription_manager_spec.rb +0 -228
- data/spec/system_spec.rb +0 -15
- data/spec/time_date_spec.rb +0 -106
- data/spec/volume_group_spec.rb +0 -99
- data/spec/yum_spec.rb +0 -155
data/spec/common_spec.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
describe LinuxAdmin::Common do
|
2
|
-
describe "#cmd" do
|
3
|
-
it "looks up local command from id" do
|
4
|
-
expect(described_class.cmd(:dd)).to match(%r{bin/dd})
|
5
|
-
end
|
6
|
-
|
7
|
-
it "returns nil when it can't find the command" do
|
8
|
-
expect(described_class.cmd(:kasgbdlcvjhals)).to be_nil
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "#cmd?" do
|
13
|
-
it "returns true when the command exists" do
|
14
|
-
expect(described_class.cmd?(:dd)).to be true
|
15
|
-
end
|
16
|
-
|
17
|
-
it "returns false when the command doesn't exist" do
|
18
|
-
expect(described_class.cmd?(:kasgbdlcvjhals)).to be false
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
[described_class, LinuxAdmin].each do |klass|
|
23
|
-
describe "#{klass}.run" do
|
24
|
-
it "runs a command with AwesomeSpawn.run" do
|
25
|
-
expect(AwesomeSpawn).to receive(:run).with("echo", nil => "test")
|
26
|
-
klass.run("echo", nil => "test")
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#{klass}.run!" do
|
31
|
-
it "runs a command with AwesomeSpawn.run!" do
|
32
|
-
expect(AwesomeSpawn).to receive(:run!).with("echo", nil => "test")
|
33
|
-
klass.run!("echo", nil => "test")
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/spec/data/rhn/systemid
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
<params>
|
3
|
-
<param>
|
4
|
-
<value><struct>
|
5
|
-
<member>
|
6
|
-
<name>username</name>
|
7
|
-
<value><string>SomeUsername</string></value>
|
8
|
-
</member>
|
9
|
-
<member>
|
10
|
-
<name>operating_system</name>
|
11
|
-
<value><string>redhat-release-server</string></value>
|
12
|
-
</member>
|
13
|
-
<member>
|
14
|
-
<name>description</name>
|
15
|
-
<value><string>Initial Registration Parameters:
|
16
|
-
OS: redhat-release-server
|
17
|
-
Release: 6Server
|
18
|
-
CPU Arch: x86_64</string></value>
|
19
|
-
</member>
|
20
|
-
<member>
|
21
|
-
<name>checksum</name>
|
22
|
-
<value><string>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</string></value>
|
23
|
-
</member>
|
24
|
-
<member>
|
25
|
-
<name>profile_name</name>
|
26
|
-
<value><string>SomeProfileName</string></value>
|
27
|
-
</member>
|
28
|
-
<member>
|
29
|
-
<name>system_id</name>
|
30
|
-
<value><string>ID-0123456789</string></value>
|
31
|
-
</member>
|
32
|
-
<member>
|
33
|
-
<name>architecture</name>
|
34
|
-
<value><string>x86_64</string></value>
|
35
|
-
</member>
|
36
|
-
<member>
|
37
|
-
<name>os_release</name>
|
38
|
-
<value><string>6Server</string></value>
|
39
|
-
</member>
|
40
|
-
<member>
|
41
|
-
<name>fields</name>
|
42
|
-
<value><array><data>
|
43
|
-
<value><string>system_id</string></value>
|
44
|
-
<value><string>os_release</string></value>
|
45
|
-
<value><string>operating_system</string></value>
|
46
|
-
<value><string>architecture</string></value>
|
47
|
-
<value><string>username</string></value>
|
48
|
-
<value><string>type</string></value>
|
49
|
-
</data></array></value>
|
50
|
-
</member>
|
51
|
-
<member>
|
52
|
-
<name>type</name>
|
53
|
-
<value><string>REAL</string></value>
|
54
|
-
</member>
|
55
|
-
</struct></value>
|
56
|
-
</param>
|
57
|
-
</params>
|
@@ -1,57 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
<params>
|
3
|
-
<param>
|
4
|
-
<value><struct>
|
5
|
-
<member>
|
6
|
-
<name>username</name>
|
7
|
-
<value><string>SomeUsername</string></value>
|
8
|
-
</member>
|
9
|
-
<member>
|
10
|
-
<name>operating_system</name>
|
11
|
-
<value><string>redhat-release-server</string></value>
|
12
|
-
</member>
|
13
|
-
<member>
|
14
|
-
<name>description</name>
|
15
|
-
<value><string>Initial Registration Parameters:
|
16
|
-
OS: redhat-release-server
|
17
|
-
Release: 6Server
|
18
|
-
CPU Arch: x86_64</string></value>
|
19
|
-
</member>
|
20
|
-
<member>
|
21
|
-
<name>checksum</name>
|
22
|
-
<value><string>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</string></value>
|
23
|
-
</member>
|
24
|
-
<member>
|
25
|
-
<name>profile_name</name>
|
26
|
-
<value><string>SomeProfileName</string></value>
|
27
|
-
</member>
|
28
|
-
<member>
|
29
|
-
<name>system_id</name>
|
30
|
-
<value><string></string></value>
|
31
|
-
</member>
|
32
|
-
<member>
|
33
|
-
<name>architecture</name>
|
34
|
-
<value><string>x86_64</string></value>
|
35
|
-
</member>
|
36
|
-
<member>
|
37
|
-
<name>os_release</name>
|
38
|
-
<value><string>6Server</string></value>
|
39
|
-
</member>
|
40
|
-
<member>
|
41
|
-
<name>fields</name>
|
42
|
-
<value><array><data>
|
43
|
-
<value><string>system_id</string></value>
|
44
|
-
<value><string>os_release</string></value>
|
45
|
-
<value><string>operating_system</string></value>
|
46
|
-
<value><string>architecture</string></value>
|
47
|
-
<value><string>username</string></value>
|
48
|
-
<value><string>type</string></value>
|
49
|
-
</data></array></value>
|
50
|
-
</member>
|
51
|
-
<member>
|
52
|
-
<name>type</name>
|
53
|
-
<value><string>REAL</string></value>
|
54
|
-
</member>
|
55
|
-
</struct></value>
|
56
|
-
</param>
|
57
|
-
</params>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
ruby193-rubygem-some_really_long_name 1.0.7-1.el6
|
2
|
-
fipscheck-lib 1.2.0-7.el6
|
3
|
-
aic94xx-firmware 30-2.el6
|
4
|
-
latencytop-common 0.5-9.el6
|
5
|
-
uuid 1.6.1-10.el6
|
6
|
-
ConsoleKit 0.4.1-3.el6
|
7
|
-
cpuspeed 1.5-19.el6
|
8
|
-
mailcap 2.1.31-2.el6
|
9
|
-
freetds 0.82-7.1.el6cf
|
10
|
-
elinks 0.12-0.21.pre5.el6_3
|
11
|
-
abrt-cli 2.0.8-15.el6
|
12
|
-
libattr 2.4.44-7.el6
|
13
|
-
passwd 0.77-4.el6_2.2
|
14
|
-
vim-enhanced 7.2.411-1.8.el6
|
15
|
-
popt 1.13-7.el6
|
16
|
-
hesiod 3.1.0-19.el6
|
17
|
-
pinfo 0.6.9-12.el6
|
18
|
-
libpng 1.2.49-1.el6_2
|
19
|
-
libdhash 0.4.2-9.el6
|
20
|
-
zlib-devel 1.2.3-29.el6
|
@@ -1,42 +0,0 @@
|
|
1
|
-
+-------------------------------------------+
|
2
|
-
Available Subscriptions
|
3
|
-
+-------------------------------------------+
|
4
|
-
Subscription Name: Example Subscription
|
5
|
-
SKU: SER0123
|
6
|
-
Pool Id: 82c042fca983889b10178893f29b06e3
|
7
|
-
Quantity: 1690
|
8
|
-
Service Level: None
|
9
|
-
Service Type: None
|
10
|
-
Multi-Entitlement: No
|
11
|
-
Ends: 01/01/2022
|
12
|
-
System Type: Physical
|
13
|
-
|
14
|
-
Subscription Name: My Private Subscription
|
15
|
-
SKU: SER9876
|
16
|
-
Pool Id: 4f738052ec866192c775c62f408ab868
|
17
|
-
Quantity: Unlimited
|
18
|
-
Service Level: None
|
19
|
-
Service Type: None
|
20
|
-
Multi-Entitlement: No
|
21
|
-
Ends: 06/04/2013
|
22
|
-
System Type: Virtual
|
23
|
-
|
24
|
-
Subscription Name: Shared Subscription - With other characters, (2 sockets) (Up to 1 guest)
|
25
|
-
SKU: RH0123456
|
26
|
-
Pool Id: 3d81297f352305b9a3521981029d7d83
|
27
|
-
Quantity: 1
|
28
|
-
Service Level: Self-support
|
29
|
-
Service Type: L1-L3
|
30
|
-
Multi-Entitlement: No
|
31
|
-
Ends: 05/15/2013
|
32
|
-
System Type: Virtual
|
33
|
-
|
34
|
-
Subscription Name: Example Subscription, Premium (up to 2 sockets) 3 year
|
35
|
-
SKU: MCT0123A9
|
36
|
-
Pool Id: 87cefe63b67984d5c7e401d833d2f87f
|
37
|
-
Quantity: 1
|
38
|
-
Service Level: Premium
|
39
|
-
Service Type: L1-L3
|
40
|
-
Multi-Entitlement: No
|
41
|
-
Ends: 07/05/2013
|
42
|
-
System Type: Virtual
|
@@ -1,19 +0,0 @@
|
|
1
|
-
+-------------------------------------------+
|
2
|
-
Installed Product Status
|
3
|
-
+-------------------------------------------+
|
4
|
-
Product Name: Red Hat Enterprise Linux Server
|
5
|
-
Product ID: 69
|
6
|
-
Version: 6.3
|
7
|
-
Arch: x86_64
|
8
|
-
Status: Not Subscribed
|
9
|
-
Starts: 09/27/2012
|
10
|
-
Ends: 09/26/2013
|
11
|
-
|
12
|
-
Product Name: Red Hat CloudForms
|
13
|
-
Product ID: 167
|
14
|
-
Version: 2.1
|
15
|
-
Arch: x86_64
|
16
|
-
Status: Subscribed
|
17
|
-
Starts: 01/03/2013
|
18
|
-
Ends:
|
19
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
+-------------------------------------------+
|
2
|
-
Installed Product Status
|
3
|
-
+-------------------------------------------+
|
4
|
-
Product Name: Red Hat Enterprise Linux Server
|
5
|
-
Product ID: 69
|
6
|
-
Version: 6.3
|
7
|
-
Arch: x86_64
|
8
|
-
Status: Subscribed
|
9
|
-
Starts: 09/27/2012
|
10
|
-
Ends: 09/26/2013
|
11
|
-
|
12
|
-
Product Name: Red Hat CloudForms
|
13
|
-
Product ID: 167
|
14
|
-
Version: 2.1
|
15
|
-
Arch: x86_64
|
16
|
-
Status: Subscribed
|
17
|
-
Starts: 01/03/2013
|
18
|
-
Ends: 01/03/2014
|
19
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
+----------------------------------------------------------+
|
2
|
-
Available Repositories in /etc/yum.repos.d/redhat.repo
|
3
|
-
+----------------------------------------------------------+
|
4
|
-
Repo ID: some-repo-source-rpms
|
5
|
-
Repo Name: Some Repo (Source RPMs)
|
6
|
-
Repo URL: https://my.host.example.com/repos/some-repo/source/rpms
|
7
|
-
Enabled: 1
|
8
|
-
|
9
|
-
Repo ID: some-repo-rpms
|
10
|
-
Repo Name: Some Repo
|
11
|
-
Repo URL: https://my.host.example.com/repos/some-repo/rpms
|
12
|
-
Enabled: 1
|
13
|
-
|
14
|
-
Repo ID: some-repo-2-beta-rpms
|
15
|
-
Repo Name: Some Repo (Beta RPMs)
|
16
|
-
Repo URL: https://my.host.example.com/repos/some-repo-2/beta/rpms
|
17
|
-
Enabled: 0
|
18
|
-
|
@@ -1,14 +0,0 @@
|
|
1
|
-
Local time: Thu 2015-09-24 17:54:02 EDT
|
2
|
-
Universal time: Thu 2015-09-24 21:54:02 UTC
|
3
|
-
RTC time: Thu 2015-09-24 21:54:02
|
4
|
-
Time zone: America/New_York (EDT, -0400)
|
5
|
-
NTP enabled: yes
|
6
|
-
NTP synchronized: yes
|
7
|
-
RTC in local TZ: no
|
8
|
-
DST active: yes
|
9
|
-
Last DST change: DST began at
|
10
|
-
Sun 2015-03-08 01:59:59 EST
|
11
|
-
Sun 2015-03-08 03:00:00 EDT
|
12
|
-
Next DST change: DST ends (the clock jumps one hour backwards) at
|
13
|
-
Sun 2015-11-01 01:59:59 EDT
|
14
|
-
Sun 2015-11-01 01:00:00 EST
|
data/spec/data/yum/first.repo
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
[my-local-repo-a]
|
2
|
-
name = My Local Repo A
|
3
|
-
baseurl = https://mirror.example.com/a/content/os_ver
|
4
|
-
enabled = 0
|
5
|
-
gpgcheck = 1
|
6
|
-
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-my-local-server
|
7
|
-
sslverify = 1
|
8
|
-
sslcacert = /etc/rhsm/ca/my-loacl-server.pem
|
9
|
-
sslclientkey = /etc/pki/entitlement/0123456789012345678-key.pem
|
10
|
-
sslclientcert = /etc/pki/entitlement/0123456789012345678.pem
|
11
|
-
metadata_expire = 86400
|
12
|
-
|
13
|
-
[my-local-repo-b]
|
14
|
-
name = My Local Repo B
|
15
|
-
baseurl = https://mirror.example.com/b/content/os_ver
|
16
|
-
enabled = 1
|
17
|
-
gpgcheck = 0
|
18
|
-
sslverify = 0
|
19
|
-
metadata_expire = 86400
|
@@ -1,13 +0,0 @@
|
|
1
|
-
Loaded plugins: product-id, rhnplugin, security, subscription-manager
|
2
|
-
This system is receiving updates from Red Hat Subscription Management.
|
3
|
-
This system is not registered with RHN Classic or RHN Satellite.
|
4
|
-
You can use rhn_register to register.
|
5
|
-
RHN Satellite or RHN Classic support will be disabled.
|
6
|
-
rhel-6-server-rpms | 3.7 kB 00:00
|
7
|
-
rhel-ha-for-rhel-6-server-rpms | 3.7 kB 00:00
|
8
|
-
rhel-lb-for-rhel-6-server-rpms | 3.7 kB 00:00
|
9
|
-
repo id repo name status
|
10
|
-
rhel-6-server-rpms Red Hat Enterprise Linux 6 Server (RPMs) 11,016
|
11
|
-
rhel-ha-for-rhel-6-server-rpms Red Hat Enterprise Linux High Availability (for RHEL 6 Server) (RPMs) 269
|
12
|
-
rhel-lb-for-rhel-6-server-rpms Red Hat Enterprise Linux Load Balancer (for RHEL 6 Server) (RPMs) 0
|
13
|
-
repolist: 11,909
|
@@ -1 +0,0 @@
|
|
1
|
-
subscription-manager 1.1.23.1
|
data/spec/data/yum/second.repo
DELETED
data/spec/deb_spec.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
describe LinuxAdmin::Deb do
|
2
|
-
describe "#info" do
|
3
|
-
it "returns package metadata" do
|
4
|
-
# as output w/ apt-cache show ruby on ubuntu 13.04
|
5
|
-
data = <<EOS
|
6
|
-
Package: ruby
|
7
|
-
Priority: optional
|
8
|
-
Section: interpreters
|
9
|
-
Installed-Size: 31
|
10
|
-
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
11
|
-
Original-Maintainer: akira yamada <akira@debian.org>
|
12
|
-
Architecture: all
|
13
|
-
Source: ruby-defaults
|
14
|
-
Version: 4.9
|
15
|
-
Replaces: irb, rdoc
|
16
|
-
Provides: irb, rdoc
|
17
|
-
Depends: ruby1.9.1 (>= 1.9.3.194-1)
|
18
|
-
Suggests: ri, ruby-dev
|
19
|
-
Conflicts: irb, rdoc
|
20
|
-
Filename: pool/main/r/ruby-defaults/ruby_4.9_all.deb
|
21
|
-
Size: 4896
|
22
|
-
MD5sum: b1991f2e0eafb04f5930ed242cfe1476
|
23
|
-
SHA1: a7c55fbb83dd8382631ea771b5555d989351f840
|
24
|
-
SHA256: 84d042e0273bd2f0082dd9e7dda0246267791fd09607041a35485bfff92f38d9
|
25
|
-
Description-en: Interpreter of object-oriented scripting language Ruby (default version)
|
26
|
-
Ruby is the interpreted scripting language for quick and easy
|
27
|
-
object-oriented programming. It has many features to process text
|
28
|
-
files and to do system management tasks (as in perl). It is simple,
|
29
|
-
straight-forward, and extensible.
|
30
|
-
.
|
31
|
-
This package is a dependency package, which depends on Debian's default Ruby
|
32
|
-
version (currently v1.9.3).
|
33
|
-
Homepage: http://www.ruby-lang.org/
|
34
|
-
Description-md5: da2991b37e3991230d79ba70f9c01682
|
35
|
-
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
|
36
|
-
Origin: Ubuntu
|
37
|
-
Supported: 9m
|
38
|
-
Task: kubuntu-desktop, kubuntu-full, kubuntu-active, kubuntu-active-desktop, kubuntu-active-full, kubuntu-active, edubuntu-desktop-gnome, ubuntustudio-font-meta
|
39
|
-
EOS
|
40
|
-
expect(LinuxAdmin::Common).to receive(:run!)
|
41
|
-
.with(described_class::APT_CACHE_CMD, :params => %w(show ruby))
|
42
|
-
.and_return(double(:output => data))
|
43
|
-
metadata = described_class.info("ruby")
|
44
|
-
expect(metadata['package']).to eq('ruby')
|
45
|
-
expect(metadata['priority']).to eq('optional')
|
46
|
-
expect(metadata['section']).to eq('interpreters')
|
47
|
-
expect(metadata['architecture']).to eq('all')
|
48
|
-
expect(metadata['version']).to eq('4.9')
|
49
|
-
expect(metadata['origin']).to eq('Ubuntu')
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
data/spec/disk_spec.rb
DELETED
@@ -1,307 +0,0 @@
|
|
1
|
-
describe LinuxAdmin::Disk do
|
2
|
-
describe "#local" do
|
3
|
-
it "returns local disks" do
|
4
|
-
expect(LinuxAdmin::Common).to receive(:run!).with(
|
5
|
-
LinuxAdmin::Common.cmd(:lsblk),
|
6
|
-
:params => {:d => nil, :n => nil, :p => nil, :o => "NAME"}
|
7
|
-
).and_return(double("result", :output => "/dev/hda\n/dev/sda"))
|
8
|
-
disks = LinuxAdmin::Disk.local
|
9
|
-
paths = disks.collect { |disk| disk.path }
|
10
|
-
expect(paths).to include('/dev/hda')
|
11
|
-
expect(paths).to include('/dev/sda')
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#size" do
|
16
|
-
it "uses fdisk" do
|
17
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
18
|
-
expect(LinuxAdmin::Common).to receive(:run!)
|
19
|
-
.with(LinuxAdmin::Common.cmd(:fdisk),
|
20
|
-
:params => {"-l" => nil})
|
21
|
-
.and_return(double(:output => ""))
|
22
|
-
disk.size
|
23
|
-
end
|
24
|
-
|
25
|
-
it "returns disk size" do
|
26
|
-
fdisk = <<eos
|
27
|
-
Disk /dev/hda: 500.1 GB, 500107862016 bytes
|
28
|
-
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
|
29
|
-
Units = sectors of 1 * 512 = 512 bytes
|
30
|
-
Sector size (logical/physical): 512 bytes / 512 bytes
|
31
|
-
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
32
|
-
Disk identifier: 0x3ddb508b
|
33
|
-
|
34
|
-
Device Boot Start End Blocks Id System
|
35
|
-
1 1259MB 81.8GB 80.5GB primary ntfs
|
36
|
-
2 81.8GB 162GB 80.5GB primary ext4
|
37
|
-
3 162GB 163GB 1074MB logical linux-swap(v1)
|
38
|
-
eos
|
39
|
-
|
40
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
41
|
-
allow(LinuxAdmin::Common).to receive(:run!).and_return(double(:output => fdisk))
|
42
|
-
expect(disk.size).to eq(500_107_862_016)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe "#partitions" do
|
47
|
-
it "uses parted" do
|
48
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
49
|
-
expect(LinuxAdmin::Common).to receive(:run)
|
50
|
-
.with(LinuxAdmin::Common.cmd(:parted),
|
51
|
-
:params => {nil => %w(--script /dev/hda print)}).and_return(double(:output => ""))
|
52
|
-
disk.partitions
|
53
|
-
end
|
54
|
-
|
55
|
-
it "returns [] on non-zero parted rc" do
|
56
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
57
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => "", :exit_status => 1))
|
58
|
-
expect(disk.partitions).to eq([])
|
59
|
-
end
|
60
|
-
|
61
|
-
context "with nvme parted output" do
|
62
|
-
let(:parted_output) do
|
63
|
-
<<~PARTED
|
64
|
-
Model: NVMe Device (nvme)
|
65
|
-
Disk /dev/nvme0n1: 512GB
|
66
|
-
Sector size (logical/physical): 512B/512B
|
67
|
-
Partition Table: msdos
|
68
|
-
Disk Flags:
|
69
|
-
|
70
|
-
Number Start End Size Type File system Flags
|
71
|
-
1 1049kB 1075MB 1074MB primary ext4 boot
|
72
|
-
2 1075MB 17.7GB 16.6GB primary
|
73
|
-
3 17.7GB 512GB 494GB primary
|
74
|
-
|
75
|
-
PARTED
|
76
|
-
end
|
77
|
-
|
78
|
-
it "sets partitons" do
|
79
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => parted_output))
|
80
|
-
disk = LinuxAdmin::Disk.new(:path => "/dev/nvme0n1")
|
81
|
-
partitions = disk.partitions
|
82
|
-
|
83
|
-
expect(disk.model).to eq("nvme")
|
84
|
-
|
85
|
-
expect(partitions[0].id).to eq(1)
|
86
|
-
expect(partitions[0].disk).to eq(disk)
|
87
|
-
expect(partitions[0].size).to eq(1_126_170_624.0)
|
88
|
-
expect(partitions[0].start_sector).to eq(1_074_176.0)
|
89
|
-
expect(partitions[0].end_sector).to eq(1_127_219_200.0)
|
90
|
-
expect(partitions[0].partition_type).to eq('primary')
|
91
|
-
expect(partitions[0].fs_type).to eq('ext4')
|
92
|
-
expect(partitions[0].path).to eq('/dev/nvme0n1p1')
|
93
|
-
expect(partitions[1].id).to eq(2)
|
94
|
-
expect(partitions[1].disk).to eq(disk)
|
95
|
-
expect(partitions[1].size).to eq(17_824_114_278.4)
|
96
|
-
expect(partitions[1].start_sector).to eq(1_127_219_200.0)
|
97
|
-
expect(partitions[1].end_sector).to eq(19_005_230_284.8)
|
98
|
-
expect(partitions[1].partition_type).to eq('primary')
|
99
|
-
expect(partitions[1].path).to eq('/dev/nvme0n1p2')
|
100
|
-
expect(partitions[2].id).to eq(3)
|
101
|
-
expect(partitions[2].disk).to eq(disk)
|
102
|
-
expect(partitions[2].size).to eq(530_428_461_056.0)
|
103
|
-
expect(partitions[2].start_sector).to eq(19_005_230_284.8)
|
104
|
-
expect(partitions[2].end_sector).to eq(549_755_813_888.0)
|
105
|
-
expect(partitions[2].partition_type).to eq('primary')
|
106
|
-
expect(partitions[2].path).to eq('/dev/nvme0n1p3')
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
context "with scsi parted output" do
|
111
|
-
let(:parted_output) do
|
112
|
-
<<~PARTED
|
113
|
-
Model: ATA TOSHIBA MK5061GS (scsi)
|
114
|
-
Disk /dev/sda: 500GB
|
115
|
-
Sector size (logical/physical): 512B/512B
|
116
|
-
Partition Table: msdos
|
117
|
-
Disk Flags:
|
118
|
-
|
119
|
-
Number Start End Size Type File system Flags
|
120
|
-
1 1259kB 81.8GB 80.5GB primary ntfs
|
121
|
-
2 81.8GB 162GB 80.5GB primary ext4
|
122
|
-
3 162GB 163GB 1074MB logical linux-swap(v1)
|
123
|
-
|
124
|
-
PARTED
|
125
|
-
end
|
126
|
-
|
127
|
-
it "sets partitons" do
|
128
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => parted_output))
|
129
|
-
disk = LinuxAdmin::Disk.new(:path => "/dev/sda")
|
130
|
-
partitions = disk.partitions
|
131
|
-
|
132
|
-
expect(disk.model).to eq("scsi")
|
133
|
-
|
134
|
-
expect(partitions[0].id).to eq(1)
|
135
|
-
expect(partitions[0].disk).to eq(disk)
|
136
|
-
expect(partitions[0].size).to eq(86_436_216_832.0)
|
137
|
-
expect(partitions[0].start_sector).to eq(1_289_216.0)
|
138
|
-
expect(partitions[0].end_sector).to eq(87_832_081_203.2)
|
139
|
-
expect(partitions[0].partition_type).to eq('primary')
|
140
|
-
expect(partitions[0].fs_type).to eq('ntfs')
|
141
|
-
expect(partitions[0].path).to eq('/dev/sda1')
|
142
|
-
expect(partitions[1].id).to eq(2)
|
143
|
-
expect(partitions[1].disk).to eq(disk)
|
144
|
-
expect(partitions[1].size).to eq(86_436_216_832.0)
|
145
|
-
expect(partitions[1].start_sector).to eq(87_832_081_203.2)
|
146
|
-
expect(partitions[1].end_sector).to eq(173_946_175_488)
|
147
|
-
expect(partitions[1].partition_type).to eq('primary')
|
148
|
-
expect(partitions[1].fs_type).to eq('ext4')
|
149
|
-
expect(partitions[1].path).to eq('/dev/sda2')
|
150
|
-
expect(partitions[2].id).to eq(3)
|
151
|
-
expect(partitions[2].disk).to eq(disk)
|
152
|
-
expect(partitions[2].size).to eq(1_126_170_624)
|
153
|
-
expect(partitions[2].start_sector).to eq(173_946_175_488)
|
154
|
-
expect(partitions[2].end_sector).to eq(175_019_917_312)
|
155
|
-
expect(partitions[2].partition_type).to eq('logical')
|
156
|
-
expect(partitions[2].fs_type).to eq('linux-swap(v1)')
|
157
|
-
expect(partitions[2].path).to eq('/dev/sda3')
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
describe "#create_partitions" do
|
163
|
-
before(:each) do
|
164
|
-
@disk = LinuxAdmin::Disk.new(:path => '/dev/hda')
|
165
|
-
end
|
166
|
-
|
167
|
-
it "dispatches to create_partition" do
|
168
|
-
expect(@disk).to receive(:create_partition).with("primary", "0%", "50%")
|
169
|
-
@disk.create_partitions "primary", :start => "0%", :end => "50%"
|
170
|
-
end
|
171
|
-
|
172
|
-
context "multiple partitions specified" do
|
173
|
-
it "calls create_partition for each partition" do
|
174
|
-
expect(@disk).to receive(:create_partition).with("primary", "0%", "49%")
|
175
|
-
expect(@disk).to receive(:create_partition).with("primary", "50%", "100%")
|
176
|
-
@disk.create_partitions("primary", {:start => "0%", :end => "49%"},
|
177
|
-
{:start => "50%", :end => "100%"})
|
178
|
-
end
|
179
|
-
|
180
|
-
context "partitions overlap" do
|
181
|
-
it "raises argument error" do
|
182
|
-
expect{
|
183
|
-
@disk.create_partitions("primary", {:start => "0%", :end => "50%"},
|
184
|
-
{:start => "49%", :end => "100%"})
|
185
|
-
}.to raise_error(ArgumentError)
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
describe "#create_partition" do
|
192
|
-
before(:each) do
|
193
|
-
# test disk w/ existing partition
|
194
|
-
@disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
195
|
-
@disk.instance_variable_set(:@partitions,
|
196
|
-
[LinuxAdmin::Partition.new(:id => 1,
|
197
|
-
:end_sector => 1024)])
|
198
|
-
allow(@disk).to receive_messages(:has_partition_table? => true)
|
199
|
-
end
|
200
|
-
|
201
|
-
it "uses parted" do
|
202
|
-
params = ['--script', '/dev/hda', 'mkpart', '-a', 'opt', 'primary', 1024, 2048]
|
203
|
-
expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:parted), :params => {nil => params})
|
204
|
-
@disk.create_partition 'primary', 1024
|
205
|
-
end
|
206
|
-
|
207
|
-
it "accepts start/end params" do
|
208
|
-
params = ['--script', '/dev/hda', 'mkpart', '-a', 'opt', 'primary', "0%", "50%"]
|
209
|
-
expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:parted), :params => {nil => params})
|
210
|
-
@disk.create_partition 'primary', "0%", "50%"
|
211
|
-
end
|
212
|
-
|
213
|
-
context "missing params" do
|
214
|
-
it "raises ArgumentError" do
|
215
|
-
expect{
|
216
|
-
@disk.create_partition 'primary'
|
217
|
-
}.to raise_error(ArgumentError)
|
218
|
-
|
219
|
-
expect{
|
220
|
-
@disk.create_partition 'primary', '0%', '50%', 100
|
221
|
-
}.to raise_error(ArgumentError)
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
it "returns partition" do
|
226
|
-
expect(LinuxAdmin::Common).to receive(:run!) # stub out call to parted
|
227
|
-
partition = @disk.create_partition 'primary', 1024
|
228
|
-
expect(partition).to be_an_instance_of(LinuxAdmin::Partition)
|
229
|
-
end
|
230
|
-
|
231
|
-
it "increments partition id" do
|
232
|
-
expect(LinuxAdmin::Common).to receive(:run!) # stub out call to parted
|
233
|
-
partition = @disk.create_partition 'primary', 1024
|
234
|
-
expect(partition.id).to eq(2)
|
235
|
-
end
|
236
|
-
|
237
|
-
it "sets partition start to first unused sector on disk" do
|
238
|
-
expect(LinuxAdmin::Common).to receive(:run!) # stub out call to parted
|
239
|
-
partition = @disk.create_partition 'primary', 1024
|
240
|
-
expect(partition.start_sector).to eq(1024)
|
241
|
-
end
|
242
|
-
|
243
|
-
it "stores new partition locally" do
|
244
|
-
expect(LinuxAdmin::Common).to receive(:run!) # stub out call to parted
|
245
|
-
expect {
|
246
|
-
@disk.create_partition 'primary', 1024
|
247
|
-
}.to change{@disk.partitions.size}.by(1)
|
248
|
-
end
|
249
|
-
|
250
|
-
it "creates partition table if missing" do
|
251
|
-
allow(@disk).to receive_messages(:has_partition_table? => false)
|
252
|
-
expect(@disk).to receive(:create_partition_table)
|
253
|
-
expect(LinuxAdmin::Common).to receive(:run!)
|
254
|
-
@disk.create_partition 'primary', 1024
|
255
|
-
end
|
256
|
-
end
|
257
|
-
|
258
|
-
describe "#has_partition_table?" do
|
259
|
-
it "positive case" do
|
260
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
261
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => "", :exit_status => 0))
|
262
|
-
expect(disk).to have_partition_table
|
263
|
-
end
|
264
|
-
|
265
|
-
it "negative case" do
|
266
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
267
|
-
output = "\e[?1034h\r\rError: /dev/sdb: unrecognised disk label\n"
|
268
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => output, :exit_status => 1))
|
269
|
-
expect(disk).not_to have_partition_table
|
270
|
-
end
|
271
|
-
end
|
272
|
-
|
273
|
-
it "#create_partition_table" do
|
274
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
275
|
-
options = {:params => {nil => %w(--script /dev/hda mklabel msdos)}}
|
276
|
-
expect(LinuxAdmin::Common).to receive(:run!).with(LinuxAdmin::Common.cmd(:parted), options)
|
277
|
-
disk.create_partition_table
|
278
|
-
end
|
279
|
-
|
280
|
-
describe "#clear!" do
|
281
|
-
it "clears partitions" do
|
282
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
283
|
-
expect(LinuxAdmin::Common).to receive(:run).and_return(double(:output => "")) # stub out call to cmds
|
284
|
-
disk.partitions << LinuxAdmin::Partition.new
|
285
|
-
|
286
|
-
expect(LinuxAdmin::Common).to receive(:run!)
|
287
|
-
disk.clear!
|
288
|
-
expect(disk.partitions).to be_empty
|
289
|
-
end
|
290
|
-
|
291
|
-
it "uses dd to clear partition table" do
|
292
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
293
|
-
expect(LinuxAdmin::Common).to receive(:run!)
|
294
|
-
.with(LinuxAdmin::Common.cmd(:dd),
|
295
|
-
:params => {'if=' => '/dev/zero', 'of=' => '/dev/hda',
|
296
|
-
'bs=' => 512, 'count=' => 1})
|
297
|
-
disk.clear!
|
298
|
-
end
|
299
|
-
|
300
|
-
it "returns self" do
|
301
|
-
disk = LinuxAdmin::Disk.new :path => '/dev/hda'
|
302
|
-
allow(LinuxAdmin::Common).to receive(:run!) # stub out call to dd
|
303
|
-
expect(disk.clear!).to eq(disk)
|
304
|
-
end
|
305
|
-
end
|
306
|
-
|
307
|
-
end
|