[Erp5-report] r33930 luke - in /erp5/trunk/utils/erp5.timmy/src/erp5/timmy: ./ examples/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 19 20:03:27 CET 2010


Author: luke
Date: Fri Mar 19 20:03:27 2010
New Revision: 33930

URL: http://svn.erp5.org?rev=33930&view=rev
Log:
 - templates are not required - try to find, if not existing, try to continue
 - treat only Zope Instance profile specially
 - do not use template mapping - find template by type name and use naming convention
 - swap main file and controller generation - then we will know what is on with templates

Added:
    erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/zope-instance-template.cfg
      - copied unchanged from r33926, erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg
Removed:
    erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg
Modified:
    erp5/trunk/utils/erp5.timmy/src/erp5/timmy/timmy.py

Removed: erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg?rev=33929&view=auto
==============================================================================
--- erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg [utf8] (original)
+++ erp5/trunk/utils/erp5.timmy/src/erp5/timmy/examples/instance-template.cfg (removed)
@@ -1,31 +1,0 @@
-[%{ID}]
-<= zope-instance-template
-instancehome = ${buildout:var-directory}/%{ID}
-user = %{INSTANCE_ADMIN_USER}:%{INSTANCE_ADMIN_PASSWORD}
-http-address = %{TCP_PORT}
-# Disabled installing of BT5 during site creation
-bt5 =
-bt5-path =
-
-# List of Business Templates which will be installed on running site
-required-bt5 =
- %{BT5_LIST}
-bt5-url =
-
-# TODO: protect fragile information
-mysql_create_database = false
-
-mysql_database_name = %{MYSQL_DATABASE}
-mysql_user = %{MYSQL_USER}
-mysql_password = %{MYSQL_PASSWORD}
-mysql_host = %{MYSQL_HOST}
-mysql_port = %{MYSQL_PORT}
-
-erp5_sql_connection_string = ${:mysql_database_name}@${:mysql_host}:${:mysql_port} ${:mysql_user} ${:mysql_password}
-
-products =
-  ${:instancehome}/Products
-  ${software_definition:products-cmf15}
-  ${software_definition:products-deps}
-  ${software_definition:products-erp5}
-  ${software_definition:products-other}

Modified: erp5/trunk/utils/erp5.timmy/src/erp5/timmy/timmy.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.timmy/src/erp5/timmy/timmy.py?rev=33930&r1=33929&r2=33930&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.timmy/src/erp5/timmy/timmy.py [utf8] (original)
+++ erp5/trunk/utils/erp5.timmy/src/erp5/timmy/timmy.py [utf8] Fri Mar 19 20:03:27 2010
@@ -3,11 +3,6 @@
 from optparse import OptionParser
 import sys
 import socket
-
-REQUIRED_TEMPLATE_LIST = [
-  'instance-template.cfg',
-  'main-template.cfg'
-]
 
 SUPERVISORD = os.path.join('var', 'bin', 'supervisord')
 SUPERVISORCTL = os.path.join('var', 'bin', 'supervisorctl')
@@ -88,12 +83,6 @@
     raise ValueError('File %s is not a directory' %
         os.path.abspath(options.instances_directory))
   missing_template_list = []
-  for filename in REQUIRED_TEMPLATE_LIST:
-    filepath = os.path.join(options.template_directory, filename)
-    if not os.path.exists(filepath):
-      missing_template_list.append(filepath)
-  if missing_template_list:
-    raise ValueError('Missing templates: %s' % ','.join(missing_template_list))
   return options, args
 
 def setRunning(value, pid_file):
@@ -122,7 +111,7 @@
     logging.critical('Timmy could not write pidfile %s' % pid_file)
   else:
     logging.info('Timmy started with the pid %s' % pid)
-  
+
 
 def updateBaseProfile(template_directory, file_output, base_profile,
     instances_directory, instance_dict_list):
@@ -137,22 +126,22 @@
     'INSTANCE_PROFILE_LIST': [],
     'INSTANCE_PART_LIST': []
   }
