Moved cleanup to BuildService.
authorEd Bartosh <eduard.bartosh@intel.com>
Fri, 26 Apr 2013 13:32:31 +0000 (16:32 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Fri, 26 Apr 2013 13:48:54 +0000 (16:48 +0300)
As cleanup is used by job_pre_release_gerrit and job_pre_release_obs
it's better to move it to common API. BuildService is a good candidate
for this API.

Change-Id: I1e5c7a7e7612ade64b8249fc7143b72c7f61f57e

common/buildservice.py
job_pre_release_gerrit.py
job_pre_release_obs.py

index 355deb1..33de7b9 100644 (file)
@@ -509,3 +509,8 @@ class BuildService(OSC):
             return json.loads(description)
         except ValueError:
             return {}
+
+    def cleanup(self, obs_project, msg):
+        """Remove pre-release OBS project."""
+        if self.exists(obs_project):
+            return self.delete_project(obs_project, force=True, msg=msg)
index 4e6e7d7..8fe971e 100755 (executable)
@@ -101,15 +101,13 @@ def create(git_url, git_project, git_tag, git_revision, build,
         raise LocalError("Unable to upload _service to %s: %s" % \
                          (obs_project, error))
 
-def cleanup(build, obs_project):
-    """Remove pre-release OBS project."""
-    if build.exists(obs_project):
-        print "Deleting OBS Project %s ..." % obs_project
-        return build.delete_project(obs_project, force=True,
-                                    msg="Cleaned up by job_pre_release")
+def main(name):
+    """
+    Script entry point.
+    Parameters:
+       name - name of the script
 
-def main():
-    """Script entry point."""
+    """
 
     print '---[JOB STARTED]-------------------------'
 
@@ -132,7 +130,7 @@ def main():
         build = BuildService(obs_api, obs_user, obs_passwd)
         if is_ref_deleted(os.getenv("GERRIT_OlDREV"),
                           os.getenv("GERRIT_NEWREV")):
-            rcode = cleanup(build, project)
+            rcode = build.cleanup(project, "Cleaned by %s" % name)
         else:
             url = 'ssh://%s:%s' % (os.getenv('GERRIT_HOSTNAME'),
                                    os.getenv('GERRIT_SSHPORT'))
@@ -144,7 +142,7 @@ def main():
 
 if __name__ == '__main__':
     try:
-        sys.exit(main())
+        sys.exit(main(os.path.basename(sys.argv[0])))
     except LocalError, err:
         print err
         sys.exit(1)
index 1b71af6..ce75170 100755 (executable)
@@ -12,16 +12,11 @@ import re
 from common.tempbuildpkg import ProjectBuildService, ProjectRepository
 from common.tempbuildpkg import BuildData, RepoConf
 from common.buildtrigger import trigger_info, trigger_next
-from testprojects.prerelease import PreRelease, PreRelease2
+from testprojects.prerelease import PreRelease2
 from testprojects.prerelease import get_prerelease_project_name
+from common.buildservice import BuildService
 
 
-def cleanup(prerelease):
-    """Remove pre-release OBS project."""
-    prerelease.cleanup()
-
-    print "OBS Project %s  deleted" % prerelease.obs_project
-
 def create_images(prerelease):
     """Create images using live prerelease repository."""
     linked, depended = prerelease.get_parent_project()
@@ -92,9 +87,10 @@ def create_images(prerelease):
             trigger_next('%s/image_trigger_%s' %(os.getenv('WORKSPACE'), index),
                          image_info)
 
-def main(action):
+def main(name, action):
     """Script entry point.
        Parameters:
+          name - name of the script
           action - cleanup or create_images
     """
 
@@ -103,21 +99,21 @@ def main(action):
     obs_api = os.getenv("OBS_API_URL")
     obs_user = os.getenv("OBS_API_USERNAME")
     obs_passwd = os.getenv("OBS_API_PASSWD")
-    git_project = os.getenv("GIT_PROJECT")
     content = trigger_info(os.getenv("TRIGGER_INFO"))
     obs_target_prj = content.get('OBS_REQ_PRJ')
     git_tag = content.get("GIT_TAG")
+
     project = get_prerelease_project_name(obs_target_prj, obs_user, git_tag)
-    projectbuild = ProjectBuildService(project, obs_api, obs_user, obs_passwd)
+
     if action == 'create_images':
+        projectbuild = ProjectBuildService(project, obs_api, obs_user, obs_passwd)
         prerelease = PreRelease2(project, projectbuild)
         create_images(prerelease)
     elif action == 'cleanup':
-        prerelease = PreRelease(obs_target_prj, obs_user,
-                                git_tag, git_project, projectbuild)
-        cleanup(prerelease)
+        build = BuildService(obs_api, obs_user, obs_passwd)
+        build.cleanup(project, "Cleaned up by %s" % name)
     else:
         print "Not supported method of Pre-release jobs:", action
 
 if __name__ == '__main__':
-    sys.exit(main(sys.argv[1]))
+    sys.exit(main(os.path.basename(sys.argv[0]), sys.argv[1]))