linux_admin 0.1.3 → 0.2.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.
@@ -18,13 +18,13 @@ describe LinuxAdmin::RegistrationSystem do
18
18
  end
19
19
 
20
20
  it "should memoize results" do
21
- described_class.should_receive(:registration_type_uncached).once.and_call_original
21
+ described_class.should_receive(:registration_type_uncached).once.and_return("anything_non_nil")
22
22
  described_class.registration_type
23
23
  described_class.registration_type
24
24
  end
25
25
 
26
26
  it "with reload should refresh results" do
27
- described_class.should_receive(:registration_type_uncached).twice.and_call_original
27
+ described_class.should_receive(:registration_type_uncached).twice.and_return("anything_non_nil")
28
28
  described_class.registration_type
29
29
  described_class.registration_type(true)
30
30
  end
data/spec/rhn_spec.rb CHANGED
@@ -24,7 +24,7 @@ describe LinuxAdmin::Rhn do
24
24
  end
25
25
 
26
26
  it "with username and password" do
27
- described_class.any_instance.should_receive(:run).once.with("rhnreg_ks", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--proxy="=>"1.2.3.4", "--proxyUser="=>"ProxyUser", "--proxyPassword="=>"ProxyPass", "--serverUrl="=>"192.168.1.1"}}).and_return(0)
27
+ described_class.any_instance.should_receive(:run!).once.with("rhnreg_ks", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--proxy="=>"1.2.3.4", "--proxyUser="=>"ProxyUser", "--proxyPassword="=>"ProxyPass", "--serverUrl="=>"192.168.1.1"}})
28
28
  described_class.new.register(
29
29
  :username => "SomeUser",
30
30
  :password => "SomePass",
@@ -36,7 +36,7 @@ describe LinuxAdmin::Rhn do
36
36
  end
37
37
 
38
38
  it "with activation key" do
39
- described_class.any_instance.should_receive(:run).once.with("rhnreg_ks", {:params=>{"--activationkey="=>"123abc", "--proxy="=>"1.2.3.4", "--proxyUser="=>"ProxyUser", "--proxyPassword="=>"ProxyPass", "--serverUrl="=>"192.168.1.1"}}).and_return(0)
39
+ described_class.any_instance.should_receive(:run!).once.with("rhnreg_ks", {:params=>{"--activationkey="=>"123abc", "--proxy="=>"1.2.3.4", "--proxyUser="=>"ProxyUser", "--proxyPassword="=>"ProxyPass", "--serverUrl="=>"192.168.1.1"}})
40
40
  described_class.new.register(
41
41
  :activationkey => "123abc",
42
42
  :proxy_address => "1.2.3.4",
@@ -53,7 +53,7 @@ describe LinuxAdmin::Rhn do
53
53
  end
54
54
 
55
55
  it "with pools" do
56
- described_class.any_instance.should_receive(:run).once.with("rhn-channel -a", {:params=>[["--user=", "SomeUser"], ["--password=", "SomePass"], ["--channel=", 123], ["--channel=", 456]]})
56
+ described_class.any_instance.should_receive(:run!).once.with("rhn-channel -a", {:params=>[["--user=", "SomeUser"], ["--password=", "SomePass"], ["--channel=", 123], ["--channel=", 456]]})
57
57
  described_class.new.subscribe({
58
58
  :username => "SomeUser",
59
59
  :password => "SomePass",
data/spec/rpm_spec.rb CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe LinuxAdmin::Rpm do
4
4
  it ".list_installed" do
5
- described_class.stub(:run => sample_output("rpm/cmd_output_for_list_installed"))
5
+ described_class.stub(:run! => double(:output => sample_output("rpm/cmd_output_for_list_installed")))
6
6
  expect(described_class.list_installed).to eq({
7
7
  "ruby193-rubygem-some_really_long_name" =>"1.0.7-1.el6",
8
8
  "fipscheck-lib" =>"1.2.0-7.el6",
data/spec/service_spec.rb CHANGED
@@ -13,15 +13,14 @@ describe LinuxAdmin::Service do
13
13
  it "checks service" do
14
14
  @service.should_receive(:run).
15
15
  with(@service.cmd(:service),
16
- :params => { nil => ['foo', 'status']},
17
- :return_exitstatus => true)
16
+ :params => { nil => ['foo', 'status']}).and_return(double(:exit_status => 0))
18
17
  @service.running?
19
18
  end
20
19
 
21
20
  context "service is running" do
22
21
  it "returns true" do
23
22
  @service = LinuxAdmin::Service.new :id => :foo
24
- @service.should_receive(:run).and_return(0)
23
+ @service.should_receive(:run).and_return(double(:exit_status => 0))
25
24
  @service.should be_running
26
25
  end
27
26
  end
@@ -29,7 +28,7 @@ describe LinuxAdmin::Service do
29
28
  context "service is not running" do
30
29
  it "returns false" do
31
30
  @service = LinuxAdmin::Service.new :id => :foo
32
- @service.should_receive(:run).and_return(1)
31
+ @service.should_receive(:run).and_return(double(:exit_status => 1))
33
32
  @service.should_not be_running
34
33
  end
35
34
  end
@@ -37,56 +36,56 @@ describe LinuxAdmin::Service do
37
36
 
38
37
  describe "#enable" do
39
38
  it "enables service" do
40
- @service.should_receive(:run).
39
+ @service.should_receive(:run!).
41
40
  with(@service.cmd(:systemctl),
42
41
  :params => { nil => [ 'enable', 'foo.service']})
43
42
  @service.enable
44
43
  end
45
44
 
46
45
  it "returns self" do
47
- @service.should_receive(:run) # stub out cmd invocation
46
+ @service.should_receive(:run!) # stub out cmd invocation
48
47
  @service.enable.should == @service
49
48
  end
50
49
  end
51
50
 
52
51
  describe "#disable" do
53
52
  it "disable service" do
54
- @service.should_receive(:run).
53
+ @service.should_receive(:run!).
55
54
  with(@service.cmd(:systemctl),
56
55
  :params => { nil => [ 'disable', 'foo.service']})
57
56
  @service.disable
58
57
  end
59
58
 
60
59
  it "returns self" do
61
- @service.should_receive(:run)
60
+ @service.should_receive(:run!)
62
61
  @service.disable.should == @service
63
62
  end
64
63
  end
65
64
 
66
65
  describe "#start" do
67
66
  it "starts service" do
68
- @service.should_receive(:run).
67
+ @service.should_receive(:run!).
69
68
  with(@service.cmd(:service),
70
69
  :params => { nil => [ 'foo', 'start']})
71
70
  @service.start
72
71
  end
73
72
 
74
73
  it "returns self" do
75
- @service.should_receive(:run)
74
+ @service.should_receive(:run!)
76
75
  @service.start.should == @service
77
76
  end
78
77
  end
79
78
 
80
79
  describe "#stop" do
81
80
  it "stops service" do
82
- @service.should_receive(:run).
81
+ @service.should_receive(:run!).
83
82
  with(@service.cmd(:service),
84
83
  :params => { nil => [ 'foo', 'stop']})
85
84
  @service.stop
86
85
  end
87
86
 
88
87
  it "returns self" do
89
- @service.should_receive(:run)
88
+ @service.should_receive(:run!)
90
89
  @service.stop.should == @service
91
90
  end
92
91
  end
@@ -95,14 +94,13 @@ describe LinuxAdmin::Service do
95
94
  it "stops service" do
96
95
  @service.should_receive(:run).
97
96
  with(@service.cmd(:service),
98
- :params => { nil => [ 'foo', 'restart']},
99
- :return_exitstatus => true).and_return(0)
97
+ :params => { nil => [ 'foo', 'restart']}).and_return(double(:exit_status => 0))
100
98
  @service.restart
101
99
  end
102
100
 
103
101
  context "service restart fails" do
104
102
  it "manually stops/starts service" do
105
- @service.should_receive(:run).and_return(1)
103
+ @service.should_receive(:run).and_return(double(:exit_status => 1))
106
104
  @service.should_receive(:stop)
107
105
  @service.should_receive(:start)
108
106
  @service.restart
@@ -110,7 +108,7 @@ describe LinuxAdmin::Service do
110
108
  end
111
109
 
112
110
  it "returns self" do
113
- @service.should_receive(:run).and_return(0)
111
+ @service.should_receive(:run).and_return(double(:exit_status => 0))
114
112
  @service.restart.should == @service
115
113
  end
116
114
  end
@@ -3,18 +3,18 @@ require 'spec_helper'
3
3
  describe LinuxAdmin::SubscriptionManager do
4
4
  context "#registered?" do
5
5
  it "system with subscription-manager commands" do
6
- described_class.any_instance.should_receive(:run).once.with("subscription-manager identity", {:return_exitstatus=>true}).and_return(0)
6
+ described_class.any_instance.should_receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 0))
7
7
  expect(described_class.new.registered?).to be_true
8
8
  end
9
9
 
10
10
  it "system without subscription-manager commands" do
11
- described_class.any_instance.should_receive(:run).once.with("subscription-manager identity", {:return_exitstatus=>true}).and_return(255)
11
+ described_class.any_instance.should_receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 255))
12
12
  expect(described_class.new.registered?).to be_false
13
13
  end
14
14
  end
15
15
 
16
16
  it "#refresh" do
17
- described_class.any_instance.should_receive(:run).once.with("subscription-manager refresh").and_return(0)
17
+ described_class.any_instance.should_receive(:run!).once.with("subscription-manager refresh")
18
18
  described_class.new.refresh
19
19
  end
20
20
 
@@ -24,7 +24,8 @@ describe LinuxAdmin::SubscriptionManager do
24
24
  end
25
25
 
26
26
  it "with username and password" do
27
- described_class.any_instance.should_receive(:run).once.with("subscription-manager register", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--org="=>"IT", "--proxy="=>"1.2.3.4", "--proxyuser="=>"ProxyUser", "--proxypassword="=>"ProxyPass", "--serverurl="=>"192.168.1.1"}}).and_return(0)
27
+ run_options = ["subscription-manager register", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--org="=>"IT", "--proxy="=>"1.2.3.4", "--proxyuser="=>"ProxyUser", "--proxypassword="=>"ProxyPass", "--serverurl="=>"192.168.1.1"}}]
28
+ described_class.any_instance.should_receive(:run!).once.with(*run_options)
28
29
  described_class.new.register(
29
30
  :username => "SomeUser",
30
31
  :password => "SomePass",
@@ -38,12 +39,12 @@ describe LinuxAdmin::SubscriptionManager do
38
39
  end
39
40
 
40
41
  it "#subscribe" do
41
- described_class.any_instance.should_receive(:run).once.with("subscription-manager attach", {:params=>[["--pool", 123], ["--pool", 456]]})
42
+ described_class.any_instance.should_receive(:run!).once.with("subscription-manager attach", {:params=>[["--pool", 123], ["--pool", 456]]})
42
43
  described_class.new.subscribe({:pools => [123, 456]})
43
44
  end
44
45
 
45
46
  it "#available_subscriptions" do
46
- described_class.any_instance.should_receive(:run).once.with("subscription-manager list --all --available", :return_output => true).and_return(sample_output("subscription_manager/output_list_all_available"))
47
+ described_class.any_instance.should_receive(:run!).once.with("subscription-manager list --all --available").and_return(double(:output => sample_output("subscription_manager/output_list_all_available")))
47
48
  expect(described_class.new.available_subscriptions).to eq({
48
49
  "82c042fca983889b10178893f29b06e3" => {
49
50
  :subscription_name => "Example Subscription",
@@ -92,8 +93,17 @@ describe LinuxAdmin::SubscriptionManager do
92
93
  })
93
94
  end
94
95
 
95
- it "#organizations" do
96
- described_class.any_instance.should_receive(:run).once.with("subscription-manager orgs", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--proxy="=>"1.2.3.4", "--proxyuser="=>"ProxyUser", "--proxypassword="=>"ProxyPass", "--serverurl="=>"192.168.1.1"}, :return_output => true}).and_return(sample_output("subscription_manager/output_orgs"))
97
- expect(described_class.new.organizations({:username=>"SomeUser", :password=>"SomePass", :proxy_address=>"1.2.3.4", :proxy_username=>"ProxyUser", :proxy_password=>"ProxyPass", :server_url=>"192.168.1.1"})).to eq({"SomeOrg"=>{:name=>"SomeOrg", :key=>"1234567"}})
96
+ context "#organizations" do
97
+ it "with valid credentials" do
98
+ run_options = ["subscription-manager orgs", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--proxy="=>"1.2.3.4", "--proxyuser="=>"ProxyUser", "--proxypassword="=>"ProxyPass", "--serverurl="=>"192.168.1.1"}}]
99
+ described_class.any_instance.should_receive(:run!).once.with(*run_options).and_return(double(:output => sample_output("subscription_manager/output_orgs")))
100
+ expect(described_class.new.organizations({:username=>"SomeUser", :password=>"SomePass", :proxy_address=>"1.2.3.4", :proxy_username=>"ProxyUser", :proxy_password=>"ProxyPass", :server_url=>"192.168.1.1"})).to eq({"SomeOrg"=>{:name=>"SomeOrg", :key=>"1234567"}})
101
+ end
102
+
103
+ it "with invalid credentials" do
104
+ run_options = ["subscription-manager orgs", {:params=>{"--username="=>"BadUser", "--password="=>"BadPass"}}]
105
+ described_class.any_instance.should_receive(:run).once.with(*run_options).and_return(CommandResult.new("", "Invalid username or password. To create a login, please visit https://www.redhat.com/wapps/ugc/register.html", 255))
106
+ expect { described_class.new.organizations({:username=>"BadUser", :password=>"BadPass"}) }.to raise_error(LinuxAdmin::CredentialError)
107
+ end
98
108
  end
99
109
  end
data/spec/system_spec.rb CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe LinuxAdmin::System do
4
4
  describe "#reboot!" do
5
5
  it "reboots the system" do
6
- LinuxAdmin::System.should_receive(:run).
6
+ LinuxAdmin::System.should_receive(:run!).
7
7
  with(LinuxAdmin::System.cmd(:shutdown),
8
8
  :params => { '-r' => 'now'})
9
9
  LinuxAdmin::System.reboot!
@@ -12,7 +12,7 @@ describe LinuxAdmin::System do
12
12
 
13
13
  describe "#shutdown!" do
14
14
  it "shuts down the system" do
15
- LinuxAdmin::System.should_receive(:run).
15
+ LinuxAdmin::System.should_receive(:run!).
16
16
  with(LinuxAdmin::System.cmd(:shutdown),
17
17
  :params => { '-h' => '0'})
18
18
  LinuxAdmin::System.shutdown!
@@ -20,7 +20,7 @@ eos
20
20
  it "uses lvextend" do
21
21
  lv = LinuxAdmin::LogicalVolume.new :name => 'lv'
22
22
  vg = described_class.new :name => 'vg'
23
- vg.should_receive(:run).
23
+ vg.should_receive(:run!).
24
24
  with(vg.cmd(:lvextend),
25
25
  :params => ['lv', 'vg'])
26
26
  vg.attach_to(lv)
@@ -29,7 +29,7 @@ eos
29
29
  it "returns self" do
30
30
  lv = LinuxAdmin::LogicalVolume.new :name => 'lv'
31
31
  vg = described_class.new :name => 'vg'
32
- vg.stub(:run)
32
+ vg.stub(:run!)
33
33
  vg.attach_to(lv).should == vg
34
34
  end
35
35
  end
@@ -38,7 +38,7 @@ eos
38
38
  it "uses vgextend" do
39
39
  vg = described_class.new :name => 'vg'
40
40
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
41
- vg.should_receive(:run).
41
+ vg.should_receive(:run!).
42
42
  with(vg.cmd(:vgextend),
43
43
  :params => ['vg', '/dev/hda'])
44
44
  vg.extend_with(pv)
@@ -47,7 +47,7 @@ eos
47
47
  it "assigns volume group to physical volume" do
48
48
  vg = described_class.new :name => 'vg'
49
49
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
50
- vg.stub(:run)
50
+ vg.stub(:run!)
51
51
  vg.extend_with(pv)
52
52
  pv.volume_group.should == vg
53
53
  end
@@ -55,7 +55,7 @@ eos
55
55
  it "returns self" do
56
56
  vg = described_class.new :name => 'vg'
57
57
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
58
- vg.stub(:run)
58
+ vg.stub(:run!)
59
59
  vg.extend_with(pv).should == vg
60
60
  end
61
61
  end
@@ -67,21 +67,21 @@ eos
67
67
 
68
68
  it "uses vgcreate" do
69
69
  described_class.instance_variable_set(:@vgs, [])
70
- described_class.should_receive(:run).
70
+ described_class.should_receive(:run!).
71
71
  with(LinuxAdmin.cmd(:vgcreate),
72
72
  :params => ['vg', '/dev/hda'])
73
73
  described_class.create 'vg', @pv
74
74
  end
75
75
 
76
76
  it "returns new volume group" do
77
- described_class.stub(:run => "")
77
+ described_class.stub(:run! => double(:output => ""))
78
78
  vg = described_class.create 'vg', @pv
79
79
  vg.should be_an_instance_of(described_class)
80
80
  vg.name.should == 'vg'
81
81
  end
82
82
 
83
83
  it "adds volume group to local registry" do
84
- described_class.stub(:run => "")
84
+ described_class.stub(:run! => double(:output => ""))
85
85
  vg = described_class.create 'vg', @pv
86
86
  described_class.scan.should include(vg)
87
87
  end
@@ -89,16 +89,15 @@ eos
89
89
 
90
90
  describe "#scan" do
91
91
  it "uses vgdisplay" do
92
- described_class.should_receive(:run).
92
+ described_class.should_receive(:run!).
93
93
  with(LinuxAdmin.cmd(:vgdisplay),
94
- :return_output => true,
95
94
  :params => { '-c' => nil}).
96
- and_return(@groups)
95
+ and_return(double(:output => @groups))
97
96
  described_class.scan
98
97
  end
99
98
 
100
99
  it "returns local volume groups" do
101
- described_class.should_receive(:run).and_return(@groups)
100
+ described_class.should_receive(:run!).and_return(double(:output => @groups))
102
101
  vgs = described_class.scan
103
102
 
104
103
  vgs[0].should be_an_instance_of(described_class)
data/spec/yum_spec.rb CHANGED
@@ -7,20 +7,20 @@ describe LinuxAdmin::Yum do
7
7
 
8
8
  context ".create_repo" do
9
9
  it "default arguments" do
10
- described_class.should_receive(:run).once.with("yum createrepo", {:params=>{nil=>"some/path", "--database"=>nil, "--unique-md-filenames"=>nil}}).and_return true
11
- expect(described_class.create_repo("some/path")).to be_true
10
+ described_class.should_receive(:run!).once.with("yum createrepo", {:params=>{nil=>"some/path", "--database"=>nil, "--unique-md-filenames"=>nil}})
11
+ described_class.create_repo("some/path")
12
12
  end
13
13
 
14
14
  it "bare create" do
15
- described_class.should_receive(:run).once.with("yum createrepo", {:params=>{nil=>"some/path"}}).and_return true
16
- expect(described_class.create_repo("some/path", :database => false, :unique_file_names => false)).to be_true
15
+ described_class.should_receive(:run!).once.with("yum createrepo", {:params=>{nil=>"some/path"}})
16
+ described_class.create_repo("some/path", :database => false, :unique_file_names => false)
17
17
  end
18
18
  end
19
19
 
20
20
  context ".download_packages" do
21
21
  it "with valid input" do
22
- described_class.should_receive(:run).once.with("yum repotrack", {:params=>{"-p"=>"some/path", nil=>"pkg_a pkg_b"}}).and_return true
23
- expect(described_class.download_packages("some/path", "pkg_a pkg_b")).to be_true
22
+ described_class.should_receive(:run!).once.with("yum repotrack", {:params=>{"-p"=>"some/path", nil=>"pkg_a pkg_b"}})
23
+ described_class.download_packages("some/path", "pkg_a pkg_b")
24
24
  end
25
25
 
26
26
  it "without mirror type" do
@@ -68,39 +68,39 @@ describe LinuxAdmin::Yum do
68
68
 
69
69
  context ".updates_available?" do
70
70
  it "check updates for a specific package" do
71
- described_class.should_receive(:run).once.with("yum check-update", {:params=>{nil=>["abc"]}, :return_exitstatus=>true}).and_return(100)
71
+ described_class.should_receive(:run).once.with("yum check-update", {:params=>{nil=>["abc"]}}).and_return(double(:exit_status => 100))
72
72
  expect(described_class.updates_available?("abc")).to be_true
73
73
  end
74
74
 
75
75
  it "updates are available" do
76
- described_class.stub(:run => 100)
76
+ described_class.stub(:run => double(:exit_status => 100))
77
77
  expect(described_class.updates_available?).to be_true
78
78
  end
79
79
 
80
80
  it "updates not available" do
81
- described_class.stub(:run => 0)
81
+ described_class.stub(:run => double(:exit_status => 0))
82
82
  expect(described_class.updates_available?).to be_false
83
83
  end
84
84
 
85
85
  it "other exit code" do
86
- described_class.stub(:run => 255)
86
+ described_class.stub(:run => double(:exit_status => 255))
87
87
  expect { described_class.updates_available? }.to raise_error
88
88
  end
89
89
 
90
90
  it "other error" do
91
91
  described_class.stub(:run).and_raise(RuntimeError)
92
- expect { described_class.updates_available? }.to raise_error
92
+ expect { described_class.updates_available? }.to raise_error(RuntimeError)
93
93
  end
94
94
  end
95
95
 
96
96
  context ".update" do
97
97
  it "no arguments" do
98
- described_class.should_receive(:run).once.with("yum -y update", {:params=>nil}).and_return(0)
98
+ described_class.should_receive(:run!).once.with("yum -y update", {:params=>nil})
99
99
  described_class.update
100
100
  end
101
101
 
102
102
  it "with arguments" do
103
- described_class.should_receive(:run).once.with("yum -y update", {:params=>{nil=>["1 2", "3"]}}).and_return(0)
103
+ described_class.should_receive(:run!).once.with("yum -y update", {:params=>{nil=>["1 2", "3"]}})
104
104
  described_class.update("1 2", "3")
105
105
  end
106
106
  end
@@ -111,7 +111,7 @@ describe LinuxAdmin::Yum do
111
111
  end
112
112
 
113
113
  it "with packages" do
114
- described_class.should_receive(:run).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl"]}, :return_output=>true}).and_return(sample_output("yum/output_repoquery"))
114
+ described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl"]}}).and_return(double(:output => sample_output("yum/output_repoquery")))
115
115
  expect(described_class.version_available("curl")).to eq({
116
116
  "curl" => "7.19.7",
117
117
  "subscription-manager" => "1.1.23.1",
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: 0.1.3
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-08-15 00:00:00.000000000 Z
15
+ date: 2013-08-16 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
@@ -168,6 +168,7 @@ files:
168
168
  - Rakefile
169
169
  - examples/subscription_manager_hosted.rb
170
170
  - lib/linux_admin.rb
171
+ - lib/linux_admin/command_result.rb
171
172
  - lib/linux_admin/common.rb
172
173
  - lib/linux_admin/disk.rb
173
174
  - lib/linux_admin/distro.rb