os.path.join(data['prerelease_dir'], build_id)
)
+def get_published_repo(repo_path_base, time_stamp):
+ """ Search publised repository
+ Args:
+ repo_path_base (str): the repo location on file systems
+ time_stamp (str): the time stamp of sbumit tag
+ """
+ ret_list = []
+ if os.path.isdir(repo_path_base):
+ for dir_name in os.listdir(repo_path_base):
+ if dir_name.endswith(time_stamp):
+ ret_list.append(os.path.join(repo_path_base, dir_name))
+
+ return ret_list
+
def main(name, action):
"""Script entry point.
Parameters:
project = content.get("project")
build = BuildService(obs_api, obs_user, obs_passwd)
+ # Init backend database
+ redis_host = os.getenv("REDIS_HOST")
+ redis_port = int(os.getenv("REDIS_PORT"))
+ backenddb = BackendDB(redis_host, redis_port)
+
if action == 'create_images':
- # Init backend database
- redis_host = os.getenv("REDIS_HOST")
- redis_port = int(os.getenv("REDIS_PORT"))
- backenddb = BackendDB(redis_host, redis_port)
repo = content.get("repo")
# Check whether all the repos published, we skip it if any one of
make_repo(project, repo, backenddb)
elif action == 'cleanup':
build.cleanup(project, "Cleaned up by %s" % name)
+
+ # Get target project from prerelease project name
+ target_project = ':'.join(project.split(':')[:-1][3:])
+
+ # Get tag time stamp from prerelease project name
+ time_stamp = project.split(':')[-1]
+
+ try:
+ data = backenddb.get_repo_data(target_project)
+ except BackendDBError, err:
+ raise LocalError("Can't get information about project '%s': %s" \
+ % (project, str(err)))
+
+ path_to_prelease_repo = os.path.join(os.getenv('PATH_REPO_BASE', '/srv/download'),
+ data['prerelease_dir'])
+
+ published_repos = get_published_repo(path_to_prelease_repo, time_stamp)
+
+ for repo in published_repos:
+ print 'Removing the repo: %s' %(repo)
+ shutil.rmtree(repo)
+
else:
raise LocalError("Not supported method of pre_release_obs job: %s" \
% action)