Reduce amount of information in repa list output
authorEd Bartosh <eduard.bartosh@intel.com>
Sat, 29 Mar 2014 20:15:43 +0000 (22:15 +0200)
committerEd Bartosh <eduard.bartosh@intel.com>
Tue, 1 Apr 2014 08:11:05 +0000 (11:11 +0300)
Repa info will print only small part of information available.
More detailed output will be implemented in repa info mode.

Change-Id: I8e7ba14588f7e550515f0c03cfc84051ee2d962c
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
repa.1
repa/list.py

diff --git a/repa.1 b/repa.1
index 656a1d5b0f0a444a367f1860af742d7554cc1a16..bfd386033e5b0ddbe3e2a50a6afec4124a9122c3 100644 (file)
--- a/repa.1
+++ b/repa.1
@@ -71,32 +71,22 @@ Print short help text and exit.
 .RS 2
 List submissions in the following format:
 
-Submission OBS project projects:  list of projects paths
-    download url: url of prerelease directory on download server
-    obs url: url of prerelease OBS project
-    builds: list of package build statuses from OBS
-    images: list of image build statuses
+<Submission>  <Target OBS Project>  <status>  <list of git paths>
 
-.PP
 Example of output:
 
-submit/tizen/20140225.081506 Tizen:IVI     projects:  platform/core/multimedia/libmm-log
-    download url:  http://download.tizen.org/prerelease/tizen/ivi/ivi/tizen_20140226.8/tizen_20140226.8.20140225.081506/
-    obs url:  https://build.tizen.org/project/show?project=home:prerelease:Tizen:IVI:submit:tizen:20140225.081506
-    builds: failed,succeeded,published
-    images: ivi-min-mbr-i586:success ivi-min-efi-i586:success ivi-mbr-i586-emul:success ivi-efi-i586:success ivi-mbr-i586:success
-
-submit/tizen/20140225.081550 Tizen:IVI     projects:  platform/core/multimedia/avsystem
-    download url:  http://download.tizen.org/prerelease/tizen/ivi/ivi/tizen_20140226.8/tizen_20140226.8.20140225.081550/
-    obs url:  https://build.tizen.org/project/show?project=home:prerelease:Tizen:IVI:submit:tizen:20140225.081550
-    builds: failed,succeeded,published
-    images: ivi-min-efi-i586:success ivi-min-mbr-i586:success ivi-mbr-i586-emul:success ivi-mbr-i586:success ivi-efi-i586:success
-
-submitgroup/tizen/20140226.232740
-    download url:  http://download.tizen.org/prerelease/tizen/ivi/ivi/tizen_20140226.8/tizen_20140226.8.20140226.232740/
-    obs url:  https://build.tizen.org/project/show?project=home:prerelease:Tizen:IVI:submitgroup:tizen:20140226.232740
-    submissions: 20140226.000818 20140226.002927 20140226.000750
-    images: ivi-min-efi-i586:success ivi-min-mbr-i586:success ivi-mbr-i586-emul:success ivi-mbr-i586:success ivi-efi-i586:success
+submit/tizen/20140327.041126          broken source          sdbd
+.RS 0
+submit/tizen/20140327.052722          package build failed   emulator-yagl
+.RS 0
+submit/tizen/20140327.055105          package building       libav zlib
+.RS 0
+submit/tizen/20140327.080733          image building         bluez
+.RS 0
+submit/tizen/20140328.063916          ready                  connman
+.RS 0
+submit/tizen/20140328.080409          ready                  sdbd
+.RS 0
 
 .RE
 
index 37e8d5d5d942f10ff6f51fe913129d8f1af93bbd..5552fa7bfe8b99cfbd82683b03851bac9d1b37c9 100755 (executable)
@@ -30,7 +30,6 @@ Get list of submissions.
 """
 
 import sys
-import os
 import json
 
 from repa.common import OBS_PROJECT_PREFIX
@@ -38,48 +37,28 @@ from repa.obs import OBS
 from repa.main import sub_main
 
 
-def get_status(results):
-    """Gest submission status."""
-    # Process project build results
-    codes = set()
-    for target in results.itervalues():
-        codes.add(target.get('code'))
-        codes.add(target.get('state'))
-        for pkginfo in target['packages']:
-            codes.add(pkginfo[1])
-    status = ','.join(codes) or 'None'
-    return status
-
-
-def show_images(meta):
-    """Helper function to print list of images."""
+def get_status(meta, build_results=None):
+    """Get overall status by analyzing package and image build status."""
+    if build_results:
+        codes = set()
+        for target in build_results.itervalues():
+            codes.add(target.get('code'))
+            codes.add(target.get('state'))
+            for pkginfo in target['packages']:
+                codes.add(pkginfo[1])
+        if 'broken' in codes:
+            return 'broken source'
+        if 'failed' in codes:
+            return 'package build failed'
+        if 'building' in codes:
+            return 'package building'
     if 'images' in meta:
-        print '    images:', ' '.join("%s:%s" % (img['name'], img['status']) \
-                                      for img in meta['images'])
-
-def get_download_url(meta):
-    """Get download url from meta."""
-    if 'download_url' in meta:
-        return meta['download_url']
-    # Guess url from image url if download_url is not in the meta
-    if 'images' not in meta:
-        return
-    for img in meta['images']:
-        return img['url'].split('images')[0]
-
-
-def get_obs_url(meta, buildurl='https://build.tizen.org'):
-    """Get obs project url from meta."""
-    if 'obs_url' in meta:
-        return meta['obs_url']
-    # Make it from git tag and obs_target_prj if obs_url is not in the meta
-    if 'obs_target_prj' not in meta:
-        return
-    if 'name' not in meta and 'git_tag' not in meta:
-        return
-    name = meta.get('git_tag') or meta.get('name')
-    return os.path.join(buildurl, 'project/show?project=home:prerelease:%s:%s' \
-                        % (meta['obs_target_prj'], name.replace('/', ':')))
+        for img in meta['images']:
+            if img['status'] == 'failed':
+                return 'image build failed'
+            if img['status'] == 'building':
+                return 'image building'
+    return 'ready'
 
 
 def list_submissions(obs, regexp, processes):
@@ -93,32 +72,15 @@ def list_submissions(obs, regexp, processes):
         if ':submitgroup:' in project:
             groups.append(meta)
             continue
-        print meta['git_tag'], meta['obs_target_prj'],
-        print '    projects: ', ' '.join(meta['projects'])
-        download_url = get_download_url(meta)
-        if download_url:
-            print '    download url: ', download_url
-        obs_url = get_obs_url(meta)
-        if obs_url:
-            print '    obs url: ', obs_url
-        print "    builds:", get_status(build_results)
-        show_images(meta)
-        print
+        projects = [project.split('/')[-1] for project in meta['projects']]
+        print '%-37s %-22s %s' % (meta['git_tag'], \
+              get_status(meta, build_results), ','.join(projects))
 
     # groups
-    for meta in groups:
-        print meta['name']
-        download_url = get_download_url(meta)
-        if download_url:
-            print '    download url: ', download_url
-        obs_url = get_obs_url(meta)
-        if obs_url:
-            print '    obs url: ', obs_url
-
-        print '    submissions:', ' '.join(subm.split('/')[-1] \
-                                           for subm in meta['submissions'])
-        show_images(meta)
+    if groups:
         print
+        for meta in groups:
+            print '%-37s %-22s' % (meta['name'], get_status(meta))
 
 
 class List(object):