bizside 2.3.5 → 2.3.7

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: 62c3eab65480a846426f4015353ed1617dfd60ed6a87c66f484a71a04f5ff6b5
4
- data.tar.gz: a844984d53df0fd9f8dbd044f9d0378b9cb86c0cd51ede77b2aacdd75d3ec41c
3
+ metadata.gz: 3e862771bbdfb64ff2afb022531b1250695b8741628eeefbb1e3b04df397cdda
4
+ data.tar.gz: e1d399959f57b304de4decd054d21d45e9918bdd8f04a6f78f14e6aa53132827
5
5
  SHA512:
6
- metadata.gz: ac71e3cd39adb06862d2e8ca9d4d6bf3478989dcbc72c5477e24530a825e27fd39cd3c120bf19e6593026529da68e040c0742b4a4f9b03fd31707073ed829911
7
- data.tar.gz: 03236ce54e54d9aa71a71c6af0b63a340797045badd69c175f78e4c8d2fb5c38635b894e466c5a223b2c40a231c519477b420f8b4286b7129790f562a9f51a42
6
+ metadata.gz: d047094b8f553a82da8ddc19b76dad83cf53b75241614fa29a52213d14d2cb2c20bf1f889f5b663dbc0c56889b40a65c314fa51f89605bae429c79f18359357f
7
+ data.tar.gz: e79df9ac71b7c9d7e3bc6df57108fdefadbc9a43bfe5b45181b736880f57c757a3006e9596b336c7418b1fe2e9041467b769de11dfb0b5dd83d4f466a14866c7
@@ -30,7 +30,7 @@ module Bizside
30
30
 
31
31
  def valid_#{attr}?
