[Kimchi-devel] [PATCH V2 2/2] Support ppc64 isos in Templates: Filter remote isos and change UI

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Thu Mar 6 15:08:12 UTC 2014


This patch filters remote isos that should be showed to user by the
system architecture. The UI now shows the architecture of the remote
iso and sort the names of the distros.
If host architecture is not found, all remote ISOs will be showed.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
Signed-off-by: Christy Perez <christy at linux.vnet.ibm.com>
---
 src/kimchi/distroloader.py      | 10 +++++++++-
 src/kimchi/model/config.py      |  2 +-
 ui/pages/template-add.html.tmpl |  8 ++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/kimchi/distroloader.py b/src/kimchi/distroloader.py
index daa5d5b..142cab6 100644
--- a/src/kimchi/distroloader.py
+++ b/src/kimchi/distroloader.py
@@ -28,6 +28,11 @@ from kimchi.exception import NotFoundError, OperationFailed
 from kimchi.utils import kimchi_log
 
 
+ARCHS = {'x86_64': ['x86_64', 'amd64', 'i686', 'x86', 'i386'],
+         'amd64': ['x86_64', 'amd64', 'i686', 'x86', 'i386'],
+         'ppc64': ['ppc', 'ppc64']}
+
+
 class DistroLoader(object):
 
     def __init__(self, location=None):
@@ -49,9 +54,12 @@ class DistroLoader(object):
             raise OperationFailed("KCHDL0002E", msg_args)
 
     def get(self):
+        arch_list = ARCHS.get(os.uname()[4])
         all_json_files = glob.glob("%s/%s" % (self.location, "*.json"))
         distros = []
         for f in all_json_files:
             distros.extend(self._get_json_info(f))
 
-        return dict([(distro['name'], distro) for distro in distros])
+        # Return all remote ISOs arch not found
+        return dict([(distro['name'], distro) for distro in distros if \
+                     (arch_list is None or distro['os_arch'] in arch_list)])
diff --git a/src/kimchi/model/config.py b/src/kimchi/model/config.py
index e201737..5c90f0d 100644
--- a/src/kimchi/model/config.py
+++ b/src/kimchi/model/config.py
@@ -91,7 +91,7 @@ class DistrosModel(object):
         self.distros = distroloader.get()
 
     def get_list(self):
-        return self.distros.keys()
+        return sorted(self.distros.keys())
 
 
 class DistroModel(object):
diff --git a/ui/pages/template-add.html.tmpl b/ui/pages/template-add.html.tmpl
index edce8d2..5c66753 100644
--- a/ui/pages/template-add.html.tmpl
+++ b/ui/pages/template-add.html.tmpl
@@ -158,11 +158,15 @@
                                                 <div class="iso-info-item" title="{os_distro}">
                                                     $_("OS: "){os_distro}
                                                 </div>
-                                            </div>
-                                            <div class="iso-info-col">
                                                 <div class="iso-info-item" title="{os_version}">
                                                     $_("Version: "){os_version}
                                                 </div>
+
+                                            </div>
+                                            <div class="iso-info-col">
+                                                <div class="iso-info-item" title="{os_arch}">
+                                                    $_("Arch: "){os_arch}
+                                                </div>
                                             </div>
                                         </div>
                                     </div>
-- 
1.8.5.3




More information about the Kimchi-devel mailing list