Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
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
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kasra Jamshidi
slapos
Commits
74d58ae3
Commit
74d58ae3
authored
Dec 16, 2014
by
Cédric de Saint Martin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
webrunner: add custom monitor script to monitor all promises of subinstances.
parent
d8f8b7f6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
3 deletions
+63
-3
software/slaprunner/common.cfg
software/slaprunner/common.cfg
+12
-3
software/slaprunner/instance-runner-export.cfg.in
software/slaprunner/instance-runner-export.cfg.in
+1
-0
software/slaprunner/instance-runner.cfg
software/slaprunner/instance-runner.cfg
+8
-0
software/slaprunner/template/monitor-check-webrunner-internal-instances.py
...er/template/monitor-check-webrunner-internal-instances.py
+42
-0
No files found.
software/slaprunner/common.cfg
View file @
74d58ae3
...
@@ -45,14 +45,14 @@ mode = 0644
...
@@ -45,14 +45,14 @@ mode = 0644
recipe = slapos.recipe.template
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner.cfg
url = ${:_profile_base_location_}/instance-runner.cfg
output = ${buildout:directory}/template-runner.cfg.in
output = ${buildout:directory}/template-runner.cfg.in
md5sum =
ae802787e193960662a2b9e174609f
6e
md5sum =
f4a1dfe1dd52f6793c4aa7a02b1732
6e
mode = 0644
mode = 0644
[template-runner-import-script]
[template-runner-import-script]
recipe = hexagonit.recipe.download
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/runner-import.sh.jinja2
url = ${:_profile_base_location_}/template/runner-import.sh.jinja2
download-only = true
download-only = true
md5sum =
f7594f522e7350d5394c7ae3c058154c
md5sum =
a85d054b3e2ae9243d8d188c897dc121
filename = runner-import.sh.jinja2
filename = runner-import.sh.jinja2
mode = 0644
mode = 0644
...
@@ -75,7 +75,7 @@ mode = 0644
...
@@ -75,7 +75,7 @@ mode = 0644
recipe = slapos.recipe.template
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-export.cfg.in
url = ${:_profile_base_location_}/instance-runner-export.cfg.in
output = ${buildout:directory}/instance-runner-export.cfg
output = ${buildout:directory}/instance-runner-export.cfg
md5sum =
83022e8e07ad9217b844b4e62405bed9
md5sum =
49bc44385c9da2fac0cdd559713368d5
mode = 0644
mode = 0644
[template-resilient]
[template-resilient]
...
@@ -171,6 +171,15 @@ destination = ${buildout:parts-directory}/monitor-template-cors-domain-cgi
...
@@ -171,6 +171,15 @@ destination = ${buildout:parts-directory}/monitor-template-cors-domain-cgi
filename = cors-domain.jinja
filename = cors-domain.jinja
mode = 0644
mode = 0644
[monitor-check-webrunner-internal-instance]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/${:filename}
download-only = true
#md5sum = 4c44d617d5bfd1db8695200e896480c0
destination = ${buildout:parts-directory}/${:filename}
filename = monitor-check-webrunner-internal-instances.py
mode = 0644
[eggs]
[eggs]
recipe = z3c.recipe.scripts
recipe = z3c.recipe.scripts
eggs =
eggs =
...
...
software/slaprunner/instance-runner-export.cfg.in
View file @
74d58ae3
...
@@ -50,6 +50,7 @@ parts +=
...
@@ -50,6 +50,7 @@ parts +=
## Monitor for runner
## Monitor for runner
monitor-current-log-access
monitor-current-log-access
monitor-check-resilient-feed-file
monitor-check-resilient-feed-file
monitor-check-webrunner-internal-instance
[exporter]
[exporter]
...
...
software/slaprunner/instance-runner.cfg
View file @
74d58ae3
...
@@ -52,6 +52,7 @@ parts =
...
@@ -52,6 +52,7 @@ parts =
## Monitor for runner
## Monitor for runner
monitor-current-log-access
monitor-current-log-access
monitor-deploy-cors-domain-cgi
monitor-deploy-cors-domain-cgi
monitor-check-webrunner-internal-instance
extends = ${monitor-template:output}
extends = ${monitor-template:output}
...
@@ -716,6 +717,13 @@ context =
...
@@ -716,6 +717,13 @@ context =
key this_file :filename
key this_file :filename
key httpd_graceful cgi-httpd-graceful-wrapper:rendered
key httpd_graceful cgi-httpd-graceful-wrapper:rendered
[monitor-check-webrunner-internal-instance]
recipe = slapos.recipe.template:jinja2
template = ${monitor-check-webrunner-internal-instance:location}/${monitor-check-webrunner-internal-instance:filename}
rendered = $${monitor-directory:monitor-custom-scripts}/$${:filename}
filename = monitor-check-webrunner-internal-instance.py
mode = 0744
[monitor-httpd-cors]
[monitor-httpd-cors]
recipe = plone.recipe.command
recipe = plone.recipe.command
command = if [ ! -f $${:location} ]; then touch $${:location}; fi
command = if [ ! -f $${:location} ]; then touch $${:location}; fi
...
...
software/slaprunner/template/monitor-check-webrunner-internal-instances.py
0 → 100644
View file @
74d58ae3
#!/usr/bin/python
import
os
import
subprocess
import
sys
def
runPromise
(
promise_path
):
promise_relative_path
=
promise_path
.
replace
(
os
.
path
.
expanduser
(
'~'
),
'~'
)
print
'Running promise %s...'
%
promise_relative_path
promise_process
=
subprocess
.
Popen
(
promise_path
,
stderr
=
subprocess
.
PIPE
)
stdout
,
stderr
=
promise_process
.
communicate
()
return_code
=
promise_process
.
returncode
if
return_code
==
0
:
print
'Success.'
return
True
else
:
sys
.
stderr
.
write
(
'Failure while running promise %s. %s
\
n
'
%
(
promise_relative_path
,
stderr
))
def
getPromisePathListFromPartitionPath
(
partition_path
):
promise_directory_path
=
os
.
path
.
join
(
partition_path
,
'etc/promise'
)
try
:
promise_name_list
=
os
.
listdir
(
promise_directory_path
)
return
[
os
.
path
.
join
(
promise_directory_path
,
promise_name
)
for
promise_name
in
promise_name_list
]
except
OSError
:
return
[]
def
main
():
# XXX hardcoded
partition_root_path
=
os
.
path
.
expanduser
(
'~/srv/runner/instance'
)
success
=
True
for
partition_name
in
os
.
listdir
(
partition_root_path
):
partition_path
=
os
.
path
.
join
(
partition_root_path
,
partition_name
)
for
promise_path
in
getPromisePathListFromPartitionPath
(
partition_path
):
result
=
runPromise
(
promise_path
)
if
not
result
:
success
=
False
if
not
success
:
sys
.
exit
(
1
)
if
__name__
==
'__main__'
:
main
()
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