Use ImageVersion class in download_image.py 95/76395/4
authorAleksander Mistewicz <a.mistewicz@samsung.com>
Thu, 23 Jun 2016 15:31:19 +0000 (17:31 +0200)
committerAleksander Mistewicz <a.mistewicz@samsung.com>
Mon, 11 Jul 2016 08:29:42 +0000 (10:29 +0200)
It replaces ImageDownloader.extract_nr()

Change-Id: Ie7f0dd85dff387daf1774dcb067b3245b6ba21cf
Signed-off-by: Aleksander Mistewicz <a.mistewicz@samsung.com>
tsp/scripts/download_image.py

index a8938c1..28d1803 100755 (executable)
@@ -26,7 +26,7 @@ import re
 import urllib2
 import argparse
 
-__version__ = "0.1.1"
+__version__ = "0.1.2"
 __license__ = "APACHE-2.0"
 __author__ = "Aleksander Mistewicz"
 __author_email__ = "a.mistewicz@samsung.com"
@@ -105,16 +105,20 @@ class ImageDownloader:
 
     def __init__(self, url):
         self.url = url
-        self.snap_nr, self.pre_nr = self.extract_nr()
+
+        img_ver = ImageVersion(url)
+        self.snap_nr = img_ver.get_snapshot()
+        self.ver_nr = img_ver.get_version()
+        self.is_prerelease = img_ver.is_prerelease()
 
         odroid_common_boot_prefix = self.url + self.BASE_ARM_WAYLAND + self.BOOT_NAME
         self.odroid_boot_path = odroid_common_boot_prefix \
-                + "/tizen-common_" + self.snap_nr + "." + self.pre_nr + "_" + self.BOOT_NAME
+                + "/tizen-common_" + self.ver_nr + "_" + self.BOOT_NAME
         self.odroid_boot_path_md5 = odroid_common_boot_prefix + "/MD5SUMS"
 
         odroid_common_usr_prefix = self.url + self.BASE_ARM_WAYLAND + self.USR_NAME
         self.odroid_usr_path = odroid_common_usr_prefix \
-                + "/tizen-common_" + self.snap_nr + "." + self.pre_nr + "_" + self.USR_NAME
+                + "/tizen-common_" + self.ver_nr + "_" + self.USR_NAME
         self.odroid_usr_path_md5 = odroid_common_usr_prefix + "/MD5SUMS"
         self.odroid_snap_pkgs = "http://download.tizen.org/snapshots/tizen/common/tizen-common_" \
                 + self.snap_nr + "/" + self.BASE_ARM_WAYLAND + self.USR_NAME \
@@ -122,27 +126,22 @@ class ImageDownloader:
 
         minnow_common_ia32_prefix = self.url + self.BASE_IA32_WAYLAND + self.IA32_NAME
         self.minnow_usr_path = minnow_common_ia32_prefix \
-                + "/tizen-common_" + self.snap_nr + "." + self.pre_nr + "_" + self.IA32_NAME
+                + "/tizen-common_" + self.ver_nr + "_" + self.IA32_NAME
         self.minnow_usr_path_md5 = minnow_common_ia32_prefix + "/MD5SUMS"
         self.minnow_snap_pkgs = "http://download.tizen.org/snapshots/tizen/common/tizen-common_" \
                 + self.snap_nr + "/" + self.BASE_IA32_WAYLAND + self.IA32_NAME \
                 + "/tizen-common_" + self.snap_nr + "_" + self.IA32_NAME + ".packages"
 
-        print self.snap_nr, self.pre_nr
+        print self.snap_nr, self.ver_nr
         print self.odroid_boot_path
         print self.odroid_usr_path
 
     def create_projectconf(self, filename, arch, target):
         print "Create project.conf file for: " + arch + ' ' + target
-        prjconf = [ "tizen-common_" + self.snap_nr + '.' + self.pre_nr, arch, target ]
+        prjconf = [ "tizen-common_" + self.ver_nr, arch, target ]
         with open(filename, 'w') as f:
             f.write('\n'.join(prjconf) + '\n')
 
-    def extract_nr(self):
-        print "Extracting url: " + self.url
-        nr = re.findall(r'\d{8}\.\d+', self.url)
-        return nr[0], nr[2]
-
     def fetch_url(self, url):
         print "Fetching: " + url
         target = Fetcher(url)
@@ -168,6 +167,11 @@ class ImageDownloader:
             f.write(s)
         return ret
 
+    def write_diff_for_snapshot(self, filename):
+        print "Write diff for snapshot image"
+        with open(filename, 'w') as f:
+            f.write('Snapshot')
+
     def check_md5(self, url):
         print "Checking md5sum"
         md5_file = "md5sums"
@@ -194,20 +198,30 @@ class ImageDownloader:
     def odroid(self):
         print "Downloading images for: odroid"
         self.create_projectconf("project-odroid.conf", "armv7l", "Odroid U3")
-        if not self.check_diff("diff-odroid.report", self.fetch_url(self.odroid_usr_path + ".packages"), \
+        diff_report_filename="diff-odroid.report"
+        if not self.is_prerelease:
+            self.write_diff_for_snapshot(diff_report_filename)
+        else:
+            if self.check_diff(diff_report_filename, self.fetch_url(self.odroid_usr_path + ".packages"), \
                 self.fetch_url(self.odroid_snap_pkgs)):
-            print "Downloading images..."
-            self.get([self.odroid_boot_path + ".tar.gz"], self.odroid_boot_path_md5)
-            self.get([self.odroid_usr_path + ".tar.gz"], self.odroid_usr_path_md5)
+                return
+        print "Downloading images..."
+        self.get([self.odroid_boot_path + ".tar.gz"], self.odroid_boot_path_md5)
+        self.get([self.odroid_usr_path + ".tar.gz"], self.odroid_usr_path_md5)
 
     def minnow(self):
         print "Downloading images for: minnowboard"
         self.create_projectconf("project-minnow.conf", "i586/x86_64", "MinnowboardMax")
-        if not self.check_diff("diff-minnow.report", self.fetch_url(self.minnow_usr_path + ".packages"), \
+        diff_report_filename="diff-minnow.report"
+        if not self.is_prerelease:
+            self.write_diff_for_snapshot(diff_report_filename)
+        else:
+            if self.check_diff(diff_report_filename, self.fetch_url(self.minnow_usr_path + ".packages"), \
                 self.fetch_url(self.minnow_snap_pkgs)):
-            print "Downloading images..."
-            self.get([self.minnow_usr_path + "-sda.raw.bz2", self.minnow_usr_path + "-sda.bmap"], \
-                    self.minnow_usr_path_md5)
+                return
+        print "Downloading images..."
+        self.get([self.minnow_usr_path + "-sda.raw.bz2", self.minnow_usr_path + "-sda.bmap"], \
+                self.minnow_usr_path_md5)
 
 def parse_arguments():
     """parse_arguments() -> args