brpm_module_bladelogic 0.1.38 → 0.1.39

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.
Files changed (4) hide show
  1. checksums.yaml +8 -8
  2. data/automations/execute_job.rb +64 -39
  3. data/config.yml +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjkzNmNjMDBiOGEwNjE2MmExYjI0YTk5NTRiMzg2ZDRmMmU3MjA0Yg==
4
+ ZTlhYjkyZjQ0YTIxZmQ1NjVlNmU5NGE1NjlkN2RhYmYzYmE5MDcxNw==
5
5
  data.tar.gz: !binary |-
6
- YWZkODRmNzJkMTdmYTMzZTI3Zjk5NWIwMmRmYzM4MjYxY2ZkNGYwYQ==
6
+ MzQ0MjJhYjMwYmNkZjc5N2Q1ZWE0MTc0ZDk4MzBjNjUyN2JiODYyNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzAyNjgzN2E0NzI2NjkwYzhkNzg2YmM1MGEwYTVmMThhYzk3YWY5ODRiMTM5
10
- YWEzZGJmNjY1YzI0YjRlZTA3ZWFlY2ViODU2MDVkZjBmOWU0YjEwMTM1NjZm
11
- NDFhMjBhZWZmYjExODRiY2IwMWNjNjIzZGZlZjA1MWE1Yzc2NDU=
9
+ M2Y0ZGVkODFhMGM1NmFlNzRmN2RhZDYzNTFlNmUwN2MzYzljMDcwMTg3Y2Fh
10
+ NzAxZDZkYzlmNGMzZjA4NzUxMTdiZmJjOTM1YmU1NmZkYTZmY2E3YzlmZTMy
11
+ MzcyNWViNmNlYTA1NmYzNjg5OGJlNGMzYWRjZjA5YzA2Y2JmYWQ=
12
12
  data.tar.gz: !binary |-
13
- ZDEwOTVmMzllNWExOTNmMzUyODBiMWUwZWM5YjU2YmQwNDdhYTVhM2Y0Y2Iy
14
- YTBkNjdmNWFhM2FiNGU4N2UwNWJlN2UzMjNiODllM2FjMTljMzQxMDU3Mjlk
15
- M2NiZGVhMzUyZGRjOWI2YTIxNmI5ZDVmOGJkMTQ0ZTY4NjVjZDQ=
13
+ NTU2MzIwMjk2YmZmNDBlMWUxMDRiN2Y2ODBhM2JmZTBjOTc2OTkyODU2YzUw
14
+ NWY5MDQ0NGNmZTQ3MWI1YjEyOTExMDE2YjcyNDFkY2YxZTAxNjk4OWI4Zjdl
15
+ NjczNzcxMjRmYjNlNTM1ZWFjOWY3OTUxYTdkYjM1Y2NkYjg2YzQ=
@@ -12,42 +12,6 @@ class String
12
12
  end
13
13
  end
14
14
 
15
- def pack_response_for_result_summaries(csv_content)
16
- logs = csv_content[6..-1] # remove the headers of the csv file
17
-
18
- logs = logs.select { |log| !log[0].start_with?("Run at") }
19
-
20
- logs.each do |log|
21
- log[2] = DateTime.parse(log[2])
22
- end
23
-
24
- logs = logs.sort_by { |log| [log[0], log[2]] }
25
-
26
- servers_with_logs = logs.group_by {|log| log[0] }
27
- failed_servers_with_logs = servers_with_logs.select {|key, value| value.select{|log| log[1] == "Error"}.count>0}
28
-
29
- BrpmAuto.pack_response "results_summary", "#{servers_with_logs.count - failed_servers_with_logs.count}/#{servers_with_logs.count} servers were successful"
30
-
31
- table_data = [[' ', 'Server', 'Result', 'Error message']]
32
- counter = 0
33
- server_cache = ""
34
- logs.select{|log| log[1] == "Error"}.each do |log|
35
- if log[0] == server_cache
36
- server = ""
37
- else
38
- server = log[0]
39
- server_cache = log[0]
40
- end
41
- result = log[1]
42
- message = log[3]
43
-
44
- counter += 1
45
- table_data << [counter, server, result, message]
46
- end
47
-
48
- BrpmAuto.pack_response "results", { :perPage => 10, :totalItems => table_data.count - 1, :data => table_data }
49
- end
50
-
51
15
  brpm_rest_client = BrpmRestClient.new
