Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.toolbox
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
5
Merge Requests
5
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
slapos.toolbox
Commits
907a8633
Commit
907a8633
authored
May 29, 2019
by
Bryton Lacquement
🚪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wip
parent
c0df0f1c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
26 deletions
+18
-26
slapos/promise/plugin/check_error_on_http_log.py
slapos/promise/plugin/check_error_on_http_log.py
+10
-12
slapos/promise/plugin/check_icmp_packet_lost.py
slapos/promise/plugin/check_icmp_packet_lost.py
+2
-4
slapos/promise/plugin/check_re6st_optimal_status.py
slapos/promise/plugin/check_re6st_optimal_status.py
+2
-4
slapos/promise/plugin/check_url_available.py
slapos/promise/plugin/check_url_available.py
+4
-6
No files found.
slapos/promise/plugin/check_error_on_http_log.py
View file @
907a8633
from
zope
import
interface
as
zope_interface
from
zope
.interface
import
implementer
from
slapos.grid.promise
import
interface
from
slapos.grid.promise.generic
import
GenericPromise
,
TestResult
import
re
import
time
import
os
@
implementer
(
interface
.
IPromise
)
class
RunPromise
(
GenericPromise
):
zope_interface
.
implements
(
interface
.
IPromise
)
def
__init__
(
self
,
config
):
GenericPromise
.
__init__
(
self
,
config
)
# set periodicity to run the promise twice per day
...
...
@@ -26,7 +24,7 @@ class RunPromise(GenericPromise):
if
not
log_file
:
raise
ValueError
(
"log file was not set in promise parameters."
)
regex
=
re
.
compile
(
"^(
\
[[^
\
]]+
\
]) (
\
[[^
\
]]+
\
]) (.*)$"
)
regex
=
re
.
compile
(
br
"^(\
[[^
\]]+\
]) (
\[[^\
]]+
\]) (.*)$"
)
error_amount
=
0
no_route_error
=
0
network_is_unreachable
=
0
...
...
@@ -38,7 +36,7 @@ class RunPromise(GenericPromise):
self
.
logger
.
info
(
"OK"
)
return
with
open
(
log_file
)
as
f
:
with
open
(
log_file
,
"rb"
)
as
f
:
f
.
seek
(
0
,
2
)
block_end_byte
=
f
.
tell
()
f
.
seek
(
-
min
(
block_end_byte
,
4096
),
1
)
...
...
@@ -50,10 +48,10 @@ class RunPromise(GenericPromise):
dt
,
level
,
msg
=
m
.
groups
()
try
:
try
:
t
=
time
.
strptime
(
dt
[
1
:
-
1
],
"%a %b %d %H:%M:%S %Y"
)
t
=
time
.
strptime
(
dt
[
1
:
-
1
]
.
decode
(
'utf-8'
)
,
"%a %b %d %H:%M:%S %Y"
)
except
ValueError
:
# Fail to parser for the first time, try a different output.
t
=
time
.
strptime
(
dt
[
1
:
-
1
],
"%a %b %d %H:%M:%S.%f %Y"
)
t
=
time
.
strptime
(
dt
[
1
:
-
1
]
.
decode
(
'utf-8'
)
,
"%a %b %d %H:%M:%S.%f %Y"
)
except
ValueError
:
# Probably it fail to parse
if
parsing_failure
<
3
:
...
...
@@ -65,14 +63,14 @@ class RunPromise(GenericPromise):
if
maximum_delay
and
(
time
.
time
()
-
time
.
mktime
(
t
))
>
maximum_delay
:
# no result in the latest hour
break
if
level
!=
"[error]"
:
if
level
!=
b
"[error]"
:
continue
# Classify the types of errors
if
"(113)No route to host"
in
msg
:
if
b
"(113)No route to host"
in
msg
:
no_route_error
+=
1
elif
"(101)Network is unreachable"
in
msg
:
elif
b
"(101)Network is unreachable"
in
msg
:
network_is_unreachable
+=
1
elif
"(110)Connection timed out"
in
msg
:
elif
b
"(110)Connection timed out"
in
msg
:
timeout
+=
1
error_amount
+=
1
if
error_amount
:
...
...
slapos/promise/plugin/check_icmp_packet_lost.py
View file @
907a8633
from
zope
import
interface
as
zope_interface
from
zope
.interface
import
implementer
from
slapos.grid.promise
import
interface
from
slapos.grid.promise.generic
import
GenericPromise
,
TestResult
import
re
import
time
from
slapos.networkbench.ping
import
ping
,
ping6
@
implementer
(
interface
.
IPromise
)
class
RunPromise
(
GenericPromise
):
zope_interface
.
implements
(
interface
.
IPromise
)
def
__init__
(
self
,
config
):
GenericPromise
.
__init__
(
self
,
config
)
# set periodicity to run the promise twice per day
...
...
slapos/promise/plugin/check_re6st_optimal_status.py
View file @
907a8633
from
zope
import
interface
as
zope_interface
from
zope
.interface
import
implementer
from
slapos.grid.promise
import
interface
from
slapos.grid.promise.generic
import
GenericPromise
,
TestResult
import
re
import
time
from
slapos.networkbench.ping
import
ping
,
ping6
@
implementer
(
interface
.
IPromise
)
class
RunPromise
(
GenericPromise
):
zope_interface
.
implements
(
interface
.
IPromise
)
def
__init__
(
self
,
config
):
GenericPromise
.
__init__
(
self
,
config
)
# set periodicity to run the promise twice per day
...
...
slapos/promise/plugin/check_url_available.py
View file @
907a8633
from
zope
import
interface
as
zope_interface
from
zope
.interface
import
implementer
from
slapos.grid.promise
import
interface
from
slapos.grid.promise.generic
import
GenericPromise
import
os
import
pycurl
@
implementer
(
interface
.
IPromise
)
class
RunPromise
(
GenericPromise
):
zope_interface
.
implements
(
interface
.
IPromise
)
def
__init__
(
self
,
config
):
GenericPromise
.
__init__
(
self
,
config
)
# SR can set custom periodicity
...
...
@@ -40,8 +38,8 @@ class RunPromise(GenericPromise):
try
:
curl
.
perform
()
except
pycurl
.
error
,
e
:
code
,
message
=
e
except
pycurl
.
error
as
e
:
code
,
message
=
e
.
args
self
.
logger
.
error
(
"%s: %s"
%
(
code
,
message
))
return
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment