Commit 3f4ab596 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

Merge remote-tracking branch 'origin/master' into erp5-cluster

parents 428e4939 328800d5
......@@ -24,10 +24,10 @@ depends =
${liberation-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-64 = http://download-installer.cdn.mozilla.net/pub/firefox/releases/${:version}/linux-x86_64/en-US/firefox-${:version}.tar.bz2 8264fda486828d925aa094de902eb182
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 9e6117e8e421ee2dd5aeb9b788da5224
script =
if not self.options.get('url'): self.options['url'], self.options['md5sum'] = self.options[guessPlatform()].split(' ')
......
......@@ -56,11 +56,8 @@ environment =
# mroonga - a storage engine for MySQL. It provides fast fulltext search feature to all MySQL users.
# http://mroonga.github.com/
recipe = slapos.recipe.cmmi
url = http://packages.groonga.org/source/mroonga/mroonga-4.01.tar.gz
md5sum = 7081aed69e715fb4b0b8f65b0d8d99f1
patch-options = -p1
patches =
${:_profile_base_location_}/mroonga-4.01-mariadb-10.0.10.patch#f229aca89b6223c43add5f2bd5f5d359
url = http://packages.groonga.org/source/mroonga/mroonga-4.02.tar.gz
md5sum = aebd30a3cec90182ee474693216ac1dc
configure-options =
--with-mysql-source=${mariadb:location}__compile__/mariadb-${mariadb:version}
--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
[pycrypto-python]
recipe = zc.recipe.egg:custom
egg = pycrypto
environment = pycrypto-python-env
include-dirs =
${gmp:location}/include
library-dirs =
......@@ -17,6 +18,10 @@ library-dirs =
rpath =
${gmp:location}/lib
[pycrypto-python-env]
ac_cv_func_malloc_0_nonnull = yes
LDFLAGS = -L${gmp:location}/lib
CPPFLAGS = -I${gmp:location}/include
[versions]
# pycrypto 2.4 does not work with setuptools/buildout
pycrypto = 2.3
pycrypto = 2.6.1
......@@ -123,19 +123,19 @@ setuptools = 1.4.2
pyOpenSSL = 0.13.1
Jinja2 = 2.7.2
MarkupSafe = 0.19
MarkupSafe = 0.21
Werkzeug = 0.9.4
buildout-versions = 1.7
cmd2 = 0.6.7
collective.recipe.template = 1.11
itsdangerous = 0.24
lxml = 3.3.4
lxml = 3.3.5
meld3 = 1.0.0
mr.developer = 1.30
netaddr = 0.7.11
pyparsing = 2.0.2
six = 1.6.1
slapos.core = 1.0.4
slapos.core = 1.0.5
slapos.libnetworkcache = 0.14.1
slapos.recipe.cmmi = 0.2
stevedore = 0.15
......@@ -143,25 +143,25 @@ xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
Flask = 0.10.1
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
cliff = 1.6.1
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
netifaces = 0.8-1
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
requests = 2.2.1
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
supervisor = 3.0
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
zope.interface = 4.1.1
......@@ -127,8 +127,8 @@ configure-options =
--disable-static
--disable-specs
--without-xmlto
--without-xsltproc
--without-fop
XEXT_LIBS=-lX11
[inputproto]
recipe = slapos.recipe.cmmi
......
......@@ -28,7 +28,7 @@ from setuptools import setup, find_packages
import glob
import os
version = '0.85'
version = '0.87'
name = 'slapos.cookbook'
long_description = open("README.txt").read() + "\n" + \
open("CHANGES.txt").read() + "\n"
......@@ -207,8 +207,8 @@ setup(name=name,
'zabbixagent = slapos.recipe.zabbixagent:Recipe',
'zimbra.kvm = slapos.recipe.zimbra_kvm:Recipe',
'zeo = slapos.recipe.zeo:Recipe',
'zeroknown.read = slapos.recipe.zeroknown:ReadRecipe',
'zeroknown.write = slapos.recipe.zeroknown:WriteRecipe'
'zero-knowledge.read = slapos.recipe.zero_knowledge:ReadRecipe',
'zero-knowledge.write = slapos.recipe.zero_knowledge:WriteRecipe'
],
'slapos.recipe.nosqltestbed.plugin': [
'kumo = slapos.recipe.nosqltestbed.kumo:KumoTestBed',
......
......@@ -71,7 +71,9 @@ class ExportRecipe(GenericBaseRecipe):
done
}
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
rm %(backup-directory)s/runner/software/*
fi
......@@ -120,14 +122,9 @@ class ImportRecipe(GenericBaseRecipe):
done
}
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
ifs=$IFS IFS=';'
read user pass remaining < %(etc-directory)s/.users
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
restore_element %(backup-directory)s/etc/ %(etc-directory)s config.json ssh
cp -r %(backup-directory)s/etc/.??* %(etc-directory)s;
%(curl-binary)s --insecure -vg6L --max-time 5 %(backend-url)s/isSRReady;
""" % self.options)
self.createExecutable(wrapper, content=content)
......
......@@ -186,68 +186,62 @@ pytz =
setuptools = 2.2
Jinja2 = 2.7.2
MarkupSafe = 0.18
MarkupSafe = 0.21
PyXML = 0.8.5
Pygments = 1.6
Werkzeug = 0.9.4
buildout-versions = 1.7
cffi = 0.8.1
cffi = 0.8.2
cmd2 = 0.6.7
cryptography = 0.2.1
erp5.util = 0.4.36
cryptography = 0.3
erp5.util = 0.4.38
inotifyx = 0.2.0-1
itsdangerous = 0.23
lxml = 3.3.0
meld3 = 0.6.10
netaddr = 0.7.10
itsdangerous = 0.24
lxml = 3.3.5
meld3 = 1.0.0
mr.developer = 1.30
netaddr = 0.7.11
plone.recipe.command = 1.1
psutil = 1.2.1
psutil = 2.1.0
pyOpenSSL = 0.14
pyparsing = 2.0.1
pytz = 2013.9
slapos.core = 1.0.2.1
slapos.libnetworkcache = 0.13.4
pyparsing = 2.0.2
pytz = 2014.2
six = 1.6.1
slapos.core = 1.0.5
slapos.libnetworkcache = 0.14.1
slapos.recipe.build = 0.12
slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5
stevedore = 0.15
xml-marshaller = 0.9.7
# Required by:
# slapos.core==1.0.2.1
# slapos.core==1.0.5
Flask = 0.10.1
# Required by:
# slapos.core==1.0.2.1
bpython = 0.12
# slapos.core==1.0.5
cliff = 1.6.1
# Required by:
# slapos.core==1.0.2.1
cliff = 1.5.2
# slapos.cookbook==0.85
lock-file = 2.0
# Required by:
# slapos.core==1.0.2.1
ipython = 1.2.0
# Required by:
# slapos.core==1.0.2.1
# slapos.core==1.0.5
netifaces = 0.8-1
# Required by:
# slapos.core==1.0.2.1
requests = 2.2.1
# Required by:
# cliff==1.5.2
six = 1.5.2
# cffi==0.8.2
pycparser = 2.10
# Required by:
# cliff==1.5.2
stevedore = 0.14.1
# slapos.core==1.0.5
requests = 2.2.1
# Required by:
# slapos.core==1.0.2.1
# slapos.core==1.0.5
supervisor = 3.0
# Required by:
# slapos.core==1.0.2.1
zope.interface = 4.1.0
# slapos.core==1.0.5
zope.interface = 4.1.1
......@@ -50,30 +50,81 @@ mode = 0644
# pin version of setuptools
setuptools = 2.2
Flask = 0.10.1
Jinja2 = 2.7.2
MarkupSafe = 0.19
MarkupSafe = 0.21
Werkzeug = 0.9.4
buildout-versions = 1.7
cliff = 1.6.0
cffi = 0.8.2
cmd2 = 0.6.7
inotifyx = 0.2.0-1
cryptography = 0.3
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
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
# Required by:
# slapos.core==1.0.5
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
# Required by:
# slapos.core==1.0.5
requests = 2.2.1
six = 1.6.1
slapos.cookbook = 0.85
slapos.core = 1.0.3
slapos.recipe.cmmi = 0.2
stevedore = 0.15
# Required by:
# slapos.cookbook==0.87
slapos.core = 1.0.5
# Required by:
# slapos.core==1.0.5
supervisor = 3.0
# Required by:
# slapos.cookbook==0.87
xml-marshaller = 0.9.7
# Required by:
# slapos.core==1.0.5
zope.interface = 4.1.1
[networkcache]
......
......@@ -10,7 +10,7 @@ Slaprunner is an all-in-one IDE used to develop and test profiles and recipes fo
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.
......@@ -19,7 +19,7 @@ Example of parameter XML::
<?xml version="1.0" encoding="utf-8"?>
<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-amount
......
......@@ -37,34 +37,34 @@ parts =
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/template.cfg
#md5sum = 8a47421ac6158b4ee476acab212c67d9
md5sum = 8a47421ac6158b4ee476acab212c67d9
mode = 0644
[template-runner]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner.cfg
output = ${buildout:directory}/template-runner.cfg.in
md5sum = c66f18b74b958805bb2196fb1c54683e
md5sum = 9f32b1bcd32e90950ee94e8d41dfdcd7
mode = 0644
[instance-runner-import]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-import.cfg.in
output = ${buildout:directory}/instance-runner-import.cfg
md5sum = e1769596ef62f6db6bbfca4391e740c0
md5sum = 202c40bcca67d70a3c79d218be853b10
mode = 0644
[instance-runner-export]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-export.cfg.in
output = ${buildout:directory}/instance-runner-export.cfg
md5sum = b7664995a6dd954f4f214252ffeaaa61
md5sum = a8815402e2d65c0a9cda53492b70d175
mode = 0644
[template-resilient]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/instance-resilient.cfg.jinja2
md5sum = a9647ae3c99308b85dd72fae76ef071f
md5sum = e5c7e445d0103b5e73aedb43fac681dd
filename = instance-resilient.cfg.jinja2
mode = 0644
......@@ -72,7 +72,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/instance-resilient-test.cfg.jinja2
download-only = true
#md5sum = b231383bb63edc0009fb6e0ff5c54d8e
md5sum = 07241952e1dce8688b2da5c1a14c3e6a
filename = instance-resilient-test.cfg.jinja2
mode = 0644
......@@ -80,7 +80,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/nginx_conf.in
download-only = true
md5sum = fa66988e96bb712c0580b5fb90f95700
md5sum = 67d2ce92b4ad6dca6eaf69eeb2c2734c
filename = nginx_conf.in
mode = 0644
......@@ -88,14 +88,14 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/httpd_conf.in
download-only = true
md5sum = 0b63a652d1d51e0894a780896fce9893
md5sum = 47ba63d87a7fdc91568581226f0063f6
filename = httpd_conf.in
mode = 0644
[template_launcher]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/launcher.in
#md5sum = c7f8b6e9ae84aa94686a9cbaaa3dd693
md5sum = c7f8b6e9ae84aa94686a9cbaaa3dd693
filename = launcher.in
mode = 0644
location = ${buildout:parts-directory}/${:_buildout_section_name_}
......@@ -103,7 +103,7 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
[slapos-cfg-template]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/${:filename}
md5sum = d31d1c51a51bc4b2b8dda197777a4bcb
md5sum = 788795524769f6d946526ac282508b69
location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = slapos.cfg.in
download-only = true
......
......@@ -8,32 +8,44 @@
[buildout]
extends = common.cfg
parts +=
slapos.cookbook-repository
# slapos.toolbox-repository
# erp5.util-repository
parts =
# Development eggs
slapos.toolbox-repository
# slapos.cookbook-repository
# slapos.core-repository
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 =
${:parts-directory}/slapos.toolbox-repository
${:parts-directory}/slapos.cookbook-repository
# ${:parts-directory}/erp5.util-repository
# ${:parts-directory}/slapos.cookbook-repository
# ${:parts-directory}/slapos.core-repository
# ${:parts-directory}/erp5.util-repository
[slapos.toolbox-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.toolbox.git
#branch = slaprunner-paas
revision = 399dc9f60967593bad0a16dcccf3bec487fc0a8f
branch = slaprunner-paas
#revision = 2de7ba00a75e73cae2d6b71f7266f6261416b057
git-executable = ${git:location}/bin/git
[slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git
branch = master
branch = slaprunner-paas
git-executable = ${git:location}/bin/git
# Used for resiliency tests only
......@@ -44,19 +56,19 @@ repository = http://git.erp5.org/repos/erp5.git
revision = f9a812f4e97ffeed359bc5611366a5c8675ec749
git-executable = ${git:location}/bin/git
#[slapos.core-repository]
#recipe = slapos.recipe.build:gitclone
#repository = http://git.erp5.org/repos/slapos.core.git
#branch = master
#git-executable = ${git:location}/bin/git
#
[slapos.core-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.core.git
branch = master
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 &&
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}/slapos.core.egg-link &&
......@@ -22,6 +22,8 @@ LoadModule alias_module modules/mod_alias.so
LoadModule env_module modules/mod_env.so
LoadModule rewrite_module modules/mod_rewrite.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 }}"
LogFormat "%h %l %u %t \"%r\" %>s %b" common
......@@ -40,6 +42,27 @@ SSLHonorCipherOrder On
SSLCipherSuite RC4-SHA:HIGH:!ADH
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 }}
SetEnv GIT_PROJECT_ROOT {{ parameters.project_folder }}
......
......@@ -42,13 +42,13 @@ software-url = ${slap-connection:software-release-url}
software-type = resilient
name = Resilient Instance (Root Instance)
{% 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() -%}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
config-resiliency-backup-periodicity = * * * * *
config-resiliency-backup-periodicity = */6 * * * *
# 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
sla = computer_guid
sla-computer_guid = ${slap-connection:computer-id}
......
# 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 'replicated' as replicated %}
......
......@@ -10,7 +10,6 @@ parts +=
ca-shellinabox
gunicorn-launcher
gunicorn-graceful
test-runner
sshkeys-dropbear-runner
dropbear-server-add-authorized-key
sshkeys-authority
......@@ -18,7 +17,7 @@ parts +=
slaprunner-promise
slaprunner-frontend-promise
dropbear-promise
private
runtestsuite
shellinabox-promise
symlinks
shellinabox
......
......@@ -10,13 +10,12 @@ parts +=
ca-shellinabox
gunicorn-launcher
gunicorn-graceful
test-runner
sshkeys-dropbear-runner
dropbear-server-add-authorized-key
sshkeys-authority
slaprunner-promise
dropbear-promise
private
runtestsuite
shellinabox-promise
shellinabox
symlinks
......
......@@ -7,7 +7,6 @@ parts =
ca-shellinabox
gunicorn-launcher
gunicorn-graceful
test-runner
sshkeys-dropbear-runner
dropbear-server-add-authorized-key
sshkeys-authority
......@@ -15,7 +14,7 @@ parts =
slaprunner-promise
slaprunner-frontend-promise
dropbear-promise
private
runtestsuite
shellinabox-promise
symlinks
shellinabox
......@@ -138,16 +137,16 @@ bytes = 8
[slaprunner]
slaprunner = ${buildout:directory}/bin/slaprunner
slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr
slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp
slapos = ${buildout:directory}/bin/slapos
slapproxy = ${buildout:directory}/bin/slapproxy
supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl
git-binary = ${git:location}/bin/git
root_check = false
slapos.cfg = $${directory:etc}/slapos.cfg
working-directory = $${runnerdirectory:home}
project-directory = $${runnerdirectory:project}
software-directory = $${runnerdirectory:software-root}
instance-directory = $${runnerdirectory:instance-root}
instance_root = $${runnerdirectory:instance-root}
software_root = $${runnerdirectory:software-root}
#XXX-Nico hardcoded default port because overridden by this buildout config
instance-monitor-url = https://[$${:ipv6}]:9685
etc_dir = $${directory:etc}
......@@ -158,31 +157,38 @@ public_key = $${sshkeys-dropbear-runner:public-key}
private_key = $${sshkeys-dropbear-runner:private-key}
ipv4 = $${slap-network-information:local-ipv4}
ipv6 = $${slap-network-information:global-ipv6}
instance_root = $${runnerdirectory:instance-root}
proxy_port = 50000
runner_port = 50005
partition-amount = $${slap-parameter:instance-amount}
wrapper = $${directory:services}/slaprunner
debug = $${slap-parameter:debug}
access-url = https://[$${:ipv6}]:$${:runner_port}
supd-temp-var = $${directory:etc}/supervisord.conf
prox-db-var = $${slaprunner:working-directory}/proxy.db
supervisord_config = $${directory:etc}/supervisord.conf
proxy_database = $${slaprunner:working-directory}/proxy.db
console = False
verbose = 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]
<= slaprunner
recipe = slapos.cookbook:slaprunner.test
slaprunnertest = ${buildout:directory}/bin/slaprunnertest
slapos.cfg = $${directory:etc}/slapos-test.cfg
working-directory = $${runnerdirectory:test}
project-directory = $${runnerdirectory:project-test}
software-directory = $${runnerdirectory:software-test}
instance-directory = $${runnerdirectory:instance-test}
proxy_port = 8602
wrapper = $${directory:bin}/runTestSuite
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)
[sshkeys-directory]
......@@ -220,7 +226,7 @@ wrapper = $${directory:services}/runner_sshd
[dropbear-server-add-authorized-key]
<= dropbear-runner-server
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}
working_directory = $${slaprunner:working-directory}
dav_lock = $${directory:var}/DavLock
etc_dir = $${directory:etc}
var_dir = $${directory:var}
document_root = $${directory:www}
project_folder = $${directory:project}
runner_home = $${runnerdirectory:home}
git_http_backend = ${git:location}/libexec/git-core/git-http-backend
cgi_httpd_conf = $${cgi-httpd-configuration-file:output}
......@@ -417,9 +425,11 @@ backend_url = $${slaprunner:access-url}
access_url = $${:url}/login
url = https://$${request-frontend:connection-domain}
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}
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
[slap-parameter]
# Default value if no ssh key is specified
authorized-key =
user-authorized-key =
# Default value of instances number in slaprunner
instance-amount = 10
debug = false
......@@ -479,37 +489,15 @@ template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename}
rendered = $${slaprunner:slapos.cfg}
mode = 700
context =
key software_root runnerdirectory:software-root
key instance_root runnerdirectory:instance-root
key auto_deploy slap-parameter:auto-deploy
key auto_deploy_instance slap-parameter:auto-deploy-instance
key autorun slap-parameter:autorun
key console slaprunner:console
key debug slaprunner:debug
key etc_dir slaprunner:etc_dir
key git slaprunner:git-binary
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
section slaprunner slaprunner
[slapos-test-cfg]
recipe = slapos.recipe.template:jinja2
template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename}
rendered = $${test-runner:slapos.cfg}
mode = 700
context =
section slaprunner test-runner
[shellinabox]
recipe = slapos.cookbook:shellinabox
......@@ -591,10 +579,6 @@ cert = $${slap-connection:cert-file}
[public]
shell-password = $${shellinabox-code:passwd}
[private]
recipe = slapos.cookbook:zeroknown.write
filename = knowledge0.cfg
recovery-code = $${recovery-code:passwd}
[zero-parameters]
......@@ -64,22 +64,5 @@ http {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
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#",
"properties": {
"authorized-key": {
"user-authorized-key": {
"description" : "SSH public key in order to connect to the SSH server of this runner instance",
"type": "string"
},
......@@ -13,9 +13,10 @@
"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",
"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",
"default": "true"
"default": "false"
},
"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'",
......
......@@ -5,7 +5,7 @@
# 2/ Define list of trusted certificates for the cache.
[buildout]
extends = development.cfg
extends = common.cfg
[networkcache]
# signature certificates of the following uploaders.
......@@ -187,7 +187,7 @@ apache-libcloud = 0.11.4
async = 0.6.1
buildout-versions = 1.7
cliff = 1.4
cmd2 = 0.6.6
cmd2 = 0.6.4
cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0
collective.recipe.template = 1.10
......@@ -205,14 +205,14 @@ pycrypto = 2.6
pytz = 2013.7
rdiff-backup = 1.0.5
requests = 1.2.3
slapos.cookbook = 0.85
slapos.core = 0.35.1
slapos.cookbook = 0.87
slapos.core = 1.0.5
slapos.libnetworkcache = 0.13.4
slapos.recipe.build = 0.11.5
slapos.recipe.cmmi = 0.2
slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.4.2
slapos.toolbox = 0.39
slapos.toolbox = 0.39.1
smmap = 0.8.2
xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1
......
[slapos]
software_root = {{ software_root }}
instance_root = {{instance_root }}
master_url = http://{{ ipv4 }}:{{ proxy_port }}
software_root = {{ slaprunner['software_root'] }}
instance_root = {{ slaprunner['instance_root'] }}
master_url = http://{{ slaprunner['ipv4'] }}:{{ slaprunner['proxy_port'] }}
computer_id = slaprunner
maximal_delay = 0
root_check = {{ slaprunner['root_check'] }}
[slapformat]
partition_amount = {{ partition_amount }}
partition_amount = {{ slaprunner['partition-amount'] }}
[slaprunner]
slapgrid_sr = {{ slapgrid_sr }}
slapgrid_cp = {{ slapgrid_cp }}
slapproxy = {{ slapproxy }}
supervisor = {{ supervisor }}
supervisord_config = {{ supervisord_config }}
runner_workdir = {{ runner_workdir }}
runner_host = {{ ipv4 }}
runner_port = {{ runner_port }}
instance_monitoring_url = {{ instance_monitoring_url }}
ipv4_address = {{ ipv4 }}
ipv6_address = {{ ipv6 }}
etc_dir = {{ etc_dir }}
run_dir = {{ run_dir }}
log_dir = {{ log_dir }}
console = {{ console }}
verbose = {{ verbose }}
debug = {{ debug }}
auto_deploy = {{ auto_deploy }}
auto_deploy_instance = {{ auto_deploy_instance }}
autorun = {{ autorun }}
slapos = {{ slaprunner['slapos'] }}
slapos_cfg = {{ slaprunner['slapos.cfg'] }}
slapproxy = {{ slaprunner['slapproxy'] }}
supervisor = {{ slaprunner['supervisor'] }}
supervisord_config = {{ slaprunner['supervisord_config'] }}
runner_workdir = {{ slaprunner['working-directory'] }}
runner_host = {{ slaprunner['ipv4'] }}
runner_port = {{ slaprunner['runner_port'] }}
instance_monitoring_url = {{ slaprunner['instance-monitor-url'] }}
ipv4_address = {{ slaprunner['ipv4'] }}
ipv6_address = {{ slaprunner['ipv6'] }}
etc_dir = {{ slaprunner['etc_dir'] }}
run_dir = {{ slaprunner['run_dir'] }}
log_dir = {{ slaprunner['log_dir'] }}
console = {{ slaprunner['console'] }}
verbose = {{ slaprunner['verbose'] }}
debug = {{ slaprunner['debug'] }}
auto_deploy = {{ slaprunner['auto_deploy'] }}
auto_deploy_instance = {{ slaprunner['auto_deploy_instance'] }}
autorun = {{ slaprunner['autorun'] }}
knowledge0_cfg = {{ slaprunner['knowledge0_file'] }}
[slapproxy]
host = {{ proxy_host }}
port = {{ proxy_port }}
database_uri = {{ proxy_database }}
host = {{ slaprunner['ipv4'] }}
port = {{ slaprunner['proxy_port'] }}
database_uri = {{ slaprunner['proxy_database'] }}
[sshkeys_authority]
ssh_client = {{ ssh_client }}
public_key = {{ public_key }}
private_key = {{ private_key }}
ssh_client = {{ slaprunner['ssh_client'] }}
public_key = {{ slaprunner['public_key'] }}
private_key = {{ slaprunner['private_key'] }}
[gitclient]
git = {{ git }}
[cloud9_IDE]
git = {{ slaprunner['git-binary'] }}
......@@ -105,7 +105,7 @@ cmd2 = 0.6.7
cryptography = 0.3
inotifyx = 0.2.0-1
itsdangerous = 0.24
lxml = 3.3.4
lxml = 3.3.5
meld3 = 1.0.0
mr.developer = 1.30
netaddr = 0.7.11
......@@ -119,7 +119,7 @@ pytz = 2014.2
rdiff-backup = 1.0.5
requests = 2.2.1
six = 1.6.1
slapos.core = 1.0.4
slapos.core = 1.0.5
slapos.recipe.build = 0.12
slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5
......@@ -128,7 +128,7 @@ supervisor = 3.0
xml-marshaller = 0.9.7
# Required by:
# slapos.core==1.0.4
# slapos.core==1.0.5
Flask = 0.10.1
# Required by:
......@@ -145,7 +145,7 @@ argparse = 1.1
erp5.util = 0.4.38
# Required by:
# slapos.cookbook==0.85
# slapos.cookbook==0.87
lock-file = 2.0
# Required by:
......@@ -154,5 +154,5 @@ pycparser = 2.10
# Required by:
# cloudooo==1.2.5-dev
# slapos.core==1.0.4
# slapos.core==1.0.5
zope.interface = 4.1.1
......@@ -48,7 +48,7 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/monitor.cfg.in
output = ${buildout:directory}/monitor.cfg
filename = monitor.cfg
md5sum = feeca02cd409457b7ee61697f2eb3eef
md5sum = 4db2be5e8cabb5dd1d23743e0db5b02a
mode = 0644
[monitor-bin]
......@@ -95,7 +95,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
download-only = true
md5sum = 916f37f083b1ef391adea2f7a717bf8a
md5sum = 427d5135ca475f2a4c4e69a0da6ed8c4
filename = status2rss.py
mode = 0644
......
......@@ -83,7 +83,6 @@ command = $${make-rss:output}
[setup-static-files]
recipe = hexagonit.recipe.download
url = ${download-static-files:destination}/${download-static-files:filename}
md5sum = e98585b85634de48240b2c215e946769
filename = static
destination = $${directory:www}
ignore-existing = true
......@@ -108,7 +107,6 @@ url = ${index-template:location}/$${:filename}
destination = $${directory:www}
filename = ${index-template:filename}
download-only = true
md5sum = aa375a4225e2587b22f68c28cafd7871
mode = 0644
[deploy-status-cgi]
......@@ -150,7 +148,6 @@ recipe = hexagonit.recipe.download
url = ${rss-bin:destination}/${rss-bin:filename}
destination = $${directory:bin}
filename = ${rss-bin:filename}
md5sum = 916f37f083b1ef391adea2f7a717bf8a
mode = 0744
download-only = true
......@@ -158,7 +155,6 @@ download-only = true
recipe = slapos.recipe.template
url = ${make-rss-script:output}
output = $${directory:bin}/make-rss.sh
md5sum = 8d3a4b212784b591316b8b93d6bd163e
mode = 0744
[cadirectory]
......@@ -194,12 +190,12 @@ name = example.com
# Deploy a webserver running cgi scripts for monitoring
###########
[public]
recipe = slapos.cookbook:zeroknown.write
recipe = slapos.cookbook:zero-knowledge.write
filename = knowledge0.cfg
monitor-password = passwordtochange
[zero-parameters]
recipe = slapos.cookbook:zeroknown.read
recipe = slapos.cookbook:zero-knowledge.read
filename = $${public:filename}
# XXX could it be something lighter?
......@@ -248,7 +244,6 @@ input = inline:
DirectoryIndex $${deploy-index:filename}
</Directory>
output = $${directory:etc}/cgi-httpd.conf
# md5sum =
listening-ip = $${slap-parameters:ipv6-random}
# XXX: randomize-me
htdocs = $${directory:www}
......
import datetime
import uuid
import PyRSS2Gen
import sys
from email.utils import parsedate_tz, mktime_tz
......@@ -35,6 +34,7 @@ while 1:
items.append(rss_item)
### Build the rss feed
items.reverse()
rss_feed = PyRSS2Gen.RSS2 (
title = TITLE,
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