Commit 15ee5871 authored by Łukasz Nowak's avatar Łukasz Nowak

- drop zope_amount parameter and change to use specialised amount of

   nodes
 - drop more parameters from global dictionary


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@44107 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 825f832b
......@@ -4,13 +4,13 @@ The slapos.recipe.erp5 aims to instanciate an ERP5 environnment
SLAP parameters
---------------
zope_amount
~~~~~~~~~~~
activity_node_amount, login_node_amount, keyauth_node_amount
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Optional: Yes
:Type: integer
:Default: None
:Description: If present switches to Zope/ZEO configuration and configures this amount of Zopes connected to ZEO. If not present only one Zope with own ZODB is created.
:Description: If any of those is present Zope/Zeo cluster is being created with specialised nodes. Oherwise one simple Zope instance with own ZODB is created.
ca_*
~~~~
......
......@@ -108,14 +108,32 @@ class Recipe(BaseSlapRecipe):
CONFIG['zodb_root_path'] = os.path.join(zodb_dir,
CONFIG['zodb_root_filename'])
url_list = []
if 'zope_amount' in self.parameter_dict:
if 'activity_node_amount' in self.parameter_dict or \
'login_node_amount' in self.parameter_dict or \
'keyauth_node_amount' in self.parameter_dict:
self.installZeo()
for i in xrange(1, int(self.parameter_dict.get('zope_amount')) + 1):
url_list.append(self.installZope(ip=self.getLocalIPv4Address(),
port=12000 + i, name='zope_%s' % i, simple_zope=False))
common_kw = dict(
zeo_address='%s:%s' % (CONFIG['zeo_ip'], CONFIG['zeo_port']),
zeo_storagename=CONFIG['zeo_storagename'],
ip=self.getLocalIPv4Address())
port = 12001
distribution_list = [self.installZope(port=port, name='zope_distribution', **common_kw)]
activity_list = []
for i in xrange(1, int(self.parameter_dict.get('activity_node_amount', 0)) + 1):
port += 1
activity_list.append(self.installZope(port=port, name='zope_activity_%s' % i, **common_kw))
login_list = []
for i in xrange(1, int(self.parameter_dict.get('login_node_amount', 0)) + 1):
port += 1
login_list.append(self.installZope(port=port, name='zope_login_%s' % i, **common_kw))
keyauth_list = []
for i in xrange(1, int(self.parameter_dict.get('keyauth_node_amount', 0)) + 1):
port += 1
keyauth_list.append(self.installZope(port=port, name='keyauth_login_%s' % i, **common_kw))
url_list = activity_list + login_list + keyauth_list + distribution_list
else:
url_list.append(self.installZope(ip=self.getLocalIPv4Address(),
port=12000 + 1, name='zope_%s' % 1, simple_zope=True))
port=12000 + 1, name='zope_%s' % 1, zodb_root_path=CONFIG['zodb_root_path']))
self.installHaproxy(ip=self.getGlobalIPv6Address(), port='15000',
name='login', url_list=url_list)
......@@ -414,14 +432,16 @@ class Recipe(BaseSlapRecipe):
)[0]
self.path_list.append(wrapper)
def installZope(self, ip, port, name, simple_zope):
def installZope(self, ip, port, name, zeo_address=None, zeo_storagename=None,
zodb_root_path=None):
# Create zope configuration file
zope_config = dict(
products=self.options['products'],
zeo_ip=CONFIG['zeo_ip'],
zeo_port=CONFIG['zeo_port'],
zeo_storagename=CONFIG['zeo_storagename'],
)
if zeo_address is not None and zeo_storagename is not None:
zope_config.update(zeo_address=zeo_address, zeo_storagename=zeo_storagename)
elif zodb_root_path is not None:
zope_config.update(zodb_root_path=zodb_root_path)
zope_config['instance'] = self.erp5_directory
zope_config['event_log'] = os.path.join(self.log_directory,
'%s-event.log' % name)
......@@ -445,7 +465,7 @@ class Recipe(BaseSlapRecipe):
zope_config['path'] = ':'.join([self.bin_directory] +
os.environ['PATH'].split(':'))
if simple_zope:
if zeo_address is None:
zope_wrapper_template_location = self.getTemplateFilename(
'zope.conf.simple.in')
else:
......
......@@ -46,7 +46,7 @@ lock-filename %(lock-filename)s
<zodb_db main>
mount-point /
<zeoclient>
server %(zeo_ip)s:%(zeo_port)s
server %(zeo_address)s
storage %(zeo_storagename)s
name %(zeo_storagename)s
</zeoclient>
......
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