summaryrefslogtreecommitdiffstats
path: root/cobbler/item_repo.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/item_repo.py')
-rw-r--r--cobbler/item_repo.py39
1 files changed, 33 insertions, 6 deletions
diff --git a/cobbler/item_repo.py b/cobbler/item_repo.py
index ca9e94f..3b9b839 100644
--- a/cobbler/item_repo.py
+++ b/cobbler/item_repo.py
@@ -15,7 +15,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import utils
import item
from cexceptions import *
-from rhpl.translate import _, N_, textdomain, utf8
+from utils import _
class Repo(item.Item):
@@ -31,6 +31,7 @@ class Repo(item.Item):
def clear(self,is_subobject=False):
self.parent = None
self.name = None
+ # FIXME: subobject code does not really make sense for repos
self.mirror = (None, '<<inherit>>')[is_subobject]
self.keep_updated = ('y', '<<inherit>>')[is_subobject]
self.priority = (99, '<<inherit>>')[is_subobject]
@@ -39,6 +40,8 @@ class Repo(item.Item):
self.depth = 2 # arbitrary, as not really apart of the graph
self.arch = "" # use default arch
self.yumopts = {}
+ self.owners = self.settings.default_ownership
+ self.mirror_locally = 1
def from_datastruct(self,seed_data):
self.parent = self.load_item(seed_data, 'parent')
@@ -51,9 +54,12 @@ class Repo(item.Item):
self.arch = self.load_item(seed_data, 'arch')
self.depth = self.load_item(seed_data, 'depth', 2)
self.yumopts = self.load_item(seed_data, 'yumopts', {})
+ self.owners = self.load_item(seed_data, 'owners', self.settings.default_ownership)
+ self.mirror_locally = self.load_item(seed_data, 'mirror_locally', '1')
- # force this to be saved as a boolean
+ # coerce types from input file
self.set_keep_updated(self.keep_updated)
+ self.set_owners(self.owners)
return self
@@ -63,6 +69,13 @@ class Repo(item.Item):
reposync/repotrack integration over HTTP might come later.
"""
self.mirror = mirror
+ if self.arch is None or self.arch == "":
+ if mirror.find("x86_64") != -1:
+ self.set_arch("x86_64")
+ elif mirror.find("x86") != -1 or mirror.find("i386") != -1:
+ self.set_arch("i386")
+ elif mirror.find("ia64") != -1:
+ self.set_arch("ia64")
return True
def set_keep_updated(self,keep_updated):
@@ -153,7 +166,9 @@ class Repo(item.Item):
def to_datastruct(self):
return {
'name' : self.name,
+ 'owners' : self.owners,
'mirror' : self.mirror,
+ 'mirror_locally' : self.mirror_locally,
'keep_updated' : self.keep_updated,
'priority' : self.priority,
'rpm_list' : self.rpm_list,
@@ -164,14 +179,24 @@ class Repo(item.Item):
'yumopts' : self.yumopts
}
+ def set_mirror_locally(self,value):
+ value = str(value).lower()
+ if value in [ "yes", "y", "1", "on", "true" ]:
+ self.mirror_locally = 1
+ else:
+ self.mirror_locally = 0
+ return True
+
def printable(self):
buf = _("repo : %s\n") % self.name
- buf = buf + _("mirror : %s\n") % self.mirror
+ buf = buf + _("arch : %s\n") % self.arch
+ buf = buf + _("createrepo_flags : %s\n") % self.createrepo_flags
buf = buf + _("keep updated : %s\n") % self.keep_updated
+ buf = buf + _("mirror : %s\n") % self.mirror
+ buf = buf + _("mirror locally : %s\n") % self.mirror_locally
+ buf = buf + _("owners : %s\n") % self.owners
buf = buf + _("priority : %s\n") % self.priority
buf = buf + _("rpm list : %s\n") % self.rpm_list
- buf = buf + _("createrepo_flags : %s\n") % self.createrepo_flags
- buf = buf + _("arch : %s\n") % self.arch
buf = buf + _("yum options : %s\n") % self.yumopts
return buf
@@ -202,6 +227,8 @@ class Repo(item.Item):
'priority' : self.set_priority,
'rpm-list' : self.set_rpm_list,
'createrepo-flags' : self.set_createrepo_flags,
- 'yumopts' : self.set_yumopts
+ 'yumopts' : self.set_yumopts,
+ 'owners' : self.set_owners,
+ 'mirror-locally' : self.set_mirror_locally
}