Commit 00792696 authored by Alain Takoudjou's avatar Alain Takoudjou

Merge branch 'master' into 1.0

parents 8fae60f7 ba9ef609
...@@ -30,9 +30,9 @@ md5sum = 2202b18f269ad606d70e1864857ed93c ...@@ -30,9 +30,9 @@ md5sum = 2202b18f269ad606d70e1864857ed93c
[apache] [apache]
# inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/ # inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
version = 2.4.16 version = 2.4.17
url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2 url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2
md5sum = 2b19cd338fd526dd5a63c57b1e9bfee2 md5sum = cf4dfee11132cde836022f196611a8b7
pre-configure = pre-configure =
cp -ar ${apr:location}/apr-${apr:version} srclib/apr/ && cp -ar ${apr:location}/apr-${apr:version} srclib/apr/ &&
cp -ar ${apr-util:location}/apr-util-${apr-util:version} srclib/apr-util cp -ar ${apr-util:location}/apr-util-${apr-util:version} srclib/apr-util
......
...@@ -26,8 +26,8 @@ environment-extra = ...@@ -26,8 +26,8 @@ environment-extra =
[golang15] [golang15]
<= golang-common <= golang-common
url = https://storage.googleapis.com/golang/go1.5.1.src.tar.gz url = https://storage.googleapis.com/golang/go1.5.2.src.tar.gz
md5sum = 4adfbdfca523cc1c229be8a321f3602f md5sum = 38fed22e7b80672291e7cba7fb9c3475
# go1.5 needs go1.4 to bootstrap # go1.5 needs go1.4 to bootstrap
environment-extra = environment-extra =
......
...@@ -13,8 +13,8 @@ extends = ...@@ -13,8 +13,8 @@ extends =
[groonga] [groonga]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/groonga/groonga-5.0.8.tar.gz url = http://packages.groonga.org/source/groonga/groonga-5.1.0.tar.gz
md5sum = ccb36449fdd62c61367f3ed5e830aec3 md5sum = df2e716efee92bc80efd3ddaa84fafb7
# temporary patch to respect more tokens in natural language mode. # temporary patch to respect more tokens in natural language mode.
patches = patches =
${:_profile_base_location_}/groonga.patch#9ed02fbe8400402d3eab47eee149978b ${:_profile_base_location_}/groonga.patch#9ed02fbe8400402d3eab47eee149978b
......
...@@ -74,8 +74,8 @@ environment = ...@@ -74,8 +74,8 @@ environment =
[gdk-pixbuf] [gdk-pixbuf]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.31/gdk-pixbuf-2.31.6.tar.xz url = http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.32/gdk-pixbuf-2.32.1.tar.xz
md5sum = 67219eb45ed0aba90b3158042b909d4e md5sum = b1590189a2e89fab9f871959c168508c
pkg_config_depends = ${glib:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends} pkg_config_depends = ${glib:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}
configure-options = configure-options =
--disable-static --disable-static
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
[buildout] [buildout]
extends = extends =
../lua/buildout.cfg
../openssl/buildout.cfg ../openssl/buildout.cfg
../pcre/buildout.cfg ../pcre/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
...@@ -11,8 +12,8 @@ parts = haproxy ...@@ -11,8 +12,8 @@ parts = haproxy
[haproxy] [haproxy]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://www.haproxy.org/download/1.5/src/haproxy-1.5.15.tar.gz url = http://www.haproxy.org/download/1.6/src/haproxy-1.6.1.tar.gz
md5sum = eeaa35744f84c92184cd735ee56dd0a3 md5sum = 7343def2af8556ebc8972a9748176094
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".
...@@ -21,6 +22,9 @@ make-options = ...@@ -21,6 +22,9 @@ make-options =
TARGET="$(uname -sr 2>/dev/null|grep -Eq '^Linux (2\.6\.2[89]|2\.6\.[3-9]|3)' && echo linux2628 || echo generic)" TARGET="$(uname -sr 2>/dev/null|grep -Eq '^Linux (2\.6\.2[89]|2\.6\.[3-9]|3)' && echo linux2628 || echo generic)"
ARCH="$(uname -m 2>/dev/null|grep -E '^(x86_64|i[3456]86)$')" ARCH="$(uname -m 2>/dev/null|grep -E '^(x86_64|i[3456]86)$')"
PREFIX=${buildout:parts-directory}/${:_buildout_section_name_} PREFIX=${buildout:parts-directory}/${:_buildout_section_name_}
USE_LUA=1
LUA_INC=${lua:location}/include
LUA_LIB=${lua:location}/lib
USE_OPENSSL=1 USE_OPENSSL=1
SSL_INC=${openssl:location}/include SSL_INC=${openssl:location}/include
SSL_LIB=${openssl:location}/lib SSL_LIB=${openssl:location}/lib
......
...@@ -7,13 +7,12 @@ parts = ...@@ -7,13 +7,12 @@ parts =
[lua] [lua]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://www.lua.org/ftp/lua-5.2.3.tar.gz url = http://www.lua.org/ftp/lua-5.3.1.tar.gz
md5sum = dc7f94ec6ff15c985d2d6ad0f1b35654 md5sum = 797adacada8d85761c079390ff1d9961
configure-command = make posix configure-command = true
make-options =
"$(uname -sr 2>/dev/null|grep -Eq '^Linux' && echo linux || echo posix)"
MYCFLAGS="-I${readline:location}/include"
MYLDFLAGS="-L${readline:location}/lib -Wl,-rpath=${readline:location}/lib"
make-targets = make-targets =
install INSTALL_TOP=${buildout:parts-directory}/${:_buildout_section_name_} install INSTALL_TOP=${buildout:parts-directory}/${:_buildout_section_name_}
environment =
CMAKE_INCLUDE_PATH=${readline:location}/include
CMAKE_LIBRARY_PATH=${readline:location}/lib
CPPFLAGS =-I${readline:location}/include
LDFLAGS =-L${readline:location}/lib -Wl,-rpath=${readline:location}/lib
...@@ -61,8 +61,8 @@ post-install = ...@@ -61,8 +61,8 @@ post-install =
# mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users. # mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users.
# http://mroonga.github.com/ # http://mroonga.github.com/
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/mroonga/mroonga-5.08.tar.gz url = http://packages.groonga.org/source/mroonga/mroonga-5.10.tar.gz
md5sum = 65011c1da8700c4950d11dea7355b32d md5sum = 2fc6a7ae9e58bfd3430cdc8cb38ccf7f
pre-configure = pre-configure =
mkdir fake_mariadb_source && mkdir fake_mariadb_source &&
ln -s ${mariadb:location}/include/mysql/private fake_mariadb_source/sql ln -s ${mariadb:location}/include/mysql/private fake_mariadb_source/sql
...@@ -74,7 +74,6 @@ configure-options = ...@@ -74,7 +74,6 @@ configure-options =
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/mroonga_boolean.patch#36645770ae612515b74b90884ecc59fc ${:_profile_base_location_}/mroonga_boolean.patch#36645770ae612515b74b90884ecc59fc
${:_profile_base_location_}/mroonga_5.08_mariadb_10.1.8.patch#ead45e0fbb4cf3c2d39ece012793d3c4
environment = environment =
PATH=${groonga:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${groonga:location}/bin:${pkgconfig:location}/bin:%(PATH)s
CPPFLAGS=-I${groonga:location}/include/groonga -I${pcre:location}/include CPPFLAGS=-I${groonga:location}/include/groonga -I${pcre:location}/include
......
commit 4a40e81d17d1df28cfeca56d3d9c8f26d0132cfa
Author: Kouhei Sutou <kou@clear-code.com>
Date: Sun Oct 18 17:23:28 2015 +0900
Use public API
It fixes a build error on MariaDB 10.1.8.
diff --git a/ha_mroonga.cpp b/ha_mroonga.cpp
index 819de30..bfd9631 100644
--- a/ha_mroonga.cpp
+++ b/ha_mroonga.cpp
@@ -9620,13 +9620,13 @@ void ha_mroonga::check_count_skip(key_part_map start_key_part_map,
if (where->type() == Item::FUNC_ITEM) {
Item_func *func_item = static_cast<Item_func *>(where);
- if (func_item->arg_count == 0) {
+ if (func_item->argument_count() == 0) {
break;
}
target = func_item->key_item();
where = where->next;
if (func_item->arguments()[0] == where) {
- uint n_args = func_item->arg_count;
+ uint n_args = func_item->argument_count();
for (; n_args > 0; --n_args) {
where = where->next;
}
...@@ -16,8 +16,8 @@ parts = ...@@ -16,8 +16,8 @@ parts =
[openssl] [openssl]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://www.openssl.org/source/openssl-1.0.2d.tar.gz url = https://www.openssl.org/source/openssl-1.0.2e.tar.gz
md5sum = 38dd619b2e77cbac69b99f52a053d25a md5sum = 5262bfa25b60ed9de9f28d5d52d77fc5
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
patches = patches =
${:_profile_base_location_}/openssl-nodoc.patch#a78c14908fe9ec624b1fb9fa97e01bb9 ${:_profile_base_location_}/openssl-nodoc.patch#a78c14908fe9ec624b1fb9fa97e01bb9
......
[buildout] [buildout]
extends = extends =
../../stack/slapos.cfg ./common.cfg
../git/buildout.cfg
../babeld/buildout.cfg
../openvpn/buildout.cfg
develop =
re6stnet-repository
parts = parts =
babeld babeld
re6stnet-develop
re6stnet
[re6stnet-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/re6stnet.git
branch = master
git-executable = ${git:location}/bin/git
[re6stnet-develop]
recipe = zc.recipe.egg:develop
setup = ${re6stnet-hack:dir}
[re6stnet-hack]
recipe = plone.recipe.command
stop-on-error = true
dir = ${re6stnet-repository:location}
command =
rm -f "${:dir}/re6stconf.py" && ln -s re6st-conf "${:dir}/re6stconf.py"
rm -f "${:dir}/re6stregistry.py" && ln -s re6st-registry "${:dir}/re6stregistry.py"
rm -f "${:dir}/re6stnet.py" && ln -s re6stnet "${:dir}/re6stnet.py"
sed -i 's#("git",)#("${git:location}/bin/git",)#' ${:dir}/re6st/version.py
update-command = ${:command}
[environment]
# Note: For now original PATH is appended to the end, as not all tools are
# provided by SlapOS
PATH=${openvpn:location}/sbin:${babeld:location}/bin:${bzip2:location}/bin:${gettext:location}/bin:${glib:location}/bin:${libxml2:location}/bin:${libxslt:location}/bin:${ncurses:location}/bin:${openssl:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin:${readline:location}/bin:${sqlite3:location}/bin::${buildout:bin-directory}:${xz-utils:location}/bin:$PATH
[re6stnet]
recipe = zc.recipe.egg
eggs =
${lxml-python:egg}
${python-cffi:egg}
${python-cryptography:egg}
pyOpenSSL
re6stnet
script =
re6stnet re6stnet
re6st-conf
re6st-registry
initialization =
import os
os.environ['PATH'] = os.path.expandvars('${environment:PATH}')
entry-points =
re6stnet=re6stnet:main
re6st-conf=re6stconf:main
re6st-registry=re6stregistry:main
[versions]
re6stnet = 0.435
[buildout]
extends =
../../../stack/slapos.cfg
../git/buildout.cfg
../babeld/buildout.cfg
../openvpn/buildout.cfg
parts =
babeld
re6stnet
[environment]
# Note: For now original PATH is appended to the end, as not all tools are
# provided by SlapOS
PATH=${openvpn:location}/sbin:${babeld:location}/bin:${bzip2:location}/bin:${gettext:location}/bin:${glib:location}/bin:${libxml2:location}/bin:${libxslt:location}/bin:${ncurses:location}/bin:${openssl:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin:${readline:location}/bin:${sqlite3:location}/bin::${buildout:bin-directory}:${xz-utils:location}/bin:$PATH
[re6stnet]
recipe = zc.recipe.egg
eggs =
${lxml-python:egg}
${python-cffi:egg}
${python-cryptography:egg}
pyOpenSSL
re6stnet
script =
re6stnet
re6st-conf
re6st-registry
initialization =
import os
os.environ['PATH'] = os.path.expandvars('${environment:PATH}')
entry-points =
re6stnet=re6st.cli.node:main
re6st-conf=re6st.cli.conf:main
re6st-registry=re6st.cli.registry:main
[versions]
re6stnet = 0.435
[buildout]
extends =
./common.cfg
develop =
re6stnet-repository
parts =
babeld
re6stnet-develop
re6stnet
[re6stnet-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/re6stnet.git
branch = master
git-executable = ${git:location}/bin/git
[re6stnet-develop]
recipe = zc.recipe.egg:develop
setup = ${re6stnet-repository:location}
...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages ...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages
import glob import glob
import os import os
version = '1.0.17' version = '1.0.18.dev0'
name = 'slapos.cookbook' name = 'slapos.cookbook'
long_description = open("README.txt").read() + "\n" + \ long_description = open("README.txt").read() + "\n" + \
open("CHANGES.txt").read() + "\n" open("CHANGES.txt").read() + "\n"
......
...@@ -113,14 +113,6 @@ class Recipe(GenericBaseRecipe): ...@@ -113,14 +113,6 @@ class Recipe(GenericBaseRecipe):
if instance_home: if instance_home:
zope_environment["INSTANCE_HOME"] = instance_home zope_environment["INSTANCE_HOME"] = instance_home
# longrequestlogger product which requires environment settings
longrequest_logger_file = self.options.get('longrequest-logger-file', None)
if longrequest_logger_file:
# add needed zope configuration
zope_environment['longrequestlogger_file'] = longrequest_logger_file
zope_environment['longrequestlogger_timeout'] = self.options.get('longrequest-logger-timeout', None)
zope_environment['longrequestlogger_interval'] = self.options.get('longrequest-logger-interval', None)
# configure default Zope2 zcml # configure default Zope2 zcml
open(self.options['site-zcml'], 'w').write(open(self.getTemplateFilename( open(self.options['site-zcml'], 'w').write(open(self.getTemplateFilename(
'site.zcml')).read()) 'site.zcml')).read())
......
## Zope 2 configuration file generated by SlapOS
# Some defines
%%define INSTANCE %(instance)s
instancehome $INSTANCE
# Used products
%(products)s
# Environment is setup in running wrapper script
# Reason: zope.conf is read too late for some componets
# No need to debug
debug-mode off
# One thread is safe enough
zserver-threads %(thread_amount)s
# File location
pid-filename %(pid-filename)s
lock-filename %(lock-filename)s
# Encoding
rest-input-encoding utf-8
rest-output-encoding utf-8
default-zpublisher-encoding utf-8
# Disable ownership checking to execute codes generated by alarm
skip-ownership-checking on
# Temporary storage database (for sessions)
<zodb_db temporary>
<temporarystorage>
name temporary storage for sessioning
</temporarystorage>
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
</zodb_db>
# Logging configuration
<eventlog>
level info
<logfile>
dateformat
path %(event_log)s
</logfile>
</eventlog>
<logger access>
level WARN
<logfile>
dateformat
path %(z2_log)s
</logfile>
</logger>
# Serving configuration
<http-server>
address %(address)s
</http-server>
# ZODB configuration
%(zodb_configuration)s
<zoperunner>
program $INSTANCE/bin/runzope
</zoperunner>
# DeadlockDebugger configuration
<product-config DeadlockDebugger>
dump_url %(dump_url)s
secret %(secret)s
</product-config>
# ERP5 promise
<product-config /%(site-id)s>
promise_path %(promise-path)s
</product-config>
# TIDStorage connection
<product-config TIDStorage>
backend-ip %(tidstorage-ip)s
backend-port %(tidstorage-port)s
</product-config>
# ERP5 Timer Service
%%import timerserver
<timer-server>
interval 1
</timer-server>
<zodb_db %(storage-name)s>
cache-size %(zope-cache-size)s
mount-point %(mount-point)s
<zeoclient>
cache-size %(zeo-cache-size)s
server %(server)s
storage %(storage-name)s
name %(storage-name)s
</zeoclient>
</zodb_db>
listen %(name)s %(ip)s:%(port)s listen %(name)s
bind %(ip)s:%(port)s
cookie SERVERID insert cookie SERVERID insert
balance roundrobin balance roundrobin
%(httpchk)s %(httpchk)s
......
...@@ -69,7 +69,7 @@ lockfile = 0.10.2 ...@@ -69,7 +69,7 @@ lockfile = 0.10.2
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
paramiko = 1.15.2 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
......
...@@ -72,7 +72,7 @@ mode = 0644 ...@@ -72,7 +72,7 @@ mode = 0644
[template-apache-replicate] [template-apache-replicate]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-apache-replicate.cfg.in url = ${:_profile_base_location_}/instance-apache-replicate.cfg.in
md5sum = aafa98333cd51025938b33c2516f0b8d md5sum = bf3de2d814110d4af8efb5b7b165665b
mode = 0644 mode = 0644
[template-slave-list] [template-slave-list]
......
...@@ -15,7 +15,9 @@ context = ...@@ -15,7 +15,9 @@ context =
{% set part_list = [] -%} {% set part_list = [] -%}
{% set single_type_key = 'single-' %} {% set single_type_key = 'single-' %}
{% if slap_software_type in ("replicate", "RootSoftwareInstance") %} {% if slap_software_type in ("replicate", "RootSoftwareInstance") %}
{% set frontend_type = slapparameter_dict.pop('-frontend-type', 'single-default') -%} {% set frontend_type = slapparameter_dict.pop('-frontend-type', 'custom-personal') -%}
{% elif slap_software_type == 'default' -%}
{% set frontend_type = "%s%s" % (single_type_key, 'custom-personal') -%}
{% else -%} {% else -%}
{% set frontend_type = "%s%s" % (single_type_key, slap_software_type) -%} {% set frontend_type = "%s%s" % (single_type_key, slap_software_type) -%}
{% endif -%} {% endif -%}
......
...@@ -3,7 +3,7 @@ extends = common.cfg ...@@ -3,7 +3,7 @@ extends = common.cfg
[versions] [versions]
PyRSS2Gen = 1.1 PyRSS2Gen = 1.1
apache-libcloud = 0.18.0 apache-libcloud = 0.19.0
cns.recipe.symlink = 0.2.3 cns.recipe.symlink = 0.2.3
ecdsa = 0.13 ecdsa = 0.13
gitdb = 0.6.4 gitdb = 0.6.4
...@@ -32,7 +32,7 @@ lockfile = 0.10.2 ...@@ -32,7 +32,7 @@ lockfile = 0.10.2
# Required by: # Required by:
# slapos.toolbox==0.52 # slapos.toolbox==0.52
paramiko = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.52 # slapos.toolbox==0.52
......
...@@ -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 = 1.15.3 paramiko = 1.16.0
...@@ -32,6 +32,69 @@ to be accessible from IPv4. ...@@ -32,6 +32,69 @@ to be accessible from IPv4.
See the instance-kvm-input-schema.json file for more instance parameters (cpu-count, ram-size, disk-size, etc). See the instance-kvm-input-schema.json file for more instance parameters (cpu-count, ram-size, disk-size, etc).
KVM instance parameters:
~~~~~~~~~~~~~~~~~~~~~~~~~
- frontend-software-type (default: frontend)
- frontend-software-url (default: http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.92:/software/kvm/software.cfg)
- frontend-instance-guid
- frontend-instance-name (default: VNC Frontend)
- nbd-port (default: 1024)
- nbd-host
- nbd2-port (default: 1024)
- nbd2-host
- ram-size (default: 1024)
- disk-size = (default: 10)
- disk-type (default: virtio)
Disk size and Disk type are used if no virtual hard drive is specified.
- cpu-count (default: 1)
- cpu-options
cpu-option is a string: [cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]
- numa
list of numa options separate by space ex: node,nodeid=1,cpus=9-15 node,nodeid=2,cpus=1,3,7
- nat-rules (default: 22 80 443)
For port forwarding to IPv6 of slapos partition
- use-nat (default: True)
Add one interface using qemu User Network (NAT), this interface support nat-rules.
- use-tap (default: False)
Add One interface that use tap interface
- enable-vhost (default: False)
Increase network speed by enabling vhost on qemu. (To use if the module is loaded on host machine)
- virtual-hard-drive-url
URL of qemu image to download and use by this VM. If specified, Disk size and Disk type will be ignored.
- virtual-hard-drive-md5sum
MD5Sum of image disk to download
- virtual-hard-drive-gzipped (default: False)
Compress image to reduce size with gzip (.gz)
- hard-drive-url-check-certificate (default: True)
if virtual-hard-drive-url use self-signed https, then specify if https certificate should be verified or not
- external-disk-number (default: 0)
Number of additional disk to attach to this VM. Need slapformat to be configured for this feature.
- external-disk-size (default: 20)
- external-disk-format (default: qcow2)
additional disk format. should be in this list: ['qcow2', 'raw', 'vdi', 'vmdk', 'cloop', 'qed']
- enable-http-server (default: False)
Configure server that will help to get some files into the vm from http
require use-nat = True
All files in the document_root folder of the server will be accessible to the vm: http://10.0.2.100/PATH_TO_FILE
- httpd-port (default: 8081)
- authorized-key
the public key file will be available in the VM via url http://10.0.2.100/authorized_key
- data-to-vm
send some text content which will be accessible to the vm through the file: http://10.0.2.100/data
- keyboard-layout-language (default: fr)
Change keyboard layout language (Change to en-us if you face some bad bihaviors)
Language list: ['ar', 'da', 'de', 'de-ch', 'en-gb', 'en-us', 'es', 'et', 'fi',
'fo', 'fr', 'fr-be', 'fr-ca', 'fr-ch', 'hr', 'hu', 'is', 'it', 'ja', 'lt',
'lv', 'mk', 'nl', 'nl-be', 'no', 'pl', 'pt', 'pt-br', 'ru', 'sl', 'sv',
'th', 'tr']
Resilient KVM instance Resilient KVM instance
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
......
...@@ -98,7 +98,7 @@ mode = 0644 ...@@ -98,7 +98,7 @@ mode = 0644
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/instance-kvm.cfg.jinja2 url = ${:_profile_base_location_}/instance-kvm.cfg.jinja2
mode = 644 mode = 644
md5sum = 4056df213786fd87b60efd3d6f1f2bec md5sum = ade64ba25dd4e98514479ac3363ea6ce
download-only = true download-only = true
on-update = true on-update = true
...@@ -106,7 +106,7 @@ on-update = true ...@@ -106,7 +106,7 @@ on-update = true
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/instance-kvm-cluster.cfg.jinja2.in url = ${:_profile_base_location_}/instance-kvm-cluster.cfg.jinja2.in
mode = 644 mode = 644
md5sum = 8e84c7a4e7be009021243c14707e0a1e md5sum = 1f5a7b9307059a46318fab4fe63f3ecd
download-only = true download-only = true
on-update = true on-update = true
...@@ -184,7 +184,7 @@ recipe = hexagonit.recipe.download ...@@ -184,7 +184,7 @@ recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/template-kvm-run.in url = ${:_profile_base_location_}/template/template-kvm-run.in
mode = 644 mode = 644
filename = template-kvm-run.in filename = template-kvm-run.in
md5sum = 38265d52fdc03589081cc7dd13999020 md5sum = 42e5c653780fdb86b50aa89d73814934
download-only = true download-only = true
on-update = true on-update = true
......
...@@ -57,6 +57,7 @@ context = ...@@ -57,6 +57,7 @@ context =
raw novnc_location ${noVNC:location} raw novnc_location ${noVNC:location}
raw netcat_bin ${netcat:location}/bin/netcat raw netcat_bin ${netcat:location}/bin/netcat
raw openssl_executable_location ${openssl:location}/bin/openssl raw openssl_executable_location ${openssl:location}/bin/openssl
raw python_executable ${buildout:executable}
raw qemu_executable_location ${kvm:location}/bin/qemu-system-x86_64 raw qemu_executable_location ${kvm:location}/bin/qemu-system-x86_64
raw qemu_img_executable_location ${kvm:location}/bin/qemu-img raw qemu_img_executable_location ${kvm:location}/bin/qemu-img
raw sixtunnel_executable_location ${6tunnel:location}/bin/6tunnel raw sixtunnel_executable_location ${6tunnel:location}/bin/6tunnel
......
...@@ -51,7 +51,7 @@ config-cpu-count = {{ dumps(kvm_parameter_dict.get('cpu-count', 1)) }} ...@@ -51,7 +51,7 @@ config-cpu-count = {{ dumps(kvm_parameter_dict.get('cpu-count', 1)) }}
config-cpu-options = {{ dumps(kvm_parameter_dict.get('cpu-options', '')) }} config-cpu-options = {{ dumps(kvm_parameter_dict.get('cpu-options', '')) }}
config-numa = {{ dumps(kvm_parameter_dict.get('numa', '')) }} config-numa = {{ dumps(kvm_parameter_dict.get('numa', '')) }}
{% set nat_rules_list = kvm_parameter_dict.get('nat-rules', [22, 80, 443]) -%} {% set nat_rules_list = kvm_parameter_dict.get('nat-rules', []) -%}
config-nat-rules = {{ nat_rules_list | join(' ') }} config-nat-rules = {{ nat_rules_list | join(' ') }}
config-publish-nat-url = True config-publish-nat-url = True
config-use-nat = {{ use_nat }} config-use-nat = {{ use_nat }}
...@@ -69,13 +69,14 @@ config-httpd-port = {{ dumps(kvm_parameter_dict.get('httpd-port', 8081)) }} ...@@ -69,13 +69,14 @@ config-httpd-port = {{ dumps(kvm_parameter_dict.get('httpd-port', 8081)) }}
{% if kvm_parameter_dict.get('data-to-vm', '') -%} {% if kvm_parameter_dict.get('data-to-vm', '') -%}
config-data-to-vm = {{ dumps(kvm_parameter_dict.get('data-to-vm', '')) }} config-data-to-vm = {{ dumps(kvm_parameter_dict.get('data-to-vm', '')) }}
{% endif -%} {% endif -%}
config-enable-monitor = True config-enable-monitor = {{ dumps(kvm_parameter_dict.get('enable-monitor', True)) }}
# Enable simple http server on ipv6 so all VMs will access it # Enable simple http server on ipv6 so all VMs will access it
config-document-host = ${apache-conf:ip} config-document-host = ${apache-conf:ip}
config-document-port = ${apache-conf:port} config-document-port = ${apache-conf:port}
config-document-path = ${hash-code:passwd} config-document-path = ${hash-code:passwd}
config-keyboard-layout-language = {{ dumps(kvm_parameter_dict.get('keyboard-layout-language', '')) }} config-keyboard-layout-language = {{ dumps(kvm_parameter_dict.get('keyboard-layout-language', 'fr')) }}
config-type = cluster
{% set authorized_source_list = slapparameter_dict.get('fw-authorized-sources', []) -%} {% set authorized_source_list = slapparameter_dict.get('fw-authorized-sources', []) -%}
{% set rejected_source_list = slapparameter_dict.get('fw-reject-sources', []) -%} {% set rejected_source_list = slapparameter_dict.get('fw-reject-sources', []) -%}
......
...@@ -2,11 +2,24 @@ ...@@ -2,11 +2,24 @@
{% set use_tap = slapparameter_dict.get('use-tap', 'False').lower() -%} {% set use_tap = slapparameter_dict.get('use-tap', 'False').lower() -%}
{% set use_nat = slapparameter_dict.get('use-nat', 'True').lower() -%} {% set use_nat = slapparameter_dict.get('use-nat', 'True').lower() -%}
{% set name = slapparameter_dict.get('name', 'localhost') -%} {% set name = slapparameter_dict.get('name', 'localhost') -%}
{% set monitor = slapparameter_dict.get('enable-monitor', 'True').lower() -%}
{% set disable_ansible_promise = slapparameter_dict.get('disable-ansible-promise', 'False').lower() -%} {% set disable_ansible_promise = slapparameter_dict.get('disable-ansible-promise', 'False').lower() -%}
{% set instance_type = slapparameter_dict.get('type', 'standalone') -%}
{% set nat_rule_list = slapparameter_dict.get('nat-rules', '22 80 443') -%}
{% set frontend_software_type = 'default' -%} {% set frontend_software_type = 'default' -%}
{% set extends_list = [] -%} {% set extends_list = [] -%}
{% set part_list = [] -%} {% set part_list = [] -%}
{% set monitor = True -%}
{% if slapparameter_dict.get('enable-monitor', 'True').lower() == 'false' -%}
{% set monitor = False -%}
{% endif -%}
{% if instance_type == 'cluster' -%}
{% set nat_rule_list = slapparameter_dict.get('nat-rules', '') %}
{% endif -%}
{% if not nat_rule_list or not nat_rule_list.strip() -%}
{% set nat_rule_list = '' %}
{% endif -%}
{% if monitor -%} {% if monitor -%}
{% do extends_list.append(template_monitor) -%} {% do extends_list.append(template_monitor) -%}
...@@ -81,7 +94,7 @@ tap-mac-address = ${create-tap-mac:mac-address} ...@@ -81,7 +94,7 @@ tap-mac-address = ${create-tap-mac:mac-address}
use-tap = ${slap-parameter:use-tap} use-tap = ${slap-parameter:use-tap}
use-nat = ${slap-parameter:use-nat} use-nat = ${slap-parameter:use-nat}
nat-rules = ${slap-parameter:nat-rules} nat-rules = {{ nat_rule_list }}
enable-vhost = ${slap-parameter:enable-vhost} enable-vhost = ${slap-parameter:enable-vhost}
virtual-hard-drive-url = ${slap-parameter:virtual-hard-drive-url} virtual-hard-drive-url = ${slap-parameter:virtual-hard-drive-url}
...@@ -142,8 +155,7 @@ ipv6 = ${slap-network-information:global-ipv6} ...@@ -142,8 +155,7 @@ ipv6 = ${slap-network-information:global-ipv6}
wrapper-path = ${directory:services}/6tunnel-${:ipv6-port} wrapper-path = ${directory:services}/6tunnel-${:ipv6-port}
command-line = {{ sixtunnel_executable_location }} -6 -4 -d -l ${:ipv6} ${:ipv6-port} ${:ipv4} ${:ipv4-port} command-line = {{ sixtunnel_executable_location }} -6 -4 -d -l ${:ipv6} ${:ipv6-port} ${:ipv4} ${:ipv4-port}
{% if use_nat == 'true' -%} {% if use_nat == 'true' and nat_rule_list -%}
{% set nat_rule_list = slapparameter_dict.get('nat-rules', '22 80 443') %}
{% for port in nat_rule_list.split(' ') -%} {% for port in nat_rule_list.split(' ') -%}
{% set external_port = 10000 + port|int() -%} {% set external_port = 10000 + port|int() -%}
{% set section_name = '6tunnel-' ~ external_port -%} {% set section_name = '6tunnel-' ~ external_port -%}
...@@ -301,7 +313,7 @@ hostname = ${httpd:host} ...@@ -301,7 +313,7 @@ hostname = ${httpd:host}
port = ${httpd:port} port = ${httpd:port}
{% endif %} {% endif %}
{% if monitor == 'true' -%} {% if monitor -%}
[monitor-access-log] [monitor-access-log]
< = monitor-directory-access < = monitor-directory-access
source = ${directory:log} source = ${directory:log}
...@@ -313,7 +325,7 @@ source = ${directory:public} ...@@ -313,7 +325,7 @@ source = ${directory:public}
[monitor-parameters] [monitor-parameters]
port = 8026 port = 8026
{% if slapparameter_dict.get('document-host', '') and slapparameter_dict.get('document-port', '') -%} {% if instance_type == 'cluster' -%}
# XXX - Set frontend software type to 'custom-personal' by default for cluster instance # XXX - Set frontend software type to 'custom-personal' by default for cluster instance
{% set frontend_software_type = 'custom-personal' -%} {% set frontend_software_type = 'custom-personal' -%}
{% endif -%} {% endif -%}
...@@ -348,16 +360,16 @@ maximum-extra-disk-amount = {{ disk_number }} ...@@ -348,16 +360,16 @@ maximum-extra-disk-amount = {{ disk_number }}
{% set iface = 'eth0' -%} {% set iface = 'eth0' -%}
{% if use_nat == 'true' -%} {% if use_nat == 'true' -%}
{% set iface = 'eth1' -%} {% set iface = 'eth1' -%}
{% if nat_rule_list -%}
# Publish NAT port mapping status # Publish NAT port mapping status
# XXX: hardcoded value from [slap-parameter] {% for port in nat_rule_list.split(' ') -%}
{% set nat_rule_list = slapparameter_dict.get('nat-rules', '22 80 443') %} {% set external_port = 10000 + port|int() -%}
{% for port in nat_rule_list.split(' ') -%}
{% set external_port = 10000 + port|int() -%}
nat-rule-port-{{port}} = ${slap-network-information:global-ipv6} : ${6tunnel-{{external_port}}:ipv6-port} nat-rule-port-{{port}} = ${slap-network-information:global-ipv6} : ${6tunnel-{{external_port}}:ipv6-port}
{% if slapparameter_dict.get('publish-nat-url', False) -%} {% if slapparameter_dict.get('publish-nat-url', False) -%}
nat-rule-url-{{port}} = [${slap-network-information:global-ipv6}]:${6tunnel-{{external_port}}:ipv6-port} nat-rule-url-{{port}} = [${slap-network-information:global-ipv6}]:${6tunnel-{{external_port}}:ipv6-port}
{% endif -%} {% endif -%}
{% endfor -%} {% endfor -%}
{% endif -%}
{% endif -%} {% endif -%}
{% if use_tap == 'true' -%} {% if use_tap == 'true' -%}
tap-ipv4 = ${slap-network-information:tap-ipv4} tap-ipv4 = ${slap-network-information:tap-ipv4}
...@@ -546,8 +558,8 @@ authorized-key = ...@@ -546,8 +558,8 @@ authorized-key =
# send some content which will be accessible to the vm through static url: http://10.0.2.100/data # send some content which will be accessible to the vm through static url: http://10.0.2.100/data
data-to-vm = data-to-vm =
# Change keyboard layout language # Change keyboard layout language (Change to en-us if you face some bad bihaviors)
keyboard-layout-language = keyboard-layout-language = fr
############################# #############################
# #
...@@ -555,10 +567,8 @@ keyboard-layout-language = ...@@ -555,10 +567,8 @@ keyboard-layout-language =
# #
############################# #############################
# Set Additionals parts
{% if slapparameter_dict.get('document-host', '') %} {% if slapparameter_dict.get('document-host', '') %}
# Set Additionals parts
{% do part_list.append('cluster-url-path') -%} {% do part_list.append('cluster-url-path') -%}
{% endif -%} {% endif -%}
{% if enable_http == 'true' %} {% if enable_http == 'true' %}
......
...@@ -5,6 +5,6 @@ extends = development.cfg ...@@ -5,6 +5,6 @@ extends = development.cfg
[template] [template]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-for-erp5testnode.cfg.in url = ${:_profile_base_location_}/instance-for-erp5testnode.cfg.in
md5sum = e0af93ba7209cabd5db6d9afcb15c2aa md5sum = b8e3cd7b88f491e361e0a2e30ed4e58e
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 0644 mode = 0644
\ No newline at end of file
...@@ -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 = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.48 # slapos.toolbox==0.48
......
...@@ -217,8 +217,11 @@ numa_parameter = [] ...@@ -217,8 +217,11 @@ numa_parameter = []
number = -1 number = -1
if use_nat == 'true': if use_nat == 'true':
number += 1 number += 1
rules = 'user,id=lan%s,' % number + ','.join('hostfwd=tcp:%s:%s-:%s' % (listen_ip, rules = 'user,id=lan%s' % number
if nat_rules:
rules += ',' + ','.join('hostfwd=tcp:%s:%s-:%s' % (listen_ip,
int(port) + 10000, port) for port in nat_rules.split()) int(port) + 10000, port) for port in nat_rules.split())
if httpd_port > 0: if httpd_port > 0:
rules += ',guestfwd=tcp:10.0.2.100:80-cmd:%s %s %s' % (netcat_bin, rules += ',guestfwd=tcp:10.0.2.100:80-cmd:%s %s %s' % (netcat_bin,
listen_ip, httpd_port) listen_ip, httpd_port)
......
...@@ -126,7 +126,7 @@ feedparser = 5.1.3 ...@@ -126,7 +126,7 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
paramiko = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
......
...@@ -116,14 +116,14 @@ slapos.recipe.template = 2.8 ...@@ -116,14 +116,14 @@ slapos.recipe.template = 2.8
ZODB3 = 3.10.5+SlapOSPatched001 ZODB3 = 3.10.5+SlapOSPatched001
# Required by slapos.toolbox==0.52 # Required by slapos.toolbox==0.52
slapos.toolbox = 0.52 slapos.toolbox = 0.52
apache-libcloud = 0.18.0 apache-libcloud = 0.19.0
atomize = 0.2.0 atomize = 0.2.0
ecdsa = 0.13 ecdsa = 0.13
feedparser = 5.2.1 feedparser = 5.2.1
GitPython = 1.0.1 GitPython = 1.0.1
gitdb = 0.6.4 gitdb = 0.6.4
lockfile = 0.10.2 lockfile = 0.10.2
paramiko = 1.15.3 paramiko = 1.16.0
pycrypto = 2.6.1 pycrypto = 2.6.1
rpdb = 0.1.5 rpdb = 0.1.5
smmap = 0.9.0 smmap = 0.9.0
......
...@@ -164,7 +164,7 @@ miniupnpc = 1.9 ...@@ -164,7 +164,7 @@ miniupnpc = 1.9
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
paramiko = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
......
...@@ -9,13 +9,13 @@ extends = common.cfg ...@@ -9,13 +9,13 @@ extends = common.cfg
[versions] [versions]
Flask-Auth = 0.85 Flask-Auth = 0.85
PyRSS2Gen = 1.1 PyRSS2Gen = 1.1
apache-libcloud = 0.18.0 apache-libcloud = 0.19.0
cns.recipe.symlink = 0.2.3 cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0 collective.recipe.environment = 0.2.0
ecdsa = 0.13 ecdsa = 0.13
erp5.util = 0.4.43 erp5.util = 0.4.43
gitdb = 0.6.4 gitdb = 0.6.4
gunicorn = 19.3.0 gunicorn = 19.4.1
prettytable = 0.7.2 prettytable = 0.7.2
pycrypto = 2.6.1 pycrypto = 2.6.1
slapos.recipe.template = 2.8 slapos.recipe.template = 2.8
...@@ -40,7 +40,7 @@ lockfile = 0.10.2 ...@@ -40,7 +40,7 @@ lockfile = 0.10.2
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
paramiko = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.toolbox==0.53 # slapos.toolbox==0.53
......
...@@ -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 = 1.15.3 paramiko = 1.16.0
...@@ -168,7 +168,7 @@ md5sum = 1b515056c5892a86d4ece252ad114a97 ...@@ -168,7 +168,7 @@ md5sum = 1b515056c5892a86d4ece252ad114a97
[template-zope-conf] [template-zope-conf]
<= download-base <= download-base
filename = zope.conf.in filename = zope.conf.in
md5sum = 0bf51218ecbf2bd319214192448a3ef7 md5sum = c1cd0be406152c79e137dcf8c81f52f2
[template-runzope-userhosts-preloaded] [template-runzope-userhosts-preloaded]
<= download-base <= download-base
...@@ -314,7 +314,7 @@ rendered = ${monitor-template-dummy:target} ...@@ -314,7 +314,7 @@ rendered = ${monitor-template-dummy:target}
[template-erp5] [template-erp5]
<= download-base <= download-base
filename = instance-erp5.cfg.in filename = instance-erp5.cfg.in
md5sum = 78c2db733e72c4197a90e8be1ff15098 md5sum = 977119d0b876df827c97bb64e6e98273
[template-zeo] [template-zeo]
<= download-base <= download-base
...@@ -324,7 +324,7 @@ md5sum = 985c0010db6b553a89dbdb31353c56f5 ...@@ -324,7 +324,7 @@ md5sum = 985c0010db6b553a89dbdb31353c56f5
[template-zope] [template-zope]
<= download-base <= download-base
filename = instance-zope.cfg.in filename = instance-zope.cfg.in
md5sum = 07d5d0df5d16b46602760a8673d4395b md5sum = bac5ff1ded5454749ec0e18d0ae1dae8
link-binary = link-binary =
${aspell:location}/bin/aspell ${aspell:location}/bin/aspell
${dmtx-utils:location}/bin/dmtxwrite ${dmtx-utils:location}/bin/dmtxwrite
...@@ -348,7 +348,7 @@ link-binary = ...@@ -348,7 +348,7 @@ link-binary =
[template-balancer] [template-balancer]
<= download-base <= download-base
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
md5sum = 28c04f599cdbdfa97f2a67156f4f6b67 md5sum = ec9321514674c084e509ca070763b4a1
[template-apache-conf] [template-apache-conf]
<= download-base <= download-base
...@@ -358,7 +358,7 @@ md5sum = 713b22938d7212c8506449bc0508452b ...@@ -358,7 +358,7 @@ md5sum = 713b22938d7212c8506449bc0508452b
[template-haproxy-cfg] [template-haproxy-cfg]
<= download-base <= download-base
filename = haproxy.cfg.in filename = haproxy.cfg.in
md5sum = 7f13123698afe017dfcde9de6beea0f5 md5sum = 3defd473e2cea17ae36bba7752494858
[bt5-repository] [bt5-repository]
# Format: # Format:
...@@ -609,7 +609,7 @@ cloudooo = 1.2.5-dev ...@@ -609,7 +609,7 @@ cloudooo = 1.2.5-dev
# use newer version than specified in ZTK # use newer version than specified in ZTK
PasteDeploy = 1.5.2 PasteDeploy = 1.5.2
Pygments = 2.0.2 Pygments = 2.0.2
coverage = 4.0.1 coverage = 4.0.3
zope.dottedname = 4.1.0 zope.dottedname = 4.1.0
# test_UserManagerInterfaces in testERP5Security fails with 1.10.0. # test_UserManagerInterfaces in testERP5Security fails with 1.10.0.
...@@ -646,7 +646,7 @@ Products.CMFActionIcons = 2.1.3 ...@@ -646,7 +646,7 @@ Products.CMFActionIcons = 2.1.3
Products.DCWorkflowGraph = 0.4.1 Products.DCWorkflowGraph = 0.4.1
Products.ExternalEditor = 2.0.0 Products.ExternalEditor = 2.0.0
Products.GenericSetup = 1.8.0 Products.GenericSetup = 1.8.0
Products.LongRequestLogger = 1.1.post1 Products.LongRequestLogger = 2.0.0
Products.MimetypesRegistry = 2.0.8 Products.MimetypesRegistry = 2.0.8
Products.PluginRegistry = 1.3 Products.PluginRegistry = 1.3
Products.TIDStorage = 5.4.9 Products.TIDStorage = 5.4.9
...@@ -656,6 +656,7 @@ PyXML = 0.8.5 ...@@ -656,6 +656,7 @@ PyXML = 0.8.5
Pympler = 0.4.2 Pympler = 0.4.2
StructuredText = 2.11.1 StructuredText = 2.11.1
WSGIUtils = 0.7 WSGIUtils = 0.7
# astroid 1.4.1 breaks testDynamicClassGeneration
astroid = 1.3.8 astroid = 1.3.8
chardet = 2.3.0 chardet = 2.3.0
csp-eventlet = 0.7.0 csp-eventlet = 0.7.0
...@@ -678,8 +679,9 @@ ply = 3.8 ...@@ -678,8 +679,9 @@ ply = 3.8
polib = 1.0.7 polib = 1.0.7
pprofile = 1.7.3 pprofile = 1.7.3
ptyprocess = 0.5 ptyprocess = 0.5
pycountry = 1.17 pycountry = 1.18
pyflakes = 1.0.0 pyflakes = 1.0.0
# pylint 1.5.1 breaks testDynamicClassGeneration
pylint = 1.4.4 pylint = 1.4.4
python-magic = 0.4.6 python-magic = 0.4.6
python-memcached = 1.57 python-memcached = 1.57
...@@ -689,7 +691,7 @@ restkit = 4.2.2 ...@@ -689,7 +691,7 @@ restkit = 4.2.2
rtjp-eventlet = 0.3.2 rtjp-eventlet = 0.3.2
simplegeneric = 0.8.1 simplegeneric = 0.8.1
socketpool = 0.5.3 socketpool = 0.5.3
spyne = 2.12.10 spyne = 2.12.11
suds = 0.4 suds = 0.4
threadframe = 0.2 threadframe = 0.2
timerserver = 2.0.2 timerserver = 2.0.2
......
...@@ -36,8 +36,9 @@ defaults ...@@ -36,8 +36,9 @@ defaults
# to render a page # to render a page
option forceclose option forceclose
{% for name, (port, backend_list) in parameter_dict['backend-dict'].items() -%} {% for name, (port, backend_list) in sorted(parameter_dict['backend-dict'].iteritems()) -%}
listen {{ name }} {{ parameter_dict['ip'] }}:{{ port }} listen {{ name }}
bind {{ parameter_dict['ip'] }}:{{ port }}
http-request set-header X-Balancer-Current-Cookie SERVERID http-request set-header X-Balancer-Current-Cookie SERVERID
{% set has_webdav = [] -%} {% set has_webdav = [] -%}
{% for address, connection_count, webdav in backend_list -%} {% for address, connection_count, webdav in backend_list -%}
......
...@@ -44,7 +44,8 @@ ipv4 = {{ ipv4 }} ...@@ -44,7 +44,8 @@ ipv4 = {{ ipv4 }}
{% set haproxy_dict = {} -%} {% set haproxy_dict = {} -%}
{% set apache_dict = {} -%} {% set apache_dict = {} -%}
{% set next_port = slapparameter_dict['tcpv4-port'] -%} {% set next_port = slapparameter_dict['tcpv4-port'] -%}
{% for family_name, parameter_id_list in slapparameter_dict['zope-family-dict'].items() -%} {% for family_name, parameter_id_list in sorted(
slapparameter_dict['zope-family-dict'].iteritems()) -%}
{% set zope_family_address_list = [] -%} {% set zope_family_address_list = [] -%}
{% set has_webdav = [] -%} {% set has_webdav = [] -%}
{% for parameter_id in parameter_id_list -%} {% for parameter_id in parameter_id_list -%}
......
...@@ -183,7 +183,7 @@ config-webdav = {{ dumps(zope_parameter_dict.get('webdav', False)) }} ...@@ -183,7 +183,7 @@ config-webdav = {{ dumps(zope_parameter_dict.get('webdav', False)) }}
[{{ frontend_name }}] [{{ frontend_name }}]
<= request-frontend-base <= request-frontend-base
name = {{ frontend_name }} name = {{ frontend_name }}
config-url = ${request-balancer:{{ family_name }}-v6} config-url = ${request-balancer:connection-{{ family_name }}-v6}
{% else -%} {% else -%}
{% do publish_dict.__setitem__('family-' ~ family_name, '${request-balancer:connection-' ~ family_name ~ '}' ) -%} {% do publish_dict.__setitem__('family-' ~ family_name, '${request-balancer:connection-' ~ family_name ~ '}' ) -%}
{% do publish_dict.__setitem__('family-' ~ family_name ~ '-v6', '${request-balancer:connection-' ~ family_name ~ '-v6}' ) -%} {% do publish_dict.__setitem__('family-' ~ family_name ~ '-v6', '${request-balancer:connection-' ~ family_name ~ '-v6}' ) -%}
......
...@@ -292,6 +292,13 @@ node-id = {{ dumps(node_id_base ~ '-' ~ index) }} ...@@ -292,6 +292,13 @@ node-id = {{ dumps(node_id_base ~ '-' ~ index) }}
{% endfor -%} {% endfor -%}
import-list = {{ dumps(list(import_set)) }} import-list = {{ dumps(list(import_set)) }}
zodb-dict = {{ dumps(zodb_dict) }} zodb-dict = {{ dumps(zodb_dict) }}
{% if longrequest_logger_interval > 0 -%}
longrequest-logger-file = {{ longrequest_logger_base_path ~ name ~ ".log" }}
longrequest-logger-timeout = {{ longrequest_logger_timeout }}
longrequest-logger-interval = {{ longrequest_logger_interval }}
{% else -%}
longrequest-logger-file =
{% endif -%}
[{{ conf_name }}] [{{ conf_name }}]
< = zope-conf-base < = zope-conf-base
...@@ -301,15 +308,6 @@ context = ...@@ -301,15 +308,6 @@ context =
[{{ section(name) }}] [{{ section(name) }}]
< = zope-base < = zope-base
{% if longrequest_logger_interval < 0 -%}
longrequest-logger-file =
longrequest-logger-timeout =
longrequest-logger-interval =
{% else -%}
longrequest-logger-file = {{ longrequest_logger_base_path ~ name ~ ".log" }}
longrequest-logger-timeout = {{ longrequest_logger_timeout }}
longrequest-logger-interval = {{ longrequest_logger_interval }}
{% endif -%}
wrapper = ${directory:services}/{{ name }} wrapper = ${directory:services}/{{ name }}
configuration-file = {{ '${' ~ conf_name ~ ':rendered}' }} configuration-file = {{ '${' ~ conf_name ~ ':rendered}' }}
...@@ -339,7 +337,7 @@ path = ${directory:promises}/{{ zope_tunnel_base_name }} ...@@ -339,7 +337,7 @@ path = ${directory:promises}/{{ zope_tunnel_base_name }}
[{{ section('logrotate-entry-' ~ name) }}] [{{ section('logrotate-entry-' ~ name) }}]
< = logrotate-entry-base < = logrotate-entry-base
name = {{ name }} name = {{ name }}
log = {{ '${' ~ conf_parameter_name ~ ':event-log}' }} {{ '${' ~ conf_parameter_name ~ ':z2-log}' }} {{ '${' ~ name ~ ':longrequest-logger-file}' }} {{ ' '.join(log_list) }} log = {{ '${' ~ conf_parameter_name ~ ':event-log}' }} {{ '${' ~ conf_parameter_name ~ ':z2-log}' }} {{ '${' ~ conf_parameter_name ~ ':longrequest-logger-file}' }} {{ ' '.join(log_list) }}
post = {{ bin_directory }}/slapos-kill --pidfile {{ '${' ~ conf_parameter_name ~ ':pid-file}' }} -s USR2 post = {{ bin_directory }}/slapos-kill --pidfile {{ '${' ~ conf_parameter_name ~ ':pid-file}' }} -s USR2
{% endmacro -%} {% endmacro -%}
......
...@@ -42,6 +42,14 @@ products {{ parameter_dict['instance-products'] }} ...@@ -42,6 +42,14 @@ products {{ parameter_dict['instance-products'] }}
secret {{ parameter_dict['deadlock-debugger-password'] }} secret {{ parameter_dict['deadlock-debugger-password'] }}
</product-config> </product-config>
{% if 'longrequest-logger-interval' in parameter_dict -%}
<product-config LongRequestLogger>
logfile {{ parameter_dict['longrequest-logger-file'] }}
timeout {{ parameter_dict['longrequest-logger-timeout'] }}
interval {{ parameter_dict['longrequest-logger-interval'] }}
</product-config>
{% endif -%}
{% if 'tidstorage-ip' in parameter_dict -%} {% if 'tidstorage-ip' in parameter_dict -%}
<product-config TIDStorage> <product-config TIDStorage>
backend-ip {{ parameter_dict['tidstorage-ip'] }} backend-ip {{ parameter_dict['tidstorage-ip'] }}
......
...@@ -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 = 1.15.3 paramiko = 1.16.0
...@@ -205,4 +205,4 @@ feedparser = 5.1.3 ...@@ -205,4 +205,4 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 1.15.3 paramiko = 1.16.0
...@@ -202,7 +202,7 @@ feedparser = 5.1.3 ...@@ -202,7 +202,7 @@ feedparser = 5.1.3
# Required by: # Required by:
# slapos.toolbox==0.40.2 # slapos.toolbox==0.40.2
paramiko = 1.15.3 paramiko = 1.16.0
# Required by: # Required by:
# slapos.recipe.maarch==0.4 # slapos.recipe.maarch==0.4
......
...@@ -129,11 +129,11 @@ prettytable = 0.7.2 ...@@ -129,11 +129,11 @@ prettytable = 0.7.2
psutil = 3.2.2 psutil = 3.2.2
pyOpenSSL = 0.15.1 pyOpenSSL = 0.15.1
pyasn1 = 0.1.9 pyasn1 = 0.1.9
pyparsing = 2.0.3 pyparsing = 2.0.5
pytz = 2015.6 pytz = 2015.7
requests = 2.8.1 requests = 2.8.1
setuptools = 18.1 setuptools = 18.1
simplejson = 3.8.0 simplejson = 3.8.1
six = 1.10.0 six = 1.10.0
slapos.cookbook = 1.0.17 slapos.cookbook = 1.0.17
slapos.core = 1.3.14 slapos.core = 1.3.14
...@@ -188,7 +188,7 @@ pycparser = 2.14 ...@@ -188,7 +188,7 @@ pycparser = 2.14
# Required by: # Required by:
# slapos.core==1.3.14 # slapos.core==1.3.14
supervisor = 3.1.3 supervisor = 3.2.0
# Required by: # Required by:
# slapos.core==1.3.14 # slapos.core==1.3.14
......
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