Commit 8e142f1c authored by Rafael Monnerat's avatar Rafael Monnerat

Update Release Candidate

/reviewed-on nexedi/slapos!85
parents e9efe967 9c1384dc
Changes Changes
======= =======
1.0.32 (unreleased)
-------------------
* Remove url-list parameter to download fonts from fontconfig instance
1.0.31 (2016-05-30) 1.0.31 (2016-05-30)
------------------- -------------------
......
{# This file configures apache to redirect requests from ports to specific urls.
# It provides SSL support for server and optionaly for client.
#
# All parameters are given through the `parameter_dict` variable, see the
# list entries :
#
# parameter_dict = {
# # The path given to "PidFile"
# "pid-file": "<file_path>",
#
# # The number given to "TimeOut"
# "timeout": 300,
#
# # The path given to "SSLCertificateFile"
# "cert": "<file_path>",
#
# # The path given to "SSLCertificateKeyFile"
# "key": "<file_path>",
#
# # The value given to "SSLCipherSuite" (can be empty)
# "cipher": "",
#
# # The path given to "SSLSessionCache shmcb:<folder_path>(512000)"
# "ssl-session-cache": "<folder_path>",
#
# # The path given to "SSLCACertificateFile" (can be empty)
# # If this value is not empty, it enables client certificate check.
# # (Enabling "SSLVerifyClient require")
# "ca-cert": "<file_path>",
#
# # The path given to "SSLCARevocationFile" (used if ca-cert is not
# # empty)
# "crl": "<file_path>",
#
# # The path given to "ErrorLog"
# "error-log": "<file_path>",
#
# # The path given to "AccessLog"
# "access-log": "<file_path>",
#
# # The list of ip which apache will listen to.
# "ip-list": [
# "0.0.0.0",
# "[::1]",
# ],
#
# # The list of backends which apache should redirect to.
# "backend-list": [
# # (port, unused, internal_scheme)
# (8000, _, "http://10.0.0.10:8001"),
# (8002, _, "http://10.0.0.10:8003"),
# ],
# }
#
# This sample of `parameter_dict` will make apache listening to :
# - 0.0.0.0:8000 redirecting internaly to http://10.0.0.10:8001
# - [::1]:8000 redirecting internaly to http://10.0.0.10:8001
# - 0.0.0.0:8002 redirecting internaly to http://10.0.0.10:8003
# - [::1]:8002 redirecting internaly to http://10.0.0.10:8003
-#}
LoadModule unixd_module modules/mod_unixd.so LoadModule unixd_module modules/mod_unixd.so
LoadModule access_compat_module modules/mod_access_compat.so LoadModule access_compat_module modules/mod_access_compat.so
LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_core_module modules/mod_authz_core.so
......
...@@ -183,3 +183,9 @@ configure-options = -c mod_antiloris.c ...@@ -183,3 +183,9 @@ configure-options = -c mod_antiloris.c
make-binary = ${:configure-command} make-binary = ${:configure-command}
make-options = -i -a -n antiloris mod_antiloris.la make-options = -i -a -n antiloris mod_antiloris.la
make-targets = make-targets =
[template-apache-backend-conf]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/apache-backend.conf.in
md5sum = e376fdbe8b19551ec08604e64e9a53b9
mode = 640
...@@ -17,8 +17,8 @@ parts = ...@@ -17,8 +17,8 @@ parts =
[git] [git]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://www.kernel.org/pub/software/scm/git/git-2.7.4.tar.xz url = https://www.kernel.org/pub/software/scm/git/git-2.9.0.tar.xz
md5sum = b0219fcb6d73104361f4fbdba3741d00 md5sum = 118ef1e3108ef0b858cd13b74395a59c
configure-options = configure-options =
--with-curl=${curl:location} --with-curl=${curl:location}
--with-openssl=${openssl:location} --with-openssl=${openssl:location}
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
parts = golang parts = golang
[golang] [golang]
<= golang15 <= golang16
[golang-common] [golang-common]
...@@ -26,9 +26,19 @@ environment-extra = ...@@ -26,9 +26,19 @@ environment-extra =
[golang15] [golang15]
<= golang-common <= golang-common
url = https://storage.googleapis.com/golang/go1.5.3.src.tar.gz url = https://storage.googleapis.com/golang/go1.5.4.src.tar.gz
md5sum = 80a0eac7ab750b01b3f7096a1d4667b8 md5sum = a04d570515c46e4935c63605cbd3a04e
# go1.5 needs go1.4 to bootstrap # go1.5 needs go1.4 to bootstrap
environment-extra = environment-extra =
GOROOT_BOOTSTRAP=${golang14:location} GOROOT_BOOTSTRAP=${golang14:location}
[golang16]
<= golang-common
url = https://storage.googleapis.com/golang/go1.6.2.src.tar.gz
md5sum = d1b50fa98d9a71eeee829051411e6207
# go1.6 needs go1.4 to bootstrap
environment-extra =
GOROOT_BOOTSTRAP=${golang14:location}
...@@ -12,8 +12,8 @@ parts = haproxy ...@@ -12,8 +12,8 @@ parts = haproxy
[haproxy] [haproxy]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://www.haproxy.org/download/1.6/src/haproxy-1.6.5.tar.gz url = http://www.haproxy.org/download/1.6/src/haproxy-1.6.6.tar.gz
md5sum = 5290f278c04e682e42ab71fed26fc082 md5sum = b418d83cf4f2da328f6eb8c255b8716b
configure-command = true configure-command = true
# If the system is running on Linux 2.6, we use "linux26" as the TARGET, # If the system is running on Linux 2.6, we use "linux26" as the TARGET,
# otherwise use "generic". # otherwise use "generic".
......
...@@ -89,7 +89,7 @@ input = inline: ...@@ -89,7 +89,7 @@ input = inline:
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
path = ${helloweb-repository:location}/go/ path = ${helloweb-repository:location}/go/
go = ${golang15:location}/bin/go go = ${golang16:location}/bin/go
configure-command = : configure-command = :
make-binary = make-binary =
make-targets= cd ${:path} && make-targets= cd ${:path} &&
......
...@@ -11,8 +11,8 @@ extends = ...@@ -11,8 +11,8 @@ extends =
[openblas] [openblas]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz url = http://github.com/xianyi/OpenBLAS/archive/v0.2.18.tar.gz
md5sum = b1190f3d3471685f17cfd1ec1d252ac9 md5sum = 805e7f660877d588ea7e3792cda2ee65
patch-options = -p0 patch-options = -p0
patches = patches =
${:_profile_base_location_}/disable_openmp_if_single_core.patch#ee553ccaf9dd4bc37374588e49956f62 ${:_profile_base_location_}/disable_openmp_if_single_core.patch#ee553ccaf9dd4bc37374588e49956f62
......
...@@ -13,19 +13,14 @@ recipe = slapos.recipe.build:gitclone ...@@ -13,19 +13,14 @@ recipe = slapos.recipe.build:gitclone
repository = https://gitlab.com/jerome-nexedi/pulp-or.git repository = https://gitlab.com/jerome-nexedi/pulp-or.git
branch = master branch = master
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
develop = true
[pulp-build]
recipe = zc.recipe.egg:develop
setup = ${pulp-repository.git:location}
[pulp-env] [pulp-env]
<= numpy-env <= numpy-env
PATH=${glpk:location}/bin PATH=${glpk:location}/bin
[pulp] [pulp]
dependencies = ${pulp-build:setup} recipe = zc.recipe.egg:develop
recipe = zc.recipe.egg:custom setup = ${pulp-repository.git:location}
egg = pulp egg = pulp
environment = pulp-env environment = pulp-env
setup-eggs = ${numpy:egg} setup-eggs = ${numpy:egg}
......
...@@ -28,9 +28,9 @@ python = python2.7 ...@@ -28,9 +28,9 @@ python = python2.7
[python2.7] [python2.7]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
package_version = 2.7.11 package_version = 2.7.12
package_version_suffix = package_version_suffix =
md5sum = 1dbcc848b4cd8399a8199d000f9f823c md5sum = 57dffcee9cee8bb2ab5f82af1d8e9a69
# This is actually the default setting for prefix, but we can't use it in # This is actually the default setting for prefix, but we can't use it in
# other settings in this part if we don't set it explicitly here. # other settings in this part if we don't set it explicitly here.
...@@ -44,7 +44,7 @@ patches = ...@@ -44,7 +44,7 @@ patches =
${:_profile_base_location_}/pytracemalloc_pep445.patch#46662cf0ccc7cb7cfb8289bbfd68b21a ${:_profile_base_location_}/pytracemalloc_pep445.patch#46662cf0ccc7cb7cfb8289bbfd68b21a
${:_profile_base_location_}/disabled_module_list.patch#71ad30d32bcdbc50c19cf48675b1246e ${:_profile_base_location_}/disabled_module_list.patch#71ad30d32bcdbc50c19cf48675b1246e
url = url =
http://python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz http://www.python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz
configure-options = configure-options =
--enable-ipv6 --enable-ipv6
--enable-unicode=ucs4 --enable-unicode=ucs4
......
...@@ -127,6 +127,6 @@ scripts = py ...@@ -127,6 +127,6 @@ scripts = py
[versions] [versions]
setuptools = 19.6.2 setuptools = 19.6.2
slapos.rebootstrap = 3.3 slapos.rebootstrap = 3.5
zc.buildout = 2.5.0+slapos001 zc.buildout = 2.5.2+slapos002
zc.recipe.egg = 2.0.3+slapos001 zc.recipe.egg = 2.0.3+slapos001
...@@ -6,8 +6,8 @@ parts = tokyocabinet ...@@ -6,8 +6,8 @@ parts = tokyocabinet
[tokyocabinet] [tokyocabinet]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://fallabs.com/tokyocabinet/tokyocabinet-1.4.46.tar.gz url = http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz
md5sum = 341dadd1f3d68760e350f7e731111786 md5sum = fd03df6965f8f56dd5b8518ca43b4f5e
configure-options = configure-options =
--with-zlib=${zlib:location} --with-zlib=${zlib:location}
......
generic_cloudooo
================
The generic_cloudooo recipe helps you to deploy cloudooo services with their configuration files.
How to use?
-----------
Here is an example of a section to add in your software.cfg :
.. code-block::
[cloudooo-configuration]
recipe = slapos.cookbook:generic_cloudooo
configuration-file = ${directory:etc}/cloudooo.cfg
wrapper = ${directory:services}/cloudooo
data-directory = ${directory:srv}/cloudooo
ip = 0.0.0.0
port = 1234
ooo-paster = ${directory:bin}/cloudooo_paster
mimetype_entry_addition =
text/html application/pdf wkhtmltopdf
openoffice-port = 1235
ooo-binary-path = ${directory:libreoffice-bin}/program
environment =
FONTCONFIG_FILE = ${fontconfig-instance:conf-path}
PATH = ${binary-link:target-directory}
ooo-uno-path = ${directory:libreoffice-bin}/basis-link/program
Where :
- `configuration-file` is the path where the put the configuration file;
- `wrapper` is the path where the put the final executable file;
- `data-directory` is the folder where cloudooo would put it's temporary files;
- `ip` and `port` is where cloudooo will listen to;
- `ooo-paster` is the path of the program that will load cloudooo configuration
and start the application;
- `mimetype_entry_addition` is additional entries to give to the default
mimetype registry. (see section below.) The mimetype entry list is sorted in
order to make the global mimetype at the bottom of the list.
(i.e. `* * ooo` > `text/* * ooo`)
.. code-block::
mimetype_entry_addition =
<input_format> <output_format> <handler>
- `openoffice-port` is the port where the internal OpenOffice.org service will
listen to;
- `ooo-binary-path` is the path of the openoffice service executable file;
- `environment` are environment vars to use with the openoffice binary;
- `ooo-uno-path` is the path where UNO library is installed.
Default mimetype registry
-------------------------
.. code-block::
application/vnd.oasis.opendocument* * ooo
application/vnd.sun.xml* * ooo
application/pdf text/* pdf
application/pdf * ooo
video/* * ffmpeg
audio/* * ffmpeg
application/x-shockwave-flash * ffmpeg
application/ogg * ffmpeg
application/ogv * ffmpeg
image/png image/jpeg imagemagick
image/png * ooo
image/* image/* imagemagick
text/* * ooo
application/zip * ooo
application/msword * ooo
application/vnd* * ooo
application/x-vnd* * ooo
application/postscript * ooo
application/wmf * ooo
application/csv * ooo
application/x-openoffice-gdimetafile * ooo
application/x-emf * ooo
application/emf * ooo
application/octet* * ooo
* application/vnd.oasis.opendocument* ooo
...@@ -38,8 +38,6 @@ class Recipe(GenericBaseRecipe): ...@@ -38,8 +38,6 @@ class Recipe(GenericBaseRecipe):
font-system-folder -- fonts installed by software release font-system-folder -- fonts installed by software release
font-folder -- location where to download fonts font-folder -- location where to download fonts
url-list -- From where to download fonts
""" """
def install(self): def install(self):
...@@ -62,24 +60,4 @@ class Recipe(GenericBaseRecipe): ...@@ -62,24 +60,4 @@ class Recipe(GenericBaseRecipe):
self.substituteTemplate(template_filename, config)) self.substituteTemplate(template_filename, config))
created_file_list.append(configuration_path) created_file_list.append(configuration_path)
# Instanciate onetimedownloads, one for each url
wrapper_template_location = pkg_resources.resource_filename(
__name__, os.path.join(
'template', 'onetimedownload_run.in'))
onetimedownload_config = {}
onetimedownload_config.update(self.options)
for index, url in enumerate(self.options['url-list'].split()):
if not url.strip():
continue
bin_path = os.path.join(service_folder, 'onetimedownload%s' % index)
file_path = os.path.join(font_folder, '%s' % index)
onetimedownload_config['url'] = url
onetimedownload_config['file_path'] = file_path
onetimedownload_runner_path = self.createExecutable(bin_path,
self.substituteTemplate(wrapper_template_location,
onetimedownload_config))
created_file_list.append(onetimedownload_runner_path)
return created_file_list return created_file_list
#!/bin/sh
# BEWARE: This file is operated by slapgrid
# BEWARE: It will be overwritten automatically
exec %(onetimedownload_path)s "%(url)s" "%(file_path)s"
...@@ -53,7 +53,7 @@ smmap = 0.9.0 ...@@ -53,7 +53,7 @@ smmap = 0.9.0
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
...@@ -69,7 +69,7 @@ lockfile = 0.12.2 ...@@ -69,7 +69,7 @@ lockfile = 0.12.2
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
paramiko = 2.0.0 paramiko = 2.0.1
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
......
...@@ -16,7 +16,7 @@ smmap = 0.9.0 ...@@ -16,7 +16,7 @@ smmap = 0.9.0
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
...@@ -32,7 +32,7 @@ lockfile = 0.12.2 ...@@ -32,7 +32,7 @@ lockfile = 0.12.2
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
paramiko = 2.0.0 paramiko = 2.0.1
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
......
...@@ -29,11 +29,11 @@ software-type = custom-personal ...@@ -29,11 +29,11 @@ software-type = custom-personal
slave = true slave = true
{% if slapparameter_dict.get('port', '80') != '443' %} {% if slapparameter_dict.get('port', '80') != '443' %}
config-url = http://[$${request-re6stnet-token-slave:connection-ipv6}1]:{{ slapparameter_dict.get('port', '80') }}/ config-url = http://[$${request-re6stnet-token-slave:connection-ipv6}1]:{{ slapparameter_dict.get('port', '80') }}
{% endif -%} {% endif -%}
{% if slapparameter_dict.get('port', '80') == '443' %} {% if slapparameter_dict.get('port', '80') == '443' %}
config-url = https://[$${request-re6stnet-token-slave:connection-ipv6}1]:{{ slapparameter_dict.get('port', '443') }}/ config-url = https://[$${request-re6stnet-token-slave:connection-ipv6}1]:{{ slapparameter_dict.get('port', '443') }}
{% endif -%} {% endif -%}
{% if slapparameter_dict.get('frontend-custom_domain', '') %} {% if slapparameter_dict.get('frontend-custom_domain', '') %}
......
...@@ -21,7 +21,7 @@ mode = 0644 ...@@ -21,7 +21,7 @@ mode = 0644
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-cdn-request.cfg.jinja2 url = ${:_profile_base_location_}/instance-cdn-request.cfg.jinja2
output = ${buildout:directory}/template-cdn-request.cfg.jinja2 output = ${buildout:directory}/template-cdn-request.cfg.jinja2
md5sum = 11c1bb2dca674d2efe41f8cb0389ec4c md5sum = a5ee428ec915a9e638b46ce3f4dd42f3
mode = 0644 mode = 0644
[eggs] [eggs]
......
...@@ -10,18 +10,39 @@ ...@@ -10,18 +10,39 @@
"default": 23000 "default": 23000
}] }]
}, },
"font-url-list": {
"description": "List of URLs from which fonts are to be downloaded",
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"backend-count": { "backend-count": {
"description": "Number of backend cloudooo instances", "description": "Number of backend cloudooo instances",
"default": 1, "default": 1,
"type": "integer" "type": "integer"
},
"ssl": {
"description": "Custom ssl certificate, key and optionaly client ca-cert and crl",
"properties": {
"cert": {
"description": "The content of the certificate file",
"type": "string"
},
"key": {
"description": "The content of the ssl key file",
"type": "string"
},
"ca-cert": {
"description": "The content of the ca-certificate file",
"type": "string"
},
"crl": {
"description": "The content of the revocation file",
"type": "string"
}
}
},
"timeout": {
"description": "Configure apache with this timeout",
"type": "integer"
},
"mimetype-entry-addition": {
"description": "The list of entry to add to the cloudooo mimetype registry. Each entry should on one line which format is: \"<source_mimetype> <destination_mimetype> <handler>\"",
"type": "string"
} }
} }
} }
{% set ipv4 = (ipv4_set | list)[0] -%} {% set ipv4 = (ipv4_set | list)[0] -%}
{% if ipv6_set %}{% set ipv6 = (ipv6_set | list)[0] %}{% endif -%}
{% set instance_parameter_dict = parameter_dict['instance-parameter-dict'] -%}
{% macro assert(x) %}{{ ("",)[not x] }}{% endmacro -%}
{% set publish_url_name = instance_parameter_dict.get('publish-url-name') or 'url' -%}
{% set next_port = instance_parameter_dict['port'] | int -%}
{% if instance_parameter_dict.get('port-parameter-name') -%}
{% set next_port = slapparameter_dict.get(instance_parameter_dict['port-parameter-name'], next_port) | int -%}
{% endif -%}
{% do assert(next_port > 0) -%}
{% set backend_count = instance_parameter_dict['backend-count'] | int -%}
{% if instance_parameter_dict.get('backend-count-parameter-name') -%}
{% set backend_count = slapparameter_dict.get(instance_parameter_dict['backend-count-parameter-name'], backend_count) | int -%}
{% endif -%}
{% do assert(backend_count > 0) -%}
{% set timeout = instance_parameter_dict['timeout'] | int -%}
{% if instance_parameter_dict.get('timeout-parameter-name') -%}
{% set timeout = slapparameter_dict.get(instance_parameter_dict['timeout-parameter-name'], timeout) | int -%}
{% endif -%}
{% do assert(timeout > 0) -%}
{% set ssl_parameter_dict = instance_parameter_dict.get('ssl', {}) %}
{% if instance_parameter_dict.get('ssl-dict-parameter-name') -%}
{% set ssl_parameter_dict = slapparameter_dict.get(instance_parameter_dict['ssl-dict-parameter-name'], ssl_parameter_dict) -%}
{% endif -%}
{% set mimetype_entry_addition = instance_parameter_dict.get('mimetype-entry-addition', '') -%}
{% if instance_parameter_dict.get('mimetype-entry-addition-parameter-name') -%}
{% set mimetype_entry_addition = mimetype_entry_addition ~ "\n" ~ slapparameter_dict.get(instance_parameter_dict['mimetype-entry-addition-parameter-name'], '') -%}
{% endif -%}
{% set apache_port = next_port -%}
{% set haproxy_port = next_port + 1 -%}
{% set next_port = next_port + 2 -%}
{% set apache_ip_list = [ipv4] -%}
{% if ipv6_set -%}
{% do apache_ip_list.append('[' ~ ipv6 ~ ']') -%}
{% endif -%}
{% set apache_dict = {} -%}
{% do apache_dict.__setitem__(publish_url_name, (apache_port, "https", 'http://' ~ ipv4 ~ ':' ~ haproxy_port)) -%}
{% set bin_directory = parameter_dict['buildout-bin-directory'] -%} {% set bin_directory = parameter_dict['buildout-bin-directory'] -%}
{% set section_list = [] -%} {% set section_list = [] -%}
{% macro section(name) %}{% do section_list.append(name) %}{{ name }}{% endmacro -%} {% set cloudooo_section_list = [] -%}
{% macro cloudooo(name) %}{% do cloudooo_section_list.append(name) %}{{ name }}{% endmacro -%}
[simplefile]
recipe = slapos.recipe.template:jinja2
template = inline:{{ '{{ content }}' }}
{% macro simplefile(section_name, file_path, content, mode='') -%}
{% set content_section_name = section_name ~ '-content' -%}
[{{ content_section_name }}]
content = {{ dumps(content) }}
[{{ section_name }}]
< = simplefile
rendered = {{ file_path }}
context = key content {{ content_section_name }}:content
mode = {{ mode }}
{%- endmacro %}
[buildout] [buildout]
extends =
{{ parameter_dict['template-logrotate-base'] }}
parts = parts =
publish-cloudooo-connection-information publish
apache
apache-conf
apache-promise
apache-logrotate
cloudooo-test-runner cloudooo-test-runner
haproxy
xvfb-instance xvfb-instance
wkhtmltopdf-on-xvfb wkhtmltopdf-on-xvfb
...@@ -13,9 +83,87 @@ eggs-directory = {{ eggs_directory }} ...@@ -13,9 +83,87 @@ eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[publish-cloudooo-connection-information]
[apache]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:services}/apache
command-line = "{{ parameter_dict['apache'] }}/bin/httpd" -f "${apache-conf:rendered}" -DFOREGROUND
[apache-conf]
recipe = slapos.recipe.template:jinja2
template = {{ parameter_dict['template-apache-conf'] }}
rendered = ${directory:apache-conf}/apache.conf
context = section parameter_dict apache-conf-parameter-dict
[apache-conf-parameter-dict]
backend-list = {{ dumps(apache_dict.values()) }}
ip-list = {{ dumps(apache_ip_list) }}
pid-file = ${directory:run}/apache.pid
error-log = ${directory:log}/apache-error.log
access-log = ${directory:log}/apache-access.log
# Apache 2.4's default value (60 seconds) can be a bit too short
timeout = {{ timeout }}
# Basic SSL server configuration
cert = ${apache-ssl:cert}
key = ${apache-ssl:key}
cipher =
ssl-session-cache = ${directory:log}/apache-ssl-session-cache
# Client x509 auth
ca-cert = ${apache-ssl-client:cert}
crl = ${apache-ssl-client:crl}
[apache-promise]
# Check any apache port in ipv4, expect other ports and ipv6 to behave consistently
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/apache
hostname = {{ ipv4 }}
port = {{ apache_dict.values()[0][0] }}
[apache-conf-ssl]
cert = ${directory:apache-conf}/apache.crt
key = ${directory:apache-conf}/apache.pem
ca-cert = ${directory:apache-conf}/ca.crt
crl = ${directory:apache-conf}/crl.pem
[apache-ssl]
{% if ssl_parameter_dict.get('key') -%}
key = ${apache-ssl-key:rendered}
cert = ${apache-ssl-cert:rendered}
{{ simplefile('apache-ssl-key', '${apache-conf-ssl:key}', ssl_parameter_dict['key']) }}
{{ simplefile('apache-ssl-cert', '${apache-conf-ssl:cert}', ssl_parameter_dict['cert']) }}
{% else %}
recipe = plone.recipe.command
command = "{{ parameter_dict['openssl'] }}/bin/openssl" req -newkey rsa -batch -new -x509 -days 3650 -nodes -keyout "${:key}" -out "${:cert}"
key = ${apache-conf-ssl:key}
cert = ${apache-conf-ssl:cert}
{%- endif %}
[apache-ssl-client]
{% if ssl_parameter_dict.get('ca-cert') -%}
cert = ${apache-ssl-ca:rendered}
crl = ${apache-ssl-crl:rendered}
{{ simplefile('apache-ssl-ca', '${apache-conf-ssl:ca-cert}', ssl_parameter_dict['ca-cert']) }}
{{ simplefile('apache-ssl-crl', '${apache-conf-ssl:crl}', ssl_parameter_dict['crl']) }}
{% else %}
cert =
crl =
{%- endif %}
[apache-logrotate]
recipe = slapos.cookbook:logrotate.d
logrotate-entries = ${logrotate:logrotate-entries}
backup = ${logrotate:backup}
name = apache
log = ${apache-conf-parameter-dict:error-log} ${apache-conf-parameter-dict:access-log}
post = {{ bin_directory }}/slapos-kill --pidfile ${apache-conf-parameter-dict:pid-file} -s USR1
[publish]
recipe = slapos.cookbook:publish.serialised recipe = slapos.cookbook:publish.serialised
url = cloudooo://${haproxy:ip}:${haproxy:port}/ {% for family_name, (apache_port, scheme, _) in apache_dict.items() -%}
{{ family_name ~ '-v6' }} = {% if ipv6_set %}{{ scheme ~ '://[' ~ ipv6 ~ ']:' ~ apache_port }}{% endif %}
{{ family_name }} = {{ scheme ~ '://' ~ ipv4 ~ ':' ~ apache_port }}
{% endfor -%}
[cloudooo-base] [cloudooo-base]
recipe = slapos.cookbook:generic.cloudooo recipe = slapos.cookbook:generic.cloudooo
...@@ -25,26 +173,26 @@ environment = ...@@ -25,26 +173,26 @@ environment =
FONTCONFIG_FILE = ${fontconfig-instance:conf-path} FONTCONFIG_FILE = ${fontconfig-instance:conf-path}
PATH = ${binary-link:target-directory} PATH = ${binary-link:target-directory}
mimetype_entry_addition = mimetype_entry_addition =
text/html application/pdf wkhtmltopdf {% for entry in mimetype_entry_addition.splitlines() -%}
{{ " " ~ entry.strip() }}
{% endfor -%}
# Binary information # Binary information
# cloudooo specific configuration # cloudooo specific configuration
ooo-binary-path = {{ parameter_dict['libreoffice-bin'] }}/program ooo-binary-path = {{ parameter_dict['libreoffice-bin'] }}/program
ooo-paster = {{ bin_directory }}/cloudooo_paster ooo-paster = {{ bin_directory }}/cloudooo_paster
ooo-uno-path = {{ parameter_dict['libreoffice-bin'] }}/basis-link/program ooo-uno-path = {{ parameter_dict['libreoffice-bin'] }}/basis-link/program
{% set cloudooo_port = slapparameter_dict.get('tcpv4_port', 23000) | int -%}
{% set backend_count = slapparameter_dict.get('backend-count', 1) | int -%}
{% for index in range(backend_count) -%} {% for index in range(backend_count) -%}
{% set name = 'cloudooo-' ~ index -%} {% set name = 'cloudooo-' ~ index -%}
[{{ section(name) }}] [{{ cloudooo(name) }}]
< = cloudooo-base < = cloudooo-base
port = {{ cloudooo_port }} port = {{ next_port }}
openoffice-port = {{ cloudooo_port + 1 }} openoffice-port = {{ next_port + 1 }}
configuration-file = ${directory:etc}/{{ name }}.cfg configuration-file = ${directory:etc}/{{ name }}.cfg
data-directory = ${directory:srv}/{{ name }} data-directory = ${directory:srv}/{{ name }}
wrapper = ${directory:services}/{{ name }} wrapper = ${directory:services}/{{ name }}
{% set cloudooo_port = cloudooo_port + 2 -%} {% set next_port = next_port + 2 -%}
{% endfor -%} {% endfor -%}
[haproxy] [haproxy]
...@@ -53,13 +201,13 @@ name = cloudooo ...@@ -53,13 +201,13 @@ name = cloudooo
conf-path = ${directory:etc}/haproxy.cfg conf-path = ${directory:etc}/haproxy.cfg
socket-path = ${directory:run}/haproxy.sock socket-path = ${directory:run}/haproxy.sock
ip = {{ ipv4 }} ip = {{ ipv4 }}
port = 8001 port = {{ haproxy_port }}
maxconn = 1 maxconn = 1
wrapper-path = ${directory:services}/haproxy wrapper-path = ${directory:services}/haproxy
binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
ctl-path = ${directory:bin}/haproxy-ctl ctl-path = ${directory:bin}/haproxy-ctl
backend-list = backend-list =
{%- for section_name in section_list %} {%- for section_name in cloudooo_section_list %}
{{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }} {{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }}
{%- endfor %} {%- endfor %}
...@@ -81,10 +229,8 @@ recipe = slapos.cookbook:fontconfig ...@@ -81,10 +229,8 @@ recipe = slapos.cookbook:fontconfig
conf-path = ${directory:etc}/font.conf conf-path = ${directory:etc}/font.conf
font-system-folder = {{ parameter_dict['fonts'] }} font-system-folder = {{ parameter_dict['fonts'] }}
font-folder = ${directory:font} font-folder = ${directory:font}
{# XXX: violates "instanciation happens offline" rule -#}
url-list = {{ slapparameter_dict.get('font-url-list', []) | join(' ') }}
service-folder = ${directory:services} service-folder = ${directory:services}
onetimedownload_path = {{ bin_directory }}/onetimedownload
[binary-link] [binary-link]
recipe = slapos.cookbook:symbolic.link recipe = slapos.cookbook:symbolic.link
...@@ -108,9 +254,18 @@ link-binary = ...@@ -108,9 +254,18 @@ link-binary =
# rest of parts are candidates for some generic stuff # rest of parts are candidates for some generic stuff
[directory] [directory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
apache-conf = ${:etc}/apache
bin = ${buildout:directory}/bin bin = ${buildout:directory}/bin
ca-dir = ${buildout:directory}/srv/ssl
certs = ${:ca-dir}/certs
crl = ${:ca-dir}/crl
etc = ${buildout:directory}/etc etc = ${buildout:directory}/etc
font = ${:srv}/font font = ${:srv}/font
log = ${:var}/log
newcerts = ${:ca-dir}/newcerts
private = ${:ca-dir}/private
promise = ${directory:etc}/promise
requests = ${:ca-dir}/requests
run = ${:var}/run run = ${:var}/run
services = ${:etc}/run services = ${:etc}/run
srv = ${buildout:directory}/srv srv = ${buildout:directory}/srv
......
...@@ -19,60 +19,30 @@ recipe = slapos.recipe.template:jinja2 ...@@ -19,60 +19,30 @@ recipe = slapos.recipe.template:jinja2
rendered = ${buildout:parts-directory}/${:_buildout_section_name_}/${:filename} rendered = ${buildout:parts-directory}/${:_buildout_section_name_}/${:filename}
extra-context = extra-context =
context = context =
key ipv6_set slap-parameters:ipv6
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key slapparameter_dict slap-parameters:configuration key slapparameter_dict slap-parameters:configuration
${:extra-context} ${:extra-context}
[dynamic-template-cloudooo-parameters] [cloudooo-dynamic-template-parameter-dict]
buildout-bin-directory = {{ buildout_bin_directory }} {% for key, value in dynamic_template_cloudooo_instance_parameter_dict.items() -%}
cairo = {{ cairo_location }} {{ key }} = {{ dumps(value) }}
coreutils = {{ coreutils_location }} {% endfor -%}
cups = {{ cups_location }} instance-parameter-dict = {{ dumps(cloudooo_parameter_dict) }}
dash = {{ dash_location }}
dbus = {{ dbus_location }}
dbus-glib = {{ dbus_glib_location }}
file = {{ file_location }}
fontconfig = {{ fontconfig_location }}
fonts = {{ fonts_location }}
freetype = {{ freetype_location }}
glib = {{ glib_location }}
glu = {{ glu_location }}
haproxy = {{ haproxy_location }}
imagemagick = {{ imagemagick_location }}
libICE = {{ libICE_location }}
libSM = {{ libSM_location }}
libX11 = {{ libX11_location }}
libXau = {{ libXau_location }}
libXdmcp = {{ libXdmcp_location }}
libXext = {{ libXext_location }}
libXrender = {{ libXrender_location }}
libexpat = {{ libexpat_location }}
libffi = {{ libffi_location }}
libpng12 = {{ libpng12_location }}
libreoffice-bin = {{ libreoffice_bin_location }}
libxcb = {{ libxcb_location }}
mesa = {{ mesa_location }}
poppler = {{ poppler_location }}
pixman = {{ pixman_location }}
wkhtmltopdf = {{ wkhtmltopdf_location }}
xdamage = {{ xdamage_location }}
xfixes = {{ xfixes_location }}
xserver = {{ xserver_location }}
zlib = {{ zlib_location }}
[dynamic-template-cloudooo] [cloudooo-dynamic-template]
< = jinja2-template-base < = jinja2-template-base
template = {{ template_cloudooo }} template = {{ template_cloudooo_instance }}
filename = instance-cloudoo.cfg filename = instance-cloudooo.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
section parameter_dict dynamic-template-cloudooo-parameters section parameter_dict cloudooo-dynamic-template-parameter-dict
key ipv4_set slap-parameters:ipv4 key ipv4_set slap-parameters:ipv4
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:softwaretype recipe = slapos.cookbook:softwaretype
default = ${dynamic-template-cloudooo:rendered} default = ${cloudooo-dynamic-template:rendered}
[slap-connection] [slap-connection]
# part to migrate to new - separated words # part to migrate to new - separated words
......
[buildout]
extends =
../../stack/cloudooo.cfg
../../stack/logrotate/buildout.cfg
[cloudooo-buildout]
parts =
# Local development
cloudooo-develop
slapos-cookbook-develop
slapos-cookbook
[slap-parameters]
recipe = slapos.cookbook:slapconfiguration
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url}
key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file}
[template-cloudooo]
< = template-cloudooo-base
recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg
template = ${:_profile_base_location_}/instance.cfg.in
md5sum = 4543e62c41726ef074454252c4951ac8
mode = 640
[template-cloudooo-base]
context =
key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory
key template_cloudooo_instance template-cloudooo-instance:target
section dynamic_template_cloudooo_instance_parameter_dict dynamic-template-cloudooo-instance-parameter-dict
section cloudooo_parameter_dict cloudooo-software-parameter-dict
[dynamic-template-cloudooo-instance-parameter-dict]
apache = ${apache:location}
buildout-bin-directory = ${buildout:bin-directory}
cairo = ${cairo:location}
coreutils = ${coreutils:location}
cups = ${cups:location}
dash = ${dash:location}
dbus = ${dbus:location}
dbus-glib = ${dbus-glib:location}
file = ${file:location}
fontconfig = ${fontconfig:location}
fonts = ${fonts:location}
freetype = ${freetype:location}
glib = ${glib:location}
glu = ${glu:location}
haproxy = ${haproxy:location}
imagemagick = ${imagemagick:location}
libICE = ${libICE:location}
libSM = ${libSM:location}
libX11 = ${libX11:location}
libXau = ${libXau:location}
libXdmcp = ${libXdmcp:location}
libXext = ${libXext:location}
libXrender = ${libXrender:location}
libexpat = ${libexpat:location}
libffi = ${libffi:location}
libpng12 = ${libpng12:location}
libreoffice-bin = ${libreoffice-bin:location}
libxcb = ${libxcb:location}
mesa = ${mesa:location}
openssl = ${openssl:location}
poppler = ${poppler:location}
pixman = ${pixman:location}
wkhtmltopdf = ${wkhtmltopdf:location}
xdamage = ${xdamage:location}
xfixes = ${xfixes:location}
xserver = ${xserver:location}
zlib = ${zlib:location}
template-apache-conf = ${template-apache-backend-conf:target}
template-logrotate-base = ${template-logrotate-base:rendered}
[template-cloudooo-instance]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-cloudooo.cfg.in
md5sum = 84b9da151545039f6755c969b1532ec2
mode = 640
[buildout] [buildout]
extends = extends =
../../stack/cloudooo.cfg software-common.cfg
parts += parts +=
# Local development ${cloudooo-buildout:parts}
cloudooo-develop template-cloudooo
slapos-cookbook-develop
slapos-cookbook
# Create instance template [cloudooo-software-parameter-dict]
template publish-url-name = cloudooo
port-parameter-name = tcpv4-port
[slap-parameters] port = 8000
recipe = slapos.cookbook:slapconfiguration backend-count-parameter-name = backend-count
computer = ${slap-connection:computer-id} backend-count = 1
partition = ${slap-connection:partition-id} timeout-parameter-name = timeout
url = ${slap-connection:server-url} # timeout in seconds
key = ${slap-connection:key-file} timeout = 600
cert = ${slap-connection:cert-file} ssl-dict-parameter-name = ssl
#ssl-dict =
[template-jinja2-base] mimetype-entry-addition-parameter-name = mimetype-entry-addition
recipe = slapos.recipe.template:jinja2 mimetype-entry-addition =
mode = 640 text/html application/pdf wkhtmltopdf
template = ${:_profile_base_location_}/${:filename}.in
rendered = ${buildout:directory}/${:filename}
# XXX: extra-context is needed because we cannot append to a key of an extended
# section.
extra-context =
context =
key bin_directory buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory
${:extra-context}
[template]
< = template-jinja2-base
# XXX: "template.cfg" is hardcoded in instanciation recipe
filename = template.cfg
template = ${:_profile_base_location_}/instance.cfg.in
md5sum = 6e215fc2969a5d3d653981371a3a952a
extra-context =
key buildout_bin_directory buildout:bin-directory
key coreutils_location coreutils:location
key cairo_location cairo:location
key cups_location cups:location
key dash_location dash:location
key dbus_glib_location dbus-glib:location
key dbus_location dbus:location
key dcron_location dcron:location
key file_location file:location
key fontconfig_location fontconfig:location
key fonts_location fonts:location
key freetype_location freetype:location
key git_location git:location
key glib_location glib:location
key glu_location glu:location
key haproxy_location haproxy:location
key imagemagick_location imagemagick:location
key libICE_location libICE:location
key libSM_location libSM:location
key libX11_location libX11:location
key libXau_location libXau:location
key libXdmcp_location libXdmcp:location
key libXext_location libXext:location
key libXrender_location libXrender:location
key libexpat_location libexpat:location
key libffi_location libffi:location
key libpng12_location libpng12:location
key libreoffice_bin_location libreoffice-bin:location
key libxcb_location libxcb:location
key mesa_location mesa:location
key openssl_location openssl:location
key pixman_location pixman:location
key poppler_location poppler:location
key template_cloudooo template-cloudooo:target
key wkhtmltopdf_location wkhtmltopdf:location
key xdamage_location xdamage:location
key xfixes_location xfixes:location
key xserver_location xserver:location
key zlib_location zlib:location
[template-cloudooo]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
md5sum = 2763ad422f2afb2edecd58e1933b7ae6
mode = 640
...@@ -8,14 +8,6 @@ ...@@ -8,14 +8,6 @@
}, { }, {
"description": "Start allocating ports at this value, going upward" "description": "Start allocating ports at this value, going upward"
}] }]
},
"font-url-list": {
"description": "List of URLs from which fonts are to be downloaded",
"default": [],
"items": {
"type": "string"
},
"type": "array"
} }
} }
} }
...@@ -79,7 +79,7 @@ plone.recipe.command = 1.1 ...@@ -79,7 +79,7 @@ plone.recipe.command = 1.1
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
...@@ -91,4 +91,4 @@ feedparser = 5.1.3 ...@@ -91,4 +91,4 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 2.0.0 paramiko = 2.0.1
...@@ -17,6 +17,7 @@ parts = ...@@ -17,6 +17,7 @@ parts =
; ipython notebook component ; ipython notebook component
eggs += eggs +=
requests requests
astor
${scipy:egg} ${scipy:egg}
${pandas:egg} ${pandas:egg}
${scikit-learn:egg} ${scikit-learn:egg}
...@@ -52,7 +53,7 @@ md5sum = ab6e78ea20855e07d388b5b86d1770fe ...@@ -52,7 +53,7 @@ md5sum = ab6e78ea20855e07d388b5b86d1770fe
[custom-js] [custom-js]
<= download-file-base <= download-file-base
filename = custom.js.jinja filename = custom.js.jinja
md5sum = 0e8262d04a6dafbc1b77d95aea2192bc md5sum = a851a68667a4e676cfa86b34a86b4239
[instance-jupyter] [instance-jupyter]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
...@@ -176,3 +177,5 @@ pickleshare = 0.5 ...@@ -176,3 +177,5 @@ pickleshare = 0.5
# ipython==4.0.0 # ipython==4.0.0
# notebook==4.0.6 # notebook==4.0.6
traitlets = 4.1.0b1 traitlets = 4.1.0b1
astor = 0.5
...@@ -86,7 +86,7 @@ $([IPython.events]).on('notebook_loaded.Notebook', function(){ ...@@ -86,7 +86,7 @@ $([IPython.events]).on('notebook_loaded.Notebook', function(){
var display_text="<div class='output_subarea output_text output_result'>\ var display_text="<div class='output_subarea output_text output_result'>\
<pre>Follow these steps to customize your notebook with ERP5 kernel :-</br>\ <pre>Follow these steps to customize your notebook with ERP5 kernel :-</br>\
1. Add <b>%erp5_url &lt;your_erp5_url&gt;/erp5/Base_executeJupyter</b>.</br>\ 1. Add <b>%erp5_url &lt;your_erp5_url&gt;/erp5/Base_executeJupyter</b>.</br>\
Make sure you have 'erp5_data_notebook' business template installed in your erp5</br>\ Make sure you have 'erp5_data_notebook' business template installed in your ERP5</br>\
2. <b>%notebook_set_reference &lt;your_notebook_refernce&gt;</b></br>\ 2. <b>%notebook_set_reference &lt;your_notebook_refernce&gt;</b></br>\
It would be better to set the reference to match with erp5 reference pattern.</br>\ It would be better to set the reference to match with erp5 reference pattern.</br>\
3. <b>%erp5_user &lt;your_erp5_username&gt;</b></br>\ 3. <b>%erp5_user &lt;your_erp5_username&gt;</b></br>\
...@@ -96,8 +96,26 @@ $([IPython.events]).on('notebook_loaded.Notebook', function(){ ...@@ -96,8 +96,26 @@ $([IPython.events]).on('notebook_loaded.Notebook', function(){
<b>%my_notebooks</b> -This is used to display all the notebooks created by the specific user.</br>\ <b>%my_notebooks</b> -This is used to display all the notebooks created by the specific user.</br>\
NOTE: Do not dynamically alter imported module objects as they are not being saved in DB, </br>\ NOTE: Do not dynamically alter imported module objects as they are not being saved in DB, </br>\
so changes to them would be disregarded and would throw an error.</br>\ so changes to them would be disregarded and would throw an error.</br>\
<p><u>About classes, functions and global state on modules:</u></p>\
Your code is going to be executed by ERP5, which can have many nodes </br>\
and there is no guarantee that your code is always going to be executed by the same server.</br>\
This means that objects which cannot be stored in the ZODB, like functions, classes and modules </br>\
won't be available across nodes. To solve this issue, you need to use a special object </br>\
called 'environment' to store your global setup. This object was designed to hold global </br>\
state and restore it for each code cell. Example:</br></br>\
<b>def my_setup():</br>\
# import modules, define functions and classes</br>\
# and set global state on modules</br>\
# return dict of variables to be available in code cells</br>\
{'my_var': 1}</br>\
environment.define(my_setup, 'my custom setup')</b></br></br>\
After you execute this cell, the <b>my_setup</b> function will run before each of the</br>\
following cells and the <b>my_var</b> variable will be created and set to 1.</br></br>\
<b>WARNING:</b> it is not recommended to have too many setup functions in the environment, </br>\
because they will be executed in every code cell and can cause a substantial slow down.\
</pre></div>"; </pre></div>";
if (kernelname=="erp5"){ if (kernelname=="erp5"){
$('div#notebook-container').prepend(display_text); $('div#notebook-container').prepend(display_text);
} }
}); });
\ No newline at end of file
\ No newline at end of file
...@@ -20,7 +20,7 @@ pycurl = 7.19.5.1 ...@@ -20,7 +20,7 @@ pycurl = 7.19.5.1
# Required by: # Required by:
# slapos.toolbox==0.48 # slapos.toolbox==0.48
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.48 # slapos.toolbox==0.48
...@@ -44,7 +44,7 @@ numpy = 1.9.2 ...@@ -44,7 +44,7 @@ numpy = 1.9.2
# Required by: # Required by:
# slapos.toolbox==0.48 # slapos.toolbox==0.48
paramiko = 2.0.0 paramiko = 2.0.1
# Required by: # Required by:
# slapos.toolbox==0.48 # slapos.toolbox==0.48
......
...@@ -7,9 +7,7 @@ ...@@ -7,9 +7,7 @@
[buildout] [buildout]
extends = extends =
../../stack/slapos.cfg ../../stack/slapos.cfg
../../component/dcron/buildout.cfg ../../stack/logrotate/buildout.cfg
../../component/gzip/buildout.cfg
../../component/logrotate/buildout.cfg
#LXML #LXML
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
#END LXML #END LXML
...@@ -31,9 +29,13 @@ recipe = slapos.recipe.build:gitclone ...@@ -31,9 +29,13 @@ recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/neoppod.git repository = https://lab.nexedi.com/nexedi/neoppod.git
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
[neoppod-setup-env]
PATH = ${git:location}/bin:%(PATH)s
[neoppod-develop] [neoppod-develop]
recipe = zc.recipe.egg:develop recipe = zc.recipe.egg:develop
setup = ${neoppod-repository:location} setup = ${neoppod-repository:location}
environment = neoppod-setup-env
[neoppod] [neoppod]
recipe = zc.recipe.egg recipe = zc.recipe.egg
...@@ -56,17 +58,6 @@ eggs = ...@@ -56,17 +58,6 @@ eggs =
scripts = scripts =
slapos-kill slapos-kill
[template-logrotate-base]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename}.in
rendered = ${buildout:directory}/${:filename}
filename = instance-logrotate-base.cfg
md5sum = af19ff0c7817df85987c69738fb083f2
context =
key dcron_location dcron:location
key gzip_location gzip:location
key logrotate_location logrotate:location
[download-base-neo] [download-base-neo]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in url = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in
...@@ -121,10 +112,10 @@ apache-libcloud = 0.20.1 ...@@ -121,10 +112,10 @@ apache-libcloud = 0.20.1
atomize = 0.2.0 atomize = 0.2.0
ecdsa = 0.13 ecdsa = 0.13
feedparser = 5.2.1 feedparser = 5.2.1
GitPython = 2.0.5 GitPython = 2.0.6
gitdb = 0.6.4 gitdb = 0.6.4
lockfile = 0.12.2 lockfile = 0.12.2
mysqlclient = 1.3.7 mysqlclient = 1.3.7
paramiko = 2.0.0 paramiko = 2.0.1
pycrypto = 2.6.1 pycrypto = 2.6.1
smmap = 0.9.0 smmap = 0.9.0
...@@ -117,7 +117,7 @@ smmap = 0.9.0 ...@@ -117,7 +117,7 @@ smmap = 0.9.0
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
...@@ -141,7 +141,7 @@ miniupnpc = 1.9 ...@@ -141,7 +141,7 @@ miniupnpc = 1.9
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
paramiko = 2.0.0 paramiko = 2.0.1
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
......
...@@ -24,7 +24,7 @@ smmap = 0.9.0 ...@@ -24,7 +24,7 @@ smmap = 0.9.0
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
...@@ -40,4 +40,4 @@ lockfile = 0.12.2 ...@@ -40,4 +40,4 @@ lockfile = 0.12.2
# Required by: # Required by:
# slapos.toolbox==0.55 # slapos.toolbox==0.55
paramiko = 2.0.0 paramiko = 2.0.1
...@@ -19,6 +19,7 @@ initialization = ...@@ -19,6 +19,7 @@ initialization =
extra-paths += extra-paths +=
${wendelin:location} ${wendelin:location}
eggs += eggs +=
astor
${scipy:egg} ${scipy:egg}
${msgpack-python:egg} ${msgpack-python:egg}
${wendelin.core:egg} ${wendelin.core:egg}
......
...@@ -75,7 +75,7 @@ smmap = 0.8.2 ...@@ -75,7 +75,7 @@ smmap = 0.8.2
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
...@@ -87,4 +87,4 @@ feedparser = 5.1.3 ...@@ -87,4 +87,4 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 2.0.0 paramiko = 2.0.1
...@@ -6,6 +6,7 @@ exec-sitecustomize = false ...@@ -6,6 +6,7 @@ exec-sitecustomize = false
extends = extends =
../stack/slapos.cfg ../stack/slapos.cfg
../component/apache/buildout.cfg
../component/cloudooo/buildout.cfg ../component/cloudooo/buildout.cfg
../component/coreutils/buildout.cfg ../component/coreutils/buildout.cfg
../component/cups/buildout.cfg ../component/cups/buildout.cfg
...@@ -23,6 +24,7 @@ extends = ...@@ -23,6 +24,7 @@ extends =
../component/libffi/buildout.cfg ../component/libffi/buildout.cfg
../component/libpng/buildout.cfg ../component/libpng/buildout.cfg
../component/libreoffice-bin/buildout.cfg ../component/libreoffice-bin/buildout.cfg
../component/logrotate/buildout.cfg
../component/lxml-python/buildout.cfg ../component/lxml-python/buildout.cfg
../component/mesa/buildout.cfg ../component/mesa/buildout.cfg
../component/poppler/buildout.cfg ../component/poppler/buildout.cfg
...@@ -37,6 +39,7 @@ parts = ...@@ -37,6 +39,7 @@ parts =
libreoffice-bin libreoffice-bin
stunnel stunnel
dcron dcron
install-plone-recipe-command
# basic Xorg # basic Xorg
libXdmcp libXdmcp
...@@ -69,11 +72,17 @@ parts = ...@@ -69,11 +72,17 @@ parts =
ffmpeg ffmpeg
rdiff-backup rdiff-backup
apache
apache-antiloris
haproxy haproxy
cloudooo-develop cloudooo-develop
cloudooo cloudooo
[install-plone-recipe-command]
recipe = plone.recipe.command
command = true
[versions] [versions]
Paste = 2.0.2 Paste = 2.0.2
PasteScript = 2.0.2 PasteScript = 2.0.2
......
...@@ -177,12 +177,12 @@ md5sum = 763db0c4a94649296e74fe1f53c03940 ...@@ -177,12 +177,12 @@ md5sum = 763db0c4a94649296e74fe1f53c03940
[template-cloudooo] [template-cloudooo]
<= download-base <= download-base
filename = instance-cloudoo.cfg.in filename = instance-cloudoo.cfg.in
md5sum = 1b515056c5892a86d4ece252ad114a97 md5sum = 1eedc7ee93ac7c95e1c7d50a36ef2b01
[template-zope-conf] [template-zope-conf]
<= download-base <= download-base
filename = zope.conf.in filename = zope.conf.in
md5sum = c1cd0be406152c79e137dcf8c81f52f2 md5sum = 77ab4f229a92e02603028a0bd3772edd
[template-runzope-userhosts-preloaded] [template-runzope-userhosts-preloaded]
<= download-base <= download-base
...@@ -291,7 +291,7 @@ context = ...@@ -291,7 +291,7 @@ context =
key sixtunnel_location 6tunnel:location key sixtunnel_location 6tunnel:location
key slapos_core_version versions:slapos.core key slapos_core_version versions:slapos.core
key stunnel_location stunnel:location key stunnel_location stunnel:location
key template_apache_conf template-apache-conf:target key template_apache_conf template-apache-backend-conf:target
key template_balancer template-balancer:target key template_balancer template-balancer:target
key template_cloudooo template-cloudooo:target key template_cloudooo template-cloudooo:target
key template_create_erp5_site template-create-erp5-site:target key template_create_erp5_site template-create-erp5-site:target
...@@ -341,7 +341,7 @@ md5sum = b0cb0ee97cddc79112a718e065806037 ...@@ -341,7 +341,7 @@ md5sum = b0cb0ee97cddc79112a718e065806037
[template-zope] [template-zope]
<= download-base <= download-base
filename = instance-zope.cfg.in filename = instance-zope.cfg.in
md5sum = 144fb4567e12bac2c7ed61e7477d5418 md5sum = 83304f1940e0d7555bd678e2cea4c738
link-binary = link-binary =
${aspell:location}/bin/aspell ${aspell:location}/bin/aspell
${dmtx-utils:location}/bin/dmtxwrite ${dmtx-utils:location}/bin/dmtxwrite
...@@ -367,11 +367,6 @@ link-binary = ...@@ -367,11 +367,6 @@ link-binary =
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
md5sum = ec9321514674c084e509ca070763b4a1 md5sum = ec9321514674c084e509ca070763b4a1
[template-apache-conf]
<= download-base
filename = apache.conf.in
md5sum = cbe53c1879db9601a521e3ce1d546116
[template-haproxy-cfg] [template-haproxy-cfg]
<= download-base <= download-base
filename = haproxy.cfg.in filename = haproxy.cfg.in
...@@ -483,6 +478,7 @@ eggs = ...@@ -483,6 +478,7 @@ eggs =
${pycrypto-python:egg} ${pycrypto-python:egg}
${scikit-learn:egg} ${scikit-learn:egg}
lock_file lock_file
astor
PyStemmer PyStemmer
PyXML PyXML
Pympler Pympler
...@@ -616,7 +612,6 @@ eggs += ...@@ -616,7 +612,6 @@ eggs +=
scripts += scripts +=
is-local-tcp-port-opened is-local-tcp-port-opened
is-process-older-than-dependency-set is-process-older-than-dependency-set
onetimedownload
zodbpack zodbpack
[versions] [versions]
...@@ -690,31 +685,30 @@ Zope2 = 2.13.24 ...@@ -690,31 +685,30 @@ Zope2 = 2.13.24
astroid = 1.3.8 astroid = 1.3.8
backports-abc = 0.4 backports-abc = 0.4
chardet = 2.3.0 chardet = 2.3.0
cns.recipe.symlink = 0.2.3
csp-eventlet = 0.7.0 csp-eventlet = 0.7.0
erp5diff = 0.8.1.7 erp5diff = 0.8.1.7
eventlet = 0.19.0 eventlet = 0.19.0
five.formlib = 1.0.4 five.formlib = 1.0.4
five.localsitemanager = 2.0.5 five.localsitemanager = 2.0.5
greenlet = 0.4.9 greenlet = 0.4.10
http-parser = 0.8.3 http-parser = 0.8.3
httplib2 = 0.9.2 httplib2 = 0.9.2
huBarcode = 1.0.0 huBarcode = 1.0.0
interval = 1.0.0 interval = 1.0.0
ipdb = 0.10.0 ipdb = 0.10.1
ipykernel = 4.3.1 ipykernel = 4.3.1
ipython = 4.2.0 ipython = 4.2.1
ipywidgets = 5.1.5 ipywidgets = 5.1.5
logilab-common = 1.2.1 logilab-common = 1.2.2
matplotlib = 1.5.1 matplotlib = 1.5.1
mistune = 0.7.2 mistune = 0.7.3
notebook = 4.2.0 notebook = 4.2.1
numpy = 1.11.0 numpy = 1.11.1
objgraph = 3.0.0 objgraph = 3.0.0
pandas = 0.18.1 pandas = 0.18.1
ply = 3.8 ply = 3.8
polib = 1.0.7 polib = 1.0.7
pprofile = 1.8.3 pprofile = 1.9.1
ptyprocess = 0.5.1 ptyprocess = 0.5.1
pycountry = 1.20 pycountry = 1.20
pyflakes = 1.2.3 pyflakes = 1.2.3
...@@ -738,7 +732,7 @@ timerserver = 2.0.2 ...@@ -738,7 +732,7 @@ timerserver = 2.0.2
tornado = 4.3 tornado = 4.3
urlnorm = 1.1.2 urlnorm = 1.1.2
uuid = 1.30 uuid = 1.30
validictory = 1.0.1 validictory = 1.0.2
widgetsnbextension = 1.2.3 widgetsnbextension = 1.2.3
xfw = 0.10 xfw = 0.10
xupdate-processor = 0.4 xupdate-processor = 0.4
...@@ -748,7 +742,7 @@ xupdate-processor = 0.4 ...@@ -748,7 +742,7 @@ xupdate-processor = 0.4
Products.ZSQLMethods = 2.13.4 Products.ZSQLMethods = 2.13.4
# Required by: # Required by:
# ipython==4.2.0 # ipython==4.2.1
backports.shutil-get-terminal-size = 1.0.0 backports.shutil-get-terminal-size = 1.0.0
# Required by: # Required by:
...@@ -759,18 +753,14 @@ backports.ssl-match-hostname = 3.5.0.1 ...@@ -759,18 +753,14 @@ backports.ssl-match-hostname = 3.5.0.1
# tornado==4.3 # tornado==4.3
certifi = 2016.2.28 certifi = 2016.2.28
# Required by:
# qrcode==5.2.2
colorama = 0.3.7
# Required by: # Required by:
# matplotlib==1.5.1 # matplotlib==1.5.1
cycler = 0.10.0 cycler = 0.10.0
# Required by: # Required by:
# ipython==4.2.0 # ipython==4.2.1
# traitlets==4.2.1 # traitlets==4.2.2
decorator = 4.0.9 decorator = 4.0.10
# Required by: # Required by:
# SOAPpy===0.12.0nxd001 # SOAPpy===0.12.0nxd001
...@@ -778,18 +768,18 @@ fpconst = 0.7.2 ...@@ -778,18 +768,18 @@ fpconst = 0.7.2
# Required by: # Required by:
# nbformat==4.0.1 # nbformat==4.0.1
# notebook==4.2.0 # notebook==4.2.1
# traitlets==4.2.1 # traitlets==4.2.2
ipython-genutils = 0.1.0 ipython-genutils = 0.1.0
# Required by: # Required by:
# notebook==4.2.0 # notebook==4.2.1
# nbconvert 4.2.0 depends on entrypoints egg that is not available as tar/zip source. # nbconvert 4.2.0 depends on entrypoints egg that is not available as tar/zip source.
nbconvert = 4.1.0 nbconvert = 4.1.0
# Required by: # Required by:
# nbconvert==4.1.0 # nbconvert==4.1.0
# notebook==4.2.0 # notebook==4.2.1
nbformat = 4.0.1 nbformat = 4.0.1
# Required by: # Required by:
...@@ -797,16 +787,16 @@ nbformat = 4.0.1 ...@@ -797,16 +787,16 @@ nbformat = 4.0.1
pathlib2 = 2.1.0 pathlib2 = 2.1.0
# Required by: # Required by:
# ipython==4.2.0 # ipython==4.2.1
pexpect = 4.0.1 pexpect = 4.1.0
# Required by: # Required by:
# ipython==4.2.0 # ipython==4.2.1
pickleshare = 0.7.2 pickleshare = 0.7.2
# Required by: # Required by:
# matplotlib==1.5.1 # matplotlib==1.5.1
# pandas==0.18.0 # pandas==0.18.1
python-dateutil = 2.5.3 python-dateutil = 2.5.3
# Required by: # Required by:
...@@ -814,9 +804,9 @@ python-dateutil = 2.5.3 ...@@ -814,9 +804,9 @@ python-dateutil = 2.5.3
singledispatch = 3.4.0.3 singledispatch = 3.4.0.3
# Required by: # Required by:
# ipython==4.2.0 # ipython==4.2.1
# notebook==4.2.0 # notebook==4.2.1
traitlets = 4.2.1 traitlets = 4.2.2
# Required by: # Required by:
# zope.app.testing==3.8.1 # zope.app.testing==3.8.1
......
...@@ -50,10 +50,7 @@ recipe = slapos.cookbook:fontconfig ...@@ -50,10 +50,7 @@ recipe = slapos.cookbook:fontconfig
conf-path = ${directory:etc}/font.conf conf-path = ${directory:etc}/font.conf
font-system-folder = {{ parameter_dict['fonts'] }} font-system-folder = {{ parameter_dict['fonts'] }}
font-folder = ${directory:font} font-folder = ${directory:font}
{# XXX: violates "instanciation happens offline" rule -#}
url-list = {{ dumps(slapparameter_dict.get('font-url-list', []) | join(' ')) }}
service-folder = ${directory:service} service-folder = ${directory:service}
onetimedownload_path = {{ bin_directory }}/onetimedownload
[resiliency-exclude-file] [resiliency-exclude-file]
# Generate rdiff exclude file in case of resiliency # Generate rdiff exclude file in case of resiliency
......
...@@ -284,6 +284,7 @@ node-id = {{ dumps(node_id_base ~ '-' ~ index) }} ...@@ -284,6 +284,7 @@ node-id = {{ dumps(node_id_base ~ '-' ~ index) }}
{% set log_list = [] -%} {% set log_list = [] -%}
{% set import_set = set() -%} {% set import_set = set() -%}
{% for db_name, zodb in zodb_dict.iteritems() -%} {% for db_name, zodb in zodb_dict.iteritems() -%}
{% do zodb.setdefault('pool-size', thread_amount) -%}
{% if zodb['type'] == 'neo' -%} {% if zodb['type'] == 'neo' -%}
{% do import_set.add('neo.client') -%} {% do import_set.add('neo.client') -%}
{% set log = name ~ '-neo-' ~ db_name ~ '.log' -%} {% set log = name ~ '-neo-' ~ db_name ~ '.log' -%}
......
...@@ -88,6 +88,7 @@ products {{ parameter_dict['instance-products'] }} ...@@ -88,6 +88,7 @@ products {{ parameter_dict['instance-products'] }}
level WARN level WARN
<logfile> <logfile>
dateformat dateformat
format %(message)s
path {{ parameter_dict['z2-log'] }} path {{ parameter_dict['z2-log'] }}
</logfile> </logfile>
</logger> </logger>
......
...@@ -50,7 +50,7 @@ smmap = 0.8.2 ...@@ -50,7 +50,7 @@ smmap = 0.8.2
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
...@@ -62,4 +62,4 @@ feedparser = 5.1.1 ...@@ -62,4 +62,4 @@ feedparser = 5.1.1
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 2.0.0 paramiko = 2.0.1
...@@ -194,7 +194,7 @@ smmap = 0.8.2 ...@@ -194,7 +194,7 @@ smmap = 0.8.2
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
...@@ -206,4 +206,4 @@ feedparser = 5.1.3 ...@@ -206,4 +206,4 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 2.0.0 paramiko = 2.0.1
...@@ -191,7 +191,7 @@ smmap = 0.8.2 ...@@ -191,7 +191,7 @@ smmap = 0.8.2
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
GitPython = 2.0.5 GitPython = 2.0.6
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
...@@ -203,7 +203,7 @@ feedparser = 5.1.3 ...@@ -203,7 +203,7 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 2.0.0 paramiko = 2.0.1
# Required by: # Required by:
# slapos.recipe.maarch==0.4 # slapos.recipe.maarch==0.4
......
[buildout]
extends =
../../component/dcron/buildout.cfg
../../component/gzip/buildout.cfg
../../component/logrotate/buildout.cfg
parts =
template-logrotate-base
[template-logrotate-base]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename}.in
rendered = ${buildout:directory}/${:filename}
filename = instance-logrotate-base.cfg
md5sum = af19ff0c7817df85987c69738fb083f2
context =
key dcron_location dcron:location
key gzip_location gzip:location
key logrotate_location logrotate:location
...@@ -109,28 +109,28 @@ hexagonit.recipe.download = 1.7.post4 ...@@ -109,28 +109,28 @@ hexagonit.recipe.download = 1.7.post4
Jinja2 = 2.8 Jinja2 = 2.8
PyYAML = 3.11 PyYAML = 3.11
Werkzeug = 0.11.9 Werkzeug = 0.11.10
buildout-versions = 1.7 buildout-versions = 1.7
cffi = 1.6.0 cffi = 1.7.0
click = 6.6 click = 6.6
cliff = 2.0.0 cliff = 2.1.0
cmd2 = 0.6.8 cmd2 = 0.6.8
collective.recipe.template = 1.13 collective.recipe.template = 1.13
cryptography = 1.3.4 cryptography = 1.4
decorator = 4.0.9 decorator = 4.0.10
idna = 2.1 idna = 2.1
inotifyx = 0.2.2 inotifyx = 0.2.2
itsdangerous = 0.24 itsdangerous = 0.24
lxml = 3.6.0 lxml = 3.6.0
meld3 = 1.0.2 meld3 = 1.0.2
netaddr = 0.7.18 netaddr = 0.7.18
pbr = 1.9.1 pbr = 1.10.0
plone.recipe.command = 1.1 plone.recipe.command = 1.1
prettytable = 0.7.2 prettytable = 0.7.2
psutil = 4.2.0 psutil = 4.3.0
pyOpenSSL = 16.0.0 pyOpenSSL = 16.0.0
pyasn1 = 0.1.9 pyasn1 = 0.1.9
pyparsing = 2.1.4 pyparsing = 2.1.5
pytz = 2016.4 pytz = 2016.4
requests = 2.10.0 requests = 2.10.0
setuptools = 19.6.2 setuptools = 19.6.2
...@@ -142,20 +142,20 @@ slapos.extension.strip = 0.1 ...@@ -142,20 +142,20 @@ slapos.extension.strip = 0.1
slapos.libnetworkcache = 0.14.5 slapos.libnetworkcache = 0.14.5
slapos.recipe.build = 0.23 slapos.recipe.build = 0.23
slapos.recipe.cmmi = 0.2 slapos.recipe.cmmi = 0.2
stevedore = 1.13.0 stevedore = 1.15.0
unicodecsv = 0.14.1 unicodecsv = 0.14.1
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
# Required by: # Required by:
# slapos.core==1.3.15 # slapos.core==1.3.15
Flask = 0.11 Flask = 0.11.1
# Required by: # Required by:
# Jinja2==2.8 # Jinja2==2.8
MarkupSafe = 0.23 MarkupSafe = 0.23
# Required by: # Required by:
# cryptography==1.3.4 # cryptography==1.4
enum34 = 1.1.6 enum34 = 1.1.6
# Required by: # Required by:
...@@ -163,15 +163,15 @@ enum34 = 1.1.6 ...@@ -163,15 +163,15 @@ enum34 = 1.1.6
functools32 = 3.2.3.post2 functools32 = 3.2.3.post2
# Required by: # Required by:
# cryptography==1.3.4 # cryptography==1.4
ipaddress = 1.0.16 ipaddress = 1.0.16
# Required by: # Required by:
# slapos.cookbook==1.0.25 # slapos.cookbook==1.0.31
jsonschema = 2.5.1 jsonschema = 2.5.1
# Required by: # Required by:
# slapos.cookbook==1.0.25 # slapos.cookbook==1.0.31
lock-file = 2.0 lock-file = 2.0
# Required by: # Required by:
...@@ -179,7 +179,7 @@ lock-file = 2.0 ...@@ -179,7 +179,7 @@ lock-file = 2.0
netifaces = 0.10.4 netifaces = 0.10.4
# Required by: # Required by:
# cffi==1.6.0 # cffi==1.7.0
pycparser = 2.14 pycparser = 2.14
# Required by: # Required by:
...@@ -192,7 +192,7 @@ uritemplate = 0.6 ...@@ -192,7 +192,7 @@ uritemplate = 0.6
# Required by: # Required by:
# slapos.core==1.3.15 # slapos.core==1.3.15
zope.interface = 4.1.3 zope.interface = 4.2.0
[networkcache] [networkcache]
download-cache-url = http://www.shacache.org/shacache download-cache-url = http://www.shacache.org/shacache
......
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