52
16
 
53
17
  job_type_and_name = BrpmAuto.params["job_type_and_name"].split("|")
@@ -110,10 +74,71 @@ File.open(results_full_path, "w") do |f|
110
74
  f.puts(results_content)
111
75
  end
112
76
 
113
- csv_content = CSV.parse(results_content)
77
+ BrpmAuto.log("Parsing the results...")
78
+ # As this export contains "embedded" double quotes it is not possible to parse it with the CSV library
79
+ log_lines = results_content.split("\n")[6..-1]
80
+ log_lines.select! { |log| !log.start_with?("run level log,") }
81
+
82
+ logs = log_lines.map do |log_line|
83
+ log_items = log_line.split(",",7)
84
+
85
+ # 0: server
86
+ # 1: phase
87
+ # 2: attempt
88
+ # 3: date part 1
89
+ # 4: date part 2
90
+ # 5: Info - Warning - Error
91
+ # 6: message
92
+
93
+ if log_items.count < 7 # Some lines are broken in two because of end-of-lines appearing in the message field...
94
+ nil
95
+ else
96
+ log_items[6] = log_items[6].tr(",,","")
97
+ log_items[3] = DateTime.parse("#{log_items[3]},#{log_items[4]}")
98
+
99
+ log_items
100
+ end
101
+ end
102
+
103
+ logs = logs.compact # removing the possible nils from the array
104
+
105
+ logs = logs.sort_by { |log| [log[0], log[1], log[3]] }
106
+
107
+ servers_with_logs = logs.group_by { |log| log[0] }
108
+
109
+ failed_servers_with_logs = servers_with_logs.select { |key, value| value.select{|log| log[5] == "Error" }.count > 0}
110
+
111
+ BrpmAuto.pack_response "results_summary", "#{servers_with_logs.count - failed_servers_with_logs.count}/#{servers_with_logs.count} servers were successful"
112
+
113
+ table_data = [[' ', 'Server', 'Simulate', 'Stage', 'Commit']]
114
+ counter = 0
115
+ servers_with_logs.each do |key, logs|
116
+ server = key
117
+
118
+ phase_with_logs = logs.group_by { |log| log[1] }
119
+
120
+ if phase_with_logs.has_key?("Simulate")
121
+ simulate = phase_with_logs["Simulate"].any? { |log| log[5] == "Error" } ? "Error" : "Succeeded"
122
+ else
123
+ simulate = ""
124
+ end
125
+ if phase_with_logs.has_key?("Stage")
126
+ stage = phase_with_logs["Stage"].any? { |log| log[5] == "Error" } ? "Error" : "Succeeded"
127
+ else
128
+ stage = ""
129
+ end
130
+ if phase_with_logs.has_key?("Commit")
131
+ commit = phase_with_logs["Commit"].any? { |log| log[5] == "Error" } ? "Error" : "Succeeded"
132
+ else
133
+ commit = ""
134
+ end
135
+
136
+ counter += 1
137
+ table_data << [counter, server, simulate, stage, commit]
138
+ end
114
139
 
115
- pack_response_for_result_summaries(csv_content)
140
+ BrpmAuto.pack_response "results", { :perPage => 10, :totalItems => table_data.count - 1, :data => table_data }
116
141
 
117
142
  BrpmAuto.pack_response "results_link", results_full_path
118
143
 
119
- raise "The job had errors!" if had_errors
144
+ raise "The Deploy job had errors!" if had_errors
data/config.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  dependencies:
2
2
  - brpm_module_brpm
3
3
 
4
- version: 0.1.38
4
+ version: 0.1.39
5
5
 
6
6
  friendly_name: Blade
7
7
  author: Niek Bartholomeus
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brpm_module_bladelogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.38
4
+ version: 0.1.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niek Bartholomeus