32
32
  valid_format?(@#{attr}) &&
33
- valid_range?(MIN_#{attr.upcase}, MAX_#{attr.upcase}, @#{attr})
33
+ valid_range_and_step?(MIN_#{attr.upcase}, MAX_#{attr.upcase}, @#{attr})
34
34
  end
35
35
  EOS
36
36
  end
@@ -41,22 +41,40 @@ module Bizside
41
41
  value =~ /\A(\*(\/\d+)?|\d+(,\d+)*(-\d+)*(\/\d+)*)\Z/
42
42
  end
43
43
 
44
+ def valid_range_and_step?(min, max, value)
45
+ valid_range?(min, max, value) && valid_step?(min, max, value)
46
+ end
47
+
44
48
  def valid_range?(min, max, value)
45
- validate_values = remove_to_ignore_value(value).split(",")
46
- validate_values.reject do |v|
49
+ range_values = get_range_value(value).split(",")
50
+ range_values.reject do |v|
47
51
  if v.include?("-")
48
52
  range_v = v.split("-")
49
53
  (min..max).include?(range_v[0].to_i) &&
50
54
  (min..max).include?(range_v[1].to_i) &&
51
55
  range_v[0].to_i < range_v[1].to_i
52
56
  else
53
- (min..max).include? v.to_i
57
+ (min..max).include?(v.to_i)
54
58
  end
55
59
  end.empty?
56
60
  end
57
61
 
58
- def remove_to_ignore_value(value)
62
+ def valid_step?(min, max, value)
63
+ v = get_step_value(value)
64
+ return true if v.empty?
65
+
66
+ v != '*' &&
67
+ v.to_i != 0 &&
68
+ (min..max).include?(v.to_i)
69
+ end
70
+
71
+ def get_range_value(value)
59
72
  value.gsub(/(\/\d*|\*)/, "")
60
73
  end
74
+
75
+ def get_step_value(value)
76
+ return "" unless value.include?('/')
77
+ value.gsub(/.*\/(.*)/) { $1 }
78
+ end
61
79
  end
62
80
  end
@@ -173,9 +173,11 @@ module Bizside
173
173
  if cronline.to_s.strip.empty?
174
174
  return
175
175
  elsif CronValidator.new(cronline).valid?
176
+ new_cron = set_cron_options(cron)
177
+
176
178
  config = {
177
179
  :class => job_type,
178
- :cron => cron,
180
+ :cron => new_cron,
179
181
  :args => args,
180
182
  :persist => true
181
183
  }
@@ -404,5 +406,19 @@ module Bizside
404
406
  end
405
407
  private_class_method :do_perform_and_hooks_instantly
406
408
 
409
+ def self.set_cron_options(cron)
410
+ ret = Array(cron)
411
+ if ret.size > 1
412
+ opts = ret.second
413
+ opts ||= {}
414
+ opts = opts.with_indifferent_access
415
+ opts = opts.merge(blocking: true)
416
+ else
417
+ opts = { blocking: true }.with_indifferent_access
418
+ end
419
+ ret[1] = opts
420
+ ret
421
+ end
422
+
407
423
  end
408
424
  end
@@ -1,3 +1,3 @@
1
1
  module Bizside
2
- VERSION = '2.3.5'
2
+ VERSION = '2.3.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bizside
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.5
4
+ version: 2.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - bizside-developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-01 00:00:00.000000000 Z
11
+ date: 2024-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -413,7 +413,6 @@ files:
413
413
  - lib/bizside/implicit_ftps.rb
414
414
  - lib/bizside/itamae_conf.rb
415
415
  - lib/bizside/job_utils.rb
416
- - lib/bizside/log_analyzer.rb
417
416
  - lib/bizside/mailer.rb
418
417
  - lib/bizside/query_builder.rb
419
418
  - lib/bizside/railtie.rb
@@ -476,7 +475,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
476
475
  - !ruby/object:Gem::Version
477
476
  version: '0'
478
477
  requirements: []
479
- rubygems_version: 3.3.26
478
+ rubygems_version: 3.4.19
480
479
  signing_key:
481
480
  specification_version: 4
482
481
  summary: Bizside is an utilities for web application.
@@ -1,122 +0,0 @@
1
- module Bizside
2
- class LogAnalyzer
3
- attr_reader :add_on_name
4
- attr_reader :error_contents
5
-
6
- def initialize(add_on_name, files)
7
- @add_on_name = add_on_name
8
- @files = files
9
- end
10
-
11
- def analyze(output_file_name)
12
- @success = system("request-log-analyzer --format rails3 --parse-strategy cautious --file #{output_file_name}.html --output HTML #{@files.join(' ')}")
13
- end
14
-
15
- def success?
16
- @success
17
- end
18
-
19
- def scrape_errors
20
- @error_content = String.new
21
- @error_contents = {}
22
-
23
- # TODO Okozeを解析できるようにする
24
- return if add_on_name == 'okoze'
25
-
26
- # TODO ログ内で重複したエラーメッセージを除外する
27
- return if ['amadai', 'webcam_api', 'seri', 'sushioke'].include?(add_on_name)
28
-
29
- @files.each do |file|
30
- content = File.read(file, encoding: 'utf-8')
31
- content = content.encode('UTF-16BE', 'UTF-8', :invalid => :replace, :undef => :replace, :replace => '?').encode('UTF-8')
32
- next unless content.include?('Completed 500') or content.include?('FATAL')
33
-
34
- # ログをプロセス単位に分割
35
- partition_contents = divide_into_pid(content)
36
- # プロセス単位に分割したログからエラーを抽出
37
- partition_content_errors = extract_error_log(partition_contents)
38
- # 抽出したエラーを出力用にまとめる
39
- partition_content_errors.each do |pid, pc|
40
- @error_contents[pid] = "#{file}のエラー抽出結果\n\n\n" if @error_contents[pid].nil? or @error_contents[pid].empty?
41
- @error_contents[pid] << pc
42
- end
43
-
44
- @error_contents
45
- end
46
- end
47
-
48
- def divide_into_pid(content)
49
- pid = nil
50
- ret = {}
51
- content.each_line do |c|
52
- s = c.scan(/#[0-9]+\]/)
53
- pid = s.first.scan(/[0-9]+/).first unless s.empty?
54
- ret[pid] = "" unless ret[pid]
55
- ret[pid] << c
56
- end
57
-
58
- ret
59
- end
60
-
61
- def extract_error_log(partition_contents)
62
- ret = {}
63
- partition_contents.each do |pid, pc|
64
- tmp = ""
65
- pc.each_line do |line|
66
- unless line.scan(/: Started /).empty?
67
- if !tmp.scan(/Completed 500/).empty? or !tmp.scan(/\] FATAL/).empty? or !tmp.scan(/\[FATAL\]/).empty?
68
- ret[pid] = "" if ret[pid].nil? or ret[pid].empty?
69
- ret[pid] << tmp
70
- end
71
- tmp.clear
72
- end
73
- tmp << exclude_error_log_line(line)
74
- end
75
-
76
- # Startedの前にログが終了した場合、その時点までにエラーが含まれていれば抽出に含める
77
- if !tmp.empty? and !tmp.scan(/Completed 500/).empty? or !tmp.scan(/\] FATAL/).empty? or !tmp.scan(/\[FATAL\]/).empty?
78
- ret[pid] = "" if ret[pid].nil? or ret[pid].empty?
79
- ret[pid] << tmp
80
- end
81
- tmp.clear
82
- end
83
-
84
- ret
85
- end
86
-
87
- def exclude_error_log_line(line)
88
- ret = nil
89
- ret = line.match("INFO -- : ジョブ.*登録します。")
90
-
91
- if ret.nil?
92
- line
93
- else
94
- ""
95
- end
96
- end
97
-
98
- # TODO 重複したエラーログを除外する
99
- def get_duplicate_check_line(line)
100
- ret = line.scan(/(INFO -- :.*|ERROR -- :.*|WARN -- :.*|FATAL -- :.*)/).first
101
- ret = ret.gsub(/\" for .*/, "\"") unless ret.nil or ret.empty?
102
-
103
- ret
104
- end
105
-
106
- # TODO 重複したエラーログを除外する
107
- def duplicate_error_log?(extract_error_logs, duplicate_check_lines)
108
- res = false
109
- extract_error_logs.each do |eer|
110
- tmp = false
111
- duplicate_check_lines.each do |dcl|
112
- tmp = eer.include?(dcl)
113
- break unless tmp
114
- end
115
- res = tmp
116
- break if res
117
- end
118
-
119
- res
120
- end
121
- end
122
- end