kanrisuru 0.8.22 → 0.8.23
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/CHANGELOG.md +5 -0
- data/lib/kanrisuru/core/yum.rb +2 -2
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/core/yum_spec.rb +159 -0
- data/spec/helper/stub_network.rb +40 -9
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cb7aac288555c629e9eb74721c2f0c21f45812426d4ac9b6e7fb1700433d360a
|
|
4
|
+
data.tar.gz: 16b5151fe50610ae0fe7ad4faa0eed72e49ad8aca017c7d6c609e377144c2532
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f4b592883b2f3541ae1ab7a4cbbf7ddaf626d376a39464401b428506eca21bf9546688384e0b8eb87e8f46c29a5c734356c4d407bb2f0aa47fe003d3e1e71a84
|
|
7
|
+
data.tar.gz: 0d8d36445c59ea52b7bbe25cfbc5782f21a42548fccdbcd3ae8f34431528b76a3a7bc13059583756c9fc4ce969b966479b632818dc2dc4dd23ef573a63c569e1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
## Kanrisuru 0.8.23 (November 19, 2021)
|
|
2
|
+
* Add functional test cases for `yum` command
|
|
3
|
+
* Add stub by operating system method, with support for `ubuntu` and `centos` os types.
|
|
4
|
+
* Fix `ArgumentError` typo in yum commands, `erase` and `remove`.
|
|
5
|
+
|
|
1
6
|
## Kanrisuru 0.8.22 (November 18, 2021)
|
|
2
7
|
* Add functional test cases for `apt` command
|
|
3
8
|
|
data/lib/kanrisuru/core/yum.rb
CHANGED
|
@@ -137,7 +137,7 @@ module Kanrisuru
|
|
|
137
137
|
command.append_flag('-y')
|
|
138
138
|
|
|
139
139
|
packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
|
|
140
|
-
raise
|
|
140
|
+
raise ArgumentError, "can't remove yum" if packages.include?('yum')
|
|
141
141
|
|
|
142
142
|
command << packages
|
|
143
143
|
|
|
@@ -173,7 +173,7 @@ module Kanrisuru
|
|
|
173
173
|
command.append_flag('-y')
|
|
174
174
|
|
|
175
175
|
packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
|
|
176
|
-
raise
|
|
176
|
+
raise ArgumentError, "can't erase yum" if packages.include?('yum')
|
|
177
177
|
|
|
178
178
|
command << packages
|
|
179
179
|
|
data/lib/kanrisuru/version.rb
CHANGED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe Kanrisuru::Core::Yum do
|
|
6
|
+
before(:all) do
|
|
7
|
+
StubNetwork.stub!(:centos)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
after(:all) do
|
|
11
|
+
StubNetwork.unstub!
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
let(:host) do
|
|
15
|
+
Kanrisuru::Remote::Host.new(
|
|
16
|
+
host: 'centos-host',
|
|
17
|
+
username: 'centos',
|
|
18
|
+
keys: ['id_rsa']
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'prepares yum install command' do
|
|
23
|
+
expect_command(host.yum('install', packages: 'nginx'),
|
|
24
|
+
'yum install -y nginx'
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
expect_command(host.yum('install', packages: ['nginx', 'apache2']),
|
|
28
|
+
'yum install -y nginx apache2'
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'prepares yum localinstall command' do
|
|
33
|
+
expect_command(host.yum('localinstall', repos: 'foo.rpm'),
|
|
34
|
+
'yum localinstall -y foo.rpm'
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
expect_command(host.yum('localinstall',
|
|
38
|
+
repos: ['foo.rpm', 'bar.rpm', 'baz.rpm'],
|
|
39
|
+
disable_repo: '*'
|
|
40
|
+
),
|
|
41
|
+
'yum localinstall --disablerepo=* -y foo.rpm bar.rpm baz.rpm'
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'prepares yum list command' do
|
|
46
|
+
expect_command(host.yum('list'),
|
|
47
|
+
"yum list | tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
expect_command(host.yum('list', all: true, query: 'ruby*'),
|
|
51
|
+
"yum list all ruby* | tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'"
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
expect_command(host.yum('list',
|
|
55
|
+
available: true,
|
|
56
|
+
updates: true,
|
|
57
|
+
installed: true,
|
|
58
|
+
extras: true,
|
|
59
|
+
obsoletes: true,
|
|
60
|
+
disable_repo: '*'
|
|
61
|
+
),
|
|
62
|
+
"yum list --disablerepo=* available updates installed extras obsoletes | tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'"
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'prepares yum search command' do
|
|
67
|
+
expect_command(host.yum('search',
|
|
68
|
+
packages: 'redis'
|
|
69
|
+
),
|
|
70
|
+
"yum search redis | tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'"
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
expect_command(host.yum('search',
|
|
74
|
+
packages: ['package1', 'package2', 'package3'],
|
|
75
|
+
all: true
|
|
76
|
+
),
|
|
77
|
+
"yum search all package1 package2 package3 | tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'"
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it 'prepares yum info command' do
|
|
82
|
+
expect_command(host.yum('info',
|
|
83
|
+
packages: 'redis'
|
|
84
|
+
),
|
|
85
|
+
"yum info --quiet redis"
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
expect_command(host.yum('info',
|
|
89
|
+
packages: ['package1', 'package2', 'package3'],
|
|
90
|
+
installed: true
|
|
91
|
+
),
|
|
92
|
+
"yum info --quiet installed package1 package2 package3"
|
|
93
|
+
)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it 'prepares yum repolist command' do
|
|
97
|
+
expect_command(host.yum('repolist'),
|
|
98
|
+
"yum repolist --verbose"
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
expect_command(host.yum('repolist', repos: 'repo1'),
|
|
102
|
+
"yum repolist --verbose repo1"
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
expect_command(host.yum('repolist', repos: ['repo1', 'repo2', 'repo3']),
|
|
106
|
+
"yum repolist --verbose repo1 repo2 repo3"
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'prepares yum clean command' do
|
|
111
|
+
expect_command(host.yum('clean'), 'yum clean')
|
|
112
|
+
expect_command(host.yum('clean', all: true), 'yum clean all')
|
|
113
|
+
expect_command(host.yum('clean',
|
|
114
|
+
dbcache: true,
|
|
115
|
+
expire_cache: true,
|
|
116
|
+
metadata: true,
|
|
117
|
+
packages: true,
|
|
118
|
+
headers: true,
|
|
119
|
+
rpmdb: true
|
|
120
|
+
),
|
|
121
|
+
"yum clean dbcache expire-cache metadata packages headers rpmdb"
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it 'prepares yum remove command' do
|
|
126
|
+
expect_command(host.yum('remove', packages: 'gcc'), 'yum remove -y gcc')
|
|
127
|
+
expect_command(host.yum('remove', packages: ['p1', 'p2', 'p3']),
|
|
128
|
+
'yum remove -y p1 p2 p3'
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
expect {
|
|
132
|
+
host.yum('remove', packages: 'yum')
|
|
133
|
+
}.to raise_error(ArgumentError)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
it 'prepares yum autoremove command' do
|
|
137
|
+
expect_command(host.yum('autoremove'), 'yum autoremove -y')
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
it 'prepares yum erase command' do
|
|
141
|
+
expect_command(host.yum('erase', packages: 'gcc'), 'yum erase -y gcc')
|
|
142
|
+
expect_command(host.yum('erase', packages: ['p1', 'p2', 'p3']),
|
|
143
|
+
'yum erase -y p1 p2 p3'
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
expect {
|
|
147
|
+
host.yum('erase', packages: 'yum')
|
|
148
|
+
}.to raise_error(ArgumentError)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it 'prepares yum update command' do
|
|
152
|
+
expect_command(host.yum('update'), 'yum update -y')
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
it 'prepares yum upgrade command' do
|
|
156
|
+
expect_command(host.yum('upgrade'), 'yum upgrade -y')
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
end
|
data/spec/helper/stub_network.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class StubNetwork
|
|
4
4
|
class << self
|
|
5
|
-
def stub!
|
|
5
|
+
def stub!(os_type = 'ubuntu')
|
|
6
6
|
unless Kanrisuru::Remote::Host.instance_methods(false).include?(:execute_with_retries_alias)
|
|
7
7
|
Kanrisuru::Remote::Host.class_eval do
|
|
8
8
|
alias_method :execute_with_retries_alias, :execute_with_retries
|
|
@@ -18,16 +18,16 @@ class StubNetwork
|
|
|
18
18
|
unless Kanrisuru::Remote::Os.instance_methods(false).include?(:initialize_alias)
|
|
19
19
|
Kanrisuru::Remote::Os.class_eval do
|
|
20
20
|
alias_method :initialize_alias, :initialize
|
|
21
|
-
|
|
21
|
+
define_method :initialize do |host|
|
|
22
22
|
@host = host
|
|
23
23
|
|
|
24
|
-
@kernel_name =
|
|
25
|
-
@kernel_version =
|
|
26
|
-
@operating_system =
|
|
27
|
-
@hardware_platform =
|
|
28
|
-
@processor =
|
|
29
|
-
@release =
|
|
30
|
-
@version =
|
|
24
|
+
@kernel_name = StubNetwork.send(:os_defaults, os_type, :kernel_name)
|
|
25
|
+
@kernel_version = StubNetwork.send(:os_defaults, os_type, :kernel_version)
|
|
26
|
+
@operating_system = StubNetwork.send(:os_defaults, os_type, :operating_system)
|
|
27
|
+
@hardware_platform = StubNetwork.send(:os_defaults, os_type, :hardware_platform)
|
|
28
|
+
@processor = StubNetwork.send(:os_defaults, os_type, :processor)
|
|
29
|
+
@release = StubNetwork.send(:os_defaults, os_type, :release)
|
|
30
|
+
@version = StubNetwork.send(:os_defaults, os_type, :version)
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -59,5 +59,36 @@ class StubNetwork
|
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
+
private
|
|
63
|
+
|
|
64
|
+
def os_defaults(name, property)
|
|
65
|
+
name = name.to_sym
|
|
66
|
+
|
|
67
|
+
defaults = {
|
|
68
|
+
ubuntu: {
|
|
69
|
+
kernel_name: 'Linux',
|
|
70
|
+
kernel_version: '#91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021',
|
|
71
|
+
operating_system: 'GNU/Linux',
|
|
72
|
+
hardware_platform: 'x86_64',
|
|
73
|
+
processor: 'x86_64',
|
|
74
|
+
release: 'ubuntu',
|
|
75
|
+
version: 20.0
|
|
76
|
+
},
|
|
77
|
+
centos: {
|
|
78
|
+
kernel_name: 'Linux',
|
|
79
|
+
kernel_version: '"#1 SMP Wed Jul 21 11:57:15 UTC 2021"',
|
|
80
|
+
operating_system: 'GNU/Linux',
|
|
81
|
+
hardware_platform: 'x86_64',
|
|
82
|
+
processor: 'x86_64',
|
|
83
|
+
release: 'centos',
|
|
84
|
+
version: 7.0
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
defaults[name].key?(property) ?
|
|
90
|
+
defaults[name][property] : nil
|
|
91
|
+
end
|
|
92
|
+
|
|
62
93
|
end
|
|
63
94
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kanrisuru
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.23
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Mammina
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-11-
|
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -180,6 +180,7 @@ files:
|
|
|
180
180
|
- spec/functional/core/stat_spec.rb
|
|
181
181
|
- spec/functional/core/stream_spec.rb
|
|
182
182
|
- spec/functional/core/transfer_spec.rb
|
|
183
|
+
- spec/functional/core/yum_spec.rb
|
|
183
184
|
- spec/functional/os_package_spec.rb
|
|
184
185
|
- spec/helper/expect_helpers.rb
|
|
185
186
|
- spec/helper/stub_network.rb
|