Reformat Regexp
Fix show template (missing tr) Separate exercise/verify
This commit is contained in:
parent
de6a44fae6
commit
d027ed719d
|
@ -1,6 +1,15 @@
|
||||||
module SidekiqHelper
|
module SidekiqHelper
|
||||||
SIDEKIQ_PS_REGEXP = /\A([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+(.+)\s+(sidekiq.*\])\s+\z/
|
SIDEKIQ_PS_REGEXP = /\A([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+(.+)\s+(sidekiq.*\])\s+\z/
|
||||||
|
|
||||||
|
SIDEKIQ_PS_REGEXP = /\A
|
||||||
|
(?<pid>\d+)\s+
|
||||||
|
(?<cpu>[\d\.,]+)\s+
|
||||||
|
(?<mem>[\d\.,]+)\s+
|
||||||
|
(?<state>[DRSTWXZNLsl\+<]+)\s+
|
||||||
|
(?<start>.+)\s+
|
||||||
|
(?<command>sidekiq.*\])\s+
|
||||||
|
\z/x
|
||||||
|
|
||||||
def parse_sidekiq_ps(line)
|
def parse_sidekiq_ps(line)
|
||||||
match = line.match(SIDEKIQ_PS_REGEXP)
|
match = line.match(SIDEKIQ_PS_REGEXP)
|
||||||
if match
|
if match
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
%th COMMAND
|
%th COMMAND
|
||||||
%tbody
|
%tbody
|
||||||
- @sidekiq_processes.each do |process|
|
- @sidekiq_processes.each do |process|
|
||||||
|
%tr
|
||||||
%td= gitlab_config.user
|
%td= gitlab_config.user
|
||||||
- parse_sidekiq_ps(process).each do |value|
|
- parse_sidekiq_ps(process).each do |value|
|
||||||
%td= value
|
%td= value
|
||||||
|
|
|
@ -5,30 +5,35 @@ describe SidekiqHelper do
|
||||||
it 'parses line with time' do
|
it 'parses line with time' do
|
||||||
line = '55137 10,0 2,1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
line = '55137 10,0 2,1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
||||||
parts = helper.parse_sidekiq_ps(line)
|
parts = helper.parse_sidekiq_ps(line)
|
||||||
|
|
||||||
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses line with date' do
|
it 'parses line with date' do
|
||||||
line = '55137 10,0 2,1 S+ Aug 4 sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
line = '55137 10,0 2,1 S+ Aug 4 sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
||||||
parts = helper.parse_sidekiq_ps(line)
|
parts = helper.parse_sidekiq_ps(line)
|
||||||
|
|
||||||
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 4', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 4', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses line with two digit date' do
|
it 'parses line with two digit date' do
|
||||||
line = '55137 10,0 2,1 S+ Aug 04 sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
line = '55137 10,0 2,1 S+ Aug 04 sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
||||||
parts = helper.parse_sidekiq_ps(line)
|
parts = helper.parse_sidekiq_ps(line)
|
||||||
|
|
||||||
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 04', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 04', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses line with dot as float separator' do
|
it 'parses line with dot as float separator' do
|
||||||
line = '55137 10.0 2.1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
line = '55137 10.0 2.1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] '
|
||||||
parts = helper.parse_sidekiq_ps(line)
|
parts = helper.parse_sidekiq_ps(line)
|
||||||
|
|
||||||
expect(parts).to eq(['55137', '10.0', '2.1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
expect(parts).to eq(['55137', '10.0', '2.1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]'])
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does fail gracefully on line not matching the format' do
|
it 'does fail gracefully on line not matching the format' do
|
||||||
line = '55137 10.0 2.1 S+ 2:30pm something'
|
line = '55137 10.0 2.1 S+ 2:30pm something'
|
||||||
parts = helper.parse_sidekiq_ps(line)
|
parts = helper.parse_sidekiq_ps(line)
|
||||||
|
|
||||||
expect(parts).to eq(['?', '?', '?', '?', '?', '?'])
|
expect(parts).to eq(['?', '?', '?', '?', '?', '?'])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue