Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ivan Tyagov
slapos
Commits
ad9855fc
Commit
ad9855fc
authored
Sep 09, 2015
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into '1.0'
Release Candidate for 1.0.13 See merge request !18
parents
b8604de4
e92cda3e
Changes
39
Show whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
336 additions
and
244 deletions
+336
-244
component/bison/bison-drop.gets.patch
component/bison/bison-drop.gets.patch
+0
-13
component/curl/buildout.cfg
component/curl/buildout.cfg
+2
-2
component/cyrus-sasl/cyrus-sasl-2.1.22-gcc44.patch
component/cyrus-sasl/cyrus-sasl-2.1.22-gcc44.patch
+0
-24
component/git/buildout.cfg
component/git/buildout.cfg
+2
-2
component/gnutls/buildout.cfg
component/gnutls/buildout.cfg
+1
-1
component/groonga/buildout.cfg
component/groonga/buildout.cfg
+2
-2
component/libdb/buildout.cfg
component/libdb/buildout.cfg
+2
-9
component/libdb/libdb-hooks.py
component/libdb/libdb-hooks.py
+0
-3
component/libtool/buildout.cfg
component/libtool/buildout.cfg
+2
-2
component/mariadb/buildout.cfg
component/mariadb/buildout.cfg
+2
-2
component/nginx/buildout.cfg
component/nginx/buildout.cfg
+2
-2
component/percona-toolkit/buildout.cfg
component/percona-toolkit/buildout.cfg
+2
-2
component/postfix/buildout.cfg
component/postfix/buildout.cfg
+4
-26
component/postfix/postfix-linux4.patch
component/postfix/postfix-linux4.patch
+0
-24
component/python-ldap-python/buildout.cfg
component/python-ldap-python/buildout.cfg
+3
-0
component/python-ldap-python/python-ldap-no_default_dirs.patch
...nent/python-ldap-python/python-ldap-no_default_dirs.patch
+10
-0
component/shellinabox/buildout.cfg
component/shellinabox/buildout.cfg
+17
-16
component/subversion/buildout.cfg
component/subversion/buildout.cfg
+2
-1
slapos/recipe/generic_zope_zeo_client/__init__.py
slapos/recipe/generic_zope_zeo_client/__init__.py
+4
-1
software/apache-frontend/common.cfg
software/apache-frontend/common.cfg
+1
-1
software/apache-frontend/software.cfg
software/apache-frontend/software.cfg
+9
-14
software/apache-frontend/templates/apache.conf.in
software/apache-frontend/templates/apache.conf.in
+3
-0
software/cdn-me/software.cfg
software/cdn-me/software.cfg
+1
-1
software/erp5testnode/software.cfg
software/erp5testnode/software.cfg
+1
-1
software/kvm/software.cfg
software/kvm/software.cfg
+1
-1
software/monitor/cgi-httpd.conf.in
software/monitor/cgi-httpd.conf.in
+20
-0
software/monitor/instance-monitor-distributor.cfg.jinja2
software/monitor/instance-monitor-distributor.cfg.jinja2
+46
-0
software/monitor/instance-monitor.cfg.jinja2
software/monitor/instance-monitor.cfg.jinja2
+30
-26
software/monitor/instance.cfg
software/monitor/instance.cfg
+25
-4
software/monitor/json-test-template.json.in.jinja2
software/monitor/json-test-template.json.in.jinja2
+68
-0
software/monitor/network_bench.cfg.in
software/monitor/network_bench.cfg.in
+4
-0
software/monitor/software.cfg
software/monitor/software.cfg
+31
-15
software/slaprunner/common.cfg
software/slaprunner/common.cfg
+4
-1
software/slaprunner/development.cfg
software/slaprunner/development.cfg
+1
-10
software/slaprunner/software.cfg
software/slaprunner/software.cfg
+15
-19
stack/cloudooo.cfg
stack/cloudooo.cfg
+1
-1
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+12
-14
stack/erp5/instance-zope.cfg.in
stack/erp5/instance-zope.cfg.in
+2
-0
stack/slapos.cfg
stack/slapos.cfg
+4
-4
No files found.
component/bison/bison-drop.gets.patch
deleted
100644 → 0
View file @
b8604de4
diff -ur bison-2.5.orig/lib/stdio.in.h bison-2.5/lib/stdio.in.h
--- bison-2.5.orig/lib/stdio.in.h 2011-05-15 00:23:46.000000000 +0200
+++ bison-2.5/lib/stdio.in.h 2012-07-23 16:30:56.366722487 +0200
@@ -181,7 +181,9 @@
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
#undef gets
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
#if @GNULIB_FOPEN@
# if @REPLACE_FOPEN@
component/curl/buildout.cfg
View file @
ad9855fc
...
...
@@ -12,8 +12,8 @@ parts =
[curl]
recipe = slapos.recipe.cmmi
url = http://curl.haxx.se/download/curl-7.4
2.1
.tar.bz2
md5sum =
296945012ce647b94083ed427c1877a8
url = http://curl.haxx.se/download/curl-7.4
4.0
.tar.bz2
md5sum =
6b952ca00e5473b16a11f05f06aa8dae
configure-options =
--disable-static
--disable-ldap
...
...
component/cyrus-sasl/cyrus-sasl-2.1.22-gcc44.patch
deleted
100644 → 0
View file @
b8604de4
fix warnings with gcc-4.4
http://bugs.gentoo.org/248738
--- cyrus-sasl-2.1.22/plugins/digestmd5.c
+++ cyrus-sasl-2.1.22/plugins/digestmd5.c
@@ -2715,7 +2715,7 @@
static sasl_server_plug_t digestmd5_serv
"DIGEST-MD5", /* mech_name */
#ifdef WITH_RC4
128, /* max_ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
112,
#else
1,
@@ -4034,7 +4034,7 @@
static sasl_client_plug_t digestmd5_clie
"DIGEST-MD5",
#ifdef WITH_RC4 /* mech_name */
128, /* max ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
112,
#else
1,
component/git/buildout.cfg
View file @
ad9855fc
...
...
@@ -16,8 +16,8 @@ parts =
[git]
recipe = slapos.recipe.cmmi
url = https://www.kernel.org/pub/software/scm/git/git-2.
2
.1.tar.xz
md5sum =
43e01f9d96ba8c11611e0eef0d9f9f28
url = https://www.kernel.org/pub/software/scm/git/git-2.
5
.1.tar.xz
md5sum =
55b9c496ea2d87148a2bfe1b6f6edd02
configure-options =
--with-curl=${curl:location}
--with-openssl=${openssl:location}
...
...
component/gnutls/buildout.cfg
View file @
ad9855fc
...
...
@@ -26,7 +26,7 @@ environment =
[gnutls]
recipe = slapos.recipe.cmmi
url = ftp://ftp.gnutls.org/gcrypt/gnutls/v3.
2
/gnutls-3.3.17.1.tar.xz
url = ftp://ftp.gnutls.org/gcrypt/gnutls/v3.
3
/gnutls-3.3.17.1.tar.xz
md5sum = 8d01c7e7f2cbc5871fdca832d2260b6b
configure-options =
--disable-static
...
...
component/groonga/buildout.cfg
View file @
ad9855fc
...
...
@@ -13,8 +13,8 @@ extends =
[groonga]
recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/groonga/groonga-5.0.
6
.tar.gz
md5sum =
ab70bcf7141bbaa72df02a57ab47851b
url = http://packages.groonga.org/source/groonga/groonga-5.0.
7
.tar.gz
md5sum =
389d5353a18ff5f48ccf65a576c7b2d1
# temporary patch to respect more tokens in natural language mode.
patches =
${:_profile_base_location_}/groonga.patch#9ed02fbe8400402d3eab47eee149978b
...
...
component/libdb/buildout.cfg
View file @
ad9855fc
[buildout]
parts = libdb
[libdb-hooks-download]
url = ${:_profile_base_location_}/${:filename}
md5sum = acb3bfb990a48381176c1e8f74130e30
recipe = hexagonit.recipe.download
download-only=true
filename = libdb-hooks.py
[libdb]
recipe = slapos.recipe.cmmi
url = http://download.oracle.com/berkeley-db/db-4.5.20.tar.gz
md5sum = b0f1c777708cb8e9d37fb47e7ed3312d
pre-configure-hook = ${libdb-hooks-download:location}/${libdb-hooks-download:filename}:pre_configure_hook
configure-command = ../dist/configure
configure-command = cd build_unix && ../dist/configure
configure-options =
--disable-static
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
make-binary = cd build_unix && make
component/libdb/libdb-hooks.py
deleted
100644 → 0
View file @
b8604de4
import
os
def
pre_configure_hook
(
options
,
buildout
):
os
.
chdir
(
'build_unix'
)
component/libtool/buildout.cfg
View file @
ad9855fc
...
...
@@ -6,8 +6,8 @@ parts = libtool
[libtool]
recipe = slapos.recipe.cmmi
md5sum =
ee9c087775aeb98ce53a9c69da865a5
5
url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.
5
.tar.xz
md5sum =
1bfb9b923f2c1339b4d2ce1807064aa
5
url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.
6
.tar.xz
configure-options =
--disable-static
environment =
...
...
component/mariadb/buildout.cfg
View file @
ad9855fc
...
...
@@ -57,8 +57,8 @@ environment =
# mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users.
# http://mroonga.github.com/
recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/mroonga/mroonga-5.0
5
.tar.gz
md5sum =
f2e65f03e4c7d493f8a306a292ac12bf
url = http://packages.groonga.org/source/mroonga/mroonga-5.0
6
.tar.gz
md5sum =
15597acfb1375c931e7b5588511c17bb
configure-command = mkdir fake_mariadb_source && ln -s ${mariadb:location}/include/mysql/private fake_mariadb_source/sql && ./configure
configure-options =
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
...
...
component/nginx/buildout.cfg
View file @
ad9855fc
...
...
@@ -11,8 +11,8 @@ parts = nginx-output
[nginx-common]
recipe = slapos.recipe.cmmi
url = http://nginx.org/download/nginx-1.
7.8
.tar.gz
md5sum =
fd5ab813fc1853cd8efe580ead577c3e
url = http://nginx.org/download/nginx-1.
9.4
.tar.gz
md5sum =
27322fbb4b265c0e0cc548f5e6b7f201
[nginx]
<= nginx-common
...
...
component/percona-toolkit/buildout.cfg
View file @
ad9855fc
...
...
@@ -8,8 +8,8 @@ parts =
[percona-toolkit]
recipe = slapos.recipe.cmmi
version = 2.2.1
2
version = 2.2.1
5
url = http://www.percona.com/redir/downloads/percona-toolkit/${:version}/tarball/percona-toolkit-${:version}.tar.gz
md5sum =
7c39b06b97ebab97ae5d3c78d1186258
md5sum =
8ccaf3d497c463d593b0101a01f5dccf
configure-command =
${perl:location}/bin/perl Makefile.PL
component/postfix/buildout.cfg
View file @
ad9855fc
...
...
@@ -8,37 +8,15 @@ extends =
../pcre/buildout.cfg
../cyrus-sasl/buildout.cfg
[noroot.patch]
recipe = hexagonit.recipe.download
url =${:_profile_base_location_}/${:filename}
filename = ${:_buildout_section_name_}
download-only = true
md5sum = 738bcc97b8044c45b58708bdf3a84b8e
[skip-libdb-check.patch]
recipe = hexagonit.recipe.download
url =${:_profile_base_location_}/${:filename}
filename = ${:_buildout_section_name_}
download-only = true
md5sum = f7fdbd8787874b535fee548b0139c0d8
[postfix-linux4.patch]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
filename = ${:_buildout_section_name_}
download-only = true
md5sum = 2549e80b9834c58185a18bfbf55c2767
[postfix]
recipe = slapos.recipe.cmmi
url = ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.11.
1
.tar.gz
md5sum =
56ac1f1a79737c4ac1e24535a122a4a6
url = ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.11.
6
.tar.gz
md5sum =
c3277d05b78eaaf5955406bc7b6d2b9f
location = ${buildout:parts-directory}/${:_buildout_section_name_}
patch-options = -p1
patches =
${noroot.patch:location}/${noroot.patch:filename}
${skip-libdb-check.patch:location}/${skip-libdb-check.patch:filename}
${postfix-linux4.patch:location}/${postfix-linux4.patch:filename}
${:_profile_base_location_}/noroot.patch#738bcc97b8044c45b58708bdf3a84b8e
${:_profile_base_location_}/skip-libdb-check.patch#f7fdbd8787874b535fee548b0139c0d8
configure-command = make
configure-options = makefiles CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -DUSE_TLS -DHAS_PCRE -DHAS_DB -I${libdb:location}/include -I${pcre:location}/include -I${openssl:location}/include -I${cyrus-sasl:location}/include/sasl' AUXLIBS='-L${openssl:location}/lib -L${pcre:location}/lib -L${libdb:location}/lib -L${cyrus-sasl:location}/lib -lssl -lpcre -ldb -lcrypto -lsasl2 -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${libdb:location}/lib -Wl,-rpath=${cyrus-sasl:location}/lib'
make-targets = non-interactive-package install_root=${:location}
component/postfix/postfix-linux4.patch
deleted
100644 → 0
View file @
b8604de4
Taken from https://bugs.gentoo.org/show_bug.cgi?id=544610
--- a/makedefs 2015-03-27 00:25:29.103726341 +0100
+++ a/makedefs 2015-03-27 00:32:14.657061042 +0100
@@ -500,7 +500,8 @@
: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
: ${PLUGIN_LD="${CC-gcc} -shared"}
;;
- Linux.3*) SYSTYPE=LINUX3
+ Linux.*)
+ SYSTYPE=LINUX
case "$CCARGS" in
*-DNO_DB*) ;;
*-DHAS_DB*) ;;
--- a/src/util/sys_defs.h 2015-03-27 00:36:21.203728543 +0100
+++ a/src/util/sys_defs.h 2015-03-27 00:36:09.657061839 +0100
@@ -756,7 +756,7 @@
/*
* LINUX.
*/
+#if defined(LINUX2) || defined(LINUX)
-#if defined(LINUX2) || defined(LINUX3)
#define SUPPORTED
#include <sys/types.h>
#define UINT32_TYPE unsigned int
component/python-ldap-python/buildout.cfg
View file @
ad9855fc
...
...
@@ -9,6 +9,9 @@ extends =
[python-ldap-python]
recipe = zc.recipe.egg:custom
egg = python-ldap
patches =
${:_profile_base_location_}/python-ldap-no_default_dirs.patch#959115f13f1de5c63654c69b8dfacd69
patch-options = -p1
rpath =
${openldap:location}/lib
${cyrus-sasl:location}/lib
...
...
component/python-ldap-python/python-ldap-no_default_dirs.patch
0 → 100644
View file @
ad9855fc
diff -ur python-ldap-2.4.20.orig/setup.cfg python-ldap-2.4.20/setup.cfg
--- python-ldap-2.4.20.orig/setup.cfg 2015-07-07 15:25:42.000000000 +0200
+++ python-ldap-2.4.20/setup.cfg 2015-09-02 15:59:48.846802676 +0200
@@ -1,6 +1,4 @@
[_ldap]
-library_dirs = /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
-include_dirs = /usr/include /usr/include/sasl /usr/local/include /usr/local/include/sasl
defines = HAVE_SASL HAVE_TLS HAVE_LIBLDAP_R
extra_compile_args =
extra_objects =
component/shellinabox/buildout.cfg
View file @
ad9855fc
[buildout]
extends =
../zlib/buildout.cfg
../openssl/buildout.cfg
../patch/buildout.cfg
../automake/buildout.cfg
../autoconf/buildout.cfg
../
libtool
/buildout.cfg
../
automake
/buildout.cfg
../git/buildout.cfg
../libtool/buildout.cfg
../m4/buildout.cfg
../openssl/buildout.cfg
../patch/buildout.cfg
../zlib/buildout.cfg
parts = shellinabox
[shellinabox]
<= shellinabox-2.10
[shellinabox-common]
recipe = slapos.recipe.cmmi
environment =
CFLAGS = -I${zlib:location}/include -I${openssl:location}/include
LDFLAGS = -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib
PKG_CONFIG_PATH = ${openssl:location}/lib/pkgconfig/
[shellinabox-2.10]
; This version is old, but we patch it for IPv6 support
<= shellinabox-common
recipe = slapos.recipe.cmmi
url = http://shellinabox.googlecode.com/files/shellinabox-2.10.tar.gz
md5sum = 0e144910d85d92edc54702ab9c46f032
patch-binary = ${patch:location}/bin/patch
...
...
@@ -30,20 +24,27 @@ patch-options = -p1
patches =
${:_profile_base_location_}/0001-Switch-to-IPv6.patch#b61cb099c00e15a5fcaf6c98134fff45
${:_profile_base_location_}/0002-Allow-to-run-entire-command-path.patch#a506b4d83021e24c830f767501c1d3fc
environment =
CFLAGS = -I${zlib:location}/include -I${openssl:location}/include
LDFLAGS = -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib
PKG_CONFIG_PATH = ${openssl:location}/lib/pkgconfig/
[shellinabox-git-repository]
; This version has much more features, but does not support IPv6 (support unix domain though)
recipe = slapos.recipe.build:gitclone
repository = https://github.com/shellinabox/shellinabox
revision =
458cd7aa8f513f41f7eee389fa5ff6a51acea593
revision =
b8285748993c4c99e80793775f3d2a0a4e962d5a
git-executable = ${git:location}/bin/git
[shellinabox-github]
<= shellinabox-common
recipe = slapos.recipe.cmmi
path = ${shellinabox-git-repository:location}
configure-command =
${libtool:location}/bin/libtoolize
${autoconf:location}/bin/autoreconf -vif
./configure
environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:%(PATH)s
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:%(PATH)s
CFLAGS = -I${zlib:location}/include -I${openssl:location}/include
LDFLAGS = -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib
PKG_CONFIG_PATH = ${openssl:location}/lib/pkgconfig/
component/subversion/buildout.cfg
View file @
ad9855fc
...
...
@@ -7,6 +7,7 @@ extends =
../libexpat/buildout.cfg
../libuuid/buildout.cfg
../neon/buildout.cfg
../openssl/buildout.cfg
../perl/buildout.cfg
../pkgconfig/buildout.cfg
../serf/buildout.cfg
...
...
@@ -52,7 +53,7 @@ environment =
PATH=${perl:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${apache:location}/lib/pkgconfig:${sqlite3:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${serf:location}/lib/pkgconfig
CPPFLAGS=-I${libexpat:location}/include -I${libuuid:location}/include
LDFLAGS=-L${libexpat:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${sqlite3:location}/lib -Wl,-rpath=${apache:location}/lib -L${libuuid:location}/lib -Wl,-rpath=${libuuid:location}/lib
LDFLAGS=-L${libexpat:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${sqlite3:location}/lib -Wl,-rpath=${apache:location}/lib -L${libuuid:location}/lib -Wl,-rpath=${libuuid:location}/lib
-Wl,-rpath=${openssl:location}/lib
[subversion-1.9]
recipe = hexagonit.recipe.cmmi
...
...
slapos/recipe/generic_zope_zeo_client/__init__.py
View file @
ad9855fc
...
...
@@ -105,10 +105,13 @@ class Recipe(GenericBaseRecipe):
zope_environment
=
{
'TMP'
:
self
.
options
[
'tmp-path'
],
'TMPDIR'
:
self
.
options
[
'tmp-path'
],
'HOME'
:
self
.
options
[
'tmp-path'
]
,
'HOME'
:
self
.
options
.
get
(
'home-path'
,
self
.
options
.
get
(
'tmp-path'
))
,
'PATH'
:
self
.
options
[
'bin-path'
],
'TZ'
:
self
.
options
[
'timezone'
],
}
instance_home
=
self
.
options
.
get
(
"instancehome-path"
,
None
)
if
instance_home
:
zope_environment
[
"INSTANCE_HOME"
]
=
instance_home
# longrequestlogger product which requires environment settings
longrequest_logger_file
=
self
.
options
.
get
(
'longrequest-logger-file'
,
None
)
...
...
software/apache-frontend/common.cfg
View file @
ad9855fc
...
...
@@ -96,7 +96,7 @@ mode = 640
[template-apache-frontend-configuration]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/templates/apache.conf.in
md5sum =
6c72015a9af4f1edab63712f5c6aec99
md5sum =
09ffa9a94cc7506d32c2c422853106b6
mode = 640
[template-apache-cached-configuration]
...
...
software/apache-frontend/software.cfg
View file @
ad9855fc
...
...
@@ -3,42 +3,37 @@ extends = common.cfg
[versions]
PyRSS2Gen = 1.1
apache-libcloud = 0.1
7
.0
apache-libcloud = 0.1
8
.0
cns.recipe.symlink = 0.2.3
collective.recipe.template = 1.11
ecdsa = 0.13
gitdb = 0.6.4
plone.recipe.command = 1.1
pycrypto = 2.6.1
rdiff-backup = 1.0.5
slapos.recipe.template = 2.8
slapos.toolbox = 0.5
0
slapos.toolbox = 0.5
1
smmap = 0.9.0
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
1
GitPython = 1.0.1
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
1
atomize = 0.2.0
# Required by:
# apache-libcloud==0.17.0
backports.ssl-match-hostname = 3.4.0.2
# Required by:
# slapos.toolbox==0.50
# slapos.toolbox==0.51
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
1
lockfile = 0.10.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
1
paramiko = 1.15.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
1
rpdb = 0.1.5
software/apache-frontend/templates/apache.conf.in
View file @
ad9855fc
...
...
@@ -24,6 +24,9 @@ RequestHeader unset REMOTE_USER
ServerTokens Prod
# Disable TRACE Method
TraceEnable off
# Log configuration
ErrorLog "{{ error_log }}"
LogLevel info
...
...
software/cdn-me/software.cfg
View file @
ad9855fc
...
...
@@ -41,6 +41,6 @@ eggs =
[versions]
cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0
erp5.util = 0.4.4
2
erp5.util = 0.4.4
3
plone.recipe.command = 1.1
slapos.recipe.template = 2.8
software/erp5testnode/software.cfg
View file @
ad9855fc
...
...
@@ -59,5 +59,5 @@ md5sum = 22ffc8e212dcf2db8ad94cf0e5ac4772
[versions]
PyXML = 0.8.5
erp5.util = 0.4.4
2
erp5.util = 0.4.4
3
slapos.recipe.template = 2.7
software/kvm/software.cfg
View file @
ad9855fc
...
...
@@ -16,7 +16,7 @@ pycrypto = 2.6.1
slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.7
smmap = 0.9.0
erp5.util = 0.4.4
2
erp5.util = 0.4.4
3
pycurl = 7.19.5.1
# Required by:
...
...
software/monitor/cgi-httpd.conf.in
View file @
ad9855fc
...
...
@@ -78,6 +78,26 @@ Alias /{{ monitor_private_hash }} {{ directory.get('private-directory') }}/
</Files>
</Directory>
{% set slave_list = json_module.loads(slave_information.get('slave_instance_list')) -%}
{% for slave_instance in slave_list -%}
alias /{{ slave_instance.get('slave_reference') }} {{ directory.get('private-directory') }}/network-user-logs/{{ slave_instance.get('slave_reference') }}
<Directory {{ directory.get('private-directory') }}/network-user-logs/{{ slave_instance.get('slave_reference') }}>
Order Allow,Deny
Allow from all
AllowOverride All
Satisfy Any
Options Indexes FollowSymLinks
DirectoryIndex index.html
<Files .htaccess>
order allow,deny
deny from all
</Files>
</Directory>
{% endfor -%}
<Location /rewrite>
AuthType Basic
AuthName "Private access"
...
...
software/monitor/instance-monitor-distributor.cfg.jinja2
0 → 100644
View file @
ad9855fc
[buildout]
extends = {{ instance_base_monitor }}
parts +=
slave-test-configuration
[jinja2-template-base]
recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/${:filename}
extra-context =
context =
import json_module json
${:extra-context}
[slave-test-configuration]
<=jinja2-template-base
template = {{ template_json_distributor_test }}
filename = srv/monitor-private/test.json
extensions = jinja2.ext.do
extra-context =
section slave_information slap-parameter
[monitor-directory]
network-user-logs = ${:private-directory}/network-user-logs/
{% for slave_instance in slave_instance_list -%}
user-log-{{ slave_instance.get('slave_reference') }}-folder = ${:private-directory}/network-user-logs/{{ slave_instance.get('slave_reference') }}
{% endfor -%}
{% set part_list = [] -%}
# Publish information for each slave
{% for slave_instance in slave_instance_list -%}
{% set publish_section_title = 'publish-%s' % slave_instance.get('slave_reference') -%}
{% do part_list.append(publish_section_title) -%}
[{{ publish_section_title }}]
recipe = slapos.cookbook:publish
-slave-reference = {{ slave_instance.get('slave_reference') }}
log-access-url = ${monitor-frontend:connection-site_url}/{{ slave_instance.get('slave_reference') }}
log-access-url-v6 = ${monitor-parameters:url}/{{ slave_instance.get('slave_reference') }}
{% endfor %}
[buildout]
parts +=
{% for part in part_list %}
{{ ' %s' % part }}
{% endfor %}
software/monitor/instance-monitor.cfg.jinja2
View file @
ad9855fc
...
...
@@ -22,11 +22,11 @@ parts =
symlink-re6st-logs
symlink-collected-logs
extends =
${monitor-template:output
}
extends =
{{ monitor_template_output }
}
eggs-directory =
${buildout:eggs-directory
}
develop-eggs-directory =
${buildout:develop-eggs-directory
}
eggs-directory =
{{ eggs_directory }
}
develop-eggs-directory =
{{ develop_eggs_directory }
}
offline = true
[cron-network-bench]
...
...
@@ -34,22 +34,22 @@ offline = true
recipe = slapos.cookbook:cron.d
name = network-bench-test
frequency = */10 * * * *
command =
${buildout:bin-directory}/networkbench $${network-bench-configuration:rendered} $
${monitor-directory:monitor-log}
command =
{{ buildout }}/networkbench ${network-bench-configuration:rendered}
${monitor-directory:monitor-log}
[symlink-re6st-logs]
recipe = cns.recipe.symlink
symlink = /var/log/re6stnet = $
$
{monitor-directory:system-log}/re6stnet
symlink = /var/log/re6stnet = ${monitor-directory:system-log}/re6stnet
autocreate = true
[symlink-collected-logs]
recipe = cns.recipe.symlink
symlink = /srv/slapgrid/var/data-log = $
$
{monitor-directory:server-log}/data-log
symlink = /srv/slapgrid/var/data-log = ${monitor-directory:server-log}/data-log
autocreate = true
[network-bench-configuration]
recipe = slapos.recipe.template:jinja2
template =
${network-bench-cfg:output
}
rendered = $
$
{monitor-directory:etc}/network_bench.cfg
template =
{{ network_benck_cfg_output }
}
rendered = ${monitor-directory:etc}/network_bench.cfg
mode = 0744
context =
key slapparameter_dict slap-parameters:configuration
...
...
@@ -66,42 +66,46 @@ user = admin
bytes = 16
[monitor-directory]
server-log = $
$
{:private-directory}/server-log
monitor-log = $
$
{:private-directory}/monitor-log
cache = $
$
{:var}/cache
mod-ssl = $
$
{:cache}/httpd_mod_ssl
system-log = $
$
{:private-directory}/system-log
server-log = ${:private-directory}/server-log
monitor-log = ${:private-directory}/monitor-log
cache = ${:var}/cache
mod-ssl = ${:cache}/httpd_mod_ssl
system-log = ${:private-directory}/system-log
[slap-parameter]
private-hash = $
${pwgen:passwd}$
${pwgen32:passwd}
private-hash = $
{pwgen:passwd}
${pwgen32:passwd}
frontend-domain =
[monitor-frontend]
recipe = slapos.cookbook:requestoptional
name = Monitor Frontend
# XXX We have hardcoded SR URL here.
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
software-url = product.frontend
software-type = custom-personal
slave = true
config-url = $
$
{monitor-parameters:url}
config-domain = $
$
{slap-parameter:frontend-domain}
config-url = ${monitor-parameters:url}
config-domain = ${slap-parameter:frontend-domain}
return = site_url domain
server-url = $
$
{slap-connection:server-url}
key-file = $
$
{slap-connection:key-file}
cert-file = $
$
{slap-connection:cert-file}
computer-id = $
$
{slap-connection:computer-id}
partition-id = $
$
{slap-connection:partition-id}
server-url = ${slap-connection:server-url}
key-file = ${slap-connection:key-file}
cert-file = ${slap-connection:cert-file}
computer-id = ${slap-connection:computer-id}
partition-id = ${slap-connection:partition-id}
[publish-connection-informations]
recipe = slapos.cookbook:publish
monitor_url = $
$
{monitor-parameters:url}
server_log_url = $
${:url}$
${slap-parameter:private-hash}/
url = $
$
{monitor-frontend:connection-site_url}
monitor_url = ${monitor-parameters:url}
server_log_url = $
{:url}
${slap-parameter:private-hash}/
url = ${monitor-frontend:connection-site_url}
[monitor-httpd-configuration-file]
context =
import json_module json
section directory monitor-directory
section monitor_parameters monitor-parameters
section httpd_configuration monitor-httpd-configuration
section monitor_rewrite_rule monitor-rewrite-rule
section slave_information slap-parameter
key monitor_private_hash slap-parameter:private-hash
software/monitor/instance.cfg
View file @
ad9855fc
...
...
@@ -7,17 +7,35 @@ develop-eggs-directory = ${buildout:develop-eggs-directory}
[switch_softwaretype]
recipe = slapos.cookbook:softwaretype
default = $${instance-base-runner:rendered}
default = $${instance-base-monitor:rendered}
distributor = $${instance-base-distributor:rendered}
[instance-base-
runne
r]
[instance-base-
monito
r]
recipe = slapos.recipe.template:jinja2
template = ${template-monitor:
output
}
template = ${template-monitor:
destination
}
rendered = $${buildout:directory}/template-monitor.cfg
extensions = jinja2.ext.do
context = key buildout buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory
key slapparameter_dict slap-configuration:configuration
key monitor_template_output slap-configuration:monitor_template_output
key network_benck_cfg_output slap-configuration:network_benck_cfg_output
mode = 0644
[instance-base-distributor]
recipe = slapos.recipe.template:jinja2
template = ${template-monitor-distributor:destination}
rendered = $${buildout:directory}/template-monitor-distributor.cfg
extensions = jinja2.ext.do
context = import json_module json
key buildout buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory
key slapparameter_dict slap-configuration:configuration
key instance_base_monitor instance-base-monitor:rendered
key slave_instance_list slap-configuration:slave-instance-list
key template_json_distributor_test slap-configuration:json_test_template
mode = 0644
[slap-configuration]
...
...
@@ -27,3 +45,6 @@ partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
monitor_template_output = ${monitor-template:output}
network_benck_cfg_output = ${network-bench-cfg:output}
json_test_template = ${json-test-template:destination}
software/monitor/json-test-template.json.in.jinja2
0 → 100644
View file @
ad9855fc
{% set slave_list = json_module.loads(slave_information.get('slave_instance_list')) -%}
{
"id" :
[
{% for slave_instance in slave_list -%}
{% if slave_instance != slave_list[-1] -%}
"{{ slave_instance.get('slave_reference') }}",
{% endif -%}
{% if slave_instance == slave_list[-1] -%}
"{{ slave_instance.get('slave_reference') }}"
{% endif -%}
{% endfor -%}
],
"ipv4" :
[
{% for slave_instance in slave_list -%}
{% if slave_instance.get('ping_ip_list') not in [None, "", "0.0.0.0"] -%}
{% if slave_instance != slave_list[-1] -%}
"{{ slave_instance.get('ping_ip_list') }}",
{% endif %}
{% if slave_instance == slave_list[-1] -%}
"{{ slave_instance.get('ping_ip_list') }}"
{% endif -%}
{% endif -%}
{% endfor -%}
],
"ipv6" :
[
{% for slave_instance in slave_list -%}
{% if slave_instance.get('ping6_ip_list') not in [None, "", "0.0.0.0"] -%}
{% if slave_instance != slave_list[-1] -%}
"{{ slave_instance.get('ping6_ip_list') }}",
{% endif -%}
{% if slave_instance == slave_list[-1] -%}
"{{ slave_instance.get('ping6_ip_list') }}"
{% endif -%}
{% endif -%}
{% endfor -%}
],
"url" :
[
{% for slave_instance in slave_list -%}
{% if slave_instance.get('test_http_url_list') not in [None, ""] -%}
{% if slave_instance != slave_list[-1] -%}
"{{ slave_instance.get('test_http_url_list') }}",
{% endif -%}
{% if slave_instance == slave_list[-1] -%}
"{{ slave_instance.get('test_http_url_list') }}"
{% endif -%}
{% endif -%}
{% endfor -%}
],
"dns" :
[
{% for slave_instance in slave_list -%}
{% if slave_instance.get('test_name_list') not in [None, ""] -%}
{% if slave_instance != slave_list[-1] -%}
"{{ slave_instance.get('test_name_list') }}",
{% endif -%}
{% if slave_instance == slave_list[-1] -%}
"{{ slave_instance.get('test_name_list') }}"
{% endif -%}
{% endif -%}
{% endfor -%}
]
}
software/monitor/network_bench.cfg.in
View file @
ad9855fc
[network_bench]
{% if slapparameter_dict.get('test_distributor_url', '') not in ["", None] %}
test_distributor_url = {{ slapparameter_dict.get('test_distributor_url', '') }}
{% endif %}
url =
{{ slapparameter_dict.get('test_http_url_list', '').split('\n') | join('\n ') }}
...
...
software/monitor/software.cfg
View file @
ad9855fc
...
...
@@ -9,8 +9,10 @@ extends =
parts =
slapos-cookbook
slapos-toolbox
template
network-bench-cfg
json-test-template
template
template-monitor-distributor
template-monitor
eggs
fluentd
...
...
@@ -19,16 +21,31 @@ parts =
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/template.cfg
md5sum =
daf1125d0d67b6b140a4b6de8c8e35f3
md5sum =
9225d232336515091191146cd34f30b9
mode = 0644
[template-monitor]
recipe = slapos.recipe.
template
recipe = slapos.recipe.
build:download
url = ${:_profile_base_location_}/instance-monitor.cfg.jinja2
output = ${buildout:directory}/template-monitor.cfg
md5sum = bf6bb18ed86fcb450e5e23d7815a208f
destination = ${buildout:directory}/template-monitor.cfg
md5sum = 810ed8199682068e27b62659d7fa101f
mode = 0644
[template-monitor-distributor]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-monitor-distributor.cfg.jinja2
destination = ${buildout:directory}/template-monitor-distributor.cfg
md5sum = c012cf53a3f66c319db2a5d8226fa627
mode = 0644
[json-test-template]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/json-test-template.json.in.jinja2
destination = ${buildout:directory}/json-test-template.json.in.jinja2
md5sum = d9c576a2182fc429416aec892fe080f2
mode = 0644
# stupify index for now
[index]
url = ${:_profile_base_location_}/${:filename}
...
...
@@ -36,16 +53,15 @@ md5sum = 876f18b159fbd9325332d0f42e9172ac
[monitor-httpd-template]
url = ${:_profile_base_location_}/${:filename}
md5sum =
1f30b17f5ea11fd033984d17c38bcfd3
md5sum =
25b5bfc7f9c2891c4a0923d6e08568a8
[network-bench-cfg]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/network_bench.cfg.in
md5sum =
a3510050a1b237dc11ab46a9d2b78f56
md5sum =
cfcbf2002b8eff5153e2bf68ed24b720
output = ${buildout:directory}/template-network-bench-cfg.in
mode = 0644
[slapos-toolbox]
recipe = zc.recipe.egg
eggs =
...
...
@@ -79,31 +95,31 @@ apache-libcloud = 0.16.0
ecdsa = 0.11
gitdb = 0.6.0
pycrypto = 2.6.1
slapos.toolbox = 0.5
1
slapos.toolbox = 0.5
2
smmap = 0.8.3
# Required by:
# slapos.toolbox==0.
45.1
# slapos.toolbox==0.
52
GitPython = 0.3.2.1
# Required by:
# slapos.toolbox==0.
45.1
# slapos.toolbox==0.
52
atomize = 0.2.0
# Required by:
# slapos.toolbox==0.
45.1
# slapos.toolbox==0.
52
feedparser = 5.1.3
# Required by:
# slapos.toolbox==0.
45.1
# slapos.toolbox==0.
52
paramiko = 1.15.2
# Required by:
# slapos.toolbox==0.5
1
# slapos.toolbox==0.5
2
lockfile = 0.10.2
# Required by:
# slapos.toolbox==0.5
1
# slapos.toolbox==0.5
2
rpdb = 0.1.5
software/slaprunner/common.cfg
View file @
ad9855fc
...
...
@@ -26,7 +26,7 @@ extends =
# stacks are listed from most generic to most specific,
# to avoid versioning issues
parts =
common-
parts =
template
eggs
instance-runner-import
...
...
@@ -36,6 +36,9 @@ parts =
rdiff-backup
collective.recipe.template-egg
parts =
${:common-parts}
# Use shellinabox from github with AF_UNIX support
[shellinabox]
<= shellinabox-github
...
...
software/slaprunner/development.cfg
View file @
ad9855fc
...
...
@@ -11,17 +11,8 @@ parts =
slapos.toolbox-dev
slapos.cookbook-dev
slapos.core-dev
# erp5.util-dev
# Good elements
template
eggs
instance-runner-import
instance-runner-export
slapos-cookbook
template-slapos-cfg
# XXX: we have to manually add this for resilience
rdiff-backup
collective.recipe.template-egg
${:common-parts}
[slapos.toolbox-repository]
recipe = slapos.recipe.build:gitclone
...
...
software/slaprunner/software.cfg
View file @
ad9855fc
...
...
@@ -9,46 +9,42 @@ extends = common.cfg
[versions]
Flask-Auth = 0.85
PyRSS2Gen = 1.1
apache-libcloud = 0.1
7
.0
apache-libcloud = 0.1
8
.0
cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0
collective.recipe.template = 1.1
1
collective.recipe.template = 1.1
2
ecdsa = 0.13
erp5.util = 0.4.4
2
erp5.util = 0.4.4
3
gitdb = 0.6.4
gunicorn = 19.3.0
plone.recipe.command = 1.1
prettytable = 0.7.2
pycrypto = 2.6.1
slapos.recipe.download = 1.0.dev-r
4053
slapos.recipe.template = 2.
7
slapos.toolbox = 0.5
0
slapos.recipe.download = 1.0.dev-r
3447
slapos.recipe.template = 2.
8
slapos.toolbox = 0.5
2
smmap = 0.9.0
z3c.recipe.scripts = 1.0.1
# Required by:
# slapos.toolbox==0.5
0
GitPython =
0.3.5
# slapos.toolbox==0.5
2
GitPython =
1.0.1
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
atomize = 0.2.0
# Required by:
#
apache-libcloud==0.17.0
backports.ssl-match-hostname = 3.4.0.2
#
slapos.toolbox==0.52
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.50
feedparser = 5.1.3
# Required by:
# slapos.toolbox==0.50
# slapos.toolbox==0.52
lockfile = 0.10.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
paramiko = 1.15.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
rpdb = 0.1.5
stack/cloudooo.cfg
View file @
ad9855fc
...
...
@@ -89,4 +89,4 @@ PasteDeploy = 1.5.2
# Required by:
# cloudooo==1.2.5.dev0
erp5.util = 0.4.4
2
erp5.util = 0.4.4
3
stack/erp5/buildout.cfg
View file @
ad9855fc
...
...
@@ -318,7 +318,7 @@ md5sum = 9670cf63099e2c520017a23defff51a4
[template-zope]
<= download-base
filename = instance-zope.cfg.in
md5sum =
995257c4d08365db7ac0d1b40936ef8b
md5sum =
44c4aa068cffe2c1d8320d59e6d1c499
link-binary =
${aspell:location}/bin/aspell
${dmtx-utils:location}/bin/dmtxwrite
...
...
@@ -466,6 +466,7 @@ eggs =
Jinja2
jsonschema
mechanize
objgraph
paramiko
ply
pyflakes
...
...
@@ -595,6 +596,7 @@ scripts =
Acquisition = 2.13.8+SlapOSPatched001
Products.DCWorkflow = 2.2.4+SlapOSPatched001
pysvn = 1.7.10+SlapOSPatched002
python-ldap = 2.4.20+SlapOSPatched001
# specify dev version to be sure that an old released version is not used
cloudooo = 1.2.5-dev
...
...
@@ -671,22 +673,22 @@ ipython = 3.2.0
logilab-common = 1.0.2
neoppod = 1.4.0
numpy = 1.9.2
objgraph = 2.0.1
plone.recipe.command = 1.1
ply = 3.
6
ply = 3.
7
polib = 1.0.7
pprofile = 1.7.3
pycountry = 1.14
pycrypto = 2.6.1
pyflakes = 0.9.2
pylint = 1.4.4
python-ldap = 2.4.20
python-magic = 0.4.6
python-memcached = 1.57
qrcode = 5.1
restkit = 4.2.2
rtjp-eventlet = 0.3.2
slapos.recipe.template = 2.8
slapos.toolbox = 0.5
0
slapos.toolbox = 0.5
2
smmap = 0.9.0
socketpool = 0.5.3
spyne = 2.11.0
...
...
@@ -700,7 +702,7 @@ xfw = 0.10
xupdate-processor = 0.4
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
GitPython = 1.0.1
# Required by:
...
...
@@ -708,15 +710,11 @@ GitPython = 1.0.1
Products.ZSQLMethods = 2.13.4
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
atomize = 0.2.0
# Required by:
# apache-libcloud==0.17.0
backports.ssl-match-hostname = 3.4.0.2
# Required by:
# slapos.toolbox==0.50
# slapos.toolbox==0.52
feedparser = 5.2.1
# Required by:
...
...
@@ -724,15 +722,15 @@ feedparser = 5.2.1
fpconst = 0.7.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
lockfile = 0.10.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
paramiko = 1.15.2
# Required by:
# slapos.toolbox==0.5
0
# slapos.toolbox==0.5
2
rpdb = 0.1.5
# Required by:
...
...
stack/erp5/instance-zope.cfg.in
View file @
ad9855fc
...
...
@@ -182,6 +182,8 @@ user = {{ dumps(slapparameter_dict['inituser-login']) }}
password = {{ dumps(slapparameter_dict['inituser-password']) }}
timezone = {{ dumps(slapparameter_dict['timezone']) }}
tmp-path = ${directory:tmp}
instancehome-path = ${directory:instance}
home-path = ${buildout:directory}
bin-path = ${directory:bin}:{{ parameter_dict['coreutils'] }}/bin
site-zcml = ${directory:instance-etc}/site.zcml
runzope-binary = ${preload-userhosts-runzope:rendered}
...
...
stack/slapos.cfg
View file @
ad9855fc
...
...
@@ -122,10 +122,10 @@ itsdangerous = 0.24
lxml = 3.4.4
meld3 = 1.0.2
mr.developer = 1.33
netaddr = 0.7.1
5
pbr = 1.
5
.0
netaddr = 0.7.1
8
pbr = 1.
6
.0
prettytable = 0.7.2
psutil = 3.
1
.1
psutil = 3.
2
.1
pyOpenSSL = 0.15.1
pyasn1 = 0.1.8
pyparsing = 2.0.3
...
...
@@ -137,7 +137,7 @@ six = 1.9.0
slapos.cookbook = 1.0.9
slapos.core = 1.3.10
slapos.extension.strip = 0.1
slapos.libnetworkcache = 0.14.
2
slapos.libnetworkcache = 0.14.
3
slapos.recipe.build = 0.21
slapos.recipe.cmmi = 0.2
stevedore = 1.7.0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment