Commit cce04684 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

Merge branch 'erp5-component' into erp5

parents f7ede01a 51455c50
Changes Changes
======= =======
0.78.1 (2013-05-31)
-------------------
* Fix slapos.cookbook:request: Add backward compatiblity about getInstanceGuid(). [Cedric de Saint Martin]
* slapos.cookbook:check_* promises: Add timeout to curl that is not otherwise killed by slapos promise subsystem. [Cedric de Saint Martin]
* Add boinc recipe: Allow to deploy an empty BOINC project. [Alain Takoudjou]
* Add boinc.app recipe: Allow to deploy and update a BOINC application into existing BOINC server instance . [Alain Takoudjou]
* Add boinc.client recipe: Allow to deploy a BOINC Client instance on SlapOS. [Alain Takoudjou]
* Add condor recipe: Allow to deploy Condor Manager or Condor worker instance on SlapOS. [Alain Takoudjou]
* Add condor.submit recipe: Allow to deploy or update application into existing Condor Manager instance. [Alain Takoudjou]
* Add redis.server recipe: Allow to deploy Redis server. [Alain Takoudjou]
* Add trac recipe: for deploying Trac and manage project with support of SVN and GIT. [Alain Takoudjou]
* Add bonjourgrid recipe: for deploying BonjourGrid Master and submit BOINC or Condor project. [Alain Takoudjou]
* Add bonjourgrid.client recipe: for deploying BonjourGrid Worker instance and execute BOINC or Condor Jobs. [Alain Takoudjou]
* Cloudooo: Allow any environment variables. [Yusei Tahara]
* ERP5: disable MariaDB query cache completely by 'query_cache_type = 0' for ERP5. [Kazuhiko Shiozaki]
* ERP5: enable haproxy admin socket and install haproxyctl script. [Kazuhiko Shiozaki]
* ERP5: increase the maximum number of open file descriptors before starting mysqld. [Kazuhiko Shiozaki]
0.78.0 (2013-04-28) 0.78.0 (2013-04-28)
------------------- -------------------
......
...@@ -47,15 +47,17 @@ filename = boinc-abs-path.patch ...@@ -47,15 +47,17 @@ filename = boinc-abs-path.patch
[boinc-package] [boinc-package]
recipe = plone.recipe.command recipe = plone.recipe.command
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
tarball = ${buildout:parts-directory}/boinc.tar.gz
svnversion = ${subversion:location}/bin/svnversion svnversion = ${subversion:location}/bin/svnversion
command = ${subversion:location}/bin/svn co http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \ command = ${subversion:location}/bin/svn co --revision 26162 http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \
sed -i 's#/usr/bin/svnversion#${:svnversion}#' ${:location}/tools/make_project sed -i 's#/usr/bin/svnversion#${:svnversion}#' ${:location}/tools/make_project && \
cd ${:location} && rm -f ${:tarball} && tar -cvzf ${:tarball} .
update-command =
# Compile now boinc client # Compile now boinc client
[boinc] [boinc]
recipe = hexagonit.recipe.cmmi recipe = slapos.recipe.cmmi
url = ${boinc-package:location} url = ${boinc-package:tarball}
source = ${buildout:parts-directory}/${:_buildout_section_name_}__compile__
configure-command = configure-command =
echo 'AC_PROG_OBJCXX' >> configure.ac echo 'AC_PROG_OBJCXX' >> configure.ac
aclocal -I${pkgconfig:location}/share/aclocal -I${libtool:location}/share/aclocal aclocal -I${pkgconfig:location}/share/aclocal -I${libtool:location}/share/aclocal
......
...@@ -26,29 +26,36 @@ keep-compile-dir = false ...@@ -26,29 +26,36 @@ keep-compile-dir = false
[boinc-package] [boinc-package]
recipe = plone.recipe.command recipe = plone.recipe.command
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
tarball = ${buildout:parts-directory}/boinc.tar.gz
svnversion = ${subversion:location}/bin/svnversion svnversion = ${subversion:location}/bin/svnversion
command = ${subversion:location}/bin/svn co http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \ command = ${subversion:location}/bin/svn co --revision 26162 http://boinc.berkeley.edu/svn/branches/server_stable ${:location} && \
sed -i 's#/usr/bin/svnversion#${:svnversion}#' ${:location}/tools/make_project sed -i 's#/usr/bin/svnversion#${:svnversion}#' ${:location}/tools/make_project && \
sed -i "20i\#include <unistd.h>" ${:location}/tools/process_input_template.cpp && \
sed -i "25i\#include <unistd.h>" ${:location}/sched/single_job_assimilator.cpp && \
sed -i "27i\#include <unistd.h>" ${:location}/tools/create_work.cpp && \
sed -i 's#--prefix=$(prefix)#--prefix=/$(prefix)#' ${:location}/py/Makefile.am && \
sed -i 's#parent::base_escape_string#@parent::base_escape_string#' ${:location}/html/inc/boinc_db.inc
cd ${:location} && rm -f ${:tarball} && tar -cvzf ${:tarball} .
update-command =
# Compile now boinc # Compile now boinc
# When installing boinc python module, path /srv/slapgrid/... is strip to srv/slapgrid... It is why # When installing boinc python module, path /srv/slapgrid/... is strip to srv/slapgrid... It is why
# we need to set --prefix="/${buildout:parts-directory}/${:_buildout_section_name_}" # we need to set --prefix="/${buildout:parts-directory}/${:_buildout_section_name_}"
[boinc] [boinc]
recipe = hexagonit.recipe.cmmi recipe = slapos.recipe.cmmi
url = ${boinc-package:location} url = ${boinc-package:tarball}
keep-compile-dir = true keep-compile-dir = true
source = ${buildout:parts-directory}/${:_buildout_section_name_}__compile__ source = ${buildout:parts-directory}/${:_buildout_section_name_}__compile__
configure-command = configure-command =
echo 'AC_PROG_OBJCXX' >> configure.ac echo 'AC_PROG_OBJCXX' >> configure.ac
aclocal -I${pkgconfig:location}/share/aclocal -I${libtool:location}/share/aclocal aclocal -I${pkgconfig:location}/share/aclocal -I${libtool:location}/share/aclocal
./_autosetup ./_autosetup
./configure ./configure
configure-options = configure-options =
--prefix="/${buildout:parts-directory}/${:_buildout_section_name_}" --prefix="${buildout:parts-directory}/${:_buildout_section_name_}"
--disable-fcgi --disable-fcgi
--disable-shared --disable-shared
--enable-static --enable-static
--with-pic
--disable-manager --disable-manager
--disable-client --disable-client
--with-pkg-config --with-pkg-config
...@@ -59,13 +66,14 @@ configure-options = ...@@ -59,13 +66,14 @@ configure-options =
--with-libcurl=${curl:location}/lib --with-libcurl=${curl:location}/lib
--with-x=no --with-x=no
environment = environment =
PATH=${pkgconfig:location}/bin:${automake:location}/bin:${autoconf:location}/bin:${libtool:location}/bin:${subversion:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:${automake:location}/bin:${autoconf:location}/bin:${libtool:location}/bin:${subversion:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig
M4=${m4:location}/bin/m4 M4=${m4:location}/bin/m4
CFLAGS=-fPIC
CPPFLAGS=-I${openssl:location}/include -I${mariadb:location}/include CPPFLAGS=-I${openssl:location}/include -I${mariadb:location}/include
LDFLAGS = -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${mariadb:location}/lib -Wl,-rpath=${mariadb:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS = -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${mariadb:location}/lib -Wl,-rpath=${mariadb:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
MYSQL_CONFIG=${mariadb:location}/bin/mysql_config MYSQL_CONFIG=${mariadb:location}/bin/mysql_config
ACLOCAL_PATH=${pkgconfig:location}/share/aclocal:${libtool:location}/share/aclocal ACLOCAL_PATH=${pkgconfig:location}/share/aclocal:${libtool:location}/share/aclocal
\ No newline at end of file
...@@ -2,13 +2,6 @@ ...@@ -2,13 +2,6 @@
parts = parts =
condor condor
libexpat
kerberos
perl
openldap
java
dash
zlib
extends = extends =
../libexpat/buildout.cfg ../libexpat/buildout.cfg
...@@ -19,9 +12,35 @@ extends = ...@@ -19,9 +12,35 @@ extends =
../dash/buildout.cfg ../dash/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
[condor] [condor]
recipe = hexagonit.recipe.download recipe = slapos.recipe.build
url = https://doc-0c-60-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/5sp63u5v03ie9nu49dfodreb2dcomstb/1369231200000/01656987990562299665/*/0B9HYL8A0vSryTTIxX29rM0N6N28?e=download slapos_promise =
md5sum = e7d96746fc9102ca4583f8cd5eb472e0 directory:bin
strip-top-level-dir = true directory:etc
directory:examples
directory:include
directory:lib
directory:libexec
directory:man
directory:src
directory:sbin
depends =
${libexpat:location}
${kerberos:location}
${perl:location}
${openldap:location}
${java:location}
${dash:location}
${zlib:location}
x86 = http://parrot.cs.wisc.edu//symlink/20130530031504/7/7.9/7.9.5/28b36a94ad1a405bac689a76b6c353a7/condor-7.9.5-x86_Debian6-unstripped.tar.gz 227059bb9bebc9033665bb246d90a7bb
x86-64 = http://parrot.cs.wisc.edu//symlink/20130530031504/7/7.9/7.9.5/7000a12f9a22765b457e2958762871d5/condor-7.9.5-x86_64_Debian6-stripped.tar.gz 30fa4cebabb8ff4971c769f4ef74ba68
script =
if not self.options.get('path'): self.options['url'], self.options['md5sum'] = self.options[guessPlatform()].split(' ')
extract_dir = self.extract(self.download(self.options['url'], self.options.get('md5sum')))
workdir = guessworkdir(extract_dir)
self.copyTree(workdir, "%(location)s")
\ No newline at end of file
...@@ -12,11 +12,11 @@ find-links = ...@@ -12,11 +12,11 @@ find-links =
[libreoffice-bin] [libreoffice-bin]
recipe = slapos.recipe.build recipe = slapos.recipe.build
# here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64). # here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64).
version = 3.6.5 version = 3.6.6
url = http://download.documentfoundation.org/libreoffice/stable/${:version}/rpm/%s/LibO_${:version}_Linux_%s_install-rpm_en-US.tar.gz url = http://download.documentfoundation.org/libreoffice/stable/${:version}/rpm/%s/LibO_${:version}_Linux_%s_install-rpm_en-US.tar.gz
# supported architectures md5sums # supported architectures md5sums
md5sum_x86 = 9575c9a567d48a9feeaed2f915bfdf7f md5sum_x86 = 922935201a350a7e0d3f83c08f739ee2
md5sum_x86-64 = 302e326f2b2a524a78994705ea782770 md5sum_x86-64 = fa41089ce29eb03cdfb34d06a1e786db
# where office code can be found? # where office code can be found?
officedir = libreoffice3.6 officedir = libreoffice3.6
......
...@@ -25,9 +25,9 @@ python = python2.7 ...@@ -25,9 +25,9 @@ python = python2.7
[python2.7] [python2.7]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
package_version = 2.7.4 package_version = 2.7.5
package_version_suffix = package_version_suffix =
md5sum = 62704ea0f125923208d84ff0568f7d50 md5sum = 6334b666b7ff2038c761d7b27ba699c1
depends = depends =
${gdbm:version} ${gdbm:version}
......
...@@ -6,4 +6,4 @@ parts = ...@@ -6,4 +6,4 @@ parts =
# https://github.com/ruda/rpm2cpio # https://github.com/ruda/rpm2cpio
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_buildout_section_name_} url = ${:_profile_base_location_}/${:_buildout_section_name_}
md5sum = c5bb6227d99e1ff5df880f997cbed2e3 md5sum = aa3a5920a1d8963592be0c2666ee05e2
...@@ -3,7 +3,33 @@ ...@@ -3,7 +3,33 @@
# #
# Standalone RPM to CPIO converter # Standalone RPM to CPIO converter
# Copyright (c) 2012 Rudá Moura # Copyright (c) 2012 Rudá Moura
# https://github.com/ruda/rpm2cpio
# #
# Impove gzip header detection thanks to
# http://afb.users.sourceforge.net/centos/rpm2cpio.py
#
# Copyright (C) 1997,1998,1999, Roger Espel Llima
# Copyright (C) 2000, Sergey Babkin
# Copyright (C) 2009, Alex Kozlov
# Copyright (C) 2010, Anders F Bjorklund
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and any associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# SOFTWARE'S COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE
'''Extract cpio archive from RPM package. '''Extract cpio archive from RPM package.
...@@ -21,6 +47,7 @@ rpm2cpio < adjtimex-1.20-2.1.i386.rpm | cpio -it ...@@ -21,6 +47,7 @@ rpm2cpio < adjtimex-1.20-2.1.i386.rpm | cpio -it
''' '''
import sys import sys
import struct
import StringIO import StringIO
import gzip import gzip
...@@ -31,15 +58,35 @@ def rpm2cpio(stream_in=sys.stdin, stream_out=sys.stdout): ...@@ -31,15 +58,35 @@ def rpm2cpio(stream_in=sys.stdin, stream_out=sys.stdout):
lead = stream_in.read(96) lead = stream_in.read(96)
if lead[0:4] != RPM_MAGIC: if lead[0:4] != RPM_MAGIC:
raise IOError, 'the input is not a RPM package' raise IOError, 'the input is not a RPM package'
data = stream_in.read() lead = stream_in.read(16)
idx = data.find(GZIP_MAGIC) if not lead:
if idx == -1: raise IOError, 'No header'
raise IOError, 'could not find compressed cpio archive'
gzstream = StringIO.StringIO(data[idx:]) while True:
gzipper = gzip.GzipFile(fileobj=gzstream) (magic, ignore, sections, bytes) = struct.unpack("!LLLL", lead)
(smagic, smagic2) = struct.unpack("!HL", lead[0:6])
if smagic == 0x1f8b:
break
# skip the headers
stream_in.seek(16 * sections + bytes, 1)
while True:
lead = stream_in.read(1)
if lead == "":
raise IOError, 'No header'
if (0,) == struct.unpack("B", lead):
continue
break
lead += stream_in.read(15)
if lead == "":
raise IOError, 'No header'
stream_in.seek(-len(lead), 1)
gzipper = gzip.GzipFile(fileobj=stream_in)
data = gzipper.read() data = gzipper.read()
stream_out.write(data) stream_out.write(data)
if __name__ == '__main__': if __name__ == '__main__':
if sys.argv[1:]: if sys.argv[1:]:
try: try:
......
...@@ -44,6 +44,8 @@ allow-hosts = ...@@ -44,6 +44,8 @@ allow-hosts =
github.com github.com
peak.telecommunity.com peak.telecommunity.com
unzip = true
# separate from system python # separate from system python
include-site-packages = false include-site-packages = false
exec-sitecustomize = false exec-sitecustomize = false
...@@ -137,14 +139,15 @@ zc.recipe.egg = 1.3.2 ...@@ -137,14 +139,15 @@ zc.recipe.egg = 1.3.2
# Use own version of h.r.download to be able to open archives not supported by python2.x: .xz # Use own version of h.r.download to be able to open archives not supported by python2.x: .xz
hexagonit.recipe.download = 1.6nxd002 hexagonit.recipe.download = 1.6nxd002
Jinja2 = 2.6 Jinja2 = 2.7
MarkupSafe = 0.18
Werkzeug = 0.8.3 Werkzeug = 0.8.3
buildout-versions = 1.7 buildout-versions = 1.7
collective.recipe.template = 1.10 collective.recipe.template = 1.10
lxml = 3.1.2 lxml = 3.1.2
meld3 = 0.6.10 meld3 = 0.6.10
netaddr = 0.7.10 netaddr = 0.7.10
slapos.libnetworkcache = 0.13.3 slapos.libnetworkcache = 0.13.4
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1 z3c.recipe.scripts = 1.0.1
...@@ -166,9 +169,8 @@ setuptools = 0.6c12dev-r88846 ...@@ -166,9 +169,8 @@ setuptools = 0.6c12dev-r88846
# Required by: # Required by:
# slapos.core==0.35.2-dev # slapos.core==0.35.2-dev
supervisor = 3.0b1 supervisor = 3.0b2
# Required by: # Required by:
# slapos.core==0.35.2-dev # slapos.core==0.35.2-dev
zope.interface = 4.0.5 zope.interface = 4.0.5
...@@ -346,7 +346,7 @@ recipe = slapos.recipe.cmmi ...@@ -346,7 +346,7 @@ recipe = slapos.recipe.cmmi
url = http://www.x.org/releases/X11R7.6/src/lib/libXinerama-1.1.1.tar.bz2 url = http://www.x.org/releases/X11R7.6/src/lib/libXinerama-1.1.1.tar.bz2
md5sum = ecd4839ad01f6f637c6fb5327207f89b md5sum = ecd4839ad01f6f637c6fb5327207f89b
environment = environment =
PKG_CONFIG_PATH=${libX11:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xineramaproto:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig PKG_CONFIG_PATH=${kbproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xineramaproto:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:%(PATH)s
configure-options = configure-options =
--disable-static --disable-static
......
...@@ -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 = '0.78.1.dev' version = '0.78.2.dev'
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"
......
...@@ -44,6 +44,7 @@ class Recipe(GenericBaseRecipe): ...@@ -44,6 +44,7 @@ class Recipe(GenericBaseRecipe):
root = options['installroot'].strip() root = options['installroot'].strip()
options['home_page'] = url_base + "/" + project options['home_page'] = url_base + "/" + project
options['admin_page'] = url_base + "/" + project + "_ops/" options['admin_page'] = url_base + "/" + project + "_ops/"
options['result_page'] = url_base + "/" + project + "_result/"
options['cronjob'] = os.path.join(root, project+'.cronjob') options['cronjob'] = os.path.join(root, project+'.cronjob')
return GenericBaseRecipe.__init__(self, buildout, name, options) return GenericBaseRecipe.__init__(self, buildout, name, options)
......
...@@ -172,6 +172,7 @@ def services(args): ...@@ -172,6 +172,7 @@ def services(args):
languages, compiled, user_profile) languages, compiled, user_profile)
os.system("chmod g+w -R " + args['installroot']) os.system("chmod g+w -R " + args['installroot'])
os.system(cmd) os.system(cmd)
os.system("chmod 700 %s" % os.path.join(args['installroot'], 'keys'))
os.system("chmod o+x " + inc) os.system("chmod o+x " + inc)
os.system("chmod -R o+r " + inc) os.system("chmod -R o+r " + inc)
os.system("chmod o+x " + languages) os.system("chmod o+x " + languages)
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# By default Redis does not run as a daemon. Use 'yes' if you need it. # By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes daemonize no
# When running daemonized, Redis writes a pid file in /var/run/redis.pid by # When running daemonized, Redis writes a pid file in /var/run/redis.pid by
# default. You can specify a custom pid file location here. # default. You can specify a custom pid file location here.
......
...@@ -96,12 +96,12 @@ class Recipe(GenericBaseRecipe): ...@@ -96,12 +96,12 @@ class Recipe(GenericBaseRecipe):
else: else:
self.logger.info("The directory %s already exist, skip project installation" self.logger.info("The directory %s already exist, skip project installation"
% project_dir) % project_dir)
trac_args = [trac_admin, project_dir, 'upgrade'] trac_args = [trac_admin, project_dir, 'repository', 'list']
process_upgrade = subprocess.Popen(trac_args, stdout=subprocess.PIPE, process_upgrade = subprocess.Popen(trac_args, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, env=env) stderr=subprocess.STDOUT)
result = process_upgrade.communicate()[0] result = process_upgrade.communicate()[0]
if process_upgrade.returncode is None or process_upgrade.returncode != 0: if process_upgrade.returncode is None or process_upgrade.returncode != 0:
self.logger.error("Failed to upgrade Trac.\nThe error was: %s" % result) self.logger.error("Failed to run Trac.\nThe error was: %s" % result)
return [] return []
#Add All grant to admin user #Add All grant to admin user
......
...@@ -13,7 +13,7 @@ parts = ...@@ -13,7 +13,7 @@ parts =
frontend-ajaxupload-promise frontend-ajaxupload-promise
frontend-website2-promise frontend-website2-promise
frontend-website-promise frontend-website-promise
content-promise # content-promise
publish-connection-informations publish-connection-informations
eggs-directory = ${buildout:eggs-directory} eggs-directory = ${buildout:eggs-directory}
...@@ -339,21 +339,21 @@ port = $${apache-php:port} ...@@ -339,21 +339,21 @@ port = $${apache-php:port}
[frontend-website-promise] [frontend-website-promise]
recipe = slapos.cookbook:check_url_available recipe = slapos.cookbook:check_url_available
path = $${basedirectory:promises}/frontend path = $${basedirectory:promises}/frontend-website
url = $${request-frontend:connection-site_url} url = $${request-frontend:connection-site_url}
dash_path = ${dash:location}/bin/dash dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl curl_path = ${curl:location}/bin/curl
[frontend-website2-promise] [frontend-website2-promise]
recipe = slapos.cookbook:check_url_available recipe = slapos.cookbook:check_url_available
path = $${basedirectory:promises}/frontend path = $${basedirectory:promises}/frontend-website2
url = $${request-frontend2:connection-site_url} url = $${request-frontend2:connection-site_url}
dash_path = ${dash:location}/bin/dash dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl curl_path = ${curl:location}/bin/curl
[frontend-ajaxupload-promise] [frontend-ajaxupload-promise]
recipe = slapos.cookbook:check_url_available recipe = slapos.cookbook:check_url_available
path = $${basedirectory:promises}/frontend path = $${basedirectory:promises}/frontend-ajaxupload
url = $${request-frontend-ajaxupload:connection-site_url} url = $${request-frontend-ajaxupload:connection-site_url}
dash_path = ${dash:location}/bin/dash dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl curl_path = ${curl:location}/bin/curl
...@@ -362,7 +362,7 @@ curl_path = ${curl:location}/bin/curl ...@@ -362,7 +362,7 @@ curl_path = ${curl:location}/bin/curl
recipe = slapos.cookbook:check_page_content recipe = slapos.cookbook:check_page_content
path = $${basedirectory:promises}/content path = $${basedirectory:promises}/content
url = $${request-frontend-ajaxupload:connection-site_url} url = $${request-frontend-ajaxupload:connection-site_url}
pattern = AjaXplorer match = AjaXplorer
dash_path = ${dash:location}/bin/dash dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl curl_path = ${curl:location}/bin/curl
......
[buildout] [buildout]
develop =
${:parts-directory}/slapos.cookbook-repository
parts = parts =
slapos-cookbook slapos-cookbook
subversion subversion
...@@ -12,9 +9,8 @@ parts = ...@@ -12,9 +9,8 @@ parts =
instance-mariadb instance-mariadb
template-httpd-conf template-httpd-conf
application application
website website1-template
slapos.cookbook-repository website2-template
check-recipe
extends = extends =
../../stack/slapos.cfg ../../stack/slapos.cfg
...@@ -27,7 +23,6 @@ extends = ...@@ -27,7 +23,6 @@ extends =
../../component/dash/buildout.cfg ../../component/dash/buildout.cfg
../../component/stunnel/buildout.cfg ../../component/stunnel/buildout.cfg
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
../../component/git/buildout.cfg
[instance] [instance]
recipe = slapos.recipe.template recipe = slapos.recipe.template
...@@ -40,7 +35,7 @@ md5sum = 4c7936accb3658871b635158198b7905 ...@@ -40,7 +35,7 @@ md5sum = 4c7936accb3658871b635158198b7905
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-apachephp.cfg url = ${:_profile_base_location_}/instance-apachephp.cfg
output = ${buildout:directory}/template-apachephp.cfg output = ${buildout:directory}/template-apachephp.cfg
md5sum = e89aed0fe9697e18bd210a82b82f3b27 md5sum = ef5c61127a21c016014021477d1791e3
mode = 0644 mode = 0644
[instance-mariadb] [instance-mariadb]
...@@ -51,15 +46,31 @@ mode = 0644 ...@@ -51,15 +46,31 @@ mode = 0644
[application] [application]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = http://netcologne.dl.sourceforge.net/project/ajaxplorer/ajaxplorer/dev-channel/4.3.3/ajaxplorer-core-4.3.3.tar.gz url = http://garr.dl.sourceforge.net/project/ajaxplorer/ajaxplorer/dev-channel/4.3.4/ajaxplorer-core-4.3.4.tar.gz
md5sum = b6b1e767dd3b966a74782a03190130b0 md5sum = 2f2ff8bda7bbe841ef0e870c724eb74f
strip-top-level-dir = true strip-top-level-dir = true
[website] [website]
recipe = z3c.recipe.mkdir recipe = z3c.recipe.mkdir
path1 = ${application:location}/data/files/website
path2 = ${application:location}/data/files/website2
paths = paths =
${application:location}/data/files/website ${:path1}
${application:location}/data/files/website2 ${:path2}
[website1-template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/index.html.in
output = ${website:path1}/index.html
md5sum = c5695762361b801c284ee23a150cd1f1
mode = 0644
[website2-template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/index.html.in
output = ${website:path2}/index.html
md5sum = c5695762361b801c284ee23a150cd1f1
mode = 0644
[template-httpd-conf] [template-httpd-conf]
recipe = slapos.recipe.download recipe = slapos.recipe.download
...@@ -69,19 +80,6 @@ filename = apache.conf.in ...@@ -69,19 +80,6 @@ filename = apache.conf.in
md5sum = 6788381fadd8ca96f892d33df3163da0 md5sum = 6788381fadd8ca96f892d33df3163da0
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
# Local development
[slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git
branch = grid-computing
git-executable = ${git:location}/bin/git
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[networkcache] [networkcache]
# signature certificates of the following uploaders. # signature certificates of the following uploaders.
# Romain Courteaud # Romain Courteaud
...@@ -205,6 +203,7 @@ lxml = 3.1.1 ...@@ -205,6 +203,7 @@ lxml = 3.1.1
numpy = 1.6.2 numpy = 1.6.2
# websockify 0.4.1 doesn't install well # websockify 0.4.1 doesn't install well
websockify = 0.3.0 websockify = 0.3.0
slapos.cookbook=0.78.1
setuptools = 0.6c12dev-r88846 setuptools = 0.6c12dev-r88846
...@@ -230,7 +229,7 @@ z3c.recipe.mkdir = 0.5 ...@@ -230,7 +229,7 @@ z3c.recipe.mkdir = 0.5
Flask = 0.9 Flask = 0.9
# Required by: # Required by:
# slapos.cookbook==0.78.1.dev # slapos.cookbook==0.78.1
lock-file = 2.0 lock-file = 2.0
# Required by: # Required by:
......
<html>
<head>
<title>New Document - Created By AjaXplorer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h2>Hi, this website folder is still empty. Please go to your File Manager administration and replace this folder by your new website files.</h2>
</body>
</html>
[buildout] [buildout]
# Local development - to be remove
develop =
${:parts-directory}/slapos.cookbook-repository
parts= parts=
slapos-cookbook slapos-cookbook
boinc boinc
template template
template-boinc template-boinc
slapos.cookbook-repository
check-recipe
extends = extends =
../../component/boinc-client/buildout.cfg ../../component/boinc-client/buildout.cfg
../../component/git/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
[template] [template]
...@@ -32,21 +26,173 @@ md5sum = 4a50c02252792d11b99d88206bc49e12 ...@@ -32,21 +26,173 @@ md5sum = 4a50c02252792d11b99d88206bc49e12
output = ${buildout:directory}/template-boinc.cfg output = ${buildout:directory}/template-boinc.cfg
mode = 0644 mode = 0644
# Local development [networkcache]
[slapos.cookbook-repository] # signature certificates of the following uploaders.
recipe = plone.recipe.command # Romain Courteaud
stop-on-error = true # Sebastien Robin
branch = grid-computing # Kazuhiko Shiozaki
revision = # Cedric de Saint Martin
location = ${buildout:parts-directory}/${:_buildout_section_name_} # Yingjie Xu
command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi # Gabriel Monnerat
update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi # Łukasz Nowak
# Test Agent (Automatic update from tests)
[check-recipe] signature-certificate-list =
recipe = plone.recipe.command -----BEGIN CERTIFICATE-----
stop-on-error = true MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
update-command = ${:command} CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl
ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw
boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX
Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA
ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX
mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC
q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
QUUGLQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw
DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+
YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN
XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR
L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU
/4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t
LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda
FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd
R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU
hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV
BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL
BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH
vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk
3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso
67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE
RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v
PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj
z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL
KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY
vaZhjNYKWQf79l6zXfOvphzJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT
MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3
i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9
mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O
BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg
62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK
YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W
it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+
TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx
EjAQBgNVBAMMCXZpZmlibm9kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
ozBijpO8PS5RTeKTzA90vi9ezvv4vVjNaguqT4UwP9+O1+i6yq1Y2W5zZxw/Klbn
oudyNzie3/wqs9VfPmcyU9ajFzBv/Tobm3obmOqBN0GSYs5fyGw+O9G3//6ZEhf0
NinwdKmrRX+d0P5bHewadZWIvlmOupcnVJmkks852BECAwEAAaNQME4wHQYDVR0O
BBYEFF9EtgfZZs8L2ZxBJxSiY6eTsTEwMB8GA1UdIwQYMBaAFF9EtgfZZs8L2ZxB
JxSiY6eTsTEwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc43YTfc6
baSemaMAc/jz8LNLhRE5dLfLOcRSoHda8y0lOrfe4lHT6yP5l8uyWAzLW+g6s3DA
Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n
yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAMNZBmoIOXPBMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtMTMyMCAXDTEyMDUwMjEyMDQyNloYDzIxMTIwNDA4MTIwNDI2WjAT
MREwDwYDVQQDDAhDT01QLTEzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
6peZQt1sAmMAmSG9BVxxcXm8x15kE9iAplmANYNQ7z2YO57c10jDtlYlwVfi/rct
xNUOKQtc8UQtV/fJWP0QT0GITdRz5X/TkWiojiFgkopza9/b1hXs5rltYByUGLhg
7JZ9dZGBihzPfn6U8ESAKiJzQP8Hyz/o81FPfuHCftsCAwEAAaNQME4wHQYDVR0O
BBYEFNuxsc77Z6/JSKPoyloHNm9zF9yqMB8GA1UdIwQYMBaAFNuxsc77Z6/JSKPo
yloHNm9zF9yqMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAl4hBaJy1
cgiNV2+Z5oNTrHgmzWvSY4duECOTBxeuIOnhql3vLlaQmo0p8Z4c13kTZq2s3nhd
Loe5mIHsjRVKvzB6SvIaFUYq/EzmHnqNdpIGkT/Mj7r/iUs61btTcGUCLsUiUeci
Vd0Ozh79JSRpkrdI8R/NRQ2XPHAo+29TT70=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAKRvzcy7OH0UMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtNzcyMCAXDTEyMDgxMDE1NDI1MVoYDzIxMTIwNzE3MTU0MjUxWjAT
MREwDwYDVQQDDAhDT01QLTc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
o7aipd6MbnuGDeR1UJUjuMLQUariAyQ2l2ZDS6TfOwjHiPw/mhzkielgk73kqN7A
sUREx41eTcYCXzTq3WP3xCLE4LxLg1eIhd4nwNHj8H18xR9aP0AGjo4UFl5BOMa1
mwoyBt3VtfGtUmb8whpeJgHhqrPPxLoON+i6fIbXDaUCAwEAAaNQME4wHQYDVR0O
BBYEFEfjy3OopT2lOksKmKBNHTJE2hFlMB8GA1UdIwQYMBaAFEfjy3OopT2lOksK
mKBNHTJE2hFlMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaNRx6YN2
M/p3R8/xS6zvH1EqJ3FFD7XeAQ52WuQnKSREzuw0dsw12ClxjcHiQEFioyTiTtjs
5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e
x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
-----END CERTIFICATE-----
[versions] [versions]
lxml = 2.3.6 Jinja2 = 2.7
\ No newline at end of file MarkupSafe = 0.18
Werkzeug = 0.8.3
buildout-versions = 1.7
inotifyx = 0.2.0-1
lxml = 3.2.1
meld3 = 0.6.10
netaddr = 0.7.10
plone.recipe.command = 1.1
pytz = 2013b
slapos.core = 0.35.1
slapos.recipe.cmmi = 0.1.1
slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.4.2
xml-marshaller = 0.9.7
slapos.cookbook=0.78.1
# Required by:
# slapos.core==0.35.1
Flask = 0.9
# Required by:
# slapos.cookbook==0.78.1
lock-file = 2.0
# Required by:
# slapos.core==0.35.1
netifaces = 0.8-1
# Required by:
# slapos.core==0.35.1
pyflakes = 0.7.2
# Required by:
# hexagonit.recipe.download==1.6nxd002
# slapos.cookbook==0.78.1
# slapos.core==0.35.1
# supervisor==3.0b1
# zc.buildout==1.6.0-dev-SlapOS-010
# zope.interface==4.0.5
setuptools = 0.6c12dev-r88846
# Required by:
# slapos.core==0.35.1
supervisor = 3.0b1
# Required by:
# slapos.core==0.35.1
unittest2 = 0.5.1
# Required by:
# slapos.core==0.35.1
zope.interface = 4.0.5
BOINC Server
============
Introduction
------------
The Berkeley Open Infrastructure for Network Computing (BOINC) is an open
source middleware system for volunteer and grid computing.
http://boinc.berkeley.edu/trac/wiki/ProjectMain
This Software Release is used to deploy an instance of BOINC server on SlapOS
How it work?
------------
The following example show how to request an instance of BOINC server.
BOINC Server Parameters :
- project: The name of your project. Default is project=boinc_test
- full-name: Full name of your project. Default is full-name=Boinc Project SAMPLE
- domain: Use this parameter if you want to define by hand the url of your project.
Ex: domain = http://myboinc.host-dommain.com
- copyright-holder: The name of your compagny. It will be displayed at the footer of
your BOINC project website.
Job Submission Parameters:
- default-template-result (Default is ${boinc-default:template-result}): Set the
default Output Template to use when creating a BOINC work unit.
- default-template-wu (Default is ${boinc-default:template-wu}): Set the
default Input Template to use when creating a BOINC work unit.
- default-extension (Default is ${boinc-default:extension}): For example in windows if
job executable is an .exe, set default-extension=exe
- default-platform (Default is ${boinc-default:platform}): Set the default platform
for job submission. http://boinc.berkeley.edu/trac/wiki/BoincPlatforms
- boinc-app-list: Use this json parameter to submit your job list to BOINC Server.
For exemple:
boinc-app-list = {"APP_NAME":
{"APP_VERSION":
{"use_default":true, "binary":"PATH/URL_OF_BINARY",
"wu-number":NUM, "input-file":"PATH/URL_OF_INPUT_FILE"},
"APP_VERSION2":
{"use_default":false, "binary":"PATH/URL_OF_BINARY",
"wu-number":NUM, "input-file":"PATH/URL_OF_INPUT_FILE",
"extension":"", "platform":"x86_64-pc-linux-gnu",
"template-result":"PATH/URL_OF_OUTPUT_TEMPLATE",
"template-wu":"PATH/URL_OF_INPUT_TEMPLATE"}
}, ...}
APP_NAME example: upper_case (without space)
APP_VERSION examples: 1.00, 2.10, 1.10
Request your instance:
This is a minimal parameter to use:
<?xml version="1.0" encoding="utf-8"?>
<instance>
<parameter id="project">Sample</parameter>
<parameter id="full-name">My BOINC project Sample</parameter>
<parameter id="copyright-holder">my.compagny.com</parameter>
<parameter id="boinc-app-list">JSON-JOB-LIST</parameter>
</instance>
Note: - You can update boinc-app-list anytime, this would allow you to update the
nomber of work unit, or to modify files. For any job modification, APP_NAME and
APP_VERSION is required.
- To create another BOINC project, please request another instance on SlapOS.
Warning: Once your project has been started (and BOINC client is connected on current
server), don't change the project name, otherwise this would cause the lost of current project.
Connect to your instance
------------------------
When your instance is ready, SlapOS must provide 3 URL:
boinc_home_page URL_BASE/PROJECT/ (public web page, BOINC Client will use this URL
to connect to your server)
boinc_admin_page URL_BASE/PROJECT_ops/ (administrative web page)
boinc_result_url URL_BASE/PROJECT_result/ (result web page, this page will allow
you to show job result)
[buildout] [buildout]
# Local development
develop =
${:parts-directory}/slapos.cookbook-repository
parts = parts =
template template
application application
...@@ -12,11 +8,8 @@ parts = ...@@ -12,11 +8,8 @@ parts =
template_input template_input
slapos-cookbook slapos-cookbook
instance-egg instance-egg
slapos.cookbook-repository
check-recipe
extends = extends =
../../component/git/buildout.cfg
../../stack/boinc/buildout.cfg ../../stack/boinc/buildout.cfg
#Generate All instances templates #Generate All instances templates
...@@ -72,19 +65,3 @@ template-result = ${template_result:location}/${template_result:filename} ...@@ -72,19 +65,3 @@ template-result = ${template_result:location}/${template_result:filename}
template-wu = ${template_wu:location}/${template_wu:filename} template-wu = ${template_wu:location}/${template_wu:filename}
platform = x86_64-pc-linux-gnu platform = x86_64-pc-linux-gnu
extension = extension =
# Local development
[slapos.cookbook-repository]
recipe = plone.recipe.command
stop-on-error = true
branch = grid-computing
revision =
location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[buildout] [buildout]
# Local development - to be remove
develop =
${:parts-directory}/slapos.cookbook-repository
parts = parts =
condor condor
slapos-cookbook slapos-cookbook
...@@ -11,12 +7,9 @@ parts = ...@@ -11,12 +7,9 @@ parts =
template-condor template-condor
description-file description-file
executable executable
slapos.cookbook-repository
check-recipe
extends = extends =
../../component/condor/buildout.cfg ../../component/condor/buildout.cfg
../../component/git/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
[template] [template]
...@@ -52,24 +45,9 @@ md5sum = c512f495cdd112bceb04feab7c909a10 ...@@ -52,24 +45,9 @@ md5sum = c512f495cdd112bceb04feab7c909a10
[condor-application] [condor-application]
list = {"condor_test":{"description-file":"${description-file:location}/${description-file:filename}", "executable":"${executable:location}/${executable:filename}", "executable-name":"${executable:filename}", "files":{}}} list = {"condor_test":{"description-file":"${description-file:location}/${description-file:filename}", "executable":"${executable:location}/${executable:filename}", "executable-name":"${executable:filename}", "files":{}}}
# Local development
[slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git
branch = grid-computing
git-executable = ${git:location}/bin/git
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[networkcache] [networkcache]
# Romain Courteaud + Sebastien Robin + Alain Takoudjou # signature certificates of the following uploaders.
# + Cedric de Saint Martin signature certificate
# List of signatures of uploaders we trust:
# Romain Courteaud # Romain Courteaud
# Sebastien Robin # Sebastien Robin
# Kazuhiko Shiozaki # Kazuhiko Shiozaki
...@@ -77,7 +55,7 @@ command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link ...@@ -77,7 +55,7 @@ command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
# Yingjie Xu # Yingjie Xu
# Gabriel Monnerat # Gabriel Monnerat
# Łukasz Nowak # Łukasz Nowak
# Test Agent Signature # Test Agent (Automatic update from tests)
# Alain Takoudjou # Alain Takoudjou
signature-certificate-list = signature-certificate-list =
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
...@@ -185,17 +163,17 @@ signature-certificate-list = ...@@ -185,17 +163,17 @@ signature-certificate-list =
x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI= x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIB9DCCAV2gAwIBAgIJAL392bEdqpFQMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV MIIB8jCCAVugAwIBAgIJANlTfgX/9cX7MA0GCSqGSIb3DQEBBQUAMBExDzANBgNV
BAMMCENPTVAtMjM0MB4XDTExMTEwOTE1MzA0M1oXDTEyMTEwODE1MzA0M1owEzER BAMMBkNPTVAtMDAgFw0xMzA1MzAxMTUyMDhaGA8yMTEzMDUwNjExNTIwOFowETEP
MA8GA1UEAwwIQ09NUC0yMzQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMRR MA0GA1UEAwwGQ09NUC0wMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSGtkh
T0cacZKztie/DaRRjq3mgcqfPKoGXu6zXmeRQI+6Y4bnzjf8h/jAuPzR552P0xK5 UPOcYMRiL2czmdfeHNB34nXEr5fMpglbA9RO9Cakf6YhK0jU5Y7kzAb6ZlyEzcC+
psxhavXA8hOGRLFDtvDMQLepVHWfwqtFtcp5vNf2+KWqOYy0OxHfVIlnatvCqTZN YkYWQZ9WCLwGuUvThg5iYlnBxmksv5Ot+5DKyTL4hdMEPCQ0RaLcXSkbxk56q3Rn
NG1vRsSOAQ+v7QNFHh6NBbiSrjBBfg4vkfzqnsUvAgMBAAGjUDBOMB0GA1UdDgQW EQdYL+IJXS1KGMRWbl4Ql3NhShM9q7vBgyoMuwIDAQABo1AwTjAdBgNVHQ4EFgQU
BBTGGw+ASoDi9kqPElDkC0Q5RtAfRjAfBgNVHSMEGDAWgBTGGw+ASoDi9kqPElDk EpO2oyW/sFAS9eojDbYo3hEOOIIwHwYDVR0jBBgwFoAUEpO2oyW/sFAS9eojDbYo
C0Q5RtAfRjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIOuR1OqXLke 3hEOOIIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBP02wmekqmeD23
LLzH0kRnlIOe60dYJvRya53wDx5x2g4/qkXZPLx2RcbaUrX/SCbL70vfr+apUPss 90NmwDwyEznDPEJDJybREtP+T++EJ1Q/rcnxIQ5a1iOEWY4RdH87H/+2O/7nDzGs
dOSJ86sf/PQHW3/1fhTTE+Vck1MiiAq0aIx6WnKnz4+ZcQctB7b0DCsTcQnmbpi2 L0KzeG3WDdmnxLMQ5zpG9Qd5twC0GoMl1zf+8f9/t4QE7Dn4IosP3H3dkcRDQRch
n9MuhWaT21VOYhIGzJFPw5XW47/RrwhR SKYaJZHMckKx40/hhRsyFDR1Gj215g==
-----END CERTIFICATE----- -----END CERTIFICATE-----
[versions] [versions]
...@@ -216,13 +194,14 @@ slapos.recipe.cmmi = 0.1.1 ...@@ -216,13 +194,14 @@ slapos.recipe.cmmi = 0.1.1
slapos.recipe.download = 1.0.dev-r4053 slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.4.2 slapos.recipe.template = 2.4.2
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
slapos.cookbook=0.78.1
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
Flask = 0.9 Flask = 0.9
# Required by: # Required by:
# slapos.cookbook==0.78.1.dev # slapos.cookbook==0.78.1
lock-file = 2.0 lock-file = 2.0
# Required by: # Required by:
...@@ -235,12 +214,12 @@ pyflakes = 0.7.2 ...@@ -235,12 +214,12 @@ pyflakes = 0.7.2
# Required by: # Required by:
# hexagonit.recipe.download==1.6nxd002 # hexagonit.recipe.download==1.6nxd002
# slapos.cookbook==0.78.1.dev # slapos.cookbook==0.78.1
# slapos.core==0.35.1 # slapos.core==0.35.1
# supervisor==3.0b1 # supervisor==3.0b1
# zc.buildout==1.6.0-dev-SlapOS-010 # zc.buildout==1.6.0-dev-SlapOS-010
# zope.interface==4.0.5 # zope.interface==4.0.5
setuptools = 0.6c12dev-r88997 setuptools = 0.6c12dev-r88846
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
......
Watermarking Software Release
=============================
This Software Release is used by Hexaglobe to deploy their video "watermarking"
system.
This is basically just an nginx daemon compiled with a few custom modules and with
a custom configuration, and an "administration" nginx daemon.
This Software Release also supports some early version of the "edge" support
(i.e you request an instance of hexaglobe-watermarking, with "edge" software-type,
and this instance will itself request many instances of watermakring over the world, in a
"computing CDN" style).
[buildout] [buildout]
# Local development
develop =
${:parts-directory}/slapos.cookbook-repository
parts = parts =
slapos-cookbook slapos-cookbook
redis redis
template template
template-redis template-redis
slapos.cookbook-repository
check-recipe
extends = extends =
../../component/redis/buildout.cfg ../../component/redis/buildout.cfg
...@@ -31,34 +25,16 @@ output = ${buildout:directory}/template-redis.cfg ...@@ -31,34 +25,16 @@ output = ${buildout:directory}/template-redis.cfg
mode = 0644 mode = 0644
md5sum = f7b01ca7698c1b771f0653d64dc945a7 md5sum = f7b01ca7698c1b771f0653d64dc945a7
# Local development
[slapos.cookbook-repository]
recipe = plone.recipe.command
stop-on-error = true
branch = grid-computing
revision =
location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[networkcache] [networkcache]
# Romain Courteaud + Sebastien Robin + Alain Takoudjou # signature certificates of the following uploaders.
# + Cedric de Saint Martin signature certificate
# List of signatures of uploaders we trust:
# Romain Courteaud # Romain Courteaud
# Sebastien Robin # Sebastien Robin
# Kazuhiko Shiozaki # Kazuhiko Shiozaki
# Cedric de Saint Martin # Cedric de Saint Martin
# Yingjie Xu # Yingjie Xu
# Gabriel Monnerat # Gabriel Monnerat
# Łukasz Nowak # Łukasz Nowak
# Test Agent Signature # Test Agent (Automatic update from tests)
# Alain Takoudjou # Alain Takoudjou
signature-certificate-list = signature-certificate-list =
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
...@@ -166,31 +142,34 @@ signature-certificate-list = ...@@ -166,31 +142,34 @@ signature-certificate-list =
x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI= x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIB9DCCAV2gAwIBAgIJAL392bEdqpFQMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV MIIB8jCCAVugAwIBAgIJANlTfgX/9cX7MA0GCSqGSIb3DQEBBQUAMBExDzANBgNV
BAMMCENPTVAtMjM0MB4XDTExMTEwOTE1MzA0M1oXDTEyMTEwODE1MzA0M1owEzER BAMMBkNPTVAtMDAgFw0xMzA1MzAxMTUyMDhaGA8yMTEzMDUwNjExNTIwOFowETEP
MA8GA1UEAwwIQ09NUC0yMzQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMRR MA0GA1UEAwwGQ09NUC0wMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSGtkh
T0cacZKztie/DaRRjq3mgcqfPKoGXu6zXmeRQI+6Y4bnzjf8h/jAuPzR552P0xK5 UPOcYMRiL2czmdfeHNB34nXEr5fMpglbA9RO9Cakf6YhK0jU5Y7kzAb6ZlyEzcC+
psxhavXA8hOGRLFDtvDMQLepVHWfwqtFtcp5vNf2+KWqOYy0OxHfVIlnatvCqTZN YkYWQZ9WCLwGuUvThg5iYlnBxmksv5Ot+5DKyTL4hdMEPCQ0RaLcXSkbxk56q3Rn
NG1vRsSOAQ+v7QNFHh6NBbiSrjBBfg4vkfzqnsUvAgMBAAGjUDBOMB0GA1UdDgQW EQdYL+IJXS1KGMRWbl4Ql3NhShM9q7vBgyoMuwIDAQABo1AwTjAdBgNVHQ4EFgQU
BBTGGw+ASoDi9kqPElDkC0Q5RtAfRjAfBgNVHSMEGDAWgBTGGw+ASoDi9kqPElDk EpO2oyW/sFAS9eojDbYo3hEOOIIwHwYDVR0jBBgwFoAUEpO2oyW/sFAS9eojDbYo
C0Q5RtAfRjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIOuR1OqXLke 3hEOOIIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBP02wmekqmeD23
LLzH0kRnlIOe60dYJvRya53wDx5x2g4/qkXZPLx2RcbaUrX/SCbL70vfr+apUPss 90NmwDwyEznDPEJDJybREtP+T++EJ1Q/rcnxIQ5a1iOEWY4RdH87H/+2O/7nDzGs
dOSJ86sf/PQHW3/1fhTTE+Vck1MiiAq0aIx6WnKnz4+ZcQctB7b0DCsTcQnmbpi2 L0KzeG3WDdmnxLMQ5zpG9Qd5twC0GoMl1zf+8f9/t4QE7Dn4IosP3H3dkcRDQRch
n9MuhWaT21VOYhIGzJFPw5XW47/RrwhR SKYaJZHMckKx40/hhRsyFDR1Gj215g==
-----END CERTIFICATE----- -----END CERTIFICATE-----
[versions] [versions]
Jinja2 = 2.6 slapos.cookbook=0.78.1
Jinja2 = 2.7
MarkupSafe = 0.18
Werkzeug = 0.8.3 Werkzeug = 0.8.3
buildout-versions = 1.7 buildout-versions = 1.7
hexagonit.recipe.cmmi = 1.6 hexagonit.recipe.cmmi = 2.0
inotifyx = 0.2.0 inotifyx = 0.2.0-1
lxml = 3.1.0 lxml = 3.2.1
meld3 = 0.6.10 meld3 = 0.6.10
netaddr = 0.7.10 netaddr = 0.7.10
plone.recipe.command = 1.1 plone.recipe.command = 1.1
pytz = 2013b pytz = 2013b
slapos.core = 0.35.1 slapos.core = 0.35.1
slapos.recipe.cmmi = 0.1.1
slapos.recipe.template = 2.4.2 slapos.recipe.template = 2.4.2
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
...@@ -199,32 +178,29 @@ xml-marshaller = 0.9.7 ...@@ -199,32 +178,29 @@ xml-marshaller = 0.9.7
Flask = 0.9 Flask = 0.9
# Required by: # Required by:
# hexagonit.recipe.cmmi==1.6 # slapos.cookbook==0.78.1
hexagonit.recipe.download = 1.6
# Required by:
# slapos.cookbook==0.72.0
lock-file = 2.0 lock-file = 2.0
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
netifaces = 0.8 netifaces = 0.8-1
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
pyflakes = 0.6.1 pyflakes = 0.7.2
# Required by: # Required by:
# slapos.cookbook==0.72.0 # hexagonit.recipe.download==1.6nxd002
# slapos.cookbook==0.78.1
# slapos.core==0.35.1 # slapos.core==0.35.1
# supervisor==3.0b1 # supervisor==3.0b2
# zc.buildout==1.6.0-dev-SlapOS-010 # zc.buildout==1.6.0-dev-SlapOS-010
# zope.interface==4.0.5 # zope.interface==4.0.5
setuptools = 0.6c12dev-r88846 setuptools = 0.6c12dev-r88846
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
supervisor = 3.0b1 supervisor = 3.0b2
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
......
[buildout] [buildout]
develop = #develop =
${:parts-directory}/slapos.cookbook-repository # ${:parts-directory}/slapos.cookbook-repository
# ${trac-plugins-egg:location}/accountmanager # ${trac-plugins-egg:location}/accountmanager
parts = parts =
...@@ -24,8 +24,8 @@ parts = ...@@ -24,8 +24,8 @@ parts =
template-git-http-backend-cgi template-git-http-backend-cgi
# trac-plugins-egg # trac-plugins-egg
# check-egg # check-egg
slapos.cookbook-repository # slapos.cookbook-repository
check-recipe # check-recipe
extends = extends =
../../stack/slapos.cfg ../../stack/slapos.cfg
...@@ -179,8 +179,9 @@ command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link ...@@ -179,8 +179,9 @@ command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
# Cedric de Saint Martin # Cedric de Saint Martin
# Yingjie Xu # Yingjie Xu
# Gabriel Monnerat # Gabriel Monnerat
# Łukasz Nowak # Łukasz Nowak
# Test Agent (Automatic update from tests) # Test Agent (Automatic update from tests)
# Alain Takoudjou
signature-certificate-list = signature-certificate-list =
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
...@@ -286,11 +287,24 @@ signature-certificate-list = ...@@ -286,11 +287,24 @@ signature-certificate-list =
5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e 5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e
x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI= x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB8jCCAVugAwIBAgIJANlTfgX/9cX7MA0GCSqGSIb3DQEBBQUAMBExDzANBgNV
BAMMBkNPTVAtMDAgFw0xMzA1MzAxMTUyMDhaGA8yMTEzMDUwNjExNTIwOFowETEP
MA0GA1UEAwwGQ09NUC0wMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSGtkh
UPOcYMRiL2czmdfeHNB34nXEr5fMpglbA9RO9Cakf6YhK0jU5Y7kzAb6ZlyEzcC+
YkYWQZ9WCLwGuUvThg5iYlnBxmksv5Ot+5DKyTL4hdMEPCQ0RaLcXSkbxk56q3Rn
EQdYL+IJXS1KGMRWbl4Ql3NhShM9q7vBgyoMuwIDAQABo1AwTjAdBgNVHQ4EFgQU
EpO2oyW/sFAS9eojDbYo3hEOOIIwHwYDVR0jBBgwFoAUEpO2oyW/sFAS9eojDbYo
3hEOOIIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBP02wmekqmeD23
90NmwDwyEznDPEJDJybREtP+T++EJ1Q/rcnxIQ5a1iOEWY4RdH87H/+2O/7nDzGs
L0KzeG3WDdmnxLMQ5zpG9Qd5twC0GoMl1zf+8f9/t4QE7Dn4IosP3H3dkcRDQRch
SKYaJZHMckKx40/hhRsyFDR1Gj215g==
-----END CERTIFICATE-----
[versions] [versions]
#Error: Couldn't install: lxml 3.1.2 #Error: Couldn't install: lxml 3.1.2
lxml = 3.1.1 lxml = 3.1.1
lock-file = 2.0
Genshi = 0.7 Genshi = 0.7
Jinja2 = 2.6 Jinja2 = 2.6
MySQL-python = 1.2.4 MySQL-python = 1.2.4
...@@ -304,6 +318,7 @@ collective.recipe.cmd = 0.6 ...@@ -304,6 +318,7 @@ collective.recipe.cmd = 0.6
docutils = 0.10 docutils = 0.10
gitdb = 0.5.4 gitdb = 0.5.4
hexagonit.recipe.cmmi = 2.0 hexagonit.recipe.cmmi = 2.0
slapos.recipe.cmmi = 0.1.1
inotifyx = 0.2.0 inotifyx = 0.2.0
meld3 = 0.6.10 meld3 = 0.6.10
netaddr = 0.7.10 netaddr = 0.7.10
...@@ -315,6 +330,7 @@ slapos.recipe.template = 2.4.2 ...@@ -315,6 +330,7 @@ slapos.recipe.template = 2.4.2
slapos.toolbox = 0.34.0 slapos.toolbox = 0.34.0
smmap = 0.8.2 smmap = 0.8.2
z3c.recipe.scripts = 1.0.1 z3c.recipe.scripts = 1.0.1
slapos.cookbook = 0.78.1
# Required by: # Required by:
# slapos.core==0.35.1 # slapos.core==0.35.1
...@@ -351,7 +367,7 @@ pyflakes = 0.7.1 ...@@ -351,7 +367,7 @@ pyflakes = 0.7.1
# Required by: # Required by:
# hexagonit.recipe.download==1.6nxd002 # hexagonit.recipe.download==1.6nxd002
# slapos.cookbook==0.76.1.dev # slapos.cookbook==0.78.1
# slapos.core==0.35.1 # slapos.core==0.35.1
# supervisor==3.0b1 # supervisor==3.0b1
# zc.buildout==1.6.0-dev-SlapOS-010 # zc.buildout==1.6.0-dev-SlapOS-010
......
...@@ -34,15 +34,15 @@ eggs = ...@@ -34,15 +34,15 @@ eggs =
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-boinc.cfg url = ${:_profile_base_location_}/instance-boinc.cfg
output = ${buildout:directory}/template-boinc.cfg output = ${buildout:directory}/template-boinc.cfg
md5sum = ead728e74a7fe58ef9b39397f2354f77 md5sum = 6642942dde15ab5195d8d8533690ef29
mode = 0644 mode = 0644
#Template for deploying MySQL Database Server #Template for deploying MySQL Database Server
[template-mariadb] [template-mariadb]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-mariadb.cfg url = ${:_profile_base_location_}/../lamp/mariadb/instance-mariadb.cfg.in
output = ${buildout:directory}/template-mariadb.cfg output = ${buildout:directory}/template-mariadb.cfg
md5sum = 8142244a3087a23e002a08225579528a #md5sum = 8142244a3087a23e002a08225579528a
mode = 0644 mode = 0644
[template-httpd-conf] [template-httpd-conf]
...@@ -50,7 +50,7 @@ recipe = slapos.recipe.download ...@@ -50,7 +50,7 @@ recipe = slapos.recipe.download
url = ${:_profile_base_location_}/template/${:filename} url = ${:_profile_base_location_}/template/${:filename}
mode = 0644 mode = 0644
filename = apache.in filename = apache.in
md5sum = 030892494ce87357e6e09dcd89187bf4 md5sum = 5d5f49331debc4e3d2a02d8525064f8e
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
[boinc-default] [boinc-default]
...@@ -179,103 +179,83 @@ signature-certificate-list = ...@@ -179,103 +179,83 @@ signature-certificate-list =
-----END CERTIFICATE----- -----END CERTIFICATE-----
[versions] [versions]
MySQL-python = 1.2.3 pycrypto = 2.6
Jinja2 = 2.6 lxml = 3.2.1
setuptools = 0.6c12dev-r88846
Jinja2 = 2.7
MarkupSafe = 0.18
MySQL-python = 1.2.4
Werkzeug = 0.8.3 Werkzeug = 0.8.3
apache-libcloud = 0.11.3 apache-libcloud = 0.12.4
async = 0.6.1 async = 0.6.1
buildout-versions = 1.7 buildout-versions = 1.7
gitdb = 0.5.4 gitdb = 0.5.4
hexagonit.recipe.cmmi = 1.6 inotifyx = 0.2.0-1
meld3 = 0.6.9 meld3 = 0.6.10
netaddr = 0.7.10
plone.recipe.command = 1.1 plone.recipe.command = 1.1
pycrypto = 2.6 pytz = 2013b
slapos.recipe.cmmi = 0.1.1
slapos.recipe.download = 1.0.dev-r4053 slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.4.2 slapos.recipe.template = 2.4.2
slapos.toolbox = 0.31.1 slapos.toolbox = 0.34.0
smmap = 0.8.2 smmap = 0.8.2
slapos.cookbook=0.78.1
# Required by: # Required by:
# slapos.core==0.31.2 # slapos.core==0.35.1
# slapos.toolbox==0.31.1 # slapos.toolbox==0.34.0
Flask = 0.9 Flask = 0.9
# Required by: # Required by:
# slapos.toolbox==0.31.1 # slapos.toolbox==0.34.0
GitPython = 0.3.2.RC1 GitPython = 0.3.2.RC1
# Required by: # Required by:
# slapos.cookbook==0.68.2-dev # slapos.toolbox==0.34.0
PyXML = 0.8.4
# Required by:
# slapos.toolbox==0.31.1
atomize = 0.1.1 atomize = 0.1.1
# Required by: # Required by:
# slapos.toolbox==0.31.1 # slapos.toolbox==0.34.0
feedparser = 5.1.2 feedparser = 5.1.3
# Required by: # Required by:
# hexagonit.recipe.cmmi==1.6 # slapos.cookbook==0.78.1
hexagonit.recipe.download = 1.5.1 lock-file = 2.0
# Required by: # Required by:
# slapos.cookbook==0.68.2-dev # slapos.core==0.35.1
inotifyx = 0.2.0 netifaces = 0.8-1
# Required by: # Required by:
# slapos.core==0.31.2 # slapos.toolbox==0.34.0
# slapos.toolbox==0.31.1 paramiko = 1.10.1
# xml-marshaller==0.9.7
lxml = 2.3.6
# Required by:
# slapos.cookbook==0.68.2-dev
netaddr = 0.7.10
# Required by: # Required by:
# slapos.core==0.31.2 # slapos.toolbox==0.34.0
netifaces = 0.8 psutil = 0.7.1
# Required by: # Required by:
# slapos.toolbox==0.31.1 # slapos.core==0.35.1
paramiko = 1.8.0 pyflakes = 0.7.2
# Required by: # Required by:
# slapos.toolbox==0.31.1 # slapos.toolbox==0.34.0
psutil = 0.6.1 slapos.core = 0.35.1
# Required by: # Required by:
# slapos.cookbook==0.68.2-dev # slapos.core==0.35.1
pytz = 2012f
# Required by:
# slapos.cookbook==0.68.2-dev
# slapos.core==0.31.2
# slapos.toolbox==0.31.1
# zc.buildout==1.6.0-dev-SlapOS-010
# zc.recipe.egg==1.3.2
setuptools = 0.6c12dev-r88846
# Required by:
# slapos.cookbook==0.68.2-dev
# slapos.toolbox==0.31.1
slapos.core = 0.31.2
# Required by:
# slapos.core==0.31.2
supervisor = 3.0b1 supervisor = 3.0b1
# Required by: # Required by:
# slapos.cookbook==0.68.2-dev # slapos.core==0.35.1
# slapos.toolbox==0.31.1 unittest2 = 0.5.1
xml-marshaller = 0.9.7
# Required by: # Required by:
# slapos.cookbook==0.68.2-dev # slapos.toolbox==0.34.0
zc.recipe.egg = 1.3.2 xml-marshaller = 0.9.7
# Required by: # Required by:
# slapos.core==0.31.2 # slapos.core==0.35.1
zope.interface = 4.0.1 zope.interface = 4.0.5
\ No newline at end of file
...@@ -136,6 +136,7 @@ php_ini_dir = $${directory:php-ini-dir} ...@@ -136,6 +136,7 @@ php_ini_dir = $${directory:php-ini-dir}
niceprojectname = $${slap-parameter:project}@HOME niceprojectname = $${slap-parameter:project}@HOME
project = $${slap-parameter:project} project = $${slap-parameter:project}
installroot = $${rootdirectory:project}/$${slap-parameter:project} installroot = $${rootdirectory:project}/$${slap-parameter:project}
result_dir = $${rootdirectory:project}/$${slap-parameter:project}/sample_results/
[environment] [environment]
PATH = $${rootdirectory:bin}:${subversion:location}/bin:${perl:location}/bin:%(PATH)s PATH = $${rootdirectory:bin}:${subversion:location}/bin:${perl:location}/bin:%(PATH)s
...@@ -321,6 +322,7 @@ path = $${basedirectory:scripts}/slapmonitor ...@@ -321,6 +322,7 @@ path = $${basedirectory:scripts}/slapmonitor
[publish-connection-informations] [publish-connection-informations]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
boinc_admin_page = $${boinc-server:admin_page} boinc_admin_page = $${boinc-server:admin_page}
boinc_result_url = $${boinc-server:result_page}
boinc_home_page = $${boinc-server:home_page} boinc_home_page = $${boinc-server:home_page}
boinc_user = $${boinc-server:user} boinc_user = $${boinc-server:user}
boinc_passwd = $${boinc-passwd:passwd} boinc_passwd = $${boinc-passwd:passwd}
...@@ -350,7 +352,6 @@ curl_path = ${curl:location}/bin/curl ...@@ -350,7 +352,6 @@ curl_path = ${curl:location}/bin/curl
[slap-parameter] [slap-parameter]
#Default config value for boinc #Default config value for boinc
dbname = boinctest
project = boinc_test project = boinc_test
full-name = Boinc Project SAMPLE full-name = Boinc Project SAMPLE
copyright-holder = REPLACE WITH COPYRIGHT HOLDER copyright-holder = REPLACE WITH COPYRIGHT HOLDER
......
[buildout]
parts =
urls
mariadb
stunnel
certificate-authority
ca-stunnel
logrotate
logrotate-entry-mariadb
logrotate-entry-stunnel
logrotate-entry-cron
cron
cron-entry-logrotate
slapmonitor
slapreport
gzip-binary = ${gzip:location}/bin/gzip
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc/
var = $${buildout:directory}/var/
srv = $${buildout:directory}/srv/
bin = $${buildout:directory}/bin/
[basedirectory]
recipe = slapos.cookbook:mkdirectory
log = $${rootdirectory:var}/log/
scripts = $${rootdirectory:etc}/run/
services = $${rootdirectory:etc}/service/
run = $${rootdirectory:var}/run/
backup = $${rootdirectory:srv}/backup/
promises = $${rootdirectory:etc}/promise/
[directory]
recipe = slapos.cookbook:mkdirectory
cron-entries = $${rootdirectory:etc}/cron.d/
crontabs = $${rootdirectory:etc}/crontabs/
cronstamps = $${rootdirectory:etc}/cronstamps/
ca-dir = $${rootdirectory:srv}/ssl/
mariadb-data = $${rootdirectory:srv}/mariadb/
logrotate-backup = $${basedirectory:backup}/logrotate/
stunnel-conf = $${rootdirectory:etc}/stunnel/
logrotate-entries = $${rootdirectory:etc}/logrotate.d/
[urls]
recipe = slapos.cookbook:publish
url = mysqls://$${mariadb:user}:$${mariadb:password}@[$${stunnel:remote-host}]:$${stunnel:remote-port}/$${mariadb:database}
[mariadb]
recipe = slapos.cookbook:mysql
# Options
recovering = false
user = user
port = 3306
ip = $${slap-network-information:local-ipv4}
database = boincdb
# Paths
wrapper = $${basedirectory:services}/mariadb
update-wrapper = $${basedirectory:scripts}/mariadb_update
logrotate-post = $${rootdirectory:bin}/mariadb_post_logrotate
data-directory = $${directory:mariadb-data}
pid-file = $${basedirectory:run}/mariadb.pid
socket = $${basedirectory:run}/mariadb.sock
error-log = $${basedirectory:log}/mariadb_error.log
conf-file = $${rootdirectory:etc}/mariadb.cnf
promise = $${basedirectory:promises}/mysql
# Binary information
mysql-base-directory = ${mariadb:location}
mysql-binary = ${mariadb:location}/bin/mysql
mysql-install-binary = ${mariadb:location}/scripts/mysql_install_db
mysql-upgrade-binary = ${mariadb:location}/bin/mysql_upgrade
mysqld-binary = ${mariadb:location}/bin/mysqld
[slapmonitor]
recipe = slapos.cookbook:slapmonitor
pid-file = $${basedirectory:run}/mariadb.pid
database-path = $${basedirectory:log}/slapmonitor.db
shell-path = ${dash:location}/bin/dash
slapmonitor-path = ${buildout:bin-directory}/slapmonitor
path = $${basedirectory:scripts}/slapmonitor
[slapreport]
recipe = slapos.cookbook:slapreport
pid-file = $${basedirectory:run}/mariadb.pid
consumption-log-path = $${basedirectory:log}/instance_consumption.log
database-path = $${basedirectory:log}/slapmonitor.db
logbox-ip = 87.98.152.12
logbox-port = 5122
logbox-user = admin
logbox-passwd = passer
shell-path = ${dash:location}/bin/dash
slapreport-path = ${buildout:bin-directory}/slapreport
path = $${basedirectory:scripts}/slapreport
[certificate-authority]
recipe = slapos.cookbook:certificate_authority
openssl-binary = ${openssl:location}/bin/openssl
ca-dir = $${directory:ca-dir}
requests-directory = $${cadirectory:requests}
wrapper = $${basedirectory:services}/ca
ca-private = $${cadirectory:private}
ca-certs = $${cadirectory:certs}
ca-newcerts = $${cadirectory:newcerts}
ca-crl = $${cadirectory:crl}
[cadirectory]
recipe = slapos.cookbook:mkdirectory
requests = $${directory:ca-dir}/requests/
private = $${directory:ca-dir}/private/
certs = $${directory:ca-dir}/certs/
newcerts = $${directory:ca-dir}/newcerts/
crl = $${directory:ca-dir}/crl/
[ca-stunnel]
<= certificate-authority
recipe = slapos.cookbook:certificate_authority.request
executable = $${stunnel:wrapper}
wrapper = $${basedirectory:services}/stunnel
key-file = $${stunnel:key-file}
cert-file = $${stunnel:cert-file}
[stunnel]
recipe = slapos.cookbook:stunnel
stunnel-binary = ${stunnel:location}/bin/stunnel
wrapper = $${rootdirectory:bin}/stunnel
log-file = $${basedirectory:log}/stunnel.log
config-file = $${directory:stunnel-conf}/stunnel.conf
key-file = $${directory:stunnel-conf}/stunnel.key
cert-file = $${directory:stunnel-conf}/stunnel.crt
pid-file = $${basedirectory:run}/stunnel.pid
local-host = $${mariadb:ip}
local-port = $${mariadb:port}
remote-host = $${slap-network-information:global-ipv6}
remote-port = 6446
client = false
post-rotate-script = $${rootdirectory:bin}/stunnel_post_rotate
[logrotate]
recipe = slapos.cookbook:logrotate
# Binaries
logrotate-binary = ${logrotate:location}/usr/sbin/logrotate
gzip-binary = $${buildout:gzip-binary}
gunzip-binary = ${gzip:location}/bin/gunzip
# Directories
wrapper = $${rootdirectory:bin}/logrotate
conf = $${rootdirectory:etc}/logrotate.conf
logrotate-entries = $${directory:logrotate-entries}
backup = $${directory:logrotate-backup}
state-file = $${rootdirectory:srv}/logrotate.status
[logrotate-entry-mariadb]
<= logrotate
recipe = slapos.cookbook:logrotate.d
name = mariadb
log = $${mariadb:error-log}
frequency = daily
rotate-num = 30
post = $${mariadb:logrotate-post}
sharedscripts = true
notifempty = true
create = true
[logrotate-entry-stunnel]
<= logrotate
recipe = slapos.cookbook:logrotate.d
name = stunnel
log = $${stunnel:log-file}
frequency = daily
rotate-num = 30
notifempty = true
create = true
post = $${stunnel:post-rotate-script}
[logrotate-entry-cron]
<= logrotate
recipe =slapos.cookbook:logrotate.d
name = crond
log = $${cron-simplelogger:log}
frequency = daily
rotate-num = 30
notifempty = true
create = true
[cron]
recipe = slapos.cookbook:cron
dcrond-binary = ${dcron:location}/sbin/crond
cron-entries = $${directory:cron-entries}
crontabs = $${directory:crontabs}
cronstamps = $${directory:cronstamps}
catcher = $${cron-simplelogger:wrapper}
binary = $${basedirectory:services}/crond
[cron-simplelogger]
recipe = slapos.cookbook:simplelogger
wrapper = $${rootdirectory:bin}/cron_simplelogger
log = $${basedirectory:log}/crond.log
[cron-entry-logrotate]
<= cron
recipe = slapos.cookbook:cron.d
name = logrotate
frequency = 0 0 * * *
command = $${logrotate:wrapper}
[slap-parameter]
#Default value if no ssh parameters specified
logbox-ip =
logbox-port =
logbox-user =
logbox-passwd =
...@@ -59,11 +59,13 @@ LoadModule authz_user_module modules/mod_authz_user.so ...@@ -59,11 +59,13 @@ LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_core_module modules/mod_authn_core.so
LoadModule cgid_module modules/mod_cgid.so LoadModule cgid_module modules/mod_cgid.so
LoadModule autoindex_module modules/mod_autoindex.so
## Settings for BOINC project ${:niceprojectname} ## Settings for BOINC project ${:niceprojectname}
Alias /${:project} ${:installroot}/html/user Alias /${:project} ${:installroot}/html/user
Alias /${:project}_ops ${:installroot}/html/ops Alias /${:project}_ops ${:installroot}/html/ops
Alias /${:project}_result/ ${:installroot}/sample_results/
ScriptAlias /${:project}_cgi ${:installroot}/cgi-bin ScriptAlias /${:project}_cgi ${:installroot}/cgi-bin
# Note: projects/*/keys/ should NOT be readable! # Note: projects/*/keys/ should NOT be readable!
...@@ -78,4 +80,13 @@ ScriptAlias /${:project}_cgi ${:installroot}/cgi-bin ...@@ -78,4 +80,13 @@ ScriptAlias /${:project}_cgi ${:installroot}/cgi-bin
Options ExecCGI Options ExecCGI
AllowOverride AuthConfig AllowOverride AuthConfig
Require all granted Require all granted
</Directory>
Alias /${:project}_result/ ${:result_dir}
<Directory "${:result_dir}">
Options +Indexes
AuthName "${:project}"
AuthType Basic
AuthUserFile ${:installroot}/html/ops/.htpasswd
require valid-user
</Directory> </Directory>
\ No newline at end of file
...@@ -526,7 +526,7 @@ scripts = zodbanalyze ...@@ -526,7 +526,7 @@ scripts = zodbanalyze
[cloudooo-repository] [cloudooo-repository]
branch = master branch = master
revision = 168786a4c747d4dc4578a6428d39b3b2b3e1eb10 revision = 5c67568c403239bd8e25993602d03c553236fcec
[mysql-python] [mysql-python]
python = python2.6 python = python2.6
...@@ -626,7 +626,7 @@ Pygments = 1.6 ...@@ -626,7 +626,7 @@ Pygments = 1.6
StructuredText = 2.11.1 StructuredText = 2.11.1
WSGIUtils = 0.7 WSGIUtils = 0.7
Werkzeug = 0.8.3 Werkzeug = 0.8.3
apache-libcloud = 0.12.1 apache-libcloud = 0.12.4
argparse = 1.2.1 argparse = 1.2.1
async = 0.6.1 async = 0.6.1
atomize = 0.1.1 atomize = 0.1.1
...@@ -636,7 +636,7 @@ coverage = 3.6 ...@@ -636,7 +636,7 @@ coverage = 3.6
csp-eventlet = 0.7.0 csp-eventlet = 0.7.0
elementtree = 1.2.7-20070827-preview elementtree = 1.2.7-20070827-preview
erp5.recipe.cmmiforcei686 = 0.1.3 erp5.recipe.cmmiforcei686 = 0.1.3
erp5.util = 0.4.33 erp5.util = 0.4.34
erp5diff = 0.8.1.5 erp5diff = 0.8.1.5
eventlet = 0.12.1 eventlet = 0.12.1
feedparser = 5.1.3 feedparser = 5.1.3
...@@ -647,25 +647,25 @@ greenlet = 0.4.0 ...@@ -647,25 +647,25 @@ greenlet = 0.4.0
hexagonit.recipe.cmmi = 1.6 hexagonit.recipe.cmmi = 1.6
http-parser = 0.8.1 http-parser = 0.8.1
huBarcode = 0.63 huBarcode = 0.63
inotifyx = 0.2.0 inotifyx = 0.2.0-1
ipdb = 0.7 ipdb = 0.7
ipython = 0.13.1 ipython = 0.13.2
meld3 = 0.6.10 meld3 = 0.6.10
mr.developer = 1.25 mr.developer = 1.25
netaddr = 0.7.10 netaddr = 0.7.10
netifaces = 0.8 netifaces = 0.8_1
ordereddict = 1.1 ordereddict = 1.1
paramiko = 1.10.0 paramiko = 1.10.1
plone.recipe.command = 1.1 plone.recipe.command = 1.1
ply = 3.4 ply = 3.4
polib = 1.0.3 polib = 1.0.3
psutil = 0.6.1 psutil = 0.7.1
pyPdf = 1.13 pyPdf = 1.13
pyflakes = 0.6.1 pyflakes = 0.7.2
python-ldap = 2.4.10 python-ldap = 2.4.10
python-magic = 0.4.3 python-magic = 0.4.3
qrcode = 2.5.1 qrcode = 2.7
requests = 1.1.0 requests = 1.2.3
restkit = 4.2.1 restkit = 4.2.1
rtjp-eventlet = 0.3.2 rtjp-eventlet = 0.3.2
slapos.core = 0.35.1 slapos.core = 0.35.1
...@@ -674,12 +674,12 @@ slapos.recipe.template = 2.4.2 ...@@ -674,12 +674,12 @@ slapos.recipe.template = 2.4.2
slapos.toolbox = 0.33.1 slapos.toolbox = 0.33.1
smmap = 0.8.2 smmap = 0.8.2
socketpool = 0.5.2 socketpool = 0.5.2
spyne = 2.9.4 spyne = 2.10.7
supervisor = 3.0b1 supervisor = 3.0b2
threadframe = 0.2 threadframe = 0.2
timerserver = 2.0.2 timerserver = 2.0.2
urlnorm = 1.1.2 urlnorm = 1.1.2
uuid = 1.30 uuid = 1.30
validictory = 0.9.0 validictory = 0.9.1
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
xupdate-processor = 0.4 xupdate-processor = 0.4
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