Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F461729
chart_generator.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, May 18, 5:56 PM
Size
2 KB
Mime Type
text/x-ruby
Expires
Tue, May 20, 5:56 PM (1 d, 15 h)
Engine
blob
Format
Raw Data
Handle
220076
Attached To
rARCHIVING archiving
chart_generator.rb
View Options
module
ChartGenerator
extend
self
def
job_statuses
(
clients
,
days_ago
)
result
=
{
'Running'
=>
{
y
:
0
,
color
:
'#D9EDF7'
},
'Completed'
=>
{
y
:
0
,
color
:
'#DFF0D8'
},
'Canceled'
=>
{
y
:
0
,
color
:
'#999999'
},
'Failed'
=>
{
y
:
0
,
color
:
'#FFDEDE'
},
'Waiting'
=>
{
y
:
0
,
color
:
'#FCF8E3'
},
}
Job
.
where
(
ClientId
:
clients
)
.
where
(
'StartTime > :time OR SchedTime > :time'
,
time
:
days_ago
.
days
.
ago
)
.
group
(
:JobStatus
)
.
count
.
each
do
|
k
,
v
|
if
k
==
'R'
result
[
'Running'
][
:y
]
+=
v
elsif
k
==
'T'
result
[
'Completed'
][
:y
]
+=
v
elsif
[
'f'
,
'E'
].
include?
k
result
[
'Failed'
][
:y
]
+=
v
elsif
k
==
'A'
result
[
'Canceled'
][
:y
]
+=
v
elsif
[
"C"
,
"F"
,
"M"
,
"S"
,
"c"
,
"d"
,
"j"
,
"m"
,
"p"
,
"s"
,
"t"
].
include?
k
result
[
'Waiting'
][
:y
]
+=
v
end
end
series
=
result
.
map
{
|
k
,
v
|
{
name
:
"
#{
v
[
:y
]
}
#{
k
}
"
,
y
:
v
[
:y
]
,
color
:
v
[
:color
]
}
}
Chart
::
Pie
.
new
(
series
,
title
:
'Job Status'
,
name
:
'Status'
)
.
chart_opts
.
to_json
end
def
job_stats
(
clients
,
days_ago
)
days
=
days_ago
.
downto
(
0
)
.
map
{
|
x
|
I18n
.
l
(
x
.
days
.
ago
.
to_date
,
format
:
:short
)
}
year_days
=
days_ago
.
downto
(
0
)
.
map
{
|
x
|
x
.
days
.
ago
.
yday
}
yaxis
=
[
{
title
:
{
text
:
'Bytes Size'
},
labels
:
{
format
:
'{value} MB'
},
opposite
:
true
},
{
title
:
{
text
:
'Files Count'
},
labels
:
{
format
:
'{value} Files'
}
}
]
files_data
=
year_days
.
map
{
|
x
|
[
x
,
0
]
}
.
to_h
bytes_data
=
year_days
.
map
{
|
x
|
[
x
,
0
]
}
.
to_h
Job
.
where
(
ClientId
:
clients
,
JobStatus
:
'T'
)
.
where
(
EndTime
:
days_ago
.
days
.
ago
.
end_of_day
..
Time
.
now
.
end_of_day
)
.
each
do
|
job
|
files_data
.
merge!
(
Hash
[
job
.
end_time
.
yday
,
job
.
job_files
.
to_i
]
)
do
|
_
,
old_v
,
new_v
|
old_v
+
new_v
end
bytes_data
.
merge!
(
Hash
[
job
.
end_time
.
yday
,
(
job
.
job_bytes
.
to_f
/
1048576
)
.
round
(
1
)
]
)
do
|
_
,
old_v
,
new_v
|
old_v
+
new_v
end
end
files
=
{
name
:
'Files Count'
,
data
:
files_data
.
values
,
yAxis
:
1
,
tooltip
:
{
valueSuffix
:
''
}
}
bytes
=
{
name
:
'Bytes Size'
,
data
:
bytes_data
.
values
,
yAxis
:
0
,
tooltip
:
{
valueSuffix
:
'MB'
}
}
Chart
::
ColumnTwoAxis
.
new
(
[
files
,
bytes
]
,
title
:
'Job Stats'
,
categories
:
days
,
yaxis
:
yaxis
)
.
chart_opts
.
to_json
end
end
Event Timeline
Log In to Comment