Changeset 180 for cleverbox/trunk/cleverbox
- Timestamp:
- 08/13/07 19:30:27 (5 years ago)
- Location:
- cleverbox/trunk/cleverbox
- Files:
-
- 2 modified
-
environment.py (modified) (5 diffs)
-
scripts/admin.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cleverbox/trunk/cleverbox/environment.py
r178 r180 1 import os, shutil, ConfigParser.SafeConfigParser 1 import os, shutil, stat 2 import ConfigParser 2 3 from pkg_resources import parse_version 3 4 from cleverbox.utils.termcolors import colorize, make_style 5 6 layout = ('clients-available', 'clients-enabled', 7 'projects-available', 'projects-enabled', 8 'profiles/default') 9 10 profile_files = ('project.apache.conf', 'trac-defaults.ini', 'permissions.ini') 4 11 5 12 class Environment: 6 13 7 14 path = '' 8 9 layout = ('clients-available', 'clients-enabled',10 'projects-available', 'projects-enabled',11 'profiles/default')12 13 profile_files = ('project.apache.conf', 'trac-defaults.ini', 'permissions.ini')14 15 15 16 def __init__(self, envdir): 16 17 self.path = envdir 17 18 self.config = ConfigParser.SafeConfigParser() 18 self.config.read(self.get_ file_path('cleverbox.ini'))19 self.config.read(self.get_path('cleverbox.ini')) 19 20 20 21 def create(self, version, parameters): … … 22 23 Creates a cleverbox environment. 23 24 """ 24 25 26 # Do not do anything if base directories is not empty 27 if (len(os.listdir(self.path))): 28 raise IOError, '"%s" directory is not empty' % self.path 29 30 if (len(os.listdir(parameters['general']['clients_root']))): 31 raise IOError, '"%s" directory is not empty' % self.path 32 25 33 # Create cleverbox.ini 26 for section_name, section_directives in parameters:34 for (section_name, section_directives) in parameters.items(): 27 35 self.config.add_section(section_name) 28 for k, v in section_directives:36 for (k, v) in section_directives.items(): 29 37 self.config.set(section_name, k, v) 30 38 … … 35 43 env_dirs = [] 36 44 for dirname in layout: 37 env_dirs.append( os.path.join(self.env.path, dirname))45 env_dirs.append(self.get_path(dirname)) 38 46 map( os.makedirs, env_dirs ) 39 47 … … 41 49 try: 42 50 print "\n\tCreating VERSION file\n" 43 fd = open( os.path.join(self.env.path, 'VERSION'), 'w')44 fd.write( _version)51 fd = open(self.get_path('VERSION'), 'w') 52 fd.write(version) 45 53 finally: 46 54 fd.close() … … 49 57 print "\n\tCreating default configuration profile\n" 50 58 for filename in profile_files: 51 shutil.copy(collected_infos['assets_dir'] + '/' + filename, os.path.join(self.env.path, 'profiles', 'default')) 59 shutil.copy( 60 os.path.join(parameters['general']['assets_dir'], filename), 61 os.path.join(self.get_path('profiles'), 'default')) 52 62 53 63 # Write cleverbox.ini to disk 54 self.config.write(open(self.get_ file_path('cleverbox.ini'), 'w+'))64 self.config.write(open(self.get_path('cleverbox.ini'), 'w+')) 55 65 56 except IOError, ioexception:57 print ioexception66 except Exception, exception: 67 print exception 58 68 print "** Environment couldn't be initialized in %(env_dir)s\n" % {'env_dir' : self.env.path} 69 print "Rolling back changes" 70 for entry in os.listdir(self.path): 71 path = os.path.join(self.path, entry) 72 stats = os.stat(path) 73 if (stat.S_ISDIR(stats[stat.ST_MODE])): 74 os.rmdir(path) 75 else: 76 os.remove(path) 59 77 60 78 -
cleverbox/trunk/cleverbox/scripts/admin.py
r179 r180 1 1 # -*- coding: utf-8 -*- 2 2 3 import shutil, cmd, os, shlex, sys, traceback, re, ConfigParser, posix 3 import shutil, cmd, os, shlex, sys, traceback, re 4 import ConfigParser, posix 4 5 from pkg_resources import parse_version 5 6 from trac import util … … 10 11 11 12 _defaults = { 12 'env_dir_layout' : ('clients-available', 'clients-enabled',13 'projects-available', 'projects-enabled',14 'profiles/default'),15 13 'client_dir_layout' : ('htdocs', 'logs', 'tmp', 'uploads', 16 'var/svn', 'var/trac'), 17 'profile_files' : ('project.apache.conf', 'trac-defaults.ini', 'permissions.ini') 14 'var/svn', 'var/trac') 18 15 } 19 16 … … 92 89 raise 93 90 except Exception, e: 94 print >> sys.stderr, 'Command failed: %s' % e91 print >> sys.stderr, style.ERROR('Command failed: %s' % e) 95 92 rv = 2 96 93 if not self.interactive:
