summaryrefslogtreecommitdiffstats
path: root/cobbler/collection_images.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-06-30 14:04:30 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-06-30 14:04:30 -0400
commitd254f3bdcb9307fad6eba2aabf42a1cec675faaf (patch)
treed1b90b9b300efdb1bb11d75f888f1cbc510e229a /cobbler/collection_images.py
parentf786e36e5d5b3b97c173a6b794370cda15528bc3 (diff)
downloadcobbler-d254f3bdcb9307fad6eba2aabf42a1cec675faaf.tar.gz
cobbler-d254f3bdcb9307fad6eba2aabf42a1cec675faaf.tar.xz
cobbler-d254f3bdcb9307fad6eba2aabf42a1cec675faaf.zip
Work in progress on adding image tracking, also fixed a typo or two in buildiso
Diffstat (limited to 'cobbler/collection_images.py')
-rw-r--r--cobbler/collection_images.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/cobbler/collection_images.py b/cobbler/collection_images.py
new file mode 100644
index 00000000..11f8b396
--- /dev/null
+++ b/cobbler/collection_images.py
@@ -0,0 +1,56 @@
+"""
+A image instance represents a ISO or virt image we want to track
+and repeatedly install. It differs from a answer-file based installation.
+
+Copyright 2006-2008, 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_image as image
+import utils
+import collection
+from cexceptions import *
+from utils import _
+
+#--------------------------------------------
+
+class Images(collection.Collection):
+
+ def collection_type(self):
+ return "image"
+
+ def factory_produce(self,config,seed_data):
+ return image.Image(config).from_datastruct(seed_data)
+
+ def remove(self,name,with_delete=True,with_sync=True,with_triggers=True):
+ """
+ Remove element named 'name' from the collection
+ """
+
+ # NOTE: with_delete isn't currently meaningful for repos
+ # but is left in for consistancy in the API. Unused.
+
+ name = name.lower()
+ obj = self.find(name=name)
+ if obj is not None:
+ if with_delete:
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/image/pre/*")
+
+ del self.listing[name]
+ self.config.serialize_delete(self, obj)
+
+ if with_delete:
+ self.log_func("deleted repo %s" % name)
+ if with_triggers:
+ self._run_triggers(obj, "/var/lib/cobbler/triggers/delete/image/post/*")
+ return True
+ raise CX(_("cannot delete an object that does not exist: %s") % name)
+