Commit a6612c22 authored by Lisa Casino's avatar Lisa Casino

html5as: from plone.recipe.command to slapos.recipe.build

See merge request nexedi/slapos!1012
parents 24591a08 35503663
Pipeline #16609 failed with stage
in 0 seconds
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
[template-cfg] [template-cfg]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 924ea0270c118e3470c04f32da979888 md5sum = 8528c7b469caa8bdede682e6660ba702
[instance_html5as] [instance_html5as]
_update_hash_filename_ = instance_html5as.cfg.in _update_hash_filename_ = instance_html5as.cfg.in
md5sum = 7d438ca356aea0b2ace7378de91e7587 md5sum = d1efe7a42d66c416ddf8d24d8a8107f4
[template_nginx_conf] [template_nginx_conf]
_update_hash_filename_ = templates/nginx_conf.in _update_hash_filename_ = templates/nginx_conf.in
...@@ -45,4 +45,4 @@ md5sum = 1c0ee16966e1fcdb3fd11c09f12ee2b2 ...@@ -45,4 +45,4 @@ md5sum = 1c0ee16966e1fcdb3fd11c09f12ee2b2
[template_instance_replicate] [template_instance_replicate]
_update_hash_filename_ = instance_replicate.cfg.in _update_hash_filename_ = instance_replicate.cfg.in
md5sum = 2dd03eb194641fbc560122d04b67e212 md5sum = 7ff7e11d05145115f53564ec1af205ef
...@@ -33,7 +33,7 @@ context = ...@@ -33,7 +33,7 @@ context =
default-parameters = default-parameters =
{ {
"title": "", "title": "",
"download_url": "", "download_url": null,
"port": 8081, "port": 8081,
"monitor-httpd-port": 8197 "monitor-httpd-port": 8197
} }
...@@ -51,7 +51,7 @@ context = ...@@ -51,7 +51,7 @@ context =
jsonkey default_parameter_dict :default-parameters jsonkey default_parameter_dict :default-parameters
default-parameters = default-parameters =
{ {
"download_url": "", "download_url": null,
"replicate-quantity": 1 "replicate-quantity": 1
} }
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
[buildout] [buildout]
parts = parts =
nginx_conf nginx_conf
downloader
mime_types mime_types
launcher launcher
nginx-graceful nginx-graceful
...@@ -60,7 +59,6 @@ service = ${directory:etc}/service ...@@ -60,7 +59,6 @@ service = ${directory:etc}/service
log = ${directory:var}/log log = ${directory:var}/log
run = ${directory:var}/run run = ${directory:var}/run
backup = ${directory:srv}/backup backup = ${directory:srv}/backup
data = ${directory:srv}/html5as
[tempdirectory] [tempdirectory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
...@@ -90,8 +88,8 @@ path_access_log = ${basedirectory:log}/nginx.access.log ...@@ -90,8 +88,8 @@ path_access_log = ${basedirectory:log}/nginx.access.log
path_error_log = ${basedirectory:log}/nginx.error.log path_error_log = ${basedirectory:log}/nginx.error.log
path_tmp = ${tempdirectory:tmp} path_tmp = ${tempdirectory:tmp}
# Docroot # Docroot
docroot = ${basedirectory:data} docroot = ${downloader:location}
default_index = ${basedirectory:data}/index.html default_index = ${:docroot}/index.html
# Config files # Config files
path_nginx_conf = ${directory:etc}/nginx.conf path_nginx_conf = ${directory:etc}/nginx.conf
path_mime_types = ${directory:etc}/mime_types path_mime_types = ${directory:etc}/mime_types
...@@ -132,21 +130,39 @@ context = ...@@ -132,21 +130,39 @@ context =
# Command to put content in the docroot # Command to put content in the docroot
[downloader] [downloader]
recipe = plone.recipe.command recipe = slapos.recipe.build
# This section will fail if the command fails. # Path where the recipe stores any produced file,
stop-on-error = true # it will be automatically removed at the beginning of "install".
# If a tarball is passed as a parameter in download url location = ${directory:srv}/html5as
# We add: or '', otherwise jinja2 will render a 'None' string
url = {{ parameter_dict['download_url'] or '' }}
default_index_html = ${default_index_html:rendered}
# If a tarball is passed as a parameter in "download_url",
# it's content will be served by the instance. # it's content will be served by the instance.
# If the parameter is not provided it fallback to the default template # If the parameter is not provided it fallback to the default template
command = install =
rm -rf ${html5as:docroot}/*; import os, shutil
URL = {{ parameter_dict['download_url'] }}; buildout_offline = self.buildout['buildout']['offline']
if [ -n "$URL" ]; try:
then # Allow to do self.download() which can only be used in "online" mode
${html5as:curl-binary} -Lks $URL | ${html5as:tar-binary} xzv -C ${html5as:docroot} --strip-components 1; self.buildout['buildout']['offline'] = 'false'
else if options['url']:
cp ${default_index_html:rendered} ${html5as:docroot}/; # Use fonctions from the slapos.recipe.build repository
fi # Download a file from a URL to a temporary path
file = self.download(options['url'], options.get('md5sum'))
# Create a directory and extract the file that are compressed inside
extract_dir = self.extract(file)
# Return the right directory path
workdir = guessworkdir(extract_dir)
# Recursively copy directory
self.copyTree(workdir, location)
else:
# Create directory and copy the default template inside
os.makedirs(location)
shutil.copy(options['default_index_html'], location)
finally:
# reset the parameter
self.buildout['buildout']['offline'] = buildout_offline
[default_index_html] [default_index_html]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
......
...@@ -31,7 +31,8 @@ software-type = default ...@@ -31,7 +31,8 @@ software-type = default
# What parameter are neede to be retrieved # What parameter are neede to be retrieved
return = server_url server-cdn-url monitor-setup-url return = server_url server-cdn-url monitor-setup-url
# Provided parameters # Provided parameters
config-download_url = {{ parameter_dict['download_url'] }} # We add: or '', otherwise jinja2 will render a 'None' string
config-download_url = {{ parameter_dict['download_url'] or '' }}
# Create request section in a loop. # Create request section in a loop.
{% for i in range(1, replicate_quantity + 1) %} {% for i in range(1, replicate_quantity + 1) %}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment