kanrisuru 0.8.22 → 0.8.23
Sign up to get free protection for your applications and to get access to all the features.
- 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
|