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 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