Job syncsnapdiff use hard code to search last buildid
authorLiu jue <juex.liu@intel.com>
Fri, 25 Jul 2014 07:42:42 +0000 (15:42 +0800)
committerLin Yang <lin.a.yang@intel.com>
Mon, 28 Jul 2014 04:31:06 +0000 (12:31 +0800)
1.Add exception log
2.Use release name instead of the hard code for searching
  last build id

Fixes #2054

Change-Id: Iaec84cc6e706b6465c1a1998548b183543095f7a

job_sync_snapdiff.py

index 90c3b00..48d51df 100755 (executable)
@@ -23,7 +23,7 @@ from common.buildtrigger import trigger_info
 from common.utils import sync
 
 
-def search_last_build(build_url, released=False):
+def search_last_build(build_url, release_name, released=False):
     """Search the lastest build in build_url.
 
     :param build_url: build url contains builds.
@@ -32,9 +32,11 @@ def search_last_build(build_url, released=False):
     """
     res = requests.get(build_url)
     if res.status_code != 200:
+        print 'access build_url: %s , error: %s' %(build_url, res.status_code)
         return
     soup = bs4.BeautifulSoup(res.text)
-    pattern = re.compile('^tizen_[0-9]{8}.[0-9]+/$')
+    pattern_re = '^%s_[0-9]{8}.[0-9]+/$' % release_name
+    pattern = re.compile(pattern_re)
     builds = [i.text for i in soup.find_all(href=pattern)]
     if not builds:
         print "Not find the any snapshot in %s, skip" % build_url
@@ -49,7 +51,7 @@ def search_last_build(build_url, released=False):
 
     return os.path.join(build_url, last_build) if last_build else None
 
-def get_last_build(url_pub_base, repo_path):
+def get_last_build(url_pub_base, repo_path, release_name):
     """Return the second lastest build.
 
     :param url_pub_base: the public base url.
@@ -57,7 +59,7 @@ def get_last_build(url_pub_base, repo_path):
     :return: path. the second lastest build url.
     """
     last_build_url = os.path.join(url_pub_base, repo_path[:repo_path.rfind('/')])
-    return search_last_build(last_build_url)
+    return search_last_build(last_build_url, release_name)
 
 def get_released_build(release_base, repo_path):
     """Return the lastest released build.
@@ -126,6 +128,9 @@ def main():
 
     url_pub_base = content[0]['url_pub_base']
     repo_path = content[0]['repo_path']
+    build_id = content[0]['buildid']
+    release_name, release_id = re.search(r'(\S*)_(\d{8}\.\d*)', \
+                                         build_id).groups()
 
     diff_root = os.path.join(url_pub_base, repo_path)
     current_repo_url = os.path.join(diff_root, 'repos', repo_name, 'packages')
@@ -134,7 +139,7 @@ def main():
     context['repo'] = []
 
     # generate current and last repo diff
-    last_repo_base = get_last_build(url_pub_base, repo_path)
+    last_repo_base = get_last_build(url_pub_base, repo_path, release_name)
 
     if last_repo_base:
         last_repo_url = os.path.join(last_repo_base, 'repos', repo_name, 'packages')