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