Commit c434c036 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

Merge remote-tracking branch 'origin/master' into erp5testnode

Conflicts:
	software/erp5testnode/software.cfg
parents e674a6f9 328800d5
...@@ -24,10 +24,10 @@ depends = ...@@ -24,10 +24,10 @@ depends =
${liberation-fonts:location} ${liberation-fonts:location}
${ipaex-fonts:location} ${ipaex-fonts:location}
version = 28.0 version = 29.0
x86 = http://download-installer.cdn.mozilla.net/pub/firefox/releases/${:version}/linux-i686/en-US/firefox-${:version}.tar.bz2 b9992b491c3d4131bd7f4982d0240d6d x86 = http://download-installer.cdn.mozilla.net/pub/firefox/releases/${:version}/linux-i686/en-US/firefox-${:version}.tar.bz2 d95a376b82f940dc384e23c90e2ab904
x86-64 = http://download-installer.cdn.mozilla.net/pub/firefox/releases/${:version}/linux-x86_64/en-US/firefox-${:version}.tar.bz2 8264fda486828d925aa094de902eb182 x86-64 = http://download-installer.cdn.mozilla.net/pub/firefox/releases/${:version}/linux-x86_64/en-US/firefox-${:version}.tar.bz2 9e6117e8e421ee2dd5aeb9b788da5224
script = script =
if not self.options.get('url'): self.options['url'], self.options['md5sum'] = self.options[guessPlatform()].split(' ') if not self.options.get('url'): self.options['url'], self.options['md5sum'] = self.options[guessPlatform()].split(' ')
......
...@@ -56,11 +56,8 @@ environment = ...@@ -56,11 +56,8 @@ environment =
# mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users. # mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users.
# http://mroonga.github.com/ # http://mroonga.github.com/
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/mroonga/mroonga-4.01.tar.gz url = http://packages.groonga.org/source/mroonga/mroonga-4.02.tar.gz
md5sum = 7081aed69e715fb4b0b8f65b0d8d99f1 md5sum = aebd30a3cec90182ee474693216ac1dc
patch-options = -p1
patches =
${:_profile_base_location_}/mroonga-4.01-mariadb-10.0.10.patch#f229aca89b6223c43add5f2bd5f5d359
configure-options = configure-options =
--with-mysql-source=${mariadb:location}__compile__/mariadb-${mariadb:version} --with-mysql-source=${mariadb:location}__compile__/mariadb-${mariadb:version}
--with-mysql-config=${mariadb:location}/bin/mysql_config --with-mysql-config=${mariadb:location}/bin/mysql_config
......
diff --git a/ha_mroonga.cpp b/ha_mroonga.cpp
index 20d251a..2504599 100644
--- a/ha_mroonga.cpp
+++ b/ha_mroonga.cpp
@@ -101,22 +101,38 @@
#define MRN_TEXT_SIZE (1 << 16) // 64Kbytes
#define MRN_LONG_TEXT_SIZE (1 << 31) // 2Gbytes
-#if MYSQL_VERSION_ID >= 50500
-# ifdef DBUG_OFF
-# ifndef _WIN32
+#ifdef MRN_HAVE_TDC_LOCK_TABLE_SHARE
+# define mrn_open_mutex(share) &((share)->tdc.LOCK_table_share)
+# define mrn_open_mutex_lock(share) do { \
+ TABLE_SHARE *share_ = share; \
+ if (share_) { \
+ mysql_mutex_lock(mrn_open_mutex(share_)); \
+ } \
+} while (0)
+# define mrn_open_mutex_unlock(share) do { \
+ TABLE_SHARE *share_ = share; \
+ if (share_) { \
+ mysql_mutex_unlock(mrn_open_mutex(share_)); \
+ } \
+} while (0)
+#else
+# if MYSQL_VERSION_ID >= 50500
+# ifdef DBUG_OFF
+# ifndef _WIN32
extern mysql_mutex_t LOCK_open;
+# endif
# endif
-# endif
mysql_mutex_t *mrn_LOCK_open;
-# define mrn_open_mutex_lock() mysql_mutex_lock(mrn_LOCK_open)
-# define mrn_open_mutex_unlock() mysql_mutex_unlock(mrn_LOCK_open)
-#else
-# ifndef _WIN32
+# define mrn_open_mutex_lock(share) mysql_mutex_lock(mrn_LOCK_open)
+# define mrn_open_mutex_unlock(share) mysql_mutex_unlock(mrn_LOCK_open)
+# else
+# ifndef _WIN32
extern pthread_mutex_t LOCK_open;
-# endif
+# endif
pthread_mutex_t *mrn_LOCK_open;
-# define mrn_open_mutex_lock()
-# define mrn_open_mutex_unlock()
+# define mrn_open_mutex_lock(share)
+# define mrn_open_mutex_unlock(share)
+# endif
#endif
#if MYSQL_VERSION_ID >= 50600
@@ -1275,13 +1291,15 @@ static int mrn_init(void *p)
mrn_table_def_cache = (HASH *)GetProcAddress(current_module,
"?table_def_cache@@3Ust_hash@@A");
# endif
+# ifndef MRN_HAVE_TDC_LOCK_TABLE_SHARE
mrn_LOCK_open =
-# if MYSQL_VERSION_ID >= 50500
+# if MYSQL_VERSION_ID >= 50500
(mysql_mutex_t *)GetProcAddress(current_module,
"?LOCK_open@@3Ust_mysql_mutex@@A");
-# else
+# else
(pthread_mutex_t *)GetProcAddress(current_module,
"?LOCK_open@@3U_RTL_CRITICAL_SECTION@@A");
+# endif
# endif
# ifdef MRN_TABLE_SHARE_HAVE_LOCK_SHARE
mrn_table_share_lock_share =
@@ -1297,7 +1315,9 @@ static int mrn_init(void *p)
# ifdef MRN_HAVE_TABLE_DEF_CACHE
mrn_table_def_cache = &table_def_cache;
# endif
+# ifndef MRN_HAVE_TDC_LOCK_TABLE_SHARE
mrn_LOCK_open = &LOCK_open;
+# endif
#endif
// init groonga
@@ -3033,10 +3053,10 @@ bool ha_mroonga::storage_create_foreign_key(TABLE *table,
mapper.mysql_table_name(),
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table->s);
tmp_ref_table_share =
mrn_create_tmp_table_share(&table_list, ref_path, &error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table->s);
if (!tmp_ref_table_share) {
grn_obj_unlink(ctx, grn_table_ref);
error = ER_CANT_CREATE_TABLE;
@@ -3048,9 +3068,9 @@ bool ha_mroonga::storage_create_foreign_key(TABLE *table,
}
uint ref_pkey_nr = tmp_ref_table_share->primary_key;
if (ref_pkey_nr == MAX_KEY) {
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table->s);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table->s);
grn_obj_unlink(ctx, grn_table_ref);
error = ER_CANT_CREATE_TABLE;
char err_msg[MRN_BUFFER_SIZE];
@@ -3062,9 +3082,9 @@ bool ha_mroonga::storage_create_foreign_key(TABLE *table,
KEY *ref_key_info = &tmp_ref_table_share->key_info[ref_pkey_nr];
uint ref_key_parts = KEY_N_KEY_PARTS(ref_key_info);
if (ref_key_parts > 1) {
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table->s);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table->s);
grn_obj_unlink(ctx, grn_table_ref);
error = ER_CANT_CREATE_TABLE;
char err_msg[MRN_BUFFER_SIZE];
@@ -3076,9 +3096,9 @@ bool ha_mroonga::storage_create_foreign_key(TABLE *table,
}
Field *ref_field = &ref_key_info->key_part->field[0];
if (strcmp(ref_field->field_name, ref_field_name.str)) {
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table->s);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table->s);
grn_obj_unlink(ctx, grn_table_ref);
error = ER_CANT_CREATE_TABLE;
char err_msg[MRN_BUFFER_SIZE];
@@ -3088,9 +3108,9 @@ bool ha_mroonga::storage_create_foreign_key(TABLE *table,
my_message(error, err_msg, MYF(0));
DBUG_RETURN(false);
}
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table->s);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table->s);
grn_obj_flags col_flags = GRN_OBJ_PERSISTENT;
column = grn_column_create(ctx, table_obj, field->field_name,
strlen(field->field_name),
@@ -4210,18 +4230,18 @@ int ha_mroonga::close()
table_list.init_one_table(mapper.db_name(), mapper.mysql_table_name(),
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
tmp_table_share =
mrn_create_tmp_table_share(&table_list, share->table_name, &tmp_error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
if (!tmp_table_share) {
error = tmp_error;
} else if ((tmp_error = alter_share_add(share->table_name,
tmp_table_share))) {
error = tmp_error;
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
mrn_free_tmp_table_share(tmp_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
}
}
bitmap_free(&multiple_column_key_bitmap);
@@ -4394,9 +4414,9 @@ int ha_mroonga::delete_table(const char *name)
table_list.init_one_table(mapper.db_name(), mapper.mysql_table_name(),
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
tmp_table_share = mrn_create_tmp_table_share(&table_list, name, &error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
if (!tmp_table_share) {
DBUG_RETURN(error);
}
@@ -4407,9 +4427,9 @@ int ha_mroonga::delete_table(const char *name)
#endif
if (!(tmp_share = mrn_get_share(name, &tmp_table, &error)))
{
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
mrn_free_tmp_table_share(tmp_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
DBUG_RETURN(error);
}
@@ -4425,9 +4445,9 @@ int ha_mroonga::delete_table(const char *name)
tmp_share->long_term_share = NULL;
}
mrn_free_share(tmp_share);
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
mrn_free_tmp_table_share(tmp_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
if (is_temporary_table_name(name)) {
mrn_drop_db(name);
}
@@ -11885,9 +11905,9 @@ int ha_mroonga::rename_table(const char *from, const char *to)
from_mapper.mysql_table_name(),
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
tmp_table_share = mrn_create_tmp_table_share(&table_list, from, &error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
if (!tmp_table_share) {
DBUG_RETURN(error);
}
@@ -11897,9 +11917,9 @@ int ha_mroonga::rename_table(const char *from, const char *to)
#endif
if (!(tmp_share = mrn_get_share(from, &tmp_table, &error)))
{
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
mrn_free_tmp_table_share(tmp_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
DBUG_RETURN(error);
}
@@ -11925,9 +11945,9 @@ int ha_mroonga::rename_table(const char *from, const char *to)
} else if (error && from_mapper.table_name()[0] == '#') {
alter_share_add(from, tmp_table_share);
} else {
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(NULL);
mrn_free_tmp_table_share(tmp_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(NULL);
}
DBUG_RETURN(error);
}
@@ -14482,10 +14502,10 @@ char *ha_mroonga::storage_get_foreign_key_create_info()
ref_table_buff,
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table_share);
tmp_ref_table_share =
mrn_create_tmp_table_share(&table_list, ref_path, &error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table_share);
if (!tmp_ref_table_share) {
DBUG_RETURN(NULL);
}
@@ -14494,9 +14514,9 @@ char *ha_mroonga::storage_get_foreign_key_create_info()
Field *ref_field = &ref_key_info->key_part->field[0];
append_identifier(ha_thd(), &create_info_str, ref_field->field_name,
strlen(ref_field->field_name));
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table_share);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table_share);
if (create_info_str.reserve(39)) {
DBUG_RETURN(NULL);
}
@@ -14694,10 +14714,10 @@ int ha_mroonga::storage_get_foreign_key_list(THD *thd,
ref_table_buff,
TL_WRITE);
#endif
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table_share);
tmp_ref_table_share =
mrn_create_tmp_table_share(&table_list, ref_path, &error);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table_share);
if (!tmp_ref_table_share) {
DBUG_RETURN(error);
}
@@ -14709,9 +14729,9 @@ int ha_mroonga::storage_get_foreign_key_list(THD *thd,
strlen(ref_field->field_name),
TRUE);
f_key_info.referenced_fields.push_back(ref_col_name);
- mrn_open_mutex_lock();
+ mrn_open_mutex_lock(table_share);
mrn_free_tmp_table_share(tmp_ref_table_share);
- mrn_open_mutex_unlock();
+ mrn_open_mutex_unlock(table_share);
FOREIGN_KEY_INFO *p_f_key_info =
(FOREIGN_KEY_INFO *) thd_memdup(thd, &f_key_info,
sizeof(FOREIGN_KEY_INFO));
diff --git a/ha_mroonga.hpp b/ha_mroonga.hpp
index 579210e..d200bca 100644
--- a/ha_mroonga.hpp
+++ b/ha_mroonga.hpp
@@ -172,6 +172,10 @@ extern "C" {
# define MRN_HANDLER_START_BULK_INSERT_HAS_FLAGS
#endif
+#if (defined(MRN_MARIADB_P) && MYSQL_VERSION_ID >= 100010)
+# define MRN_HAVE_TDC_LOCK_TABLE_SHARE
+#endif
+
class ha_mroonga;
/* structs */
...@@ -10,6 +10,7 @@ versions = versions ...@@ -10,6 +10,7 @@ versions = versions
[pycrypto-python] [pycrypto-python]
recipe = zc.recipe.egg:custom recipe = zc.recipe.egg:custom
egg = pycrypto egg = pycrypto
environment = pycrypto-python-env
include-dirs = include-dirs =
${gmp:location}/include ${gmp:location}/include
library-dirs = library-dirs =
...@@ -17,6 +18,10 @@ library-dirs = ...@@ -17,6 +18,10 @@ library-dirs =
rpath = rpath =
${gmp:location}/lib ${gmp:location}/lib
[pycrypto-python-env]
ac_cv_func_malloc_0_nonnull = yes
LDFLAGS = -L${gmp:location}/lib
CPPFLAGS = -I${gmp:location}/include
[versions] [versions]
# pycrypto 2.4 does not work with setuptools/buildout pycrypto = 2.6.1
pycrypto = 2.3
...@@ -123,19 +123,19 @@ setuptools = 1.4.2 ...@@ -123,19 +123,19 @@ setuptools = 1.4.2
pyOpenSSL = 0.13.1 pyOpenSSL = 0.13.1
Jinja2 = 2.7.2 Jinja2 = 2.7.2
MarkupSafe = 0.19 MarkupSafe = 0.21
Werkzeug = 0.9.4 Werkzeug = 0.9.4
buildout-versions = 1.7 buildout-versions = 1.7
cmd2 = 0.6.7 cmd2 = 0.6.7
collective.recipe.template = 1.11 collective.recipe.template = 1.11
itsdangerous = 0.24 itsdangerous = 0.24
lxml = 3.3.4 lxml = 3.3.5
meld3 = 1.0.0 meld3 = 1.0.0
mr.developer = 1.30 mr.developer = 1.30
netaddr = 0.7.11 netaddr = 0.7.11
pyparsing = 2.0.2 pyparsing = 2.0.2
six = 1.6.1 six = 1.6.1
slapos.core = 1.0.4 slapos.core = 1.0.5
slapos.libnetworkcache = 0.14.1 slapos.libnetworkcache = 0.14.1
slapos.recipe.cmmi = 0.2 slapos.recipe.cmmi = 0.2
stevedore = 0.15 stevedore = 0.15
...@@ -143,25 +143,25 @@ xml-marshaller = 0.9.7 ...@@ -143,25 +143,25 @@ xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1 z3c.recipe.scripts = 1.0.1
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
Flask = 0.10.1 Flask = 0.10.1
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
cliff = 1.6.1 cliff = 1.6.1
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
netifaces = 0.8-1 netifaces = 0.8-1
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
requests = 2.2.1 requests = 2.2.1
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
supervisor = 3.0 supervisor = 3.0
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
zope.interface = 4.1.1 zope.interface = 4.1.1
...@@ -127,8 +127,8 @@ configure-options = ...@@ -127,8 +127,8 @@ configure-options =
--disable-static --disable-static
--disable-specs --disable-specs
--without-xmlto --without-xmlto
--without-xsltproc
--without-fop --without-fop
XEXT_LIBS=-lX11
[inputproto] [inputproto]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
......
...@@ -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.85' version = '0.87'
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"
...@@ -207,8 +207,8 @@ setup(name=name, ...@@ -207,8 +207,8 @@ setup(name=name,
'zabbixagent = slapos.recipe.zabbixagent:Recipe', 'zabbixagent = slapos.recipe.zabbixagent:Recipe',
'zimbra.kvm = slapos.recipe.zimbra_kvm:Recipe', 'zimbra.kvm = slapos.recipe.zimbra_kvm:Recipe',
'zeo = slapos.recipe.zeo:Recipe', 'zeo = slapos.recipe.zeo:Recipe',
'zeroknown.read = slapos.recipe.zeroknown:ReadRecipe', 'zero-knowledge.read = slapos.recipe.zero_knowledge:ReadRecipe',
'zeroknown.write = slapos.recipe.zeroknown:WriteRecipe' 'zero-knowledge.write = slapos.recipe.zero_knowledge:WriteRecipe'
], ],
'slapos.recipe.nosqltestbed.plugin': [ 'slapos.recipe.nosqltestbed.plugin': [
'kumo = slapos.recipe.nosqltestbed.kumo:KumoTestBed', 'kumo = slapos.recipe.nosqltestbed.kumo:KumoTestBed',
......
...@@ -71,7 +71,9 @@ class ExportRecipe(GenericBaseRecipe): ...@@ -71,7 +71,9 @@ class ExportRecipe(GenericBaseRecipe):
done done
} }
sync_element %(srv-directory)s/runner %(backup-directory)s/runner/ instance project proxy.db sync_element %(srv-directory)s/runner %(backup-directory)s/runner/ instance project proxy.db
sync_element %(etc-directory)s %(backup-directory)s/etc/ .rcode .project .users .htpasswd config.json ssh # We sync .* appart
cp -r %(etc-directory)s/.??* %(backup-directory)s/etc/
sync_element %(etc-directory)s %(backup-directory)s/etc/ config.json ssh
if [ -d %(backup-directory)s/runner/software ]; then if [ -d %(backup-directory)s/runner/software ]; then
rm %(backup-directory)s/runner/software/* rm %(backup-directory)s/runner/software/*
fi fi
...@@ -120,14 +122,9 @@ class ImportRecipe(GenericBaseRecipe): ...@@ -120,14 +122,9 @@ class ImportRecipe(GenericBaseRecipe):
done done
} }
restore_element %(backup-directory)s/runner/ %(srv-directory)s/runner instance project proxy.db restore_element %(backup-directory)s/runner/ %(srv-directory)s/runner instance project proxy.db
restore_element %(backup-directory)s/etc/ %(etc-directory)s .rcode .project .users .htpasswd config.json ssh restore_element %(backup-directory)s/etc/ %(etc-directory)s config.json ssh
ifs=$IFS IFS=';' cp -r %(backup-directory)s/etc/.??* %(etc-directory)s;
read user pass remaining < %(etc-directory)s/.users %(curl-binary)s --insecure -vg6L --max-time 5 %(backend-url)s/isSRReady;
IFS=$ifs
%(curl-binary)s --insecure -vg6L -F clogin="$user" -F cpwd="$pass" --dump-header login_cookie %(backend-url)s/doLogin;
%(curl-binary)s --insecure -vg6L --cookie login_cookie --max-time 5 %(backend-url)s/isSRReady;
%(curl-binary)s --insecure -vg6LX POST --cookie login_cookie --max-time 5 %(backend-url)s/runSoftwareProfile --user "$user":"$pass";
rm -f login_cookie
""" % self.options) """ % self.options)
self.createExecutable(wrapper, content=content) self.createExecutable(wrapper, content=content)
......
...@@ -186,68 +186,62 @@ pytz = ...@@ -186,68 +186,62 @@ pytz =
setuptools = 2.2 setuptools = 2.2
Jinja2 = 2.7.2 Jinja2 = 2.7.2
MarkupSafe = 0.18 MarkupSafe = 0.21
PyXML = 0.8.5 PyXML = 0.8.5
Pygments = 1.6
Werkzeug = 0.9.4 Werkzeug = 0.9.4
buildout-versions = 1.7 buildout-versions = 1.7
cffi = 0.8.1 cffi = 0.8.2
cmd2 = 0.6.7 cmd2 = 0.6.7
cryptography = 0.2.1 cryptography = 0.3
erp5.util = 0.4.38 erp5.util = 0.4.38
inotifyx = 0.2.0-1 inotifyx = 0.2.0-1
itsdangerous = 0.23 itsdangerous = 0.24
lxml = 3.3.0 lxml = 3.3.5
meld3 = 0.6.10 meld3 = 1.0.0
netaddr = 0.7.10 mr.developer = 1.30
netaddr = 0.7.11
plone.recipe.command = 1.1 plone.recipe.command = 1.1
psutil = 1.2.1 psutil = 2.1.0
pyOpenSSL = 0.14 pyOpenSSL = 0.14
pyparsing = 2.0.1 pyparsing = 2.0.2
pytz = 2013.9 pytz = 2014.2
slapos.core = 1.0.2.1 six = 1.6.1
slapos.libnetworkcache = 0.13.4 slapos.core = 1.0.5
slapos.libnetworkcache = 0.14.1
slapos.recipe.build = 0.12 slapos.recipe.build = 0.12
slapos.recipe.cmmi = 0.2 slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5 slapos.recipe.template = 2.5
stevedore = 0.15
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.core==1.0.5
Flask = 0.10.1 Flask = 0.10.1
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.core==1.0.5
bpython = 0.12 cliff = 1.6.1
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.cookbook==0.85
cliff = 1.5.2 lock-file = 2.0
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.core==1.0.5
ipython = 1.2.0
# Required by:
# slapos.core==1.0.2.1
netifaces = 0.8-1 netifaces = 0.8-1
# Required by: # Required by:
# slapos.core==1.0.2.1 # cffi==0.8.2
requests = 2.2.1 pycparser = 2.10
# Required by:
# cliff==1.5.2
six = 1.5.2
# Required by: # Required by:
# cliff==1.5.2 # slapos.core==1.0.5
stevedore = 0.14.1 requests = 2.2.1
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.core==1.0.5
supervisor = 3.0 supervisor = 3.0
# Required by: # Required by:
# slapos.core==1.0.2.1 # slapos.core==1.0.5
zope.interface = 4.1.0 zope.interface = 4.1.1
...@@ -50,30 +50,81 @@ mode = 0644 ...@@ -50,30 +50,81 @@ mode = 0644
# pin version of setuptools # pin version of setuptools
setuptools = 2.2 setuptools = 2.2
Flask = 0.10.1
Jinja2 = 2.7.2 Jinja2 = 2.7.2
MarkupSafe = 0.19 MarkupSafe = 0.21
Werkzeug = 0.9.4 Werkzeug = 0.9.4
buildout-versions = 1.7 buildout-versions = 1.7
cliff = 1.6.0 cffi = 0.8.2
cmd2 = 0.6.7 cmd2 = 0.6.7
inotifyx = 0.2.0-1 cryptography = 0.3
itsdangerous = 0.24 itsdangerous = 0.24
meld3 = 1.0.0
mr.developer = 1.30
pyOpenSSL = 0.14
pyparsing = 2.0.2
six = 1.6.1
slapos.cookbook = 0.87
slapos.recipe.build = 0.12
slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5
stevedore = 0.15
# Required by:
# slapos.core==1.0.5
Flask = 0.10.1
# Required by:
# slapos.core==1.0.5
cliff = 1.6.1
# Required by:
# slapos.cookbook==0.87
inotifyx = 0.2.0-1
# Required by:
# slapos.cookbook==0.87
lock-file = 2.0 lock-file = 2.0
lxml = 3.3.4
meld3 = 0.6.10 # Required by:
# slapos.cookbook==0.87
# slapos.core==1.0.5
# xml-marshaller==0.9.7
lxml = 3.3.5
# Required by:
# slapos.cookbook==0.87
netaddr = 0.7.11 netaddr = 0.7.11
# Required by:
# slapos.core==1.0.5
netifaces = 0.8-1 netifaces = 0.8-1
pyparsing = 2.0.1
# Required by:
# cffi==0.8.2
pycparser = 2.10
# Required by:
# slapos.cookbook==0.87
pytz = 2014.2 pytz = 2014.2
# Required by:
# slapos.core==1.0.5
requests = 2.2.1 requests = 2.2.1
six = 1.6.1
slapos.cookbook = 0.85 # Required by:
slapos.core = 1.0.3 # slapos.cookbook==0.87
slapos.recipe.cmmi = 0.2 slapos.core = 1.0.5
stevedore = 0.15
# Required by:
# slapos.core==1.0.5
supervisor = 3.0 supervisor = 3.0
# Required by:
# slapos.cookbook==0.87
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
# Required by:
# slapos.core==1.0.5
zope.interface = 4.1.1 zope.interface = 4.1.1
[networkcache] [networkcache]
......
...@@ -10,7 +10,7 @@ Slaprunner is an all-in-one IDE used to develop and test profiles and recipes fo ...@@ -10,7 +10,7 @@ Slaprunner is an all-in-one IDE used to develop and test profiles and recipes fo
Parameters Parameters
---------- ----------
authorized-key user-authorized-key
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
You need to specify your SSH public key in order to connect to the SSH server of this instance. You need to specify your SSH public key in order to connect to the SSH server of this instance.
...@@ -19,7 +19,7 @@ Example of parameter XML:: ...@@ -19,7 +19,7 @@ Example of parameter XML::
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<instance> <instance>
<parameter id="authorized-key">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdNp7qZMVAzNc07opHshiIFDmJpYXQpetfcSgUj39a409d42PpsJElp7WsAE/x0nN6gUIoWIl7UiAlMzf6bKEJGJVSOZEPTmiJVlgK1Gp+kE0x9yNcncYg7p38Jny0daVA/NkkpAFyRsAm5kLGzyLtaCcktSvy0cJuy7WSSHU05pd1f8Y8thofE9g5t+/JA2VZvipxPkRfkFAG3aOAGLULlTImTSDFSDFGSDFG5F6mMnl7yvY2d6vEHVBu+K+aKmAwZVfCUwtSpa/tq3i2Lppjrw3UfrxbQSFHZCkzefr+u+l4YYe+tJrX7rYJYXD7LIfZfdSeFTlHFaN/yI1 user@host.local</parameter> <parameter id="user-authorized-key">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdNp7qZMVAzNc07opHshiIFDmJpYXQpetfcSgUj39a409d42PpsJElp7WsAE/x0nN6gUIoWIl7UiAlMzf6bKEJGJVSOZEPTmiJVlgK1Gp+kE0x9yNcncYg7p38Jny0daVA/NkkpAFyRsAm5kLGzyLtaCcktSvy0cJuy7WSSHU05pd1f8Y8thofE9g5t+/JA2VZvipxPkRfkFAG3aOAGLULlTImTSDFSDFGSDFG5F6mMnl7yvY2d6vEHVBu+K+aKmAwZVfCUwtSpa/tq3i2Lppjrw3UfrxbQSFHZCkzefr+u+l4YYe+tJrX7rYJYXD7LIfZfdSeFTlHFaN/yI1 user@host.local</parameter>
</instance> </instance>
instance-amount instance-amount
......
...@@ -37,34 +37,34 @@ parts = ...@@ -37,34 +37,34 @@ parts =
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
#md5sum = 8a47421ac6158b4ee476acab212c67d9 md5sum = 8a47421ac6158b4ee476acab212c67d9
mode = 0644 mode = 0644
[template-runner] [template-runner]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner.cfg url = ${:_profile_base_location_}/instance-runner.cfg
output = ${buildout:directory}/template-runner.cfg.in output = ${buildout:directory}/template-runner.cfg.in
md5sum = c66f18b74b958805bb2196fb1c54683e md5sum = 9f32b1bcd32e90950ee94e8d41dfdcd7
mode = 0644 mode = 0644
[instance-runner-import] [instance-runner-import]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-import.cfg.in url = ${:_profile_base_location_}/instance-runner-import.cfg.in
output = ${buildout:directory}/instance-runner-import.cfg output = ${buildout:directory}/instance-runner-import.cfg
md5sum = e1769596ef62f6db6bbfca4391e740c0 md5sum = 202c40bcca67d70a3c79d218be853b10
mode = 0644 mode = 0644
[instance-runner-export] [instance-runner-export]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-export.cfg.in url = ${:_profile_base_location_}/instance-runner-export.cfg.in
output = ${buildout:directory}/instance-runner-export.cfg output = ${buildout:directory}/instance-runner-export.cfg
md5sum = b7664995a6dd954f4f214252ffeaaa61 md5sum = a8815402e2d65c0a9cda53492b70d175
mode = 0644 mode = 0644
[template-resilient] [template-resilient]
recipe = slapos.recipe.download recipe = slapos.recipe.download
url = ${:_profile_base_location_}/instance-resilient.cfg.jinja2 url = ${:_profile_base_location_}/instance-resilient.cfg.jinja2
md5sum = a9647ae3c99308b85dd72fae76ef071f md5sum = e5c7e445d0103b5e73aedb43fac681dd
filename = instance-resilient.cfg.jinja2 filename = instance-resilient.cfg.jinja2
mode = 0644 mode = 0644
...@@ -72,7 +72,7 @@ mode = 0644 ...@@ -72,7 +72,7 @@ mode = 0644
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/instance-resilient-test.cfg.jinja2 url = ${:_profile_base_location_}/instance-resilient-test.cfg.jinja2
download-only = true download-only = true
#md5sum = b231383bb63edc0009fb6e0ff5c54d8e md5sum = 07241952e1dce8688b2da5c1a14c3e6a
filename = instance-resilient-test.cfg.jinja2 filename = instance-resilient-test.cfg.jinja2
mode = 0644 mode = 0644
...@@ -80,7 +80,7 @@ mode = 0644 ...@@ -80,7 +80,7 @@ mode = 0644
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/nginx_conf.in url = ${:_profile_base_location_}/nginx_conf.in
download-only = true download-only = true
md5sum = fa66988e96bb712c0580b5fb90f95700 md5sum = 67d2ce92b4ad6dca6eaf69eeb2c2734c
filename = nginx_conf.in filename = nginx_conf.in
mode = 0644 mode = 0644
...@@ -88,14 +88,14 @@ mode = 0644 ...@@ -88,14 +88,14 @@ mode = 0644
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/httpd_conf.in url = ${:_profile_base_location_}/httpd_conf.in
download-only = true download-only = true
md5sum = 0b63a652d1d51e0894a780896fce9893 md5sum = 47ba63d87a7fdc91568581226f0063f6
filename = httpd_conf.in filename = httpd_conf.in
mode = 0644 mode = 0644
[template_launcher] [template_launcher]
recipe = slapos.recipe.download recipe = slapos.recipe.download
url = ${:_profile_base_location_}/launcher.in url = ${:_profile_base_location_}/launcher.in
#md5sum = c7f8b6e9ae84aa94686a9cbaaa3dd693 md5sum = c7f8b6e9ae84aa94686a9cbaaa3dd693
filename = launcher.in filename = launcher.in
mode = 0644 mode = 0644
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
...@@ -103,7 +103,7 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_} ...@@ -103,7 +103,7 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
[slapos-cfg-template] [slapos-cfg-template]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/${:filename} url = ${:_profile_base_location_}/template/${:filename}
md5sum = d31d1c51a51bc4b2b8dda197777a4bcb md5sum = 788795524769f6d946526ac282508b69
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = slapos.cfg.in filename = slapos.cfg.in
download-only = true download-only = true
......
...@@ -8,32 +8,44 @@ ...@@ -8,32 +8,44 @@
[buildout] [buildout]
extends = common.cfg extends = common.cfg
parts += parts =
slapos.cookbook-repository # Development eggs
# slapos.toolbox-repository slapos.toolbox-repository
# erp5.util-repository # slapos.cookbook-repository
# slapos.core-repository
check-recipe check-recipe
# erp5.util-repository
# Good elements
template
eggs
instance-runner-import
instance-runner-export
slapos-cookbook
slapos-cfg-template
# XXX: we have to manually add this for resilience
rdiff-backup
collective.recipe.template-egg
# slapos.core-repository
develop = develop =
${:parts-directory}/slapos.toolbox-repository ${:parts-directory}/slapos.toolbox-repository
${:parts-directory}/slapos.cookbook-repository # ${:parts-directory}/slapos.cookbook-repository
# ${:parts-directory}/erp5.util-repository
# ${:parts-directory}/slapos.core-repository # ${:parts-directory}/slapos.core-repository
# ${:parts-directory}/erp5.util-repository
[slapos.toolbox-repository] [slapos.toolbox-repository]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.toolbox.git repository = http://git.erp5.org/repos/slapos.toolbox.git
#branch = slaprunner-paas branch = slaprunner-paas
revision = 399dc9f60967593bad0a16dcccf3bec487fc0a8f #revision = 2de7ba00a75e73cae2d6b71f7266f6261416b057
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
[slapos.cookbook-repository] [slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git repository = http://git.erp5.org/repos/slapos.git
branch = master branch = slaprunner-paas
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
# Used for resiliency tests only # Used for resiliency tests only
...@@ -44,19 +56,19 @@ repository = http://git.erp5.org/repos/erp5.git ...@@ -44,19 +56,19 @@ repository = http://git.erp5.org/repos/erp5.git
revision = f9a812f4e97ffeed359bc5611366a5c8675ec749 revision = f9a812f4e97ffeed359bc5611366a5c8675ec749
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
#[slapos.core-repository] [slapos.core-repository]
#recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
#repository = http://git.erp5.org/repos/slapos.core.git repository = http://git.erp5.org/repos/slapos.core.git
#branch = master branch = master
#git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
#
[check-recipe] [check-recipe]
recipe = plone.recipe.command recipe = plone.recipe.command
stop-on-error = true stop-on-error = true
update-command = ${:command} update-command = ${:command}
command = command =
grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link &&
grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link
# grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link &&
# grep parts ${buildout:develop-eggs-directory}/slapos.core.egg-link &&
# grep parts ${buildout:develop-eggs-directory}/erp5.util.egg-link # grep parts ${buildout:develop-eggs-directory}/erp5.util.egg-link
# grep parts ${buildout:develop-eggs-directory}/slapos.core.egg-link &&
...@@ -22,6 +22,8 @@ LoadModule alias_module modules/mod_alias.so ...@@ -22,6 +22,8 @@ LoadModule alias_module modules/mod_alias.so
LoadModule env_module modules/mod_env.so LoadModule env_module modules/mod_env.so
LoadModule rewrite_module modules/mod_rewrite.so LoadModule rewrite_module modules/mod_rewrite.so
LoadModule log_config_module modules/mod_log_config.so LoadModule log_config_module modules/mod_log_config.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
ErrorLog "{{ parameters.path_error_log }}" ErrorLog "{{ parameters.path_error_log }}"
LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%h %l %u %t \"%r\" %>s %b" common
...@@ -40,6 +42,27 @@ SSLHonorCipherOrder On ...@@ -40,6 +42,27 @@ SSLHonorCipherOrder On
SSLCipherSuite RC4-SHA:HIGH:!ADH SSLCipherSuite RC4-SHA:HIGH:!ADH
SSLEngine On SSLEngine On
Alias /public {{ parameters.runner_home }}/public
<Directory {{ parameters.runner_home }}/public>
Order Allow,Deny
Allow from all
Satisfy Any
Options Indexes FollowSymLinks
</Directory>
DavLockDB {{ parameters.var_dir }}/DavLock
Alias /share {{ parameters.runner_home }}
<Directory {{ parameters.runner_home }}>
DirectoryIndex disabled
DAV On
Options Indexes FollowSymLinks
AuthType Basic
AuthName "webdav"
AuthUserFile "{{ parameters.etc_dir }}/.htpasswd"
Require valid-user
</Directory>
ScriptSock {{ parameters.path_pid }} ScriptSock {{ parameters.path_pid }}
SetEnv GIT_PROJECT_ROOT {{ parameters.project_folder }} SetEnv GIT_PROJECT_ROOT {{ parameters.project_folder }}
......
...@@ -42,13 +42,13 @@ software-url = ${slap-connection:software-release-url} ...@@ -42,13 +42,13 @@ software-url = ${slap-connection:software-release-url}
software-type = resilient software-type = resilient
name = Resilient Instance (Root Instance) name = Resilient Instance (Root Instance)
{% set cluster_parameter_dict = slapparameter_dict.get('cluster', {}) -%} {% set cluster_parameter_dict = slapparameter_dict.get('cluster', {}) -%}
config = resiliency-backup-periodicity frontend-domain {{ cluster_parameter_dict.keys() | join(' ') }} config = resiliency-backup-periodicity {{ cluster_parameter_dict.keys() | join(' ') }}
{% for key, value in cluster_parameter_dict.items() -%} {% for key, value in cluster_parameter_dict.items() -%}
config-{{ key }} = {{ dumps(value) }} config-{{ key }} = {{ dumps(value) }}
{% endfor -%} {% endfor -%}
config-resiliency-backup-periodicity = * * * * * config-resiliency-backup-periodicity = */6 * * * *
# XXX hardcoded # XXX hardcoded
config-frontend-domain = google.com #config-frontend-domain = google.com
# XXX Hack to deploy Root Instance on the same computer as the type-test Instance # XXX Hack to deploy Root Instance on the same computer as the type-test Instance
sla = computer_guid sla = computer_guid
sla-computer_guid = ${slap-connection:computer-id} sla-computer_guid = ${slap-connection:computer-id}
......
# vim: set ft=cfg: # vim: set ft=cfg:
# Default parameters
# NOTE: in case of resilient instance, auto-deploy-instance
# set to false (else it could be dangerous)
{% do slapparameter_dict.__setitem__('auto-deploy', slapparameter_dict.get('auto-deploy', 'true')) %}
{% do slapparameter_dict.__setitem__('auto-deploy-instance', slapparameter_dict.get('auto-deploy-instance', 'false')) %}
{% import 'parts' as parts %} {% import 'parts' as parts %}
{% import 'replicated' as replicated %} {% import 'replicated' as replicated %}
......
...@@ -10,7 +10,6 @@ parts += ...@@ -10,7 +10,6 @@ parts +=
ca-shellinabox ca-shellinabox
gunicorn-launcher gunicorn-launcher
gunicorn-graceful gunicorn-graceful
test-runner
sshkeys-dropbear-runner sshkeys-dropbear-runner
dropbear-server-add-authorized-key dropbear-server-add-authorized-key
sshkeys-authority sshkeys-authority
...@@ -18,7 +17,7 @@ parts += ...@@ -18,7 +17,7 @@ parts +=
slaprunner-promise slaprunner-promise
slaprunner-frontend-promise slaprunner-frontend-promise
dropbear-promise dropbear-promise
private runtestsuite
shellinabox-promise shellinabox-promise
symlinks symlinks
shellinabox shellinabox
......
...@@ -10,13 +10,12 @@ parts += ...@@ -10,13 +10,12 @@ parts +=
ca-shellinabox ca-shellinabox
gunicorn-launcher gunicorn-launcher
gunicorn-graceful gunicorn-graceful
test-runner
sshkeys-dropbear-runner sshkeys-dropbear-runner
dropbear-server-add-authorized-key dropbear-server-add-authorized-key
sshkeys-authority sshkeys-authority
slaprunner-promise slaprunner-promise
dropbear-promise dropbear-promise
private runtestsuite
shellinabox-promise shellinabox-promise
shellinabox shellinabox
symlinks symlinks
......
...@@ -7,7 +7,6 @@ parts = ...@@ -7,7 +7,6 @@ parts =
ca-shellinabox ca-shellinabox
gunicorn-launcher gunicorn-launcher
gunicorn-graceful gunicorn-graceful
test-runner
sshkeys-dropbear-runner sshkeys-dropbear-runner
dropbear-server-add-authorized-key dropbear-server-add-authorized-key
sshkeys-authority sshkeys-authority
...@@ -15,7 +14,7 @@ parts = ...@@ -15,7 +14,7 @@ parts =
slaprunner-promise slaprunner-promise
slaprunner-frontend-promise slaprunner-frontend-promise
dropbear-promise dropbear-promise
private runtestsuite
shellinabox-promise shellinabox-promise
symlinks symlinks
shellinabox shellinabox
...@@ -138,16 +137,16 @@ bytes = 8 ...@@ -138,16 +137,16 @@ bytes = 8
[slaprunner] [slaprunner]
slaprunner = ${buildout:directory}/bin/slaprunner slaprunner = ${buildout:directory}/bin/slaprunner
slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr slapos = ${buildout:directory}/bin/slapos
slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp
slapproxy = ${buildout:directory}/bin/slapproxy slapproxy = ${buildout:directory}/bin/slapproxy
supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl
git-binary = ${git:location}/bin/git git-binary = ${git:location}/bin/git
root_check = false
slapos.cfg = $${directory:etc}/slapos.cfg slapos.cfg = $${directory:etc}/slapos.cfg
working-directory = $${runnerdirectory:home} working-directory = $${runnerdirectory:home}
project-directory = $${runnerdirectory:project} project-directory = $${runnerdirectory:project}
software-directory = $${runnerdirectory:software-root} instance_root = $${runnerdirectory:instance-root}
instance-directory = $${runnerdirectory:instance-root} software_root = $${runnerdirectory:software-root}
#XXX-Nico hardcoded default port because overridden by this buildout config #XXX-Nico hardcoded default port because overridden by this buildout config
instance-monitor-url = https://[$${:ipv6}]:9685 instance-monitor-url = https://[$${:ipv6}]:9685
etc_dir = $${directory:etc} etc_dir = $${directory:etc}
...@@ -158,31 +157,38 @@ public_key = $${sshkeys-dropbear-runner:public-key} ...@@ -158,31 +157,38 @@ public_key = $${sshkeys-dropbear-runner:public-key}
private_key = $${sshkeys-dropbear-runner:private-key} private_key = $${sshkeys-dropbear-runner:private-key}
ipv4 = $${slap-network-information:local-ipv4} ipv4 = $${slap-network-information:local-ipv4}
ipv6 = $${slap-network-information:global-ipv6} ipv6 = $${slap-network-information:global-ipv6}
instance_root = $${runnerdirectory:instance-root}
proxy_port = 50000 proxy_port = 50000
runner_port = 50005 runner_port = 50005
partition-amount = $${slap-parameter:instance-amount} partition-amount = $${slap-parameter:instance-amount}
wrapper = $${directory:services}/slaprunner wrapper = $${directory:services}/slaprunner
debug = $${slap-parameter:debug} debug = $${slap-parameter:debug}
access-url = https://[$${:ipv6}]:$${:runner_port} access-url = https://[$${:ipv6}]:$${:runner_port}
supd-temp-var = $${directory:etc}/supervisord.conf supervisord_config = $${directory:etc}/supervisord.conf
prox-db-var = $${slaprunner:working-directory}/proxy.db proxy_database = $${slaprunner:working-directory}/proxy.db
console = False console = False
verbose = False verbose = False
debug = False debug = False
auto_deploy = $${slap-parameter:auto-deploy}
auto_deploy_instance = $${slap-parameter:auto-deploy-instance}
autorun = $${slap-parameter:autorun}
knowledge0_file = $${buildout:directory}/$${public:filename}
[test-runner] [test-runner]
<= slaprunner <= slaprunner
recipe = slapos.cookbook:slaprunner.test
slaprunnertest = ${buildout:directory}/bin/slaprunnertest
slapos.cfg = $${directory:etc}/slapos-test.cfg slapos.cfg = $${directory:etc}/slapos-test.cfg
working-directory = $${runnerdirectory:test} working-directory = $${runnerdirectory:test}
project-directory = $${runnerdirectory:project-test} project-directory = $${runnerdirectory:project-test}
software-directory = $${runnerdirectory:software-test} software-directory = $${runnerdirectory:software-test}
instance-directory = $${runnerdirectory:instance-test} instance-directory = $${runnerdirectory:instance-test}
proxy_port = 8602 proxy_port = 8602
wrapper = $${directory:bin}/runTestSuite
etc_dir = $${directory:test} etc_dir = $${directory:test}
[runtestsuite]
recipe = slapos.cookbook:wrapper
command-line = ${buildout:directory}/bin/slaprunnertest
wrapper-path = $${directory:bin}/runTestSuite
environment = RUNNER_CONFIG=$${slapos-test-cfg:rendered}
# Deploy dropbear (minimalist SSH server) # Deploy dropbear (minimalist SSH server)
[sshkeys-directory] [sshkeys-directory]
...@@ -220,7 +226,7 @@ wrapper = $${directory:services}/runner_sshd ...@@ -220,7 +226,7 @@ wrapper = $${directory:services}/runner_sshd
[dropbear-server-add-authorized-key] [dropbear-server-add-authorized-key]
<= dropbear-runner-server <= dropbear-runner-server
recipe = slapos.cookbook:dropbear.add_authorized_key recipe = slapos.cookbook:dropbear.add_authorized_key
key = $${slap-parameter:authorized-key} key = $${slap-parameter:user-authorized-key}
#--------------------------- #---------------------------
#-- #--
...@@ -296,8 +302,10 @@ monitor_index = $${deploy-index:rendered} ...@@ -296,8 +302,10 @@ monitor_index = $${deploy-index:rendered}
working_directory = $${slaprunner:working-directory} working_directory = $${slaprunner:working-directory}
dav_lock = $${directory:var}/DavLock dav_lock = $${directory:var}/DavLock
etc_dir = $${directory:etc} etc_dir = $${directory:etc}
var_dir = $${directory:var}
document_root = $${directory:www} document_root = $${directory:www}
project_folder = $${directory:project} project_folder = $${directory:project}
runner_home = $${runnerdirectory:home}
git_http_backend = ${git:location}/libexec/git-core/git-http-backend git_http_backend = ${git:location}/libexec/git-core/git-http-backend
cgi_httpd_conf = $${cgi-httpd-configuration-file:output} cgi_httpd_conf = $${cgi-httpd-configuration-file:output}
...@@ -417,9 +425,11 @@ backend_url = $${slaprunner:access-url} ...@@ -417,9 +425,11 @@ backend_url = $${slaprunner:access-url}
access_url = $${:url}/login access_url = $${:url}/login
url = https://$${request-frontend:connection-domain} url = https://$${request-frontend:connection-domain}
ssh_command = ssh $${dropbear-runner-server:host} -p $${dropbear-runner-server:port} ssh_command = ssh $${dropbear-runner-server:host} -p $${dropbear-runner-server:port}
webdav_url = https://$${request-frontend:connection-domain}/share
monitor_url = https://$${monitor-frontend:connection-domain} monitor_url = https://$${monitor-frontend:connection-domain}
public_url = $${:url}/public/ webdav_url = $${:monitor_url}/share/
public_url = $${:monitor_url}/public/
git_public_url = https://[$${httpd-parameters:global_ip}]:$${httpd-parameters:monitor_port}/git-public/
git_private_url = https://[$${httpd-parameters:global_ip}]:$${httpd-parameters:monitor_port}/git/
#--------------------------- #---------------------------
#-- #--
...@@ -457,7 +467,7 @@ symlink_base = ${buildout:directory}/bin ...@@ -457,7 +467,7 @@ symlink_base = ${buildout:directory}/bin
[slap-parameter] [slap-parameter]
# Default value if no ssh key is specified # Default value if no ssh key is specified
authorized-key = user-authorized-key =
# Default value of instances number in slaprunner # Default value of instances number in slaprunner
instance-amount = 10 instance-amount = 10
debug = false debug = false
...@@ -479,37 +489,15 @@ template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename} ...@@ -479,37 +489,15 @@ template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename}
rendered = $${slaprunner:slapos.cfg} rendered = $${slaprunner:slapos.cfg}
mode = 700 mode = 700
context = context =
key software_root runnerdirectory:software-root section slaprunner slaprunner
key instance_root runnerdirectory:instance-root
key auto_deploy slap-parameter:auto-deploy [slapos-test-cfg]
key auto_deploy_instance slap-parameter:auto-deploy-instance recipe = slapos.recipe.template:jinja2
key autorun slap-parameter:autorun template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename}
key console slaprunner:console rendered = $${test-runner:slapos.cfg}
key debug slaprunner:debug mode = 700
key etc_dir slaprunner:etc_dir context =
key git slaprunner:git-binary section slaprunner test-runner
key instance_root runnerdirectory:instance-root
key instance_monitoring_url slaprunner:instance-monitor-url
key ipv4 slaprunner:ipv4
key ipv6 slaprunner:ipv6
key log_dir slaprunner:log_dir
key partition_amount slaprunner:partition-amount
key private_key slaprunner:private_key
key proxy_database slaprunner:prox-db-var
key proxy_host slaprunner:ipv4
key proxy_port slaprunner:proxy_port
key public_key slaprunner:public_key
key run_dir slaprunner:run_dir
key runner_port slaprunner:runner_port
key runner_workdir slaprunner:working-directory
key slapgrid_cp slaprunner:slapgrid_cp
key slapgrid_sr slaprunner:slapgrid_sr
key slapproxy slaprunner:slapproxy
key software_root runnerdirectory:software-root
key ssh_client slaprunner:ssh_client
key supervisor slaprunner:supervisor
key supervisord_config slaprunner:supd-temp-var
key verbose slaprunner:verbose
[shellinabox] [shellinabox]
recipe = slapos.cookbook:shellinabox recipe = slapos.cookbook:shellinabox
...@@ -591,10 +579,6 @@ cert = $${slap-connection:cert-file} ...@@ -591,10 +579,6 @@ cert = $${slap-connection:cert-file}
[public] [public]
shell-password = $${shellinabox-code:passwd} shell-password = $${shellinabox-code:passwd}
[private]
recipe = slapos.cookbook:zeroknown.write
filename = knowledge0.cfg
recovery-code = $${recovery-code:passwd} recovery-code = $${recovery-code:passwd}
[zero-parameters] [zero-parameters]
...@@ -64,22 +64,5 @@ http { ...@@ -64,22 +64,5 @@ http {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Host $http_host;
} }
location /public/ {
root {{ param_nginx_frontend['work_dir'] }};
index index.html index.htm;
}
location /share {
rewrite ^/share / break;
auth_basic "Restricted";
auth_basic_user_file {{ param_nginx_frontend['etc_dir'] }}/.htpasswd;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
root {{ param_nginx_frontend['work_dir'] }};
create_full_put_path on;
}
} }
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"properties": { "properties": {
"authorized-key": { "user-authorized-key": {
"description" : "SSH public key in order to connect to the SSH server of this runner instance", "description" : "SSH public key in order to connect to the SSH server of this runner instance",
"type": "string" "type": "string"
}, },
...@@ -13,9 +13,10 @@ ...@@ -13,9 +13,10 @@
"slapos-software": { "slapos-software": {
"description": "a relative path from the slapos git repo to a folder containing a software release, which will be automaticaly deployed while the runner instanciation, and only if the parameter auto-deploy is set to 'true'. For example: 'software/helloworld", "description": "a relative path from the slapos git repo to a folder containing a software release, which will be automaticaly deployed while the runner instanciation, and only if the parameter auto-deploy is set to 'true'. For example: 'software/helloworld",
"type": "string" "type": "string"
}, "auto-deploy": { "description": "authorizes the software declared with 'slapos-software' to be automatically deployed, or not", },
"auto-deploy": { "description": "authorizes the software declared with 'slapos-software' to be automatically deployed, or not",
"type": "boolean", "type": "boolean",
"default": "true" "default": "false"
}, },
"slapos-repository": { "slapos-repository": {
"description": "url of the default git repository that will be download by the runner while its instanciation. Will be cloned in a directory named 'slapos'", "description": "url of the default git repository that will be download by the runner while its instanciation. Will be cloned in a directory named 'slapos'",
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# 2/ Define list of trusted certificates for the cache. # 2/ Define list of trusted certificates for the cache.
[buildout] [buildout]
extends = development.cfg extends = common.cfg
[networkcache] [networkcache]
# signature certificates of the following uploaders. # signature certificates of the following uploaders.
...@@ -187,7 +187,7 @@ apache-libcloud = 0.11.4 ...@@ -187,7 +187,7 @@ apache-libcloud = 0.11.4
async = 0.6.1 async = 0.6.1
buildout-versions = 1.7 buildout-versions = 1.7
cliff = 1.4 cliff = 1.4
cmd2 = 0.6.6 cmd2 = 0.6.4
cns.recipe.symlink = 0.2.3 cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0 collective.recipe.environment = 0.2.0
collective.recipe.template = 1.10 collective.recipe.template = 1.10
...@@ -205,14 +205,14 @@ pycrypto = 2.6 ...@@ -205,14 +205,14 @@ pycrypto = 2.6
pytz = 2013.7 pytz = 2013.7
rdiff-backup = 1.0.5 rdiff-backup = 1.0.5
requests = 1.2.3 requests = 1.2.3
slapos.cookbook = 0.85 slapos.cookbook = 0.87
slapos.core = 0.35.1 slapos.core = 1.0.5
slapos.libnetworkcache = 0.13.4 slapos.libnetworkcache = 0.13.4
slapos.recipe.build = 0.11.5 slapos.recipe.build = 0.11.5
slapos.recipe.cmmi = 0.2 slapos.recipe.cmmi = 0.2
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.39 slapos.toolbox = 0.39.1
smmap = 0.8.2 smmap = 0.8.2
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1 z3c.recipe.scripts = 1.0.1
......
[slapos] [slapos]
software_root = {{ software_root }} software_root = {{ slaprunner['software_root'] }}
instance_root = {{instance_root }} instance_root = {{ slaprunner['instance_root'] }}
master_url = http://{{ ipv4 }}:{{ proxy_port }} master_url = http://{{ slaprunner['ipv4'] }}:{{ slaprunner['proxy_port'] }}
computer_id = slaprunner computer_id = slaprunner
maximal_delay = 0 maximal_delay = 0
root_check = {{ slaprunner['root_check'] }}
[slapformat] [slapformat]
partition_amount = {{ partition_amount }} partition_amount = {{ slaprunner['partition-amount'] }}
[slaprunner] [slaprunner]
slapgrid_sr = {{ slapgrid_sr }} slapos = {{ slaprunner['slapos'] }}
slapgrid_cp = {{ slapgrid_cp }} slapos_cfg = {{ slaprunner['slapos.cfg'] }}
slapproxy = {{ slapproxy }} slapproxy = {{ slaprunner['slapproxy'] }}
supervisor = {{ supervisor }} supervisor = {{ slaprunner['supervisor'] }}
supervisord_config = {{ supervisord_config }} supervisord_config = {{ slaprunner['supervisord_config'] }}
runner_workdir = {{ runner_workdir }} runner_workdir = {{ slaprunner['working-directory'] }}
runner_host = {{ ipv4 }} runner_host = {{ slaprunner['ipv4'] }}
runner_port = {{ runner_port }} runner_port = {{ slaprunner['runner_port'] }}
instance_monitoring_url = {{ instance_monitoring_url }} instance_monitoring_url = {{ slaprunner['instance-monitor-url'] }}
ipv4_address = {{ ipv4 }} ipv4_address = {{ slaprunner['ipv4'] }}
ipv6_address = {{ ipv6 }} ipv6_address = {{ slaprunner['ipv6'] }}
etc_dir = {{ etc_dir }} etc_dir = {{ slaprunner['etc_dir'] }}
run_dir = {{ run_dir }} run_dir = {{ slaprunner['run_dir'] }}
log_dir = {{ log_dir }} log_dir = {{ slaprunner['log_dir'] }}
console = {{ console }} console = {{ slaprunner['console'] }}
verbose = {{ verbose }} verbose = {{ slaprunner['verbose'] }}
debug = {{ debug }} debug = {{ slaprunner['debug'] }}
auto_deploy = {{ auto_deploy }} auto_deploy = {{ slaprunner['auto_deploy'] }}
auto_deploy_instance = {{ auto_deploy_instance }} auto_deploy_instance = {{ slaprunner['auto_deploy_instance'] }}
autorun = {{ autorun }} autorun = {{ slaprunner['autorun'] }}
knowledge0_cfg = {{ slaprunner['knowledge0_file'] }}
[slapproxy] [slapproxy]
host = {{ proxy_host }} host = {{ slaprunner['ipv4'] }}
port = {{ proxy_port }} port = {{ slaprunner['proxy_port'] }}
database_uri = {{ proxy_database }} database_uri = {{ slaprunner['proxy_database'] }}
[sshkeys_authority] [sshkeys_authority]
ssh_client = {{ ssh_client }} ssh_client = {{ slaprunner['ssh_client'] }}
public_key = {{ public_key }} public_key = {{ slaprunner['public_key'] }}
private_key = {{ private_key }} private_key = {{ slaprunner['private_key'] }}
[gitclient] [gitclient]
git = {{ git }} git = {{ slaprunner['git-binary'] }}
[cloud9_IDE]
...@@ -105,7 +105,7 @@ cmd2 = 0.6.7 ...@@ -105,7 +105,7 @@ cmd2 = 0.6.7
cryptography = 0.3 cryptography = 0.3
inotifyx = 0.2.0-1 inotifyx = 0.2.0-1
itsdangerous = 0.24 itsdangerous = 0.24
lxml = 3.3.4 lxml = 3.3.5
meld3 = 1.0.0 meld3 = 1.0.0
mr.developer = 1.30 mr.developer = 1.30
netaddr = 0.7.11 netaddr = 0.7.11
...@@ -119,7 +119,7 @@ pytz = 2014.2 ...@@ -119,7 +119,7 @@ pytz = 2014.2
rdiff-backup = 1.0.5 rdiff-backup = 1.0.5
requests = 2.2.1 requests = 2.2.1
six = 1.6.1 six = 1.6.1
slapos.core = 1.0.4 slapos.core = 1.0.5
slapos.recipe.build = 0.12 slapos.recipe.build = 0.12
slapos.recipe.cmmi = 0.2 slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5 slapos.recipe.template = 2.5
...@@ -128,7 +128,7 @@ supervisor = 3.0 ...@@ -128,7 +128,7 @@ supervisor = 3.0
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
# Required by: # Required by:
# slapos.core==1.0.4 # slapos.core==1.0.5
Flask = 0.10.1 Flask = 0.10.1
# Required by: # Required by:
...@@ -145,7 +145,7 @@ argparse = 1.1 ...@@ -145,7 +145,7 @@ argparse = 1.1
erp5.util = 0.4.38 erp5.util = 0.4.38
# Required by: # Required by:
# slapos.cookbook==0.85 # slapos.cookbook==0.87
lock-file = 2.0 lock-file = 2.0
# Required by: # Required by:
...@@ -154,5 +154,5 @@ pycparser = 2.10 ...@@ -154,5 +154,5 @@ pycparser = 2.10
# Required by: # Required by:
# cloudooo==1.2.5-dev # cloudooo==1.2.5-dev
# slapos.core==1.0.4 # slapos.core==1.0.5
zope.interface = 4.1.1 zope.interface = 4.1.1
...@@ -48,7 +48,7 @@ recipe = slapos.recipe.template ...@@ -48,7 +48,7 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/monitor.cfg.in url = ${:_profile_base_location_}/monitor.cfg.in
output = ${buildout:directory}/monitor.cfg output = ${buildout:directory}/monitor.cfg
filename = monitor.cfg filename = monitor.cfg
md5sum = feeca02cd409457b7ee61697f2eb3eef md5sum = 4db2be5e8cabb5dd1d23743e0db5b02a
mode = 0644 mode = 0644
[monitor-bin] [monitor-bin]
...@@ -95,7 +95,7 @@ mode = 0644 ...@@ -95,7 +95,7 @@ mode = 0644
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
download-only = true download-only = true
md5sum = 916f37f083b1ef391adea2f7a717bf8a md5sum = 427d5135ca475f2a4c4e69a0da6ed8c4
filename = status2rss.py filename = status2rss.py
mode = 0644 mode = 0644
......
...@@ -83,7 +83,6 @@ command = $${make-rss:output} ...@@ -83,7 +83,6 @@ command = $${make-rss:output}
[setup-static-files] [setup-static-files]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = ${download-static-files:destination}/${download-static-files:filename} url = ${download-static-files:destination}/${download-static-files:filename}
md5sum = e98585b85634de48240b2c215e946769
filename = static filename = static
destination = $${directory:www} destination = $${directory:www}
ignore-existing = true ignore-existing = true
...@@ -108,7 +107,6 @@ url = ${index-template:location}/$${:filename} ...@@ -108,7 +107,6 @@ url = ${index-template:location}/$${:filename}
destination = $${directory:www} destination = $${directory:www}
filename = ${index-template:filename} filename = ${index-template:filename}
download-only = true download-only = true
md5sum = aa375a4225e2587b22f68c28cafd7871
mode = 0644 mode = 0644
[deploy-status-cgi] [deploy-status-cgi]
...@@ -150,7 +148,6 @@ recipe = hexagonit.recipe.download ...@@ -150,7 +148,6 @@ recipe = hexagonit.recipe.download
url = ${rss-bin:destination}/${rss-bin:filename} url = ${rss-bin:destination}/${rss-bin:filename}
destination = $${directory:bin} destination = $${directory:bin}
filename = ${rss-bin:filename} filename = ${rss-bin:filename}
md5sum = 916f37f083b1ef391adea2f7a717bf8a
mode = 0744 mode = 0744
download-only = true download-only = true
...@@ -158,7 +155,6 @@ download-only = true ...@@ -158,7 +155,6 @@ download-only = true
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${make-rss-script:output} url = ${make-rss-script:output}
output = $${directory:bin}/make-rss.sh output = $${directory:bin}/make-rss.sh
md5sum = 8d3a4b212784b591316b8b93d6bd163e
mode = 0744 mode = 0744
[cadirectory] [cadirectory]
...@@ -194,12 +190,12 @@ name = example.com ...@@ -194,12 +190,12 @@ name = example.com
# Deploy a webserver running cgi scripts for monitoring # Deploy a webserver running cgi scripts for monitoring
########### ###########
[public] [public]
recipe = slapos.cookbook:zeroknown.write recipe = slapos.cookbook:zero-knowledge.write
filename = knowledge0.cfg filename = knowledge0.cfg
monitor-password = passwordtochange monitor-password = passwordtochange
[zero-parameters] [zero-parameters]
recipe = slapos.cookbook:zeroknown.read recipe = slapos.cookbook:zero-knowledge.read
filename = $${public:filename} filename = $${public:filename}
# XXX could it be something lighter? # XXX could it be something lighter?
...@@ -248,7 +244,6 @@ input = inline: ...@@ -248,7 +244,6 @@ input = inline:
DirectoryIndex $${deploy-index:filename} DirectoryIndex $${deploy-index:filename}
</Directory> </Directory>
output = $${directory:etc}/cgi-httpd.conf output = $${directory:etc}/cgi-httpd.conf
# md5sum =
listening-ip = $${slap-parameters:ipv6-random} listening-ip = $${slap-parameters:ipv6-random}
# XXX: randomize-me # XXX: randomize-me
htdocs = $${directory:www} htdocs = $${directory:www}
......
import datetime import datetime
import uuid
import PyRSS2Gen import PyRSS2Gen
import sys import sys
from email.utils import parsedate_tz, mktime_tz from email.utils import parsedate_tz, mktime_tz
...@@ -35,6 +34,7 @@ while 1: ...@@ -35,6 +34,7 @@ while 1:
items.append(rss_item) items.append(rss_item)
### Build the rss feed ### Build the rss feed
items.reverse()
rss_feed = PyRSS2Gen.RSS2 ( rss_feed = PyRSS2Gen.RSS2 (
title = TITLE, title = TITLE,
link = LINK, link = LINK,
......
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