kanrisuru 0.16.14 → 0.17.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/CHANGELOG.md +13 -0
- data/README.md +1 -1
- data/lib/kanrisuru/core/dmi/parsers/dmi.rb +1 -2
- data/lib/kanrisuru/core/mount/commands/umount.rb +3 -0
- data/lib/kanrisuru/core/system/commands/nproc.rb +15 -0
- data/lib/kanrisuru/core/system/commands.rb +1 -0
- data/lib/kanrisuru/core/transfer/commands/download.rb +24 -4
- data/lib/kanrisuru/core/transfer/commands/upload.rb +2 -3
- data/lib/kanrisuru/core/transfer/commands/wget.rb +20 -6
- data/lib/kanrisuru/core/user/commands/get_user.rb +2 -1
- data/lib/kanrisuru/core/user/parsers/user.rb +1 -1
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/core/find_spec.rb +1 -1
- data/spec/functional/core/group_spec.rb +3 -5
- data/spec/functional/core/mount_spec.rb +2 -0
- data/spec/functional/core/system_spec.rb +5 -0
- data/spec/functional/core/transfer_spec.rb +27 -11
- data/spec/functional/remote/cluster_spec.rb +9 -9
- data/spec/support/shared_examples/integration/core/system.rb +6 -0
- data/spec/support/shared_examples/integration/core/transfer.rb +18 -1
- data/spec/support/shared_examples/integration/remote/cluster.rb +1 -1
- data/spec/unit/core/system_spec.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3f695ef2a1f50c24f7e2c8a06a107202c72e36a19b4952a4af9fbe3bdda93d3
|
4
|
+
data.tar.gz: e4ec5a94e1b24ff564fc46d909ddfd93bcb0d3e2baa916137c07740a896d8a6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a02f65e7d962e2e02594bee48b8a8662bf29a936a02e9e938332340d695618bd92a2a3b6fc26c7324ecb0af236d6d6dc11475fd8205ee6cc77d97ff57f39cbdf
|
7
|
+
data.tar.gz: 047b7235f156d77085a413d2af37ce09367d1eb68b33ae0b96b1e2a0ed8f79ba9b8111f3933e02dd37245393fd4c6333455407187fb62ba6ad524dfc42ec1f54
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## Kanrisuru 0.17.0 (January 20, 2022) ##
|
2
|
+
* Add `nproc` command with test cases.
|
3
|
+
|
4
|
+
## Kanrisuru 0.16.17 (January 10, 2022) ##
|
5
|
+
* Add additional options to `wget` command.
|
6
|
+
* Rename some options to better reflect options from wget program.
|
7
|
+
|
8
|
+
## Kanrisuru 0.16.16 (January 08, 2022) ##
|
9
|
+
* Fix issue with `download` command when downloading directories from remote server.
|
10
|
+
|
11
|
+
## Kanrisuru 0.16.15 (January 07, 2022) ##
|
12
|
+
* Add recursive and all_targets opts to `umount` command.
|
13
|
+
|
1
14
|
## Kanrisuru 0.16.14 (January 02, 2022) ##
|
2
15
|
* Fix `get_user` command by parsing output to get user name if uid is passed in.
|
3
16
|
|
data/README.md
CHANGED
@@ -17,6 +17,9 @@ module Kanrisuru
|
|
17
17
|
command.append_flag('-l', opts[:lazy])
|
18
18
|
command.append_flag('-f', opts[:force])
|
19
19
|
|
20
|
+
command.append_flag('--all-targets', opts[:all_targets])
|
21
|
+
command.append_flag('--recursive', opts[:recursive])
|
22
|
+
|
20
23
|
if Kanrisuru::Util.present?(all)
|
21
24
|
command.append_flag('-a')
|
22
25
|
add_type(command, type)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kanrisuru
|
4
|
+
module Core
|
5
|
+
module System
|
6
|
+
def nproc(opts = {})
|
7
|
+
command = Kanrisuru::Command.new('nproc')
|
8
|
+
command.append_flag('--all', opts[:all])
|
9
|
+
execute_shell(command)
|
10
|
+
|
11
|
+
Kanrisuru::Result.new(command, &:to_i)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -9,6 +9,7 @@ require_relative 'commands/load_average'
|
|
9
9
|
require_relative 'commands/load_env'
|
10
10
|
require_relative 'commands/lscpu'
|
11
11
|
require_relative 'commands/lsof'
|
12
|
+
require_relative 'commands/nproc'
|
12
13
|
require_relative 'commands/poweroff'
|
13
14
|
require_relative 'commands/ps'
|
14
15
|
require_relative 'commands/reboot'
|
@@ -4,21 +4,41 @@ module Kanrisuru
|
|
4
4
|
module Core
|
5
5
|
module Transfer
|
6
6
|
def download(remote_path, local_path = nil, opts = {})
|
7
|
+
recursive = opts[:recursive] || false
|
8
|
+
|
9
|
+
remote_path += '/' if !remote_path.end_with?('/') && recursive
|
10
|
+
local_path += '/' if !local_path.nil? && !local_path.end_with?('/') && recursive
|
11
|
+
|
7
12
|
if local_path.instance_of?(Hash)
|
8
13
|
opts = local_path
|
9
14
|
local_path = nil
|
10
15
|
end
|
11
16
|
|
12
|
-
|
17
|
+
tmp_name = "kanrisuru-tmp-#{Time.now.to_i}-#{object_id}"
|
18
|
+
tmp_path = "/tmp/#{tmp_name}"
|
13
19
|
|
14
20
|
begin
|
15
|
-
result = cp(remote_path, tmp_path, force: true)
|
21
|
+
result = cp(remote_path, tmp_path, force: true, follow: true, recursive: recursive)
|
16
22
|
raise 'Unable to copy remote file to temp path' unless result.success?
|
17
23
|
|
24
|
+
result = chown(tmp_path, owner: @username, group: @username, recursive: recursive)
|
25
|
+
raise 'Unable to update owner or group for temp path' unless result.success?
|
26
|
+
|
27
|
+
result = chmod(tmp_path, 'u+r', recursive: true)
|
28
|
+
raise 'Unable to update owner permission read access' unless result.success?
|
29
|
+
|
30
|
+
local_path = ::File.expand_path(local_path) if local_path
|
18
31
|
result = ssh.scp.download!(tmp_path, local_path, opts)
|
19
|
-
|
32
|
+
return false unless result
|
33
|
+
|
34
|
+
if Kanrisuru::Util.present?(local_path) && recursive
|
35
|
+
remote_dirname = remote_path.split('/').last
|
36
|
+
FileUtils.mv("#{local_path}/#{tmp_name}", "#{local_path}/#{remote_dirname}")
|
37
|
+
else
|
38
|
+
result
|
39
|
+
end
|
20
40
|
ensure
|
21
|
-
rm(tmp_path, force: true) if inode?(tmp_path)
|
41
|
+
rm(tmp_path, force: true, recursive: recursive) if inode?(tmp_path)
|
22
42
|
end
|
23
43
|
end
|
24
44
|
end
|
@@ -12,9 +12,7 @@ module Kanrisuru
|
|
12
12
|
|
13
13
|
## Need to copy internal dir contents, not the tmp dir itself
|
14
14
|
if opts[:recursive]
|
15
|
-
unless dir?(remote_path)
|
16
|
-
mkdir(remote_path, silent: true)
|
17
|
-
end
|
15
|
+
mkdir(remote_path, silent: true) unless dir?(remote_path)
|
18
16
|
|
19
17
|
result = cp("#{tmp_path}/*", remote_path, recursive: true)
|
20
18
|
else
|
@@ -22,6 +20,7 @@ module Kanrisuru
|
|
22
20
|
end
|
23
21
|
|
24
22
|
raise "Unable to move file to remote path - #{result.command.raw_result}" unless result.success?
|
23
|
+
|
25
24
|
stat(remote_path)
|
26
25
|
ensure
|
27
26
|
rm(tmp_path, force: true) if inode?(tmp_path)
|
@@ -105,7 +105,12 @@ module Kanrisuru
|
|
105
105
|
end
|
106
106
|
|
107
107
|
command.append_arg('--post-file', opts[:post_file])
|
108
|
+
command.append_arg('--method', opts[:method])
|
109
|
+
|
108
110
|
command.append_flag('--content-disposition', opts[:content_disposition])
|
111
|
+
command.append_flag('--content-on-error', opts[:content_on_error])
|
112
|
+
command.append_flag('--trust-server-names', opts[:trust_server_names])
|
113
|
+
command.append_flag('--retry-on-host-error', opts[:retry_on_host_error])
|
109
114
|
|
110
115
|
## SSL / TLS
|
111
116
|
if Kanrisuru::Util.present?(opts[:secure_protocol])
|
@@ -123,18 +128,24 @@ module Kanrisuru
|
|
123
128
|
command.append_arg('--ca-directory', opts[:ca_directory])
|
124
129
|
command.append_arg('--random-file', opts[:random_file])
|
125
130
|
command.append_arg('--egd-file', opts[:egd_file])
|
131
|
+
command.append_flag('--https-only', opts[:https_only])
|
126
132
|
|
127
|
-
## FTP
|
133
|
+
## FTP / FTPS
|
128
134
|
command.append_arg('--ftp-user', opts[:ftp_user])
|
129
135
|
command.append_arg('--ftp-password', opts[:ftp_password])
|
130
136
|
command.append_flag('--no-remove-listing', opts[:no_remove_listing])
|
131
137
|
command.append_flag('--no-glob', opts[:no_glob])
|
132
138
|
command.append_flag('--no-passive-ftp', opts[:no_passive_ftp])
|
133
139
|
command.append_flag('--retr-symlinks', opts[:retr_symlinks])
|
140
|
+
command.append_flag('--preserve-permissions', opts[:preserve_permissions])
|
141
|
+
command.append_flag('--ftps-implicit', opts[:ftps_implicit])
|
142
|
+
command.append_flag('--no-ftps-resume-ssl', opts[:no_ftps_resume_ssl])
|
143
|
+
command.append_flag('--ftps-clear-data-connection', opts[:ftps_clear_data_connection])
|
144
|
+
command.append_flag('--ftps-fallback-to-ftp', opts[:ftps_fallback_to_ftp])
|
134
145
|
|
135
146
|
## Recursive Retrieval
|
136
147
|
command.append_flag('--recursive', opts[:recursive])
|
137
|
-
command.append_arg('--level', opts[:
|
148
|
+
command.append_arg('--level', opts[:level])
|
138
149
|
command.append_flag('--delete-after', opts[:delete_after])
|
139
150
|
command.append_flag('--convert-links', opts[:convert_links])
|
140
151
|
command.append_flag('--backup-converted', opts[:backup_converted])
|
@@ -143,10 +154,13 @@ module Kanrisuru
|
|
143
154
|
command.append_flag('--strict-comments', opts[:strict_comments])
|
144
155
|
|
145
156
|
## Recursive Accept/Reject
|
146
|
-
command.append_arg('--accept', Kanrisuru::Util.array_join_string(opts[:
|
147
|
-
command.append_arg('--reject', Kanrisuru::Util.array_join_string(opts[:
|
148
|
-
command.append_arg('--
|
149
|
-
command.append_arg('--
|
157
|
+
command.append_arg('--accept', Kanrisuru::Util.array_join_string(opts[:accept]))
|
158
|
+
command.append_arg('--reject', Kanrisuru::Util.array_join_string(opts[:reject]))
|
159
|
+
command.append_arg('--accept-regex', opts[:accept_regex])
|
160
|
+
command.append_arg('--reject-regex', opts[:reject_regex])
|
161
|
+
command.append_arg('--regex_type', opts[:regex_type])
|
162
|
+
command.append_arg('--domains', Kanrisuru::Util.array_join_string(opts[:domains]))
|
163
|
+
command.append_arg('--exclude-domains', Kanrisuru::Util.array_join_string(opts[:exclude_domains]))
|
150
164
|
command.append_arg('--follow-tags', Kanrisuru::Util.array_join_string(opts[:follow_tags]))
|
151
165
|
command.append_arg('--ignore-tags', Kanrisuru::Util.array_join_string(opts[:ignore_tags]))
|
152
166
|
command.append_arg('--include-directories', Kanrisuru::Util.array_join_string(opts[:include_directories]))
|
@@ -10,11 +10,12 @@ module Kanrisuru
|
|
10
10
|
Kanrisuru::Result.new(command) do |cmd|
|
11
11
|
if Kanrisuru::Util.numeric?(user)
|
12
12
|
uid = user.to_i
|
13
|
-
user = Parser::User.parse(cmd)
|
13
|
+
user = Parser::User.parse(cmd)
|
14
14
|
else
|
15
15
|
## Get user id
|
16
16
|
result = get_uid(user)
|
17
17
|
break if result.failure?
|
18
|
+
|
18
19
|
uid = result.to_i
|
19
20
|
end
|
20
21
|
|
data/lib/kanrisuru/version.rb
CHANGED
@@ -22,11 +22,9 @@ RSpec.describe Kanrisuru::Core::Group do
|
|
22
22
|
it 'prepares create_group command' do
|
23
23
|
expect_command(host.create_group('admin'), 'groupadd admin')
|
24
24
|
expect_command(host.create_group('admin',
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
'groupadd admin -g 9000 -o'
|
29
|
-
)
|
25
|
+
gid: 9000,
|
26
|
+
non_unique: true),
|
27
|
+
'groupadd admin -g 9000 -o')
|
30
28
|
|
31
29
|
expect_command(host.create_group('admin', gid: 12, system: true), 'groupadd admin -g 12 -r')
|
32
30
|
end
|
@@ -95,6 +95,8 @@ RSpec.describe Kanrisuru::Core::Mount do
|
|
95
95
|
|
96
96
|
it 'prepares umount command' do
|
97
97
|
expect_command(host.umount, 'umount')
|
98
|
+
expect_command(host.umount(recursive: true, all_targets: true), 'umount --all-targets --recursive')
|
99
|
+
|
98
100
|
expect_command(host.umount(
|
99
101
|
fake: true,
|
100
102
|
no_canonicalize: true,
|
@@ -124,6 +124,11 @@ RSpec.describe Kanrisuru::Core::System do
|
|
124
124
|
end.to raise_error(ArgumentError)
|
125
125
|
end
|
126
126
|
|
127
|
+
it 'prepares nproc command' do
|
128
|
+
expect_command(host.nproc, 'nproc')
|
129
|
+
expect_command(host.nproc(all: true), 'nproc --all')
|
130
|
+
end
|
131
|
+
|
127
132
|
it 'prepares uptime command' do
|
128
133
|
expect_command(host.uptime, 'cat /proc/uptime')
|
129
134
|
end
|
@@ -97,8 +97,11 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
97
97
|
},
|
98
98
|
content_disposition: true,
|
99
99
|
secure_protocol: 'SSLv3',
|
100
|
+
content_on_error: true,
|
101
|
+
trust_server_names: true,
|
102
|
+
retry_on_host_error: true,
|
100
103
|
no_check_certificate: true),
|
101
|
-
"wget --post-data url=https%3A%2F%2Fexample.com%3Fparam%3D123 --content-disposition --secure-protocol SSLv3 --no-check-certificate #{url}")
|
104
|
+
"wget --post-data url=https%3A%2F%2Fexample.com%3Fparam%3D123 --content-disposition --content-on-error --trust-server-names --retry-on-host-error --secure-protocol SSLv3 --no-check-certificate #{url}")
|
102
105
|
|
103
106
|
expect do
|
104
107
|
host.wget(url, secure_protocol: 'SSL')
|
@@ -115,27 +118,37 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
115
118
|
|
116
119
|
expect_command(host.wget(url,
|
117
120
|
certificate: '~/cert.pem',
|
121
|
+
https_only: true,
|
118
122
|
certificate_type: 'PEM',
|
119
123
|
private_key: '~/key.pem',
|
120
124
|
private_key_type: 'PEM',
|
121
125
|
ca_certificate: '~/ca.pem',
|
122
126
|
random_file: '~/random'),
|
123
|
-
"wget --certificate ~/cert.pem --certificate-type PEM --private-key ~/key.pem --private-key-type PEM --ca-certificate ~/ca.pem --random-file ~/random #{url}")
|
127
|
+
"wget --certificate ~/cert.pem --certificate-type PEM --private-key ~/key.pem --private-key-type PEM --ca-certificate ~/ca.pem --random-file ~/random --https-only #{url}")
|
124
128
|
|
125
129
|
## FTP
|
126
|
-
expect_command(host.wget(
|
130
|
+
expect_command(host.wget('ftp.example.com',
|
127
131
|
ftp_user: 'admin',
|
128
132
|
ftp_password: '12345678',
|
129
133
|
no_remove_listing: true,
|
130
134
|
no_glob: true,
|
131
135
|
no_passive_ftp: true,
|
132
|
-
retr_symlinks: true
|
133
|
-
|
136
|
+
retr_symlinks: true,
|
137
|
+
preserve_permissions: true),
|
138
|
+
'wget --ftp-user admin --ftp-password 12345678 --no-remove-listing --no-glob --no-passive-ftp --retr-symlinks --preserve-permissions ftp.example.com')
|
139
|
+
|
140
|
+
expect_command(host.wget('ftps.example.com',
|
141
|
+
ftp_user: 'admin',
|
142
|
+
ftp_password: '12345678',
|
143
|
+
ftps_implicit: true,
|
144
|
+
no_ftps_resume_ssl: true,
|
145
|
+
ftps_fallback_to_ftp: true,
|
146
|
+
ftps_clear_data_connection: true), 'wget --ftp-user admin --ftp-password 12345678 --ftps-implicit --no-ftps-resume-ssl --ftps-clear-data-connection --ftps-fallback-to-ftp ftps.example.com')
|
134
147
|
|
135
148
|
## Recursive Retrieval
|
136
149
|
expect_command(host.wget(url,
|
137
150
|
recursive: true,
|
138
|
-
|
151
|
+
level: 10,
|
139
152
|
delete_after: true,
|
140
153
|
convert_links: true,
|
141
154
|
backup_converted: true,
|
@@ -146,10 +159,13 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
146
159
|
|
147
160
|
## Recursive Accept/Reject
|
148
161
|
expect_command(host.wget(url,
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
162
|
+
accept: ['.txt', '.html'],
|
163
|
+
reject: ['.csv'],
|
164
|
+
accept_regex: 'https://*',
|
165
|
+
regect_regex: 'ftp*',
|
166
|
+
regex_type: 'posix',
|
167
|
+
domains: ['example.com'],
|
168
|
+
exclude_domains: ['hackernews.com'],
|
153
169
|
follow_tags: %w[a div span],
|
154
170
|
ignore_tags: %w[area link],
|
155
171
|
include_directories: ['/gems'],
|
@@ -159,6 +175,6 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
159
175
|
span_hosts: true,
|
160
176
|
relative: true,
|
161
177
|
no_parent: true),
|
162
|
-
"wget --accept .txt,.html --reject .csv --domains example.com --exclude-domains hackernews.com --follow-tags a,div,span --ignore-tags area,link --include-directories /gems --exclude-directories /releases --follow-ftp --ignore-case --span-hosts --relative --no-parent #{url}")
|
178
|
+
"wget --accept .txt,.html --reject .csv --accept-regex https://* --regex_type posix --domains example.com --exclude-domains hackernews.com --follow-tags a,div,span --ignore-tags area,link --include-directories /gems --exclude-directories /releases --follow-ftp --ignore-case --span-hosts --relative --no-parent #{url}")
|
163
179
|
end
|
164
180
|
end
|
@@ -85,9 +85,9 @@ RSpec.describe Kanrisuru::Remote::Cluster do
|
|
85
85
|
expect(command.prepared_command).to eq('sudo -u root /bin/bash -c "ls"')
|
86
86
|
expect(cloned_command.prepared_command).to eq('sudo -u root /bin/bash -c "ls"')
|
87
87
|
|
88
|
-
expect
|
88
|
+
expect do
|
89
89
|
cluster.send(:create_command, 1)
|
90
|
-
|
90
|
+
end.to raise_error(ArgumentError)
|
91
91
|
end
|
92
92
|
|
93
93
|
it 'runs execute for a command on a cluster' do
|
@@ -178,8 +178,8 @@ RSpec.describe Kanrisuru::Remote::Cluster do
|
|
178
178
|
|
179
179
|
cluster.cd('/etc')
|
180
180
|
cluster.each do |host|
|
181
|
-
expect(host.instance_variable_get(:@current_dir)).to eq('/etc')
|
182
|
-
end
|
181
|
+
expect(host.instance_variable_get(:@current_dir)).to eq('/etc')
|
182
|
+
end
|
183
183
|
|
184
184
|
StubNetwork.unstub_command!(:pwd)
|
185
185
|
StubNetwork.unstub_command!(:realpath)
|
@@ -198,18 +198,18 @@ RSpec.describe Kanrisuru::Remote::Cluster do
|
|
198
198
|
|
199
199
|
cluster.chdir('/etc')
|
200
200
|
cluster.each do |host|
|
201
|
-
expect(host.instance_variable_get(:@current_dir)).to eq('/etc')
|
202
|
-
end
|
201
|
+
expect(host.instance_variable_get(:@current_dir)).to eq('/etc')
|
202
|
+
end
|
203
203
|
|
204
204
|
StubNetwork.unstub_command!(:pwd)
|
205
205
|
StubNetwork.unstub_command!(:realpath)
|
206
206
|
end
|
207
|
-
|
207
|
+
|
208
208
|
it 'fails to remove a host from a cluster' do
|
209
209
|
cluster = described_class.new(host1, host2)
|
210
210
|
|
211
|
-
expect
|
211
|
+
expect do
|
212
212
|
cluster.delete(1)
|
213
|
-
|
213
|
+
end.to raise_error(ArgumentError)
|
214
214
|
end
|
215
215
|
end
|
@@ -108,6 +108,12 @@ RSpec.shared_examples 'system' do |os_name, host_json, _spec_dir|
|
|
108
108
|
expect(result).to be_success
|
109
109
|
end
|
110
110
|
|
111
|
+
it 'gets nproc count' do
|
112
|
+
result = host.nproc
|
113
|
+
expect(result).to be_success
|
114
|
+
expect(result.to_i).to be > 0
|
115
|
+
end
|
116
|
+
|
111
117
|
it 'gets process details' do
|
112
118
|
result = host.ps
|
113
119
|
|
@@ -34,6 +34,7 @@ RSpec.shared_examples 'transfer' do |os_name, host_json, spec_dir|
|
|
34
34
|
keys: [host_json['ssh_key']]
|
35
35
|
)
|
36
36
|
|
37
|
+
FileUtils.rm_rf("../test-output-#{os_name}")
|
37
38
|
host.rmdir(spec_dir)
|
38
39
|
host.disconnect
|
39
40
|
end
|
@@ -80,7 +81,7 @@ RSpec.shared_examples 'transfer' do |os_name, host_json, spec_dir|
|
|
80
81
|
src_path = '/etc/hosts'
|
81
82
|
|
82
83
|
result = host.download(src_path, path)
|
83
|
-
expect(result).to
|
84
|
+
expect(result).to be_truthy
|
84
85
|
FileUtils.rm(path)
|
85
86
|
end
|
86
87
|
|
@@ -93,6 +94,22 @@ RSpec.shared_examples 'transfer' do |os_name, host_json, spec_dir|
|
|
93
94
|
expect(lines.length).to be >= 1
|
94
95
|
end
|
95
96
|
|
97
|
+
it 'downloads a dir' do
|
98
|
+
remote_path = '/var/log'
|
99
|
+
local_path = "../test-output-#{os_name}"
|
100
|
+
FileUtils.mkdir(local_path)
|
101
|
+
|
102
|
+
host.su('root')
|
103
|
+
result = host.download(remote_path, local_path, recursive: true)
|
104
|
+
expect(result).not_to be nil
|
105
|
+
|
106
|
+
paths = host.ls(path: '/var/log').map(&:path)
|
107
|
+
Dir.glob("#{local_path}/log/*").each do |file|
|
108
|
+
name = File.basename(file)
|
109
|
+
expect(paths).to include(name)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
96
113
|
it 'wgets url' do
|
97
114
|
result = host.wget('https://example.com', directory_prefix: spec_dir)
|
98
115
|
expect(result).to be_success
|
@@ -30,6 +30,7 @@ RSpec.describe Kanrisuru::Core::System do
|
|
30
30
|
expect(host).to respond_to(:kernel_statistics)
|
31
31
|
expect(host).to respond_to(:kstat)
|
32
32
|
expect(host).to respond_to(:lsof)
|
33
|
+
expect(host).to respond_to(:nproc)
|
33
34
|
expect(host).to respond_to(:last)
|
34
35
|
expect(host).to respond_to(:uptime)
|
35
36
|
expect(host).to respond_to(:w)
|
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.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Mammina
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel_tests
|
@@ -314,6 +314,7 @@ files:
|
|
314
314
|
- lib/kanrisuru/core/system/commands/load_env.rb
|
315
315
|
- lib/kanrisuru/core/system/commands/lscpu.rb
|
316
316
|
- lib/kanrisuru/core/system/commands/lsof.rb
|
317
|
+
- lib/kanrisuru/core/system/commands/nproc.rb
|
317
318
|
- lib/kanrisuru/core/system/commands/poweroff.rb
|
318
319
|
- lib/kanrisuru/core/system/commands/ps.rb
|
319
320
|
- lib/kanrisuru/core/system/commands/reboot.rb
|
@@ -706,7 +707,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
706
707
|
- !ruby/object:Gem::Version
|
707
708
|
version: '0'
|
708
709
|
requirements: []
|
709
|
-
rubygems_version: 3.
|
710
|
+
rubygems_version: 3.3.5
|
710
711
|
signing_key:
|
711
712
|
specification_version: 4
|
712
713
|
summary: Manage remote servers over ssh with ruby.
|