marty 1.0.53 → 1.0.54
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/Gemfile +1 -1
- data/Gemfile.lock +9 -2
- data/app/controllers/marty/diagnostic_controller.rb +41 -70
- data/app/views/marty/diagnostic/diag.html.erb +34 -0
- data/app/views/marty/diagnostic/op.html.erb +26 -25
- data/lib/marty/engine.rb +0 -2
- data/lib/marty/version.rb +1 -1
- data/spec/controllers/diagnostic_controller_spec.rb +51 -56
- metadata +3 -4
- data/app/assets/stylesheets/marty/diagnostic.css +0 -34
- data/app/views/layouts/marty/diagnostic.html.erb +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b39a9aaf4fd1b9f90bdff0503ea509ae7b4e4232
|
|
4
|
+
data.tar.gz: 36f9283c373a1e5e1f0ab1c5e5a00efab731238c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0212491f9ac246e2731fc2629d7543f49f0c814b597459cef568be5fc824ce891b56553f083f5de3a831ff8cd6585e118c82379f2512d74f08eff4913f08b40
|
|
7
|
+
data.tar.gz: abf2e69338e8f90b1f9dac8b15a31896d1ffab3681190adece922db454ac8dada1ecce411cef5c417f3d5d161d0a0e5f250bfa917de03e8ef17fe069163e9b77
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
marty (1.0.
|
|
4
|
+
marty (1.0.54)
|
|
5
5
|
axlsx (= 2.1.0pre)
|
|
6
6
|
coderay
|
|
7
7
|
delorean_lang (~> 0.1)
|
|
@@ -156,6 +156,10 @@ GEM
|
|
|
156
156
|
rake (>= 0.8.7)
|
|
157
157
|
thor (>= 0.18.1, < 2.0)
|
|
158
158
|
rake (12.1.0)
|
|
159
|
+
rspec (3.6.0)
|
|
160
|
+
rspec-core (~> 3.6.0)
|
|
161
|
+
rspec-expectations (~> 3.6.0)
|
|
162
|
+
rspec-mocks (~> 3.6.0)
|
|
159
163
|
rspec-by (0.0.7)
|
|
160
164
|
rspec-core (>= 3)
|
|
161
165
|
rspec-core (3.6.0)
|
|
@@ -163,6 +167,8 @@ GEM
|
|
|
163
167
|
rspec-expectations (3.6.0)
|
|
164
168
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
165
169
|
rspec-support (~> 3.6.0)
|
|
170
|
+
rspec-instafail (1.0.0)
|
|
171
|
+
rspec
|
|
166
172
|
rspec-mocks (3.6.0)
|
|
167
173
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
168
174
|
rspec-support (~> 3.6.0)
|
|
@@ -220,10 +226,11 @@ DEPENDENCIES
|
|
|
220
226
|
pg (~> 0.18.4)
|
|
221
227
|
pry-rails
|
|
222
228
|
rails (~> 4.2.1)
|
|
229
|
+
rspec-instafail
|
|
223
230
|
rspec-rails (~> 3.0)
|
|
224
231
|
selenium-webdriver
|
|
225
232
|
sqlite3
|
|
226
233
|
timecop
|
|
227
234
|
|
|
228
235
|
BUNDLED WITH
|
|
229
|
-
1.16.0
|
|
236
|
+
1.16.0
|
|
@@ -6,8 +6,10 @@ module Marty
|
|
|
6
6
|
layout false
|
|
7
7
|
def op
|
|
8
8
|
begin
|
|
9
|
-
# inject request into
|
|
10
|
-
Base.request
|
|
9
|
+
# inject request object into base class of all diagnostics
|
|
10
|
+
Base.request = request
|
|
11
|
+
|
|
12
|
+
# determine if request is aggregate and return result
|
|
11
13
|
params[:scope] = 'nodal' unless params[:scope]
|
|
12
14
|
diag = self.class.get_sub_class(params[:op])
|
|
13
15
|
@result = params[:scope] == 'local' ? diag.generate : diag.aggregate
|
|
@@ -32,23 +34,25 @@ module Marty
|
|
|
32
34
|
#
|
|
33
35
|
############################################################################
|
|
34
36
|
class Base
|
|
35
|
-
@@request
|
|
36
|
-
@@read_only
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@@request = req
|
|
40
|
-
end
|
|
37
|
+
@@request = nil
|
|
38
|
+
@@read_only = Marty::Util.db_in_recovery?
|
|
39
|
+
@@template = ActionController::Base.new.lookup_context.
|
|
40
|
+
find_template("marty/diagnostic/diag").identifier
|
|
41
41
|
|
|
42
42
|
def self.request
|
|
43
43
|
@@request
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
def self.request= req
|
|
47
|
+
@@request = req
|
|
48
|
+
end
|
|
49
|
+
|
|
46
50
|
def self.aggregate op_name=name.demodulize
|
|
47
51
|
get_nodal_diags(op_name)
|
|
48
52
|
end
|
|
49
53
|
|
|
50
54
|
def self.get_nodal_diags op_name, scope='local'
|
|
51
|
-
|
|
55
|
+
self.get_nodes.map do |n|
|
|
52
56
|
ssl = ENV['HTTPS'] == 'on'
|
|
53
57
|
uri = Addressable::URI.new(host: n, port: ssl ? 443 : @@request.port)
|
|
54
58
|
uri.query_values = {op: op_name.underscore,
|
|
@@ -57,7 +61,7 @@ module Marty
|
|
|
57
61
|
uri.path = '/marty/diag.json'
|
|
58
62
|
opts = {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}
|
|
59
63
|
{n => JSON.parse(open(uri, opts).readlines[0])}
|
|
60
|
-
|
|
64
|
+
end.sum
|
|
61
65
|
end
|
|
62
66
|
|
|
63
67
|
def self.find_failures data
|
|
@@ -85,36 +89,20 @@ module Marty
|
|
|
85
89
|
"Failure: #{message}"
|
|
86
90
|
end
|
|
87
91
|
|
|
92
|
+
# determine "target" (highest) value for tests
|
|
93
|
+
def self.get_targets data
|
|
94
|
+
data.each_with_object({}) do |(_, v), h|
|
|
95
|
+
v.each do |k, r|
|
|
96
|
+
r = r.to_s
|
|
97
|
+
h[k] ||= r
|
|
98
|
+
h[k] = r if h[k] < r
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
88
103
|
def self.display data, type='nodal'
|
|
89
104
|
data = {'local' => data} if type == 'local'
|
|
90
|
-
|
|
91
|
-
<% inconsistent = diff(data) %>
|
|
92
|
-
<h3><%=name.demodulize%></h3>
|
|
93
|
-
<%='<h3 class="error">Issues Detected</h3>' if
|
|
94
|
-
inconsistent%>
|
|
95
|
-
<div class="wrapper">
|
|
96
|
-
<% data.each do |node, result| %>
|
|
97
|
-
<table>
|
|
98
|
-
<% issues = ('error' if inconsistent) %>
|
|
99
|
-
<th colspan="2" class="<%=issues%>">
|
|
100
|
-
<small>
|
|
101
|
-
<%=inconsistent ? node :
|
|
102
|
-
(type == 'local' ? 'local' : 'consistent') %>
|
|
103
|
-
</small>
|
|
104
|
-
</th>
|
|
105
|
-
<% result.each do |name, value| %>
|
|
106
|
-
<tr class="<%=is_failure?(value) ? 'failed' :
|
|
107
|
-
'passed' %>">
|
|
108
|
-
<td><%=name%></td>
|
|
109
|
-
<td class="overflow"><%=simple_format(value.to_s)%></td>
|
|
110
|
-
</tr>
|
|
111
|
-
<% end %>
|
|
112
|
-
</table>
|
|
113
|
-
<% break unless inconsistent %>
|
|
114
|
-
<% end %>
|
|
115
|
-
</div>
|
|
116
|
-
ERB
|
|
117
|
-
ERB.new(display.html_safe).result(binding)
|
|
105
|
+
ERB.new(File.open(@@template).read).result(binding)
|
|
118
106
|
end
|
|
119
107
|
|
|
120
108
|
def self.get_pg_connections
|
|
@@ -170,7 +158,7 @@ module Marty
|
|
|
170
158
|
|
|
171
159
|
class Database < Base
|
|
172
160
|
def self.db_server_name
|
|
173
|
-
ActiveRecord::Base.connection_config[:host] || 'undefined'
|
|
161
|
+
ActiveRecord::Base.connection_config[:host] || error('undefined')
|
|
174
162
|
end
|
|
175
163
|
|
|
176
164
|
def self.db_adapter_name
|
|
@@ -206,16 +194,18 @@ module Marty
|
|
|
206
194
|
class Environment < Database
|
|
207
195
|
def self.generate
|
|
208
196
|
rbv = "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_PLATFORM})"
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
197
|
+
{
|
|
198
|
+
'Environment' => Rails.env,
|
|
199
|
+
'Rails' => Rails.version,
|
|
200
|
+
'Netzke Core' => Netzke::Core::VERSION,
|
|
201
|
+
'Netzke Basepack' => Netzke::Basepack::VERSION,
|
|
202
|
+
'Ruby' => rbv,
|
|
203
|
+
'RubyGems' => Gem::VERSION,
|
|
204
|
+
'Database Adapter' => db_adapter_name,
|
|
205
|
+
'Database Server' => db_server_name,
|
|
206
|
+
'Database Version' => db_version,
|
|
207
|
+
'Database Schema Version' => db_schema
|
|
208
|
+
}
|
|
219
209
|
end
|
|
220
210
|
end
|
|
221
211
|
|
|
@@ -269,15 +259,6 @@ module Marty
|
|
|
269
259
|
c['name'].include?('delayed_job')}
|
|
270
260
|
end
|
|
271
261
|
|
|
272
|
-
def self.pretty hash
|
|
273
|
-
hash.keys.map{|k| k + " => " + hash[k].to_s}.join("\n")
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
def self.verify_history delayed_versions
|
|
277
|
-
@@history ||= delayed_versions
|
|
278
|
-
@@history == delayed_versions
|
|
279
|
-
end
|
|
280
|
-
|
|
281
262
|
def self.validate data
|
|
282
263
|
data.each_with_object({}) do
|
|
283
264
|
|(k,v), h|
|
|
@@ -288,7 +269,7 @@ module Marty
|
|
|
288
269
|
|
|
289
270
|
def self.generate
|
|
290
271
|
count = delayed_job_count
|
|
291
|
-
return {'
|
|
272
|
+
return {'Issue' => ['No delayed jobs are running.']} if count.zero?
|
|
292
273
|
|
|
293
274
|
# we will only iterate by half of the total delayed workers to avoid
|
|
294
275
|
# excess use of delayed job time
|
|
@@ -306,17 +287,7 @@ module Marty
|
|
|
306
287
|
end
|
|
307
288
|
|
|
308
289
|
def self.aggregate
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
unless verify_history(d_vers)
|
|
312
|
-
a = @@history.to_a
|
|
313
|
-
b = d_vers.to_a
|
|
314
|
-
@@history = d_vers
|
|
315
|
-
d_vers += {"WARN" => error(["Result different from "\
|
|
316
|
-
"#{Marty::Helper.my_ip}'s history.",
|
|
317
|
-
"#{pretty(Hash[a - b])}"].join("\n"))}
|
|
318
|
-
end
|
|
319
|
-
package(d_vers)
|
|
290
|
+
package(validate(generate))
|
|
320
291
|
end
|
|
321
292
|
|
|
322
293
|
def self.diff data
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<% inconsistent = diff(data) %>
|
|
2
|
+
<h3><%=name.demodulize%></h3>
|
|
3
|
+
<%='<h3 class="error">Issues Detected</h3>' if
|
|
4
|
+
inconsistent%>
|
|
5
|
+
<div class="wrapper">
|
|
6
|
+
<table>
|
|
7
|
+
<%# Create node table headers if applicable %>
|
|
8
|
+
<tr>
|
|
9
|
+
<%='<th></th>' if inconsistent %>
|
|
10
|
+
<% data.keys.each do |node| %>
|
|
11
|
+
<th <%='colspan="2"' unless inconsistent %> scope="col">
|
|
12
|
+
<%= inconsistent ? node :
|
|
13
|
+
(type == 'local' ? 'local' : 'consistent') %>
|
|
14
|
+
</th>
|
|
15
|
+
<% break unless inconsistent %>
|
|
16
|
+
<% end %>
|
|
17
|
+
</tr>
|
|
18
|
+
<%# Create row headers and display node results %>
|
|
19
|
+
<% data[data.keys.first].each do |key, value| %>
|
|
20
|
+
<tr>
|
|
21
|
+
<th scope="row"><%= key %></th>
|
|
22
|
+
<% targets = get_targets(data) %>
|
|
23
|
+
<% data.each do |_node, result| %>
|
|
24
|
+
<td class="overflow <%= (is_failure?(value) ||
|
|
25
|
+
(result[key].to_s != targets[key].to_s)) ? 'error' :
|
|
26
|
+
'passed' %>">
|
|
27
|
+
<%= simple_format(result[key].to_s) %>
|
|
28
|
+
</td>
|
|
29
|
+
<% break unless inconsistent %>
|
|
30
|
+
<% end %>
|
|
31
|
+
</tr>
|
|
32
|
+
<% end %>
|
|
33
|
+
</table>
|
|
34
|
+
</div>
|
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
<title><%=Rails.application.class.parent_name%> Diagnostic</title>
|
|
5
5
|
<style type="text/css">
|
|
6
6
|
body { margin: auto;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
margin-bottom: 50px;
|
|
8
|
+
border: 0;
|
|
9
|
+
background-color: #fff;
|
|
10
|
+
color: #333333;
|
|
11
|
+
font-family: Arial, Helvetica, Verdana, sans-serif;
|
|
12
|
+
font-weight: normal;
|
|
13
|
+
font-size: 9pt; }
|
|
14
14
|
table { border: none;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
border-collapse: collapse;
|
|
16
|
+
display: inline-block;
|
|
17
|
+
margin: 0px 5px 0px 5px;
|
|
18
|
+
text-align: left;
|
|
19
19
|
}
|
|
20
20
|
th { padding: 9px;
|
|
21
21
|
border: none;
|
|
@@ -23,14 +23,12 @@
|
|
|
23
23
|
td { text-align: left;
|
|
24
24
|
padding: 9px;
|
|
25
25
|
}
|
|
26
|
-
th.error { background-color: #ff5555;
|
|
27
|
-
color: #ffffff;
|
|
28
|
-
}
|
|
29
26
|
tr { text-align: center;}
|
|
30
27
|
tr.passed { background-color: #d0e9c6 }
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
td.passed { background-color: #d0e9c6 }
|
|
29
|
+
td.error { background-color: #ff5555;
|
|
30
|
+
color: #ffffff;}
|
|
31
|
+
th.error { background-color: #ff5555;}
|
|
34
32
|
td.desc { font-size: 10pt; }
|
|
35
33
|
p { white-space: pre-line;}
|
|
36
34
|
h1 { display: block;
|
|
@@ -40,22 +38,25 @@
|
|
|
40
38
|
font-size: 18pt;
|
|
41
39
|
color: #ffffff;
|
|
42
40
|
line-height: 1.5em; }
|
|
41
|
+
h1.error {background-color: #ff5555;}
|
|
43
42
|
h2 {text-align: center;}
|
|
44
43
|
h3.error {color: red;}
|
|
45
44
|
h3 {text-align: center;}
|
|
46
45
|
td.overflow { max-width: 350px;
|
|
47
|
-
|
|
46
|
+
overflow: auto; }
|
|
48
47
|
.wrapper {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
overflow-x: auto;
|
|
49
|
+
white-space: nowrap;
|
|
50
|
+
display: block;}
|
|
52
51
|
</style>
|
|
53
52
|
</head>
|
|
54
53
|
<body>
|
|
55
54
|
<div style="text-align:center">
|
|
56
|
-
<h1
|
|
55
|
+
<h1 class="<%= 'error' if @result.to_s.include?('error') %>">
|
|
56
|
+
<%=Rails.application.class.parent_name%> Diagnostic
|
|
57
|
+
</h1>
|
|
57
58
|
<h3><i><%= DateTime.now %></i></h3>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
</body>
|
|
59
|
+
<%== @result %>
|
|
60
|
+
</div>
|
|
61
|
+
</body>
|
|
61
62
|
</html>
|
data/lib/marty/engine.rb
CHANGED
data/lib/marty/version.rb
CHANGED
|
@@ -39,25 +39,31 @@ module Marty
|
|
|
39
39
|
<<-ERB
|
|
40
40
|
<h3>Version</h3>
|
|
41
41
|
<div class="wrapper">
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
42
|
+
<table>
|
|
43
|
+
<tr>
|
|
44
|
+
<th colspan="2" scope="col">consistent</th>
|
|
45
|
+
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<th scope="row">Marty</th>
|
|
48
|
+
<td class="overflow passed"><p>#{Marty::VERSION}</p>
|
|
49
|
+
</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<th scope="row">Delorean</th>
|
|
53
|
+
<td class="overflow passed"><p>#{Delorean::VERSION}</p>
|
|
54
|
+
</td>
|
|
55
|
+
</tr>
|
|
56
|
+
<tr>
|
|
57
|
+
<th scope="row">Mcfly</th>
|
|
58
|
+
<td class="overflow passed"><p>#{Mcfly::VERSION}</p>
|
|
59
|
+
</td>
|
|
60
|
+
</tr>
|
|
61
|
+
<tr>
|
|
62
|
+
<th scope="row">Git</th>
|
|
63
|
+
<td class="overflow passed"><p>#{git}</p>
|
|
64
|
+
</td>
|
|
65
|
+
</tr>
|
|
66
|
+
</table>
|
|
61
67
|
</div>
|
|
62
68
|
ERB
|
|
63
69
|
end
|
|
@@ -68,42 +74,31 @@ module Marty
|
|
|
68
74
|
<h3 class="error">Issues Detected </h3>
|
|
69
75
|
<div class="wrapper">
|
|
70
76
|
<table>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<td>Delorean</td>
|
|
97
|
-
<td class="overflow"><p>#{Delorean::VERSION}</p></td>
|
|
98
|
-
</tr>
|
|
99
|
-
<tr class="passed">
|
|
100
|
-
<td>Mcfly</td>
|
|
101
|
-
<td class="overflow"><p>#{Mcfly::VERSION}</p></td>
|
|
102
|
-
</tr>
|
|
103
|
-
<tr class="passed">
|
|
104
|
-
<td>Git</td>
|
|
105
|
-
<td class="overflow"><p>#{git}</p></td>
|
|
106
|
-
</tr>
|
|
77
|
+
<tr>
|
|
78
|
+
<th></th>
|
|
79
|
+
<th scope="col">node1</th>
|
|
80
|
+
<th scope="col">node2</th>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<th scope="row">Marty</th>
|
|
84
|
+
<td class="overflow passed"><p>#{Marty::VERSION}</p></td>
|
|
85
|
+
<td class="overflow error"><p>#{val}</p></td>
|
|
86
|
+
</tr>
|
|
87
|
+
<tr>
|
|
88
|
+
<th scope="row">Delorean</th>
|
|
89
|
+
<td class="overflow passed"><p>#{Delorean::VERSION}</p></td>
|
|
90
|
+
<td class="overflow passed"><p>#{Delorean::VERSION}</p></td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<th scope="row">Mcfly</th>
|
|
94
|
+
<td class="overflow passed"><p>#{Mcfly::VERSION}</p></td>
|
|
95
|
+
<td class="overflow passed"><p>#{Mcfly::VERSION}</p></td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr>
|
|
98
|
+
<th scope="row">Git</th>
|
|
99
|
+
<td class="overflow passed"><p>#{git}</p></td>
|
|
100
|
+
<td class="overflow passed"><p>#{git}</p></td>
|
|
101
|
+
</tr>
|
|
107
102
|
</table>
|
|
108
103
|
</div>
|
|
109
104
|
ERB
|
|
@@ -145,7 +140,7 @@ module Marty
|
|
|
145
140
|
data = {'node1' => version, 'node2' => version + {'Marty' => ver}}
|
|
146
141
|
expected = version_display_fail(ver)
|
|
147
142
|
test = described_class::Version.display(data)
|
|
148
|
-
expect(minimize(
|
|
143
|
+
expect(minimize(test)).to eq(minimize(expected))
|
|
149
144
|
end
|
|
150
145
|
end
|
|
151
146
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: marty
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.54
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arman Bostani
|
|
@@ -14,7 +14,7 @@ authors:
|
|
|
14
14
|
autorequire:
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
|
-
date: 2017-11-
|
|
17
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
|
18
18
|
dependencies:
|
|
19
19
|
- !ruby/object:Gem::Dependency
|
|
20
20
|
name: pg
|
|
@@ -202,7 +202,6 @@ files:
|
|
|
202
202
|
- Rakefile
|
|
203
203
|
- app/assets/images/marty/.gitkeep
|
|
204
204
|
- app/assets/stylesheets/marty/application.css
|
|
205
|
-
- app/assets/stylesheets/marty/diagnostic.css
|
|
206
205
|
- app/components/marty/api_auth_view.rb
|
|
207
206
|
- app/components/marty/api_config_view.rb
|
|
208
207
|
- app/components/marty/api_log_view.rb
|
|
@@ -439,7 +438,7 @@ files:
|
|
|
439
438
|
- app/models/marty/user.rb
|
|
440
439
|
- app/models/marty/user_role.rb
|
|
441
440
|
- app/views/layouts/marty/application.html.erb
|
|
442
|
-
- app/views/
|
|
441
|
+
- app/views/marty/diagnostic/diag.html.erb
|
|
443
442
|
- app/views/marty/diagnostic/op.html.erb
|
|
444
443
|
- config/database.yml.travis
|
|
445
444
|
- config/locales/en.yml
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
body { margin: 0;
|
|
2
|
-
padding: 0;
|
|
3
|
-
border: 0;
|
|
4
|
-
background-color: #fff;
|
|
5
|
-
color: #333333;
|
|
6
|
-
text-align: left;
|
|
7
|
-
font-family: Arial, Helvetica, Verdana, sans-serif;
|
|
8
|
-
font-weight: normal;
|
|
9
|
-
font-size: 11pt; }
|
|
10
|
-
table { border-width: 0px;
|
|
11
|
-
margin-left: auto;
|
|
12
|
-
margin-right: auto;
|
|
13
|
-
border-spacing: 1px;
|
|
14
|
-
width: 75% }
|
|
15
|
-
th { padding: 9px;
|
|
16
|
-
background-color: #d6d6d6 }
|
|
17
|
-
td { padding: 9px;
|
|
18
|
-
-moz-border-radius: 5px;
|
|
19
|
-
border-radius: 5px;
|
|
20
|
-
-webkit-border-radius: 5px;
|
|
21
|
-
border-style: solid;
|
|
22
|
-
border-width: 1px;
|
|
23
|
-
border-color: #999999; }
|
|
24
|
-
tr.passed { background-color: #9ed515 }
|
|
25
|
-
tr.warning { background-color: #ffdb58 }
|
|
26
|
-
tr.failed { background-color: #ff5555 }
|
|
27
|
-
td.desc { font-size: 10pt; }
|
|
28
|
-
h1 { display: block;
|
|
29
|
-
margin: 0px auto 40px auto;
|
|
30
|
-
padding: 8px;
|
|
31
|
-
background-color: #3e2155;
|
|
32
|
-
font-size: 18pt;
|
|
33
|
-
color: #ffffff;
|
|
34
|
-
line-height: 1.5em; }
|