Merge commit 'origin/master' into mead-tmp

Conflicts:
	builder/kojid

Resolved conflict between make_sources option and source_cmd option
This commit is contained in:
Mike McLean 2010-06-18 17:28:37 -04:00
commit 1e3a7f0fef
14 changed files with 312 additions and 147 deletions

View file

@ -135,13 +135,20 @@ class ManagedRepo(object):
#also check dir age. We do this because a repo can be created from an older event
#and should not be removed based solely on that event's timestamp.
mtime = os.stat(path).st_mtime
except OSError:
self.logger.error("Can't stat repo directory: %s" % path)
return True
age = time.time() - max(self.event_ts, mtime)
if age < options.deleted_repo_lifetime:
#XXX should really be called expired_repo_lifetime
return False
except OSError, e:
if e.errno == 2:
# No such file or directory, so the repo either never existed,
# or has already been deleted, so allow it to be marked deleted.
self.logger.info("Repo directory does not exist: %s" % path)
pass
else:
self.logger.error("Can't stat repo directory: %s, %s" % (path, e.strerror))
return False
else:
age = time.time() - max(self.event_ts, mtime)
if age < options.deleted_repo_lifetime:
#XXX should really be called expired_repo_lifetime
return False
self.logger.debug("Attempting to delete repo %s.." % self.repo_id)
if self.state != koji.REPO_EXPIRED:
raise GenericError, "Repo not expired"
@ -248,10 +255,12 @@ class RepoManager(object):
continue
rinfo = session.repoInfo(repo_id)
if rinfo is None:
age = time.time() - dir_ts
if age > 36000:
if not options.ignore_stray_repos:
self.logger.warn("Unexpected directory (no such repo): %s" % repodir)
if not options.ignore_stray_repos:
age = time.time() - dir_ts
if age > options.deleted_repo_lifetime:
count += 1
self.logger.info("Removing unexpected directory (no such repo): %s" % repodir)
safe_rmtree(repodir, strict=False)
continue
if rinfo['tag_name'] != taginfo['name']:
self.logger.warn("Tag name mismatch: %s" % repodir)
@ -351,9 +360,6 @@ class RepoManager(object):
del self.tasks[tag_id]
#TODO [?] - implement a timeout for active tasks?
self.logger.debug("Current tasks: %r" % self.tasks)
if len(self.tasks) >= options.max_repo_tasks:
self.logger.info("Maximum number of repo tasks reached.")
return
self.logger.debug("Updating repos")
self.readCurrentRepos()
#check for stale repos