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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5681d25983ab26caad539f8b7978090804ba734a45ed80fdf2107730d4c2cc42
|
4
|
+
data.tar.gz: 4e3879832bbd3e426d5440fa42d4eade9dbf0120d03aa410450cd53f64092da9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 873010562e96308eb395441c06eda128e44cdf900e829b91e76d4927313f2971f3d55be28d96ef5af4c083f646993a8d06b6542fa01e5b423ec61f70f6a2c646
|
7
|
+
data.tar.gz: dfa21c10b2a0490606c3c28b29e6dc813dba9d3d3d92ac3d845f95b41fb39d927daf08491b1c058af65b3aa097894e50be7e0b62be22d86839acd7e34c81de3c
|
data/lib/linux_admin.rb
CHANGED
@@ -33,18 +33,10 @@ require 'linux_admin/ip_address'
|
|
33
33
|
require 'linux_admin/dns'
|
34
34
|
require 'linux_admin/network_interface'
|
35
35
|
require 'linux_admin/chrony'
|
36
|
-
require 'forwardable'
|
37
36
|
|
38
37
|
module LinuxAdmin
|
39
38
|
class << self
|
40
|
-
extend Forwardable
|
41
|
-
extend Gem::Deprecate
|
42
39
|
attr_writer :logger
|
43
|
-
|
44
|
-
def_delegators Common, :run
|
45
|
-
def_delegators Common, :run!
|
46
|
-
deprecate :run, "AwesomeSpawn.run", 2017, 6
|
47
|
-
deprecate :run!, "AwesomeSpawn.run!", 2017, 6
|
48
40
|
end
|
49
41
|
|
50
42
|
def self.logger
|
data/lib/linux_admin/disk.rb
CHANGED
@@ -8,16 +8,23 @@ module LinuxAdmin
|
|
8
8
|
|
9
9
|
attr_accessor :path, :model
|
10
10
|
|
11
|
+
# Collect local disk information via the lsblk command. Only disks with a
|
12
|
+
# size greater than zero are returned.
|
13
|
+
#
|
11
14
|
def self.local
|
12
|
-
result = Common.run!(Common.cmd("lsblk"), :params => {:d => nil, :n => nil, :p => nil, :o => "NAME"})
|
13
|
-
result.output.split.collect do |
|
14
|
-
|
15
|
-
|
15
|
+
result = Common.run!(Common.cmd("lsblk"), :params => {:b => nil, :d => nil, :n => nil, :p => nil, :o => "NAME,SIZE,TYPE,MODEL"})
|
16
|
+
result.output.split("\n").collect do |string|
|
17
|
+
path, size, type, *model = string.split
|
18
|
+
if type.casecmp?('disk') && size.to_i > 0
|
19
|
+
self.new(:path => path, :size => size.to_i, :model => model.join(' '))
|
20
|
+
end
|
21
|
+
end.compact
|
16
22
|
end
|
17
23
|
|
18
24
|
def initialize(args = {})
|
19
25
|
@path = args[:path]
|
20
|
-
@model = "unknown"
|
26
|
+
@model = args[:model] || "unknown"
|
27
|
+
@size = args[:size]
|
21
28
|
end
|
22
29
|
|
23
30
|
def size
|
@@ -3,6 +3,7 @@ module LinuxAdmin
|
|
3
3
|
include Logging
|
4
4
|
|
5
5
|
def self.registration_type(reload = false)
|
6
|
+
@registration_type ||= nil
|
6
7
|
return @registration_type if @registration_type && !reload
|
7
8
|
@registration_type = registration_type_uncached
|
8
9
|
end
|
@@ -23,10 +24,13 @@ module LinuxAdmin
|
|
23
24
|
|
24
25
|
private
|
25
26
|
|
27
|
+
def self.respond_to_missing?(method_name, _include_private = false)
|
28
|
+
white_list_methods.include?(method_name)
|
29
|
+
end
|
30
|
+
private_class_method :respond_to_missing?
|
31
|
+
|
26
32
|
def self.registration_type_uncached
|
27
|
-
if
|
28
|
-
Rhn
|
29
|
-
elsif SubscriptionManager.new.registered?
|
33
|
+
if SubscriptionManager.new.registered?
|
30
34
|
SubscriptionManager
|
31
35
|
else
|
32
36
|
self
|
@@ -36,7 +40,7 @@ module LinuxAdmin
|
|
36
40
|
|
37
41
|
def self.white_list_methods
|
38
42
|
@white_list_methods ||= begin
|
39
|
-
all_methods = RegistrationSystem.instance_methods(false) +
|
43
|
+
all_methods = RegistrationSystem.instance_methods(false) + SubscriptionManager.instance_methods(false)
|
40
44
|
all_methods.uniq
|
41
45
|
end
|
42
46
|
end
|
data/lib/linux_admin/scap.rb
CHANGED
@@ -14,8 +14,12 @@ module LinuxAdmin
|
|
14
14
|
self
|
15
15
|
end
|
16
16
|
|
17
|
-
def start
|
18
|
-
|
17
|
+
def start(enable = false)
|
18
|
+
if enable
|
19
|
+
Common.run!(command_path, :params => ["enable", "--now", name])
|
20
|
+
else
|
21
|
+
Common.run!(command_path, :params => ["start", name])
|
22
|
+
end
|
19
23
|
self
|
20
24
|
end
|
21
25
|
|
data/lib/linux_admin/version.rb
CHANGED
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Dunne
|
@@ -21,10 +21,12 @@ authors:
|
|
21
21
|
- DuskyPrawn
|
22
22
|
- Petr Blaho
|
23
23
|
- Nick LaMuro
|
24
|
+
- Daniel Berger
|
25
|
+
- Satoe Imaishi
|
24
26
|
autorequire:
|
25
27
|
bindir: bin
|
26
28
|
cert_chain: []
|
27
|
-
date: 2019-
|
29
|
+
date: 2019-12-12 00:00:00.000000000 Z
|
28
30
|
dependencies:
|
29
31
|
- !ruby/object:Gem::Dependency
|
30
32
|
name: rake
|
@@ -213,6 +215,8 @@ email:
|
|
213
215
|
- 32548790+DuskyPrawn@users.noreply.github.com
|
214
216
|
- pblaho@redhat.com
|
215
217
|
- nicklamuro@gmail.com
|
218
|
+
- djberg96@gmail.com
|
219
|
+
- simaishi@redhat.com
|
216
220
|
executables: []
|
217
221
|
extensions: []
|
218
222
|
extra_rdoc_files: []
|
@@ -243,7 +247,6 @@ files:
|
|
243
247
|
- lib/linux_admin/partition.rb
|
244
248
|
- lib/linux_admin/physical_volume.rb
|
245
249
|
- lib/linux_admin/registration_system.rb
|
246
|
-
- lib/linux_admin/registration_system/rhn.rb
|
247
250
|
- lib/linux_admin/registration_system/subscription_manager.rb
|
248
251
|
- lib/linux_admin/rpm.rb
|
249
252
|
- lib/linux_admin/scap.rb
|
@@ -259,53 +262,6 @@ files:
|
|
259
262
|
- lib/linux_admin/volume_group.rb
|
260
263
|
- lib/linux_admin/yum.rb
|
261
264
|
- lib/linux_admin/yum/repo_file.rb
|
262
|
-
- spec/chrony_spec.rb
|
263
|
-
- spec/common_spec.rb
|
264
|
-
- spec/data/rhn/output_rhn-channel_list
|
265
|
-
- spec/data/rhn/output_rhn-channel_list_available
|
266
|
-
- spec/data/rhn/systemid
|
267
|
-
- spec/data/rhn/systemid.missing_system_id
|
268
|
-
- spec/data/rpm/cmd_output_for_list_installed
|
269
|
-
- spec/data/subscription_manager/output_list_all_available
|
270
|
-
- spec/data/subscription_manager/output_list_installed_not_subscribed
|
271
|
-
- spec/data/subscription_manager/output_list_installed_subscribed
|
272
|
-
- spec/data/subscription_manager/output_orgs
|
273
|
-
- spec/data/subscription_manager/output_repos
|
274
|
-
- spec/data/time_date/timedatectl_output
|
275
|
-
- spec/data/yum/first.repo
|
276
|
-
- spec/data/yum/output_repo_list
|
277
|
-
- spec/data/yum/output_repoquery_multiple
|
278
|
-
- spec/data/yum/output_repoquery_single
|
279
|
-
- spec/data/yum/second.repo
|
280
|
-
- spec/deb_spec.rb
|
281
|
-
- spec/disk_spec.rb
|
282
|
-
- spec/distro_spec.rb
|
283
|
-
- spec/dns_spec.rb
|
284
|
-
- spec/etc_issue_spec.rb
|
285
|
-
- spec/fstab_spec.rb
|
286
|
-
- spec/hardware_spec.rb
|
287
|
-
- spec/hosts_spec.rb
|
288
|
-
- spec/ip_address_spec.rb
|
289
|
-
- spec/logical_volume_spec.rb
|
290
|
-
- spec/mountable_spec.rb
|
291
|
-
- spec/network_interface/network_interface_rh_spec.rb
|
292
|
-
- spec/network_interface_spec.rb
|
293
|
-
- spec/partition_spec.rb
|
294
|
-
- spec/physical_volume_spec.rb
|
295
|
-
- spec/registration_system_spec.rb
|
296
|
-
- spec/rhn_spec.rb
|
297
|
-
- spec/rpm_spec.rb
|
298
|
-
- spec/scap_spec.rb
|
299
|
-
- spec/service/sys_v_init_service_spec.rb
|
300
|
-
- spec/service/systemd_service_spec.rb
|
301
|
-
- spec/service_spec.rb
|
302
|
-
- spec/spec_helper.rb
|
303
|
-
- spec/ssh_spec.rb
|
304
|
-
- spec/subscription_manager_spec.rb
|
305
|
-
- spec/system_spec.rb
|
306
|
-
- spec/time_date_spec.rb
|
307
|
-
- spec/volume_group_spec.rb
|
308
|
-
- spec/yum_spec.rb
|
309
265
|
homepage: http://github.com/ManageIQ/linux_admin
|
310
266
|
licenses:
|
311
267
|
- MIT
|
@@ -325,56 +281,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
325
281
|
- !ruby/object:Gem::Version
|
326
282
|
version: '0'
|
327
283
|
requirements: []
|
328
|
-
|
329
|
-
rubygems_version: 2.7.6.2
|
284
|
+
rubygems_version: 3.0.6
|
330
285
|
signing_key:
|
331
286
|
specification_version: 4
|
332
287
|
summary: LinuxAdmin is a module to simplify management of linux systems.
|
333
|
-
test_files:
|
334
|
-
- spec/chrony_spec.rb
|
335
|
-
- spec/common_spec.rb
|
336
|
-
- spec/data/rhn/output_rhn-channel_list
|
337
|
-
- spec/data/rhn/output_rhn-channel_list_available
|
338
|
-
- spec/data/rhn/systemid
|
339
|
-
- spec/data/rhn/systemid.missing_system_id
|
340
|
-
- spec/data/rpm/cmd_output_for_list_installed
|
341
|
-
- spec/data/subscription_manager/output_list_all_available
|
342
|
-
- spec/data/subscription_manager/output_list_installed_not_subscribed
|
343
|
-
- spec/data/subscription_manager/output_list_installed_subscribed
|
344
|
-
- spec/data/subscription_manager/output_orgs
|
345
|
-
- spec/data/subscription_manager/output_repos
|
346
|
-
- spec/data/time_date/timedatectl_output
|
347
|
-
- spec/data/yum/first.repo
|
348
|
-
- spec/data/yum/output_repo_list
|
349
|
-
- spec/data/yum/output_repoquery_multiple
|
350
|
-
- spec/data/yum/output_repoquery_single
|
351
|
-
- spec/data/yum/second.repo
|
352
|
-
- spec/deb_spec.rb
|
353
|
-
- spec/disk_spec.rb
|
354
|
-
- spec/distro_spec.rb
|
355
|
-
- spec/dns_spec.rb
|
356
|
-
- spec/etc_issue_spec.rb
|
357
|
-
- spec/fstab_spec.rb
|
358
|
-
- spec/hardware_spec.rb
|
359
|
-
- spec/hosts_spec.rb
|
360
|
-
- spec/ip_address_spec.rb
|
361
|
-
- spec/logical_volume_spec.rb
|
362
|
-
- spec/mountable_spec.rb
|
363
|
-
- spec/network_interface/network_interface_rh_spec.rb
|
364
|
-
- spec/network_interface_spec.rb
|
365
|
-
- spec/partition_spec.rb
|
366
|
-
- spec/physical_volume_spec.rb
|
367
|
-
- spec/registration_system_spec.rb
|
368
|
-
- spec/rhn_spec.rb
|
369
|
-
- spec/rpm_spec.rb
|
370
|
-
- spec/scap_spec.rb
|
371
|
-
- spec/service/sys_v_init_service_spec.rb
|
372
|
-
- spec/service/systemd_service_spec.rb
|
373
|
-
- spec/service_spec.rb
|
374
|
-
- spec/spec_helper.rb
|
375
|
-
- spec/ssh_spec.rb
|
376
|
-
- spec/subscription_manager_spec.rb
|
377
|
-
- spec/system_spec.rb
|
378
|
-
- spec/time_date_spec.rb
|
379
|
-
- spec/volume_group_spec.rb
|
380
|
-
- spec/yum_spec.rb
|
288
|
+
test_files: []
|
@@ -1,111 +0,0 @@
|
|
1
|
-
require 'nokogiri'
|
2
|
-
|
3
|
-
module LinuxAdmin
|
4
|
-
class Rhn < RegistrationSystem
|
5
|
-
SATELLITE5_SERVER_CERT_PATH = "pub/rhn-org-trusted-ssl-cert-1.0-1.noarch.rpm"
|
6
|
-
INSTALLED_SERVER_CERT_PATH = "/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT"
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
warn("[DEPRECATION] 'LinuxAdmin::Rhn' is deprecated. Please use 'LinuxAdmin::SubscriptionManager' instead.")
|
10
|
-
end
|
11
|
-
|
12
|
-
def registered?(_options = nil)
|
13
|
-
id = ""
|
14
|
-
if File.exist?(systemid_file)
|
15
|
-
xml = Nokogiri.XML(File.read(systemid_file))
|
16
|
-
id = xml.xpath('/params/param/value/struct/member[name="system_id"]/value/string').text
|
17
|
-
end
|
18
|
-
id.length > 0
|
19
|
-
end
|
20
|
-
|
21
|
-
def register(options)
|
22
|
-
cmd = "rhnreg_ks"
|
23
|
-
params = {}
|
24
|
-
|
25
|
-
if options[:activationkey]
|
26
|
-
params["--activationkey="] = options[:activationkey]
|
27
|
-
elsif options[:username] && options[:password]
|
28
|
-
params["--username="] = options[:username]
|
29
|
-
params["--password="] = options[:password]
|
30
|
-
else
|
31
|
-
raise ArgumentError, "activation key or username and password are required"
|
32
|
-
end
|
33
|
-
|
34
|
-
install_server_certificate(options[:server_url], SATELLITE5_SERVER_CERT_PATH) if options[:server_url]
|
35
|
-
certificate_installed = LinuxAdmin::Rpm.list_installed["rhn-org-trusted-ssl-cert"]
|
36
|
-
|
37
|
-
params["--proxy="] = options[:proxy_address] if options[:proxy_address]
|
38
|
-
params["--proxyUser="] = options[:proxy_username] if options[:proxy_username]
|
39
|
-
params["--proxyPassword="] = options[:proxy_password] if options[:proxy_password]
|
40
|
-
params["--serverUrl="] = options[:server_url] if options[:server_url]
|
41
|
-
params["--systemorgid="] = options[:org] if options[:server_url] && options[:org]
|
42
|
-
params["--sslCACert="] = INSTALLED_SERVER_CERT_PATH if certificate_installed
|
43
|
-
|
44
|
-
Common.run!(cmd, :params => params)
|
45
|
-
end
|
46
|
-
|
47
|
-
def enable_channel(repo, options)
|
48
|
-
cmd = "rhn-channel -a"
|
49
|
-
params = user_pwd(options).merge("--channel=" => repo)
|
50
|
-
|
51
|
-
logger.info("#{self.class.name}##{__method__} Enabling channel: #{repo}")
|
52
|
-
Common.run!(cmd, :params => params)
|
53
|
-
end
|
54
|
-
alias_method :subscribe, :enable_channel
|
55
|
-
alias_method :enable_repo, :enable_channel
|
56
|
-
|
57
|
-
def disable_channel(repo, options)
|
58
|
-
cmd = "rhn-channel -r"
|
59
|
-
params = user_pwd(options).merge("--channel=" => repo)
|
60
|
-
|
61
|
-
Common.run!(cmd, :params => params)
|
62
|
-
end
|
63
|
-
alias_method :disable_repo, :disable_channel
|
64
|
-
|
65
|
-
def enabled_channels
|
66
|
-
cmd = "rhn-channel -l"
|
67
|
-
|
68
|
-
Common.run!(cmd).output.split("\n").compact
|
69
|
-
end
|
70
|
-
alias_method :enabled_repos, :enabled_channels
|
71
|
-
alias_method :subscribed_products, :enabled_channels
|
72
|
-
|
73
|
-
def available_channels(options)
|
74
|
-
cmd = "rhn-channel -L"
|
75
|
-
params = user_pwd(options)
|
76
|
-
|
77
|
-
Common.run!(cmd, :params => params).output.chomp.split("\n").compact
|
78
|
-
end
|
79
|
-
|
80
|
-
def all_repos(options)
|
81
|
-
available = available_channels_with_status(options)
|
82
|
-
merge_enabled_channels_with_status(available)
|
83
|
-
end
|
84
|
-
|
85
|
-
private
|
86
|
-
|
87
|
-
def available_channels_with_status(options)
|
88
|
-
available_channels(options).collect { |ac| {:repo_id => ac, :enabled => false} }
|
89
|
-
end
|
90
|
-
|
91
|
-
def merge_enabled_channels_with_status(available)
|
92
|
-
enabled_channels.each_with_object(available) do |enabled, all|
|
93
|
-
if repo = all.detect { |i| i[:repo_id] == enabled }
|
94
|
-
repo[:enabled] = true
|
95
|
-
else
|
96
|
-
all.push({:repo_id => enabled, :enabled => true})
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def user_pwd(options)
|
102
|
-
raise ArgumentError, "username and password are required" if options[:username].blank? || options[:password].blank?
|
103
|
-
|
104
|
-
{"--user=" => options[:username], "--password=" => options[:password]}
|
105
|
-
end
|
106
|
-
|
107
|
-
def systemid_file
|
108
|
-
"/etc/sysconfig/rhn/systemid"
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
data/spec/chrony_spec.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
describe LinuxAdmin::Chrony do
|
2
|
-
CHRONY_CONF = <<-EOF
|
3
|
-
# commented server baz.example.net
|
4
|
-
server foo.example.net
|
5
|
-
server bar.example.net iburst
|
6
|
-
driftfile /var/lib/chrony/drift
|
7
|
-
makestep 10 3
|
8
|
-
rtcsync
|
9
|
-
EOF
|
10
|
-
|
11
|
-
subject do
|
12
|
-
allow(File).to receive(:exist?).and_return(true)
|
13
|
-
described_class.new
|
14
|
-
end
|
15
|
-
|
16
|
-
describe ".new" do
|
17
|
-
it "raises when the given config file doesn't exist" do
|
18
|
-
expect { described_class.new("nonsense/file") }.to raise_error(LinuxAdmin::MissingConfigurationFileError)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "#clear_servers" do
|
23
|
-
it "removes all the server lines from the conf file" do
|
24
|
-
allow(File).to receive(:read).and_return(CHRONY_CONF.dup)
|
25
|
-
expect(File).to receive(:write) do |_file, contents|
|
26
|
-
expect(contents).to eq "# commented server baz.example.net\ndriftfile /var/lib/chrony/drift\nmakestep 10 3\nrtcsync\n"
|
27
|
-
end
|
28
|
-
subject.clear_servers
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "#add_servers" do
|
33
|
-
it "adds server lines to the conf file" do
|
34
|
-
allow(File).to receive(:read).and_return(CHRONY_CONF.dup)
|
35
|
-
expect(File).to receive(:write) do |_file, contents|
|
36
|
-
expect(contents).to eq(CHRONY_CONF + "server baz.example.net iburst\nserver foo.bar.example.com iburst\n")
|
37
|
-
end
|
38
|
-
allow(subject).to receive(:restart_service_if_running)
|
39
|
-
subject.add_servers("baz.example.net", "foo.bar.example.com")
|
40
|
-
end
|
41
|
-
|
42
|
-
it "restarts the service if it is running" do
|
43
|
-
allow(File).to receive(:read).and_return(CHRONY_CONF.dup)
|
44
|
-
allow(File).to receive(:write)
|
45
|
-
|
46
|
-
chronyd_service = double
|
47
|
-
expect(LinuxAdmin::Service).to receive(:new).with("chronyd").and_return(chronyd_service)
|
48
|
-
expect(chronyd_service).to receive(:running?).and_return true
|
49
|
-
expect(chronyd_service).to receive(:restart)
|
50
|
-
subject.add_servers("baz.example.net", "foo.bar.example.com")
|
51
|
-
end
|
52
|
-
|
53
|
-
it "doesn't restart the service if it is not running" do
|
54
|
-
allow(File).to receive(:read).and_return(CHRONY_CONF.dup)
|
55
|
-
allow(File).to receive(:write)
|
56
|
-
|
57
|
-
chronyd_service = double
|
58
|
-
expect(LinuxAdmin::Service).to receive(:new).with("chronyd").and_return(chronyd_service)
|
59
|
-
expect(chronyd_service).to receive(:running?).and_return false
|
60
|
-
expect(chronyd_service).not_to receive(:restart)
|
61
|
-
subject.add_servers("baz.example.net", "foo.bar.example.com")
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|