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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xavier Thompson
slapos
Commits
1b0853e2
Commit
1b0853e2
authored
Sep 27, 2019
by
Łukasz Nowak
Committed by
Łukasz Nowak
Nov 19, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
software/kvm: Switch to monitor-promise-base
parent
2d4bbe17
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
92 additions
and
65 deletions
+92
-65
software/kvm/buildout.hash.cfg
software/kvm/buildout.hash.cfg
+6
-6
software/kvm/instance-kvm-cluster.cfg.jinja2.in
software/kvm/instance-kvm-cluster.cfg.jinja2.in
+0
-1
software/kvm/instance-kvm-http.cfg.in
software/kvm/instance-kvm-http.cfg.in
+5
-5
software/kvm/instance-kvm-import.cfg.jinja2.in
software/kvm/instance-kvm-import.cfg.jinja2.in
+10
-5
software/kvm/instance-kvm-resilient.cfg.jinja2
software/kvm/instance-kvm-resilient.cfg.jinja2
+13
-9
software/kvm/instance-kvm.cfg.jinja2
software/kvm/instance-kvm.cfg.jinja2
+48
-30
software/kvm/instance-nbd.cfg.in
software/kvm/instance-nbd.cfg.in
+10
-9
No files found.
software/kvm/buildout.hash.cfg
View file @
1b0853e2
...
@@ -19,19 +19,19 @@ md5sum = 2cbfd6b08c65369c1d45cf3ba2ff335a
...
@@ -19,19 +19,19 @@ md5sum = 2cbfd6b08c65369c1d45cf3ba2ff335a
[template-kvm]
[template-kvm]
filename = instance-kvm.cfg.jinja2
filename = instance-kvm.cfg.jinja2
md5sum =
bcd3705e510da52e7ddf1e1527839642
md5sum =
36e7a8656e52d3aace8d9e52dcb3864e
[template-kvm-cluster]
[template-kvm-cluster]
filename = instance-kvm-cluster.cfg.jinja2.in
filename = instance-kvm-cluster.cfg.jinja2.in
md5sum =
352f18067714501c8ccee55f8930d245
md5sum =
2e743132ba4e001f784791311df9ba6a
[template-kvm-resilient]
[template-kvm-resilient]
filename = instance-kvm-resilient.cfg.jinja2
filename = instance-kvm-resilient.cfg.jinja2
md5sum =
7d4b14660b7a30084aa7e023b0db50be
md5sum =
e50e45c3097ed5a7115817fbc967f173
[template-kvm-import]
[template-kvm-import]
filename = instance-kvm-import.cfg.jinja2.in
filename = instance-kvm-import.cfg.jinja2.in
md5sum =
dc3f3ad9ebd8b3b5c3ded57b91cee9c7
md5sum =
97a8ff8a5891678274b14481dfc5214c
[template-kvm-import-script]
[template-kvm-import-script]
filename = template/kvm-import.sh.jinja2
filename = template/kvm-import.sh.jinja2
...
@@ -47,7 +47,7 @@ md5sum = b617d64de73de1eed518185f310bbc82
...
@@ -47,7 +47,7 @@ md5sum = b617d64de73de1eed518185f310bbc82
[template-nbd]
[template-nbd]
filename = instance-nbd.cfg.in
filename = instance-nbd.cfg.in
md5sum =
f634a5249b773658b7a7bc9fa9bb0368
md5sum =
a05b581d65768ac55faf3b06d4aec447
[template-ansible-promise]
[template-ansible-promise]
filename = template/ansible-promise.in
filename = template/ansible-promise.in
...
@@ -79,4 +79,4 @@ md5sum = 599dbbbd438fe7801e3f8642ae9e9a78
...
@@ -79,4 +79,4 @@ md5sum = 599dbbbd438fe7801e3f8642ae9e9a78
[template-httpd]
[template-httpd]
filename = instance-kvm-http.cfg.in
filename = instance-kvm-http.cfg.in
md5sum =
26a181a48046ce88570adb32334747ef
md5sum =
d657884d02105deffddee0edae4b50a6
software/kvm/instance-kvm-cluster.cfg.jinja2.in
View file @
1b0853e2
...
@@ -229,7 +229,6 @@ log = ${:var}/log
...
@@ -229,7 +229,6 @@ log = ${:var}/log
scripts = ${:etc}/run
scripts = ${:etc}/run
services = ${:etc}/service
services = ${:etc}/service
webroot = ${:srv}/document
webroot = ${:srv}/document
promises = ${:etc}/promise
ssl = ${:etc}/ssl
ssl = ${:etc}/ssl
[directory-doc]
[directory-doc]
...
...
software/kvm/instance-kvm-http.cfg.in
View file @
1b0853e2
...
@@ -14,7 +14,6 @@ public = ${:srv}/public/
...
@@ -14,7 +14,6 @@ public = ${:srv}/public/
log = ${:var}/log
log = ${:var}/log
services = ${:etc}/service
services = ${:etc}/service
scripts = ${:etc}/run
scripts = ${:etc}/run
promises = ${:etc}/promise
run = ${:var}/run
run = ${:var}/run
document = ${:srv}/document
document = ${:srv}/document
ssl = ${:etc}/ssl
ssl = ${:etc}/ssl
...
@@ -65,7 +64,8 @@ update-command =
...
@@ -65,7 +64,8 @@ update-command =
stop-on-error = true
stop-on-error = true
[httpd-promise]
[httpd-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = ${directory:promises}/apache-httpd
module = check_port_listening
hostname = ${apache-conf:ip}
name = apache-httpd.py
port = ${apache-conf:port}
config-hostname = ${apache-conf:ip}
\ No newline at end of file
config-port = ${apache-conf:port}
software/kvm/instance-kvm-import.cfg.jinja2.in
View file @
1b0853e2
...
@@ -41,7 +41,6 @@ var = ${buildout:directory}/var
...
@@ -41,7 +41,6 @@ var = ${buildout:directory}/var
log = ${:var}/log
log = ${:var}/log
scripts = ${:etc}/run
scripts = ${:etc}/run
services = ${:etc}/service
services = ${:etc}/service
promises = ${:etc}/promise
novnc-conf = ${:etc}/novnc
novnc-conf = ${:etc}/novnc
run = ${:var}/run
run = ${:var}/run
ca-dir = ${:srv}/ssl
ca-dir = ${:srv}/ssl
...
@@ -63,8 +62,7 @@ context =
...
@@ -63,8 +62,7 @@ context =
backup-disk-path = ${directory:backup}/virtual.qcow2
backup-disk-path = ${directory:backup}/virtual.qcow2
[kvm-disk-image-corruption-promise]
[kvm-disk-image-corruption-bin]
# Check that disk image is not corrupted
recipe = collective.recipe.template
recipe = collective.recipe.template
input = inline:#!/bin/sh
input = inline:#!/bin/sh
QEMU_IMAGE="${directory:srv}/virtual.qcow2"
QEMU_IMAGE="${directory:srv}/virtual.qcow2"
...
@@ -78,5 +76,12 @@ input = inline:#!/bin/sh
...
@@ -78,5 +76,12 @@ input = inline:#!/bin/sh
else
else
exit 1
exit 1
fi
fi
output = ${directory:
promises
}/kvm-disk-image-corruption
output = ${directory:
bin
}/kvm-disk-image-corruption
mode = 700
mode = 700
[kvm-disk-image-corruption-promise]
# Check that disk image is not corrupted
<= monitor-promise-base
module = check_command_execute
name = kvm-disk-image-corruption.py
config-command = ${kvm-disk-image-corruption-bin:output}
software/kvm/instance-kvm-resilient.cfg.jinja2
View file @
1b0853e2
...
@@ -57,7 +57,6 @@ cors-domains = {{ monitor_parameter.get('monitor-cors-domains', '') }}
...
@@ -57,7 +57,6 @@ cors-domains = {{ monitor_parameter.get('monitor-cors-domains', '') }}
[directory]
[directory]
recipe = slapos.cookbook:mkdirectory
recipe = slapos.cookbook:mkdirectory
etc = ${buildout:directory}/etc
etc = ${buildout:directory}/etc
promises = ${:etc}/promise
# Bubble down the parameters of the requested instance to the user
# Bubble down the parameters of the requested instance to the user
[request-kvm]
[request-kvm]
...
@@ -83,21 +82,26 @@ monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
...
@@ -83,21 +82,26 @@ monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
monitor-setup-url = {{ monitor_interface_url }}/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${publish-early:monitor-password}
monitor-setup-url = {{ monitor_interface_url }}/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${publish-early:monitor-password}
{% endif -%}
{% endif -%}
[kvm-frontend-url-promise]
[kvm-frontend-url-bin]
# Check that url parameter is complete
recipe = collective.recipe.template
recipe = collective.recipe.template
input = inline:#!/bin/sh
input = inline:#!/bin/sh
URL="${request-kvm:connection-url}"
URL="${request-kvm:connection-url}"
if [[ ! "$URL" == https://* ]]; then
if [[ ! "$URL" == https://* ]]; then
exit 1
exit 1
fi
fi
output = ${
resilient-directory:promise
}/kvm-frontend-url
output = ${
directory:bin
}/kvm-frontend-url
mode = 700
mode = 700
[kvm-frontend-url-promise]
# Check that url parameter is complete
<= monitor-promise-base
module = check_command_execute
name = kvm-frontend-url.py
config-command = ${kvm-frontend-url-bin:output}
[kvm-backend-url-promise]
[kvm-backend-url-promise]
# Check that backend url is reachable
# Check that backend url is reachable
recipe = slapos.cookbook:check_url_available
<= monitor-promise-base
path = ${directory:promises}/frontend_promise
module = check_url_available
url = ${publish-connection-information:url}
name = frontend_promise.py
dash_path = /bin/sh
config-url = ${publish-connection-information:url}
curl_path = {{ curl_executable_location }}
software/kvm/instance-kvm.cfg.jinja2
View file @
1b0853e2
...
@@ -40,7 +40,6 @@ var = ${buildout:directory}/var
...
@@ -40,7 +40,6 @@ var = ${buildout:directory}/var
log = ${:var}/log
log = ${:var}/log
scripts = ${:etc}/run
scripts = ${:etc}/run
services = ${:etc}/service
services = ${:etc}/service
promises = ${:etc}/promise
novnc-conf = ${:etc}/novnc
novnc-conf = ${:etc}/novnc
run = ${:var}/run
run = ${:var}/run
prerm = ${:etc}/prerm
prerm = ${:etc}/prerm
...
@@ -216,13 +215,13 @@ command-line = ${kvm-controller:rendered}
...
@@ -216,13 +215,13 @@ command-line = ${kvm-controller:rendered}
[kvm-vnc-promise]
[kvm-vnc-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = ${directory:promises}/vnc_promise
module = check_port_listening
hostname = ${kvm-parameter-dict:vnc-ip}
name = vnc_promise.py
port = ${kvm-parameter-dict:vnc-port}
config-hostname = ${kvm-parameter-dict:vnc-ip}
config-port = ${kvm-parameter-dict:vnc-port}
[kvm-disk-image-corruption-promise]
[kvm-disk-image-corruption-bin]
# Check that disk image is not corrupted
recipe = collective.recipe.template
recipe = collective.recipe.template
input = inline:#!/bin/sh
input = inline:#!/bin/sh
# Return code 0 is "OK"
# Return code 0 is "OK"
...
@@ -239,9 +238,16 @@ input = inline:#!/bin/sh
...
@@ -239,9 +238,16 @@ input = inline:#!/bin/sh
else
else
exit 1
exit 1
fi
fi
output = ${directory:
promises
}/kvm-disk-image-corruption
output = ${directory:
bin
}/kvm-disk-image-corruption
mode = 700
mode = 700
[kvm-disk-image-corruption-promise]
# Check that disk image is not corrupted
<= monitor-promise-base
module = check_command_execute
name = kvm-disk-image-corruption.py
config-command = ${kvm-disk-image-corruption-bin:output}
{% if wipe_disk == 'true' -%}
{% if wipe_disk == 'true' -%}
{% do part_list.append('wipe-disk-wrapper') -%}
{% do part_list.append('wipe-disk-wrapper') -%}
{% set wipe_file_list = '${kvm-parameter-dict:disk-path}' -%}
{% set wipe_file_list = '${kvm-parameter-dict:disk-path}' -%}
...
@@ -255,16 +261,22 @@ command-line =
...
@@ -255,16 +261,22 @@ command-line =
{{ wipe_disk_wrapper }} -n {{ slapparameter_dict.get('wipe-disk-iterations', 1) }} -suz --check-pid-file ${kvm-parameter-dict:pid-file-path} --file {{ wipe_file_list }}
{{ wipe_disk_wrapper }} -n {{ slapparameter_dict.get('wipe-disk-iterations', 1) }} -suz --check-pid-file ${kvm-parameter-dict:pid-file-path} --file {{ wipe_file_list }}
{% endif -%}
{% endif -%}
[kvm-started-
promise
]
[kvm-started-
bin
]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
template = {{ qemu_start_promise_tpl }}
template = {{ qemu_start_promise_tpl }}
rendered = ${directory:
promises
}/qemu-virtual-machine-is-ready
rendered = ${directory:
bin
}/qemu-virtual-machine-is-ready
mode = 700
mode = 700
context =
context =
raw dash {{ dash_executable_location }}
raw dash {{ dash_executable_location }}
raw qemu_ready_path ${kvm-controller-parameter-dict:kvm-status-path}
raw qemu_ready_path ${kvm-controller-parameter-dict:kvm-status-path}
raw qemu_service_log_file ${buildout:directory}/.${slap-connection:partition-id}_kvm.log
raw qemu_service_log_file ${buildout:directory}/.${slap-connection:partition-id}_kvm.log
[kvm-started-promise]
<= monitor-promise-base
module = check_command_execute
name = qemu-virtual-machine-is-ready.py
config-command = ${kvm-started-bin:rendered}
[novnc-instance]
[novnc-instance]
recipe = slapos.cookbook:novnc
recipe = slapos.cookbook:novnc
path = ${ca-novnc:executable}
path = ${ca-novnc:executable}
...
@@ -325,10 +337,11 @@ executable = ${directory:bin}/novnc
...
@@ -325,10 +337,11 @@ executable = ${directory:bin}/novnc
wrapper = ${directory:bin}/websockify
wrapper = ${directory:bin}/websockify
[novnc-promise]
[novnc-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = ${directory:promises}/novnc_promise
module = check_port_listening
hostname = ${novnc-instance:ip}
name = novnc_promise.py
port = ${novnc-instance:port}
config-hostname = ${novnc-instance:ip}
config-port = ${novnc-instance:port}
#----------------
#----------------
...
@@ -380,11 +393,10 @@ name = ${slap-parameter:frontend-instance-name}
...
@@ -380,11 +393,10 @@ name = ${slap-parameter:frontend-instance-name}
sla-instance_guid = ${slap-parameter:frontend-instance-guid}
sla-instance_guid = ${slap-parameter:frontend-instance-guid}
[frontend-promise]
[frontend-promise]
recipe = slapos.cookbook:check_url_available
<= monitor-promise-base
path = ${directory:promises}/frontend_promise
module = check_url_available
url = ${publish-connection-information:url}
name = frontend_promise.py
dash_path = {{ dash_executable_location }}
config-url = ${publish-connection-information:url}
curl_path = {{ curl_executable_location }}
{% if additional_frontend %}
{% if additional_frontend %}
[request-slave-frontend-additional]
[request-slave-frontend-additional]
...
@@ -395,11 +407,10 @@ name = ${slap-parameter:frontend-additional-instance-name}
...
@@ -395,11 +407,10 @@ name = ${slap-parameter:frontend-additional-instance-name}
sla-instance_guid = ${slap-parameter:frontend-additional-instance-guid}
sla-instance_guid = ${slap-parameter:frontend-additional-instance-guid}
[frontend-additional-promise]
[frontend-additional-promise]
recipe = slapos.cookbook:check_url_available
<= monitor-promise-base
path = ${directory:promises}/frontend_additional_promise
module = check_url_available
url = ${publish-connection-information:url-additional}
name = frontend_additional_promise.py
dash_path = {{ dash_executable_location }}
config-url = ${publish-connection-information:url-additional}
curl_path = {{ curl_executable_location }}
{% endif %}
{% endif %}
{% if enable_http == 'true' %}
{% if enable_http == 'true' %}
...
@@ -419,10 +430,11 @@ wrapper-path = ${directory:services}/http-server
...
@@ -419,10 +430,11 @@ wrapper-path = ${directory:services}/http-server
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
[httpd-promise]
[httpd-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = ${directory:promises}/httpd
module = check_port_listening
hostname = ${httpd:host}
name = httpd.py
port = ${httpd:port}
config-hostname = ${httpd:host}
config-port = ${httpd:port}
{% endif %}
{% endif %}
[monitor-instance-parameter]
[monitor-instance-parameter]
...
@@ -679,15 +691,21 @@ command-line = ${tunnel-cluster-url:runner-path}
...
@@ -679,15 +691,21 @@ command-line = ${tunnel-cluster-url:runner-path}
wrapper-path = ${directory:services}/6tunnel-cluster
wrapper-path = ${directory:services}/6tunnel-cluster
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
[ansible-vm-
promise
]
[ansible-vm-
bin
]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
template = {{ ansible_promise_tpl }}
template = {{ ansible_promise_tpl }}
rendered = ${directory:
promises
}/ansible_{{ name }}
rendered = ${directory:
bin
}/ansible_{{ name }}
extensions = jinja2.ext.do
extensions = jinja2.ext.do
context =
context =
raw logs ${directory:public}/ansible
raw logs ${directory:public}/ansible
raw name {{ name }}
raw name {{ name }}
[ansible-vm-promise]
<= monitor-promise-base
module = check_execute_comand
name = ansible_{{ name }}.py
config-command = ${ansible-vm-bin:rendered}
[download-bootstrap-script]
[download-bootstrap-script]
recipe = plone.recipe.command
recipe = plone.recipe.command
file-location = ${directory:public}/vm-bootstrap
file-location = ${directory:public}/vm-bootstrap
...
...
software/kvm/instance-nbd.cfg.in
View file @
1b0853e2
...
@@ -23,7 +23,6 @@ log = $${buildout:directory}/log
...
@@ -23,7 +23,6 @@ log = $${buildout:directory}/log
recipe = slapos.cookbook:mkdirectory
recipe = slapos.cookbook:mkdirectory
services = $${rootdirectory:etc}/run
services = $${rootdirectory:etc}/run
watched-services = $${rootdirectory:etc}/service
watched-services = $${rootdirectory:etc}/service
promises = $${rootdirectory:etc}/promise
[nbd-instance]
[nbd-instance]
recipe = slapos.cookbook:nbdserver
recipe = slapos.cookbook:nbdserver
...
@@ -36,10 +35,11 @@ shell-path = ${dash:location}/bin/dash
...
@@ -36,10 +35,11 @@ shell-path = ${dash:location}/bin/dash
path = $${basedirectory:services}/nbdserver
path = $${basedirectory:services}/nbdserver
[nbd-promise]
[nbd-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = $${basedirectory:promises}/nbd_promise
module = check_port_listening
hostname = $${nbd-instance:ip}
name = nbd_promise.py
port = $${nbd-instance:port}
config-hostname = $${nbd-instance:ip}
config-port = $${nbd-instance:port}
[gen-passwd]
[gen-passwd]
recipe = slapos.cookbook:generate.password
recipe = slapos.cookbook:generate.password
...
@@ -58,10 +58,11 @@ path = $${basedirectory:watched-services}/onetimeupload
...
@@ -58,10 +58,11 @@ path = $${basedirectory:watched-services}/onetimeupload
key = $${gen-passwd:passwd}
key = $${gen-passwd:passwd}
[onetimeupload-promise]
[onetimeupload-promise]
recipe = slapos.cookbook:check_port_listening
<= monitor-promise-base
path = $${basedirectory:promises}/onetimeupload_promise
module = check_port_listening
hostname = $${onetimeupload-instance:ip}
name = onetimeupload_promise.py
port = $${onetimeupload-instance:port}
config-hostname = $${onetimeupload-instance:ip}
config-port = $${onetimeupload-instance:port}
[publish-connection-information]
[publish-connection-information]
recipe = slapos.cookbook:publish
recipe = slapos.cookbook:publish
...
...
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