Mercurial > kallithea
comparison rhodecode/model/repo.py @ 1749:8ecc6b8229a5 beta
commit less models
- models don't do any commits(with few exceptions)
- all db transactions should be handled by higher level modules like controllers, celery tasks
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 02 Dec 2011 22:31:13 +0200 |
parents | da8ee2ef7f6d |
children | cf51bbfb120e |
comparison
equal
deleted
inserted
replaced
1748:a3ee2611e6e8 | 1749:8ecc6b8229a5 |
---|---|
202 | 202 |
203 if repo_name != new_name: | 203 if repo_name != new_name: |
204 # rename repository | 204 # rename repository |
205 self.__rename_repo(old=repo_name, new=new_name) | 205 self.__rename_repo(old=repo_name, new=new_name) |
206 | 206 |
207 self.sa.commit() | |
208 return cur_repo | 207 return cur_repo |
209 except: | 208 except: |
210 log.error(traceback.format_exc()) | 209 log.error(traceback.format_exc()) |
211 self.sa.rollback() | |
212 raise | 210 raise |
213 | 211 |
214 def create(self, form_data, cur_user, just_db=False, fork=False): | 212 def create(self, form_data, cur_user, just_db=False, fork=False): |
215 from rhodecode.model.scm import ScmModel | 213 from rhodecode.model.scm import ScmModel |
216 | 214 |
310 | 308 |
311 def delete(self, repo): | 309 def delete(self, repo): |
312 try: | 310 try: |
313 self.sa.delete(repo) | 311 self.sa.delete(repo) |
314 self.__delete_repo(repo) | 312 self.__delete_repo(repo) |
315 self.sa.commit() | 313 except: |
316 except: | 314 log.error(traceback.format_exc()) |
317 log.error(traceback.format_exc()) | |
318 self.sa.rollback() | |
319 raise | 315 raise |
320 | 316 |
321 def delete_perm_user(self, form_data, repo_name): | 317 def delete_perm_user(self, form_data, repo_name): |
322 try: | 318 try: |
323 obj = self.sa.query(UserRepoToPerm)\ | 319 obj = self.sa.query(UserRepoToPerm)\ |
324 .filter(UserRepoToPerm.repository \ | 320 .filter(UserRepoToPerm.repository \ |
325 == self.get_by_repo_name(repo_name))\ | 321 == self.get_by_repo_name(repo_name))\ |
326 .filter(UserRepoToPerm.user_id == form_data['user_id']).one() | 322 .filter(UserRepoToPerm.user_id == form_data['user_id']).one() |
327 self.sa.delete(obj) | 323 self.sa.delete(obj) |
328 self.sa.commit() | 324 except: |
329 except: | 325 log.error(traceback.format_exc()) |
330 log.error(traceback.format_exc()) | |
331 self.sa.rollback() | |
332 raise | 326 raise |
333 | 327 |
334 def delete_perm_users_group(self, form_data, repo_name): | 328 def delete_perm_users_group(self, form_data, repo_name): |
335 try: | 329 try: |
336 obj = self.sa.query(UsersGroupRepoToPerm)\ | 330 obj = self.sa.query(UsersGroupRepoToPerm)\ |
337 .filter(UsersGroupRepoToPerm.repository \ | 331 .filter(UsersGroupRepoToPerm.repository \ |
338 == self.get_by_repo_name(repo_name))\ | 332 == self.get_by_repo_name(repo_name))\ |
339 .filter(UsersGroupRepoToPerm.users_group_id | 333 .filter(UsersGroupRepoToPerm.users_group_id |
340 == form_data['users_group_id']).one() | 334 == form_data['users_group_id']).one() |
341 self.sa.delete(obj) | 335 self.sa.delete(obj) |
342 self.sa.commit() | 336 except: |
343 except: | 337 log.error(traceback.format_exc()) |
344 log.error(traceback.format_exc()) | |
345 self.sa.rollback() | |
346 raise | 338 raise |
347 | 339 |
348 def delete_stats(self, repo_name): | 340 def delete_stats(self, repo_name): |
349 """ | 341 """ |
350 removes stats for given repo | 342 removes stats for given repo |
354 try: | 346 try: |
355 obj = self.sa.query(Statistics)\ | 347 obj = self.sa.query(Statistics)\ |
356 .filter(Statistics.repository == \ | 348 .filter(Statistics.repository == \ |
357 self.get_by_repo_name(repo_name)).one() | 349 self.get_by_repo_name(repo_name)).one() |
358 self.sa.delete(obj) | 350 self.sa.delete(obj) |
359 self.sa.commit() | 351 except: |
360 except: | 352 log.error(traceback.format_exc()) |
361 log.error(traceback.format_exc()) | |
362 self.sa.rollback() | |
363 raise | 353 raise |
364 | 354 |
365 def __create_repo(self, repo_name, alias, new_parent_id, clone_uri=False): | 355 def __create_repo(self, repo_name, alias, new_parent_id, clone_uri=False): |
366 """ | 356 """ |
367 makes repository on filesystem. It's group aware means it'll create | 357 makes repository on filesystem. It's group aware means it'll create |
426 | 416 |
427 :param repo: repo object | 417 :param repo: repo object |
428 """ | 418 """ |
429 rm_path = os.path.join(self.repos_path, repo.repo_name) | 419 rm_path = os.path.join(self.repos_path, repo.repo_name) |
430 log.info("Removing %s", rm_path) | 420 log.info("Removing %s", rm_path) |
431 #disable hg/git | 421 # disable hg/git |
432 alias = repo.repo_type | 422 alias = repo.repo_type |
433 shutil.move(os.path.join(rm_path, '.%s' % alias), | 423 shutil.move(os.path.join(rm_path, '.%s' % alias), |
434 os.path.join(rm_path, 'rm__.%s' % alias)) | 424 os.path.join(rm_path, 'rm__.%s' % alias)) |
435 #disable repo | 425 # disable repo |
436 shutil.move(rm_path, os.path.join(self.repos_path, 'rm__%s__%s' \ | 426 shutil.move(rm_path, os.path.join(self.repos_path, 'rm__%s__%s' \ |
437 % (datetime.today()\ | 427 % (datetime.today()\ |
438 .strftime('%Y%m%d_%H%M%S_%f'), | 428 .strftime('%Y%m%d_%H%M%S_%f'), |
439 repo.repo_name))) | 429 repo.repo_name))) |
440 | 430 |