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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 610fa46fc1f2af6ea5b805092f9528858c586cfad6c9754b18bdad109eaa9e77
4
- data.tar.gz: 210c27c89350d4b5cbbba4b5677711d2032f8d4bbbc7bac79a2c2a722f0c6caa
3
+ metadata.gz: cb7aac288555c629e9eb74721c2f0c21f45812426d4ac9b6e7fb1700433d360a
4
+ data.tar.gz: 16b5151fe50610ae0fe7ad4faa0eed72e49ad8aca017c7d6c609e377144c2532
5
5
  SHA512:
6
- metadata.gz: cd1f29eb444fe67904563cc2f0edaf3480c068e374f75242f7d802d94588c7023549186ddce860f9ac1b79a66413435f18b57f36b3b53cfa5f688ca32689ba8f
7
- data.tar.gz: 3e784e517b5fa233c97b14dee47ab7f58562ebf2b484c602bd6d59ce1853a8749d7c53268574368269be7b4a711eac02bf6ce60bed1454232bf4d6a8a18b389d
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
 
@@ -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 ArugmentError, "can't remove yum" if packages.include?('yum')
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 ArugmentError, "can't erase yum" if packages.include?('yum')
176
+ raise ArgumentError, "can't erase yum" if packages.include?('yum')
177
177
 
178
178
  command << packages
179
179
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kanrisuru
4
- VERSION = '0.8.22'
4
+ VERSION = '0.8.23'
5
5
  end
@@ -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
@@ -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
- def initialize(host)
21
+ define_method :initialize do |host|
22
22
  @host = host
23
23
 
24
- @kernel_name = 'Linux'
25
- @kernel_version = '#91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021'
26
- @operating_system = 'GNU/Linux'
27
- @hardware_platform = 'x86_64'
28
- @processor = 'x86_64'
29
- @release = 'ubuntu'
30
- @version = 20.0
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.22
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-18 00:00:00.000000000 Z
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