tools: put repourl and packages url in configuration file
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 12 Apr 2013 08:58:59 +0000 (11:58 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 12 Apr 2013 09:00:37 +0000 (12:00 +0300)
Also change the config file name to .swup.conf.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
tools/updateinfo/create-update.py
tools/updateinfo/swup.conf [new file with mode: 0644]
tools/updateinfo/updateutils.py

index f34757f..8aa27ab 100755 (executable)
@@ -30,25 +30,16 @@ parser.add_option('-P', '--patchdir', metavar='DIR',
 parser.add_option("-o", "--old",  dest="old", metavar="OLD", help="Old snapshot")
 parser.add_option("-n", "--new",  dest="new", metavar="NEW", help="New snapshot")
 parser.add_option("-t", "--type",  dest="type", metavar="TYPE", help="Release type")
-parser.add_option("-i", "--image",  dest="image", metavar="IMAGE", help="Image Name")
+parser.add_option("--product",  help="Product name", default="tzpc")
 parser.add_option("--username",  dest="username", metavar="USERNAME", help="Username for https")
 parser.add_option("--password",  dest="password", metavar="PASSWD", help="Password for https")
 
 (opts, args) = parser.parse_args()
 
-config = read_config('~/.swuprc')
+config = read_config('~/.swup.conf')
 
-DAILY="pc/releases/daily/trunk"
-WEEKLY="pc/releases/weekly/trunk"
-SNAPSHOTS="snapshots/trunk/pc/"
-BASE="https://download.tz.otcshare.org"
-
-if opts.type == "daily":
-    release_url = "%s/%s" %(BASE, DAILY)
-if opts.type == "weekly":
-    release_url = "%s/%s" %(BASE, WEEKLY)
-else:
-    release_url = "%s/%s" %(BASE, SNAPSHOTS)
+if opts.type:
+    config.set(opts.product, 'release-path', config.get(opts.product, opts.type))
 
 credentials = [None, None]
 if opts.username:
@@ -107,17 +98,15 @@ else:
 tmp_dir = tempfile.mkdtemp(dir=".")
 
 # Get packages files
-old_baseurl = "%s/%s" % (release_url, opts.old)
-new_baseurl = "%s/%s" % (release_url, opts.new)
-download("%s/images/%s" % (old_baseurl, opts.image),
-         "%s-%s.packages" % (opts.image, opts.old), credentials, tmp_dir, packages_files_dir, "packages")
-download("%s/images/%s" % (new_baseurl, opts.image),
-         "%s-%s.packages" % (opts.image, opts.new), credentials, target_dir, packages_files_dir, "packages")
+download(config.get(opts.product, 'packages-file', False, {'image-id': opts.old}),
+         credentials, tmp_dir, packages_files_dir, "packages")
+download(config.get(opts.product, 'packages-file', False, {'image-id': opts.new}),
+         credentials, target_dir, packages_files_dir, "packages")
 
 with open(os.path.join(tmp_dir, "repourl"), "w") as repourlfile:
-    repourlfile.write("%s/repos/pc/x86_64/packages/\n" % old_baseurl)
+    repourlfile.write("%s\n" % config.get(opts.product, 'repo-url', False, {'image-id': opts.old}))
 with open(os.path.join(target_dir, "repourl"), "w") as repourlfile:
-    repourlfile.write("%s/repos/pc/x86_64/packages/\n" % new_baseurl)
+    repourlfile.write("%s\n" % config.get(opts.product, 'repo-url', False, {'image-id': opts.new}))
 
 
 repo_dir = create_delta_repo(tmp_dir, target_dir, cached_pkgs_dir, tmp_dir, credentials)
diff --git a/tools/updateinfo/swup.conf b/tools/updateinfo/swup.conf
new file mode 100644 (file)
index 0000000..fb4404d
--- /dev/null
@@ -0,0 +1,24 @@
+[DEFAULT]
+username = 
+password = 
+cache-dir = /var/tmp/swup
+
+[tzpc]
+base-url = https://download.tz.otcshare.org
+image-name = gnome
+
+daily = pc/releases/daily/trunk
+weekly = pc/releases/weekly/trunk
+snapshots = snapshots/trunk/pc
+
+# image-id always comes from the command line
+# here just to remind that this key exists
+#image-id =
+
+release-path = %(snapshot)s
+release-url = %(base-url)s/%(release-path)s
+
+# .packages file
+packages-file = %(release-url)s/%(image-id)s/images/%(image-name)s/%(image-name)s-%(image-id)s.packages
+# url of the rpm repository
+repo-url = %(release-url)s/%(image-id)s/repos/pc/x86_64/packages
index f90acc1..01a9778 100755 (executable)
@@ -22,12 +22,13 @@ def http_get(url, credentials=(None, None)):
     html_page = urllib2.urlopen(request)
     return html_page
 
-def download(url, fname, credentials, outdir, cachedir, target_fname=None):
+def download(url, credentials, outdir, cachedir, target_fname=None):
+    fname = os.path.basename(url)
     cached_file = os.path.join(cachedir, fname)
     if os.path.exists(cached_file):
         print "File cache hit: %s" % fname
     else:
-        ret = http_get(os.path.join(url, fname), credentials)
+        ret = http_get(url, credentials)
         with open(cached_file, "w") as cache:
             cache.write(ret.read())
     if outdir:
@@ -78,14 +79,14 @@ def create_delta_repo(baseline_dir, target_dir, pkg_cache_dir, tmp_dir, credenti
     for p in newpkgs:
         rpm = "%s-%s.%s.rpm" % (p, p2[p]['version'], p2[p]['arch'])
         arch = p2[p]['arch']
-        download("%s/%s" % (new_repourl, arch), rpm, credentials, new_pkgs_dir, pkg_cache_dir)
+        download("%s/%s/%s" % (new_repourl, arch, rpm), credentials, new_pkgs_dir, pkg_cache_dir)
 
     for p in changedpkgs:
         rpm = "%s-%s.%s.rpm" % (p, p1[p]['version'], p1[p]['arch'])
         arch = p1[p]['arch']
-        download("%s/%s" % (old_repourl, arch), rpm, credentials, old_pkgs_dir, pkg_cache_dir)
+        download("%s/%s/%s" % (old_repourl, arch, rpm), credentials, old_pkgs_dir, pkg_cache_dir)
         rpm = "%s-%s.%s.rpm" % (p, p2[p]['version'], p2[p]['arch'])
-        download("%s/%s" % (new_repourl, arch), rpm, credentials, changed_pkgs_dir, pkg_cache_dir)
+        download("%s/%s/%s" % (new_repourl, arch, rpm), credentials, changed_pkgs_dir, pkg_cache_dir)
 
     os.system("createrepo --deltas --oldpackagedirs=%s %s" % (old_pkgs_dir, repo_dir))