summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcobbler/cobbler.py29
-rw-r--r--cobbler/item.py2
-rw-r--r--cobbler/item_distro.py2
-rw-r--r--cobbler/item_profile.py2
-rw-r--r--cobbler/item_repo.py2
-rw-r--r--cobbler/item_system.py2
6 files changed, 24 insertions, 15 deletions
diff --git a/cobbler/cobbler.py b/cobbler/cobbler.py
index e999d2d..7d88ccb 100755
--- a/cobbler/cobbler.py
+++ b/cobbler/cobbler.py
@@ -173,21 +173,20 @@ class BootCLI:
# LISTING FUNCTIONS
def list(self,args):
- # FIXME: inefficient
- for d in self.api.distros():
- str = _("distribution : %(distro)s") % { "distro" : d.name }
- print str
- for p in self.api.profiles():
- if p.distro == d.name:
- str = _(" profile : %(profile)s") % { "profile" : p.name }
- print str
- for s in self.api.systems():
- if s.profile == p.name:
- str = _(" system : %(system)s") % { "system" : s.name }
- print str
- for r in self.api.repos():
- str = _("repo : %(repo)s") % { "repo" : r.name }
- print str
+ collection = self.api.distros()
+ self.__tree(collection,0)
+ self.__tree(self.api.repos(),0)
+
+ def __tree(self,collection,level):
+ for item in collection:
+ print _("%(indent)s%(type)s %(name)s") % {
+ "indent" : " " * level,
+ "type" : item.TYPE_NAME,
+ "name" : item.name
+ }
+ kids = item.get_children()
+ if kids is not None and len(kids) > 0:
+ self.__tree(kids,level+1)
def __list_names(self, collection):
names = [ x.name for x in collection]
diff --git a/cobbler/item.py b/cobbler/item.py
index b1ad2d1..52ab9b9 100644
--- a/cobbler/item.py
+++ b/cobbler/item.py
@@ -20,6 +20,8 @@ from rhpl.translate import _, N_, textdomain, utf8
class Item(serializable.Serializable):
+ TYPE_NAME = "generic"
+
def __init__(self,config):
"""
Constructor. Requires a back reference to the Config management object.
diff --git a/cobbler/item_distro.py b/cobbler/item_distro.py
index 85742d6..e804cb9 100644
--- a/cobbler/item_distro.py
+++ b/cobbler/item_distro.py
@@ -24,6 +24,8 @@ from rhpl.translate import _, N_, textdomain, utf8
class Distro(item.Item):
+ TYPE_NAME = _("distro")
+
def clear(self):
"""
Reset this object.
diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py
index 491e346..09358b0 100644
--- a/cobbler/item_profile.py
+++ b/cobbler/item_profile.py
@@ -20,6 +20,8 @@ from rhpl.translate import _, N_, textdomain, utf8
class Profile(item.Item):
+ TYPE_NAME = _("profile")
+
def make_clone(self):
ds = self.to_datastruct()
cloned = Profile(self.config)
diff --git a/cobbler/item_repo.py b/cobbler/item_repo.py
index 585771d..b783264 100644
--- a/cobbler/item_repo.py
+++ b/cobbler/item_repo.py
@@ -19,6 +19,8 @@ from rhpl.translate import _, N_, textdomain, utf8
class Repo(item.Item):
+ ITEM_NAME = _("repo")
+
def make_clone(self):
ds = self.to_datastruct()
cloned = Repo(self.config)
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index baaf2fb..c2242ca 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -20,6 +20,8 @@ from rhpl.translate import _, N_, textdomain, utf8
class System(item.Item):
+ TYPE_NAME = _("system")
+
def make_clone(self):
ds = self.to_datastruct()
cloned = System(self.config)