-  for instance in [q for q in instance_dict_list if q['TYPE'] == 'Mysql Server']:
+  for instance in [q for q in instance_dict_list if q['TYPE'] != 'Zope Instance']:
+    profile_path = os.path.join(instances_directory,
+        '%s.cfg' % instance['ID'])
+    if not os.path.exists(profile_path):
+      logging.warning('Profile %s not generated, ignoring' % profile_path)
+      continue
     replacement_dict['INSTANCE_PROFILE_LIST'].append('%s/%s.cfg' % (
       instances_directory, instance['ID']))
     replacement_dict['INSTANCE_PART_LIST'].append(instance['ID'])
 
-  for instance in [q for q in instance_dict_list if q['TYPE'] == 'Mysql Database']:
-    replacement_dict['INSTANCE_PROFILE_LIST'].append('%s/%s.cfg' % (
-      instances_directory, instance['ID']))
-    replacement_dict['INSTANCE_PART_LIST'].append(instance['ID'])
-
-  for instance in [q for q in instance_dict_list if q['TYPE'] == 'Conversion Server']:
-    replacement_dict['INSTANCE_PROFILE_LIST'].append('%s/%s.cfg' % (
-      instances_directory, instance['ID']))
-    replacement_dict['INSTANCE_PART_LIST'].append(instance['ID'])
-
   for instance in [q for q in instance_dict_list if q['TYPE'] == 'Zope Instance']:
+    profile_path = os.path.join(instances_directory,
+        '%s.cfg' % instance['ID'])
+    if not os.path.exists(profile_path):
+      logging.warning('Profile %s not generated' % profile_path)
+      continue
     replacement_dict['INSTANCE_PROFILE_LIST'].append('%s/%s.cfg' % (
       instances_directory, instance['ID']))
     replacement_dict['INSTANCE_PART_LIST'].append(instance['ID'])
@@ -166,19 +155,14 @@
   out.close()
 
 def updateInstanceProfiles(template_directory, output_directory, instance_dict_list):
-  template_mapping = {
-    'Zope Instance': 'instance-template.cfg',
-    'Mysql Server': 'mysql-server-template.cfg',
-    'Mysql Database': 'mysql-database-template.cfg',
-    'Conversion Server': 'conversion-server-template.cfg',
-  }
   for instance in instance_dict_list:
-    template_name = template_mapping.get(instance['TYPE'], None)
-    if template_name is None:
-      logging.warning('Template for %s not found' % instance['TYPE'])
+    template_name = '%s-template.cfg' % instance['TYPE'].lower()\
+      .replace(' ','-')
+    template_path = os.path.join(template_directory, template_name)
+    if not os.path.exists(template_path):
+      logging.warning('Template for %s not found, ignoring' % instance['TYPE'])
       continue
-    template_data = ''.join(file(os.path.join(template_directory,
-      template_name)).readlines())
+    template_data = ''.join(file(template_path).readlines())
 
     template = PercentTemplate(template_data)
     if 'BT5_LIST' in instance:
@@ -221,7 +205,7 @@
     if plugin_init is None:
       # plugin not supported, create dummy method doing nothing
       logging.warning('Plugin for %s not found, generating dummy one' %
-          self.partition_type)
+          partition_type)
       for method in 'install', 'start', 'stop', 'getPartitionState':
         setattr(self, '%s_%s' % (method, self.partition_type),
             self.notImplemented)
@@ -402,12 +386,12 @@
   
     # prepare - run supervisor
     subprocess.call(SUPERVISORD)
-    # 1a pass - main profile
+    # 1a pass - instance profiles
+    updateInstanceProfiles(options.template_directory,
+        options.instances_directory, partition_dict_list)
+    # 1b pass - main profile
     updateBaseProfile(options.template_directory, options.main_output,
         options.base_profile, options.instances_directory, partition_dict_list)
-    # 1b pass - instance profiles
-    updateInstanceProfiles(options.template_directory,
-        options.instances_directory, partition_dict_list)
     # 2 pass - run buildout
     runBuildout(options.buildout_binary, options.main_output)
   




More information about the Erp5-report mailing list