summaryrefslogtreecommitdiffstats
path: root/cobbler/collection_repos.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2006-12-12 16:44:20 -0500
committerJim Meyering <jim@meyering.net>2006-12-12 16:44:20 -0500
commitedec049f66add415f402e251b217c9f09f589e40 (patch)
tree5d0105157734f2425ea979113dfb9d86aa29d66f /cobbler/collection_repos.py
parentf24ee795f6296abc4643889bbb9d35b9fc128799 (diff)
downloadthird_party-cobbler-edec049f66add415f402e251b217c9f09f589e40.tar.gz
third_party-cobbler-edec049f66add415f402e251b217c9f09f589e40.tar.xz
third_party-cobbler-edec049f66add415f402e251b217c9f09f589e40.zip
Preliminary support for repo mirroring.
Diffstat (limited to 'cobbler/collection_repos.py')
-rw-r--r--cobbler/collection_repos.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/cobbler/collection_repos.py b/cobbler/collection_repos.py
new file mode 100644
index 0000000..0ae9db3
--- /dev/null
+++ b/cobbler/collection_repos.py
@@ -0,0 +1,54 @@
+"""
+Repositories in cobbler are way to create a local mirror of a yum repository.
+When used in conjunction with a mirrored kickstart tree (see "cobbler import")
+outside bandwidth needs can be reduced and/or eliminated.
+
+Copyright 2006, Red Hat, Inc
+Michael DeHaan <mdehaan@redhat.com>
+
+This software may be freely redistributed under the terms of the GNU
+general public license.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"""
+
+import item_repo as repo
+import utils
+import collection
+import cexceptions
+
+TESTMODE = False
+
+#--------------------------------------------
+
+class Repos(collection.Collection):
+
+ def collection_type(self):
+ return "repository"
+
+ def factory_produce(self,config,seed_data):
+ """
+ Return a system forged from seed_data
+ """
+ return repo.Repo(config).from_datastruct(seed_data)
+
+ def filename(self):
+ """
+ Return a filename for System serialization
+ """
+ if TESTMODE:
+ return "/var/lib/cobbler/test/repos"
+ else:
+ return "/var/lib/cobbler/repos"
+
+ def remove(self,name):
+ """
+ Remove element named 'name' from the collection
+ """
+ if self.find(name):
+ del self.listing[name]
+ return True
+ raise cexceptions.CobblerException("delete_nothing")
+