from the partition (typically ``/srv/slapgrid/slappartNN/`` directory).
from the partition (typically ``/srv/slapgrid/slappartNN/`` directory).
They will reappear automatically after some time, but as the old
``external-disk-amount`` approach is now disabled, they won't be updated.
The failure observed to confirm the situation can be found in
The failure observed to confirm the situation can be found in
``.slappartNN_kvm-HASH.log`` with presence of message like::
``.slappartNN_kvm-HASH.log`` with presence of message like::
qemu-system-x86_64: -drive file=/<instance_storage_home>/dataX/slappartNN/kvm_virtual_disk.qcow2,if=virtio,cache=writeback: Failed to get "write" lock
ValueError: external-disk problems: conflicts with external-disk-number = XX, conflicts with already configured disks amount XX in /srv/slapgrid/slappartNN/etc/.data-disk-amount
Is another process using the image [/<instance_storage_home>/dataX/slappartNN/kvm_virtual_disk.qcow2]?
Where ``XX`` is the previously used ``external-disk-number`` and ``NN`` is the partition.
raw takeover-url http://[${resilient-web-takeover-httpd-configuration-file:listening-ip}]:${resilient-web-takeover-httpd-configuration-file:listening-port}/
raw takeover-password ${resilient-web-takeover-password:passwd}
"description":"Name of the instance, to show in the window title",
"type":"string"
},
"custom-frontend-backend-url":{
"title":"Custom Frontend Backend URL",
"description":"return an ipv4 frontend of the given ipv6(+optional port)",
"type":"string",
"format":"uri"
},
"custom-frontend-backend-type":{
"title":"Custom Frontend Backend Type",
"description":"The type of the frontend slave instance to ask",
"type":"string",
"enum":[
"zope"
]
},
"user-authorized-key":{
"title":"User Authorized Key",
"description":"SSH public key in order to connect to the SSH server of this runner instance.",
"textarea":true,
"type":"string"
},
"instance-amount":{
"title":"Partition Amount",
"description":"Number of slappart to deploy inside the runner (default is 10). Needs instance to be restarted.",
"type":"integer",
"minimum":1,
"maximum":40
},
"auto-deploy":{
"title":"Automatically Deploy Software",
"description":"Authorizes the software declared with 'slapos-software' to be automatically deployed, or not. Needs instance to be restarted. (default is false)",
"type":"boolean"
},
"auto-deploy-instance":{
"title":"Automatically Deploy Instances",
"description":"Prevent the runner from deploying and starting instances. Needs instance to be restarted. It is set to false for instances of type 'import' in resiliency in any case (default is false)",
"type":"boolean"
},
"autorun":{
"title":"Automatically Run Sofware/Instance",
"description":"Let automaticaly build and run a declared software with 'slapos-software'. Only works if 'slapos-software' is set, and 'auto-deploy' is true. Needs instance to be restarted. (default is false)",
"type":"boolean"
},
"slapos-software":{
"title":"Pre-selected Software Release",
"description":"a relative path from the slapos git repo to a folder containing a software release, which will be automaticaly deployed while the runner instanciation, and only if the parameter auto-deploy is set to 'true'. For example: 'software/helloworld",
"type":"string"
},
"slapos-repository":{
"title":"SlapOS Git Repository URL",
"description":"url of the default git repository that will be download by the runner while its instanciation. Will be cloned in a directory named 'slapos' (default is https://lab.nexedi.com/nexedi/slapos.git)",
"type":"string",
"format":"uri",
"pattern":"^(http|https|ftp)://"
},
"slapos-reference":{
"title":"SlapOS Git Branch Name",
"description":"Branch or hash on which the default repository will checkout (default is master)",
"type":"string"
},
"slapos-software-type":{
"title":"Deployed Instance Software Type",
"description":"Software type of your instance inside the runner",
"type":"string"
},
"cpu-usage-ratio":{
"title":"CPU Usage Ratio",
"description":"Ratio of the CPU use for compilation, if value is set to n, compilation will use number-of-cpu/n of cpus (need instance restart)",
"type":"integer",
"default":4
},
"no-ipv4-frontend":{
"title":"No IPv4 frontend",
"description":"Prevent the slaprunner to order an IPv4 frontend for itself",
"enum":[
"true",
"false"
],
"default":"false"
},
"custom-frontend-basic-auth":{
"title":"Custom Frontend Basic Auth",
"description":"if the ip given with 'custom-frontend-backend-url' is secure, set it to true for the promise do not fail",
"type":"boolean"
},
"custom-frontend-instance-guid":{
"title":"Custom Frontend Instance GUID",
"description":"Instance guid of the frontend you whish to use",
"type":"string"
},
"custom-frontend-software-type":{
"title":"Custom Frontend Software Type",
"description":"SoftwareType of the frontend you request (default is RootSoftwareInstance)",
"type":"string",
"enum":[
"RootSoftwareInstance",
"default"
]
},
"custom-frontend-software-url":{
"title":"Custom Frontend Software URL",
"description":"Software Url of the frontend you request (ie.: http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg)",
"type":"string",
"format":"uri"
},
"check-custom-frontend-promise":{
"title":"Check Custom Frontend Promise",
"description":"Enable a promise to check that HTTP frontend created from custom-frontend-backend-url is available",
"type":"string",
"enum":[
"true",
"false"
],
"default":"false"
},
"slaprunner-httpd-port":{
"title":"Webrunner Server Port",
"description":"Port of the Apache server serving the Webrunner interface.",
"type":"integer",
"default":9686
},
"monitor-httpd-port":{
"title":"Monitor Port",
"description":"Port of the Apache server serving the monitoring interface.",
"type":"integer",
"default":8386
},
"monitor-interface-url":{
"title":"Monitor Web Interface URL",
"description":"Give Url of HTML web interface that will be used to render this monitor instance.",
"type":"string",
"format":"uri",
"default":"https://monitor.app.officejs.com"
},
"monitor-cors-domains":{
"title":"Monitor CORS domains",
"description":"List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
ForceCommand cd $${directory:home}; if [ -z "$SSH_ORIGINAL_COMMAND" ]; then HOME=$${directory:home} $${shell-environment:shell} -l; else HOME=$${directory:home} SHELL=$${shell-environment:shell} PATH=$${shell-environment:path} eval "$SSH_ORIGINAL_COMMAND"; fi
command = if [ ! -f $${:software-type-path} -a "$${slap-parameter:slapos-software-type}" != "" ]; then echo "$${slap-parameter:slapos-software-type}" > $${:software-type-path}; fi
[instance-software]
recipe = plone.recipe.command
stop-on-error = true
command = SR=$${slap-parameter:slapos-software} && if [ -n "$SR" ] && [ ! -f "$${directory:etc}/.project" ]; then echo workspace/slapos/$${slap-parameter:slapos-software}/ > $${directory:etc}/.project; fi
[minishell-cwd]
recipe = plone.recipe.command
command = if [ ! -f $${slaprunner:minishell_cwd_file} ]; then echo $${runnerdirectory:home} > $${slaprunner:minishell_cwd_file}; fi
location = $${slaprunner:minishell_cwd_file}
stop-on-error = true
[bash-profile]
recipe = slapos.recipe.template:jinja2
url = ${template-bash-profile:target}
output = $${buildout:directory}/.bash_profile
context =
raw path $${shell-environment:path}
raw shell $${shell-environment:shell}
key terminfo terminfo:location
key instance_name slap-parameter:instance-name
key workdir runnerdirectory:home
key home directory:home
[terminfo]
location = ${ncurses:location}/share/terminfo/
#---------------------------
#--
#-- supervisord managing slaprunner automation features
db_query "update $DB_PARTITION_TABLE set software_release='$SOFTWARE_RELEASE' where software_release NOT NULL;"
db_query "update $DB_SOFTWARE_TABLE set url='$SOFTWARE_RELEASE' where url='$OLD_SOFTWARE_RELEASE';" || db_query "delete from $DB_SOFTWARE_TABLE where url='$OLD_SOFTWARE_RELEASE';"
# Change slapproxy database to have all instances stopped
db_query "update $DB_PARTITION_TABLE set requested_state='stopped';"
# Change slapproxy database to get correct IPs
IPV4='{{ ipv4 }}'
IPV6='{{ ipv6 }}'
db_query "update $DB_PARTITION_NETWORK_TABLE set address='$IPV4' where netmask='255.255.255.255';"
db_query "update $DB_PARTITION_NETWORK_TABLE set address='$IPV6' where netmask='ffff:ffff:ffff::';"
MASTERURL='http://{{ ipv4 }}:{{ proxy_port }}'
log_message "Removing old supervisord service description files..."