Changeset 195 for cleverbox/trunk
- Timestamp:
- 08/16/07 19:54:20 (5 years ago)
- Location:
- cleverbox/trunk/cleverbox
- Files:
-
- 5 modified
-
client.py (modified) (2 diffs)
-
environment.py (modified) (3 diffs)
-
tests/__init__.py (modified) (1 diff)
-
tests/client.py (modified) (2 diffs)
-
tests/environment.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cleverbox/trunk/cleverbox/client.py
r194 r195 69 69 70 70 collected_infos['home_dir'] = os.path.join(environment.config.get('general', 'clients_root'), client_name) 71 client_dir = collected_infos['home_dir'] 71 72 72 73 # A few checks before effectively creating client 73 74 # -- homedir 74 parent_dir = os.path.normpath(os.path.join(collected_infos['home_dir'], os.pardir))75 dir_is_ok = os.access(parent_dir, os.W_OK) and os.access(collected_infos['home_dir'], os.R_OK)76 print parent_dir77 if not dir_is_ok:78 raise os.error, "Directory %s is not writable or already exists, aborting." % collected_infos['home_dir']75 # parent_dir = os.path.normpath(os.path.join(collected_infos['home_dir'], os.pardir)) 76 # dir_is_ok = os.access(parent_dir, os.W_OK) and os.access(collected_infos['home_dir'], os.R_OK) 77 # print parent_dir 78 # if not dir_is_ok: 79 # raise os.error, "Directory %s is not writable or already exists, aborting." % collected_infos['home_dir'] 79 80 80 81 # Client creation … … 106 107 107 108 # -- Fix permissions 108 filesystem.chowntree(collected_infos['home_dir'], 109 filesystem.get_uid_from_name(environment.config.get('general', 'ssh_user')), 110 filesystem.get_gid_from_name(environment.config.get('general', 'ssh_group'))) 111 112 os.chown(os.path.join(collected_infos['home_dir'], 'logs'), 113 filesystem.get_uid_from_name(environment.config.get('general', 'ssh_user')), 114 filesystem.get_gid_from_name(environment.config.get('general', 'apache_group')) ) 115 116 os.chmod(os.path.join(collected_infos['home_dir'], 'logs'), 0775) 117 118 os.chown(os.path.join(collected_infos['home_dir'], 'uploads'), 119 filesystem.get_uid_from_name(environment.config.get('general', 'ssh_user')), 120 filesystem.get_gid_from_name(environment.config.get('general', 'apache_group'))) 121 122 os.chmod(os.path.join(collected_infos['home_dir'], 'uploads'), 0775) 123 109 user = environment.config.get('general', 'ssh_user') 110 group = environment.config.get('general', 'apache_group') 111 112 permissions = {os.path.join(environment.path, 'clients-available', client_name) : (0640, user, group), 113 os.path.join(client_dir) : (0750, user, group), 114 os.path.join(client_dir, 'htdocs') : (0770, user, group), 115 os.path.join(client_dir, 'logs') : (0770, user, group), 116 os.path.join(client_dir, 'tmp') : (0770, user, group), 117 os.path.join(client_dir, 'var') : (0750, user, group), 118 os.path.join(client_dir, 'var', 'svn') : (0750, user, group), 119 os.path.join(client_dir, 'var', 'trac') : (0750, user, group)} 120 121 filesystem.set_permissions(permissions) 122 124 123 logging.info(" Fixed permissions in %s" % collected_infos['home_dir']) 125 124 -
cleverbox/trunk/cleverbox/environment.py
r194 r195 54 54 map(os.makedirs, env_dirs) 55 55 56 # Create VERSION file56 # Create VERSION file 57 57 try: 58 58 print 59 logging.info(" Creating VERSION file")60 59 logging.info(" Creating VERSION file") 60 print 61 61 62 62 fd = open(self.get_path('VERSION'), 'w') … … 66 66 67 67 # Create data directory 68 os.makedirs(self.config.get('general', 'clients_root')) 69 os.chmod(self.config.get('general', 'clients_root'), 0750) 70 os.chown(self.config.get('general', 'clients_root'), 71 filesystem.get_gid_from_name('root'), 72 filesystem.get_gid_from_name(parameters['general']['apache_group'])) 68 os.makedirs(self.config.get('general', 'clients_root')) 73 69 74 70 print 75 logging.info(' Created data directory in "%s"' % self.config.get('general', 'clients_root'))76 71 logging.info(' Created data directory in "%s"' % self.config.get('general', 'clients_root')) 72 print 77 73 78 74 # Create default configuration profile … … 89 85 self.config.write(open(self.get_path('cleverbox.ini'), 'w+')) 90 86 91 # Setting permissions 92 for entry in os.listdir(self.path): 93 entry_path = self.get_path(entry) 94 if filesystem.is_file(entry_path): 95 os.chmod(entry_path, 0640) 96 else: 97 os.chmod(entry_path, 0750) 98 99 profile_path = os.path.join(self.get_path('profiles'), 'default') 100 os.chmod(profile_path, 0750) 101 for entry in os.listdir(profile_path): 102 os.chmod(os.path.join(profile_path, entry), 0640) 103 104 filesystem.chowntree(self.path, 0, filesystem.get_gid_from_name(parameters['general']['apache_group'])) 87 # Set permissions 88 permissions = {self.get_path('VERSION') : (0640, 'root', 'www-data'), 89 self.get_path('cleverbox.ini') : (0640, 'root', 'www-data'), 90 self.get_path('clients-available') : (0750, 'root', 'www-data'), 91 self.get_path('clients-enabled') : (0750, 'root', 'www-data'), 92 self.get_path('projects-available') : (0750, 'root', 'www-data'), 93 self.get_path('projects-enabled') : (0750, 'root', 'www-data'), 94 self.get_path('profiles') : (0750, 'root', 'www-data'), 95 self.get_path('profiles/default') : (0750, 'root', 'www-data'), 96 self.get_path('profiles/default/trac-defaults.ini') : (0640, 'root', 'www-data'), 97 self.get_path('profiles/default/project.apache.conf') : (0640, 'root', 'www-data'), 98 self.get_path('profiles/default/permissions.ini') : (0640, 'root', 'www-data'), 99 self.config.get('general', 'clients_root') : (0750, 'root', 'www-data')} 100 101 filesystem.set_permissions(permissions) 105 102 106 103 except Exception, exception: -
cleverbox/trunk/cleverbox/tests/__init__.py
r194 r195 36 36 parameters = {'general' : 37 37 {'clients_root' : os.path.join(test_root, 'var', 'cleverbox'), 38 'assets_dir' : os.path.join('/root/tmp/cleverbox-trunk/assets'), 39 'apache_group' : 'www-data'}} 38 'assets_dir' : os.path.join('/home/trivoallan/workspace/cleverbox-trunk/assets'), 39 'apache_group' : 'www-data', 40 'ssh_user' : 'root', 41 'ssh_group' : 'root'}} 40 42 env.create(version, parameters) 41 43 -
cleverbox/trunk/cleverbox/tests/client.py
r194 r195 20 20 def tearDown(self): 21 21 shutil.rmtree(self.env.path) 22 shutil.rmtree(self.env.config.get('general', 'clients_root')) 22 23 23 24 # client add … … 25 26 client_name = 'testclient' 26 27 client.add(self.env, client_name) 27 client_root = self.env.config.get('general', 'clients_root')28 expected = {os.path.join(self.env.path, 'clients-available') : ('S_ISREG', '0640', 'root', 'www-data'),29 os.path.join(clients_root, client_name): ('S_ISDIR', '0750', 'root', 'www-data'),30 os.path.join(clients_root, client_name, 'htdocs'): ('S_ISDIR', '0770', 'root', 'www-data'),31 os.path.join(clients_root, client_name, 'logs'): ('S_ISDIR', '0770', 'root', 'www-data'),32 os.path.join(clients_root, client_name, 'tmp'): ('S_ISDIR', '0770', 'root', 'www-data'),33 os.path.join(clients_root, client_name, 'var'): ('S_ISDIR', '0750', 'root', 'www-data'),34 os.path.join(clients_root, client_name, 'var', 'svn'): ('S_ISDIR', '0750', 'root', 'www-data'),35 os.path.join(clients_root, client_name, 'var', 'trac'): ('S_ISDIR', '0750', 'root', 'www-data')}28 clients_root = self.env.config.get('general', 'clients_root') 29 expected = {os.path.join(self.env.path, 'clients-available', client_name) : ('S_ISREG', '0640', 'root', 'www-data'), 30 os.path.join(clients_root, client_name) : ('S_ISDIR', '0750', 'root', 'www-data'), 31 os.path.join(clients_root, client_name, 'htdocs') : ('S_ISDIR', '0770', 'root', 'www-data'), 32 os.path.join(clients_root, client_name, 'logs') : ('S_ISDIR', '0770', 'root', 'www-data'), 33 os.path.join(clients_root, client_name, 'tmp') : ('S_ISDIR', '0770', 'root', 'www-data'), 34 os.path.join(clients_root, client_name, 'var') : ('S_ISDIR', '0750', 'root', 'www-data'), 35 os.path.join(clients_root, client_name, 'var', 'svn') : ('S_ISDIR', '0750', 'root', 'www-data'), 36 os.path.join(clients_root, client_name, 'var', 'trac') : ('S_ISDIR', '0750', 'root', 'www-data')} 36 37 37 38 cleverbox.tests.validate_layout(expected) -
cleverbox/trunk/cleverbox/tests/environment.py
r194 r195 14 14 def tearDown(self): 15 15 shutil.rmtree(self.env.path) 16 shutil.rmtree(self.env.config.get('general', 'clients_root'))16 shutil.rmtree(self.env.config.get('general', 'clients_root')) 17 17 18 18 def test_create(self): … … 30 30 self.env.get_path('profiles/default/project.apache.conf') : ('S_ISREG', '0640', 'root', 'www-data'), 31 31 self.env.get_path('profiles/default/permissions.ini') : ('S_ISREG', '0640', 'root', 'www-data'), 32 self.env.config.get('general', 'clients_root') : ('S_ISDIR', '0750', 'root', 'www-data')}32 self.env.config.get('general', 'clients_root') : ('S_ISDIR', '0750', 'root', 'www-data')} 33 33 34 34 cleverbox.tests.validate_layout(expected)
