summaryrefslogtreecommitdiffstats
path: root/cobbler/webui/CobblerWeb.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-10-20 15:24:21 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-10-20 15:24:21 -0400
commit88eaace10ed681bedd54d45ba0d66c417bed0f64 (patch)
tree2e7ffb3ba11cddb78824acf3f112b40a43558074 /cobbler/webui/CobblerWeb.py
parent16e62549c266269a6be4ed0bb90f8ecdda974d20 (diff)
downloadcobbler-88eaace10ed681bedd54d45ba0d66c417bed0f64.tar.gz
cobbler-88eaace10ed681bedd54d45ba0d66c417bed0f64.tar.xz
cobbler-88eaace10ed681bedd54d45ba0d66c417bed0f64.zip
Add Jasper to authors (who should have been there already)
Diffstat (limited to 'cobbler/webui/CobblerWeb.py')
-rw-r--r--cobbler/webui/CobblerWeb.py115
1 files changed, 114 insertions, 1 deletions
diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py
index 76846c38..264a8353 100644
--- a/cobbler/webui/CobblerWeb.py
+++ b/cobbler/webui/CobblerWeb.py
@@ -185,6 +185,7 @@ class CobblerWeb(object):
'distro': input_distro,
} )
+
def distro_save(self,name=None,oldname=None,new_or_edit=None,editmode='edit',kernel=None,
initrd=None,kopts=None,koptspost=None,ksmeta=None,owners=None,arch=None,breed=None,
osversion=None,delete1=None,delete2=None,recursive=False,**args):
@@ -747,6 +748,114 @@ class CobblerWeb(object):
return self.repo_list()
# ------------------------------------------------------------------------ #
+ # Images
+ # ------------------------------------------------------------------------ #
+
+ def image_list(self,page=None,limit=None,**spam):
+ if not self.__xmlrpc_setup():
+ return self.xmlrpc_auth_failure()
+
+ (page, results_per_page, pages) = self.__compute_pagination(page,limit,"image")
+ images = self.remote.get_images(page,results_per_page)
+
+ if len(images) > 0:
+ return self.__render( 'image_list.tmpl', {
+ 'images' : images,
+ 'pages' : pages,
+ 'page' : page,
+ 'results_per_page' : results_per_page
+ })
+ else:
+ return self.__render('empty.tmpl', {})
+
+ def image_edit(self, name=None,**spam):
+
+ if not self.__xmlrpc_setup():
+ return self.xmlrpc_auth_failure()
+
+ input_image = None
+ if name is not None:
+ input_image = self.remote.get_image(name, True)
+ can_edit = self.remote.check_access_no_fail(self.token,"modify_image",name)
+ else:
+ can_edit = self.remote.check_access_no_fail(self.token,"new_image",None)
+
+ if not can_edit:
+ return self.__render('message.tmpl', {
+ 'message1' : "Access denied.",
+ 'message2' : "You do not have permission to create new objects."
+ })
+
+
+ return self.__render( 'image_edit.tmpl', {
+ 'user' : self.username,
+ 'edit' : True,
+ 'editable' : can_edit,
+ 'image': input_image,
+ } )
+
+
+ def image_save(self,name=None,oldname=None,new_or_edit=None,editmode='edit',field1=None,
+ delete1=None,delete2=None,recursive=False,**args):
+
+ if not self.__xmlrpc_setup():
+ return self.xmlrpc_auth_failure()
+
+ # pre-command paramter checking
+ # HTML forms do not transmit disabled fields
+ if name is None and oldname is not None:
+ name = oldname
+
+ # handle deletes as a special case
+ if new_or_edit == 'edit' and delete1 and delete2:
+ try:
+ if recursive is None:
+ self.remote.remove_image(name,self.token,False)
+ else:
+ self.remote.remove_image(name,self.token,True)
+
+ except Exception, e:
+ return self.error_page("could not delete %s, %s" % (name,str(e)))
+ return self.image_list()
+
+ if name is None:
+ return self.error_page("name is required")
+
+ # grab a reference to the object
+ if new_or_edit == "edit" and editmode in [ "edit", "rename" ]:
+ try:
+ if editmode == "edit":
+ image = self.remote.get_image_handle( name, self.token)
+ else:
+ image = self.remote.get_image_handle( oldname, self.token)
+
+ except:
+ log_exc(self.apache)
+ return self.error_page("Failed to lookup image: %s" % name)
+ else:
+ image = self.remote.new_image(self.token)
+
+ try:
+ if editmode != "rename" and name:
+ self.remote.modify_image(image, 'name', name, self.token)
+
+ # self.remote.modify_image(image, 'field1', field1, self.token)
+ self.remote.save_image(image, self.token, editmode)
+ except Exception, e:
+ log_exc(self.apache)
+ return self.error_page("Error while saving image: %s" % str(e))
+
+ if editmode == "rename" and name != oldname:
+ try:
+ self.remote.rename_image(image, name, self.token)
+ except Exception, e:
+ return self.error_page("Rename unsuccessful.")
+
+
+ return self.image_list()
+
+
+ # ------------------------------------------------------------------------ #
# Kickstart files
# ------------------------------------------------------------------------ #
@@ -864,7 +973,7 @@ class CobblerWeb(object):
distro_edit.exposed = True
distro_list.exposed = True
distro_save.exposed = True
-
+
subprofile_edit.exposed = True
profile_edit.exposed = True
profile_list.exposed = True
@@ -877,6 +986,10 @@ class CobblerWeb(object):
repo_edit.exposed = True
repo_list.exposed = True
repo_save.exposed = True
+
+ image_edit.exposed = True
+ image_list.exposed = True
+ image_save.exposed = True
settings_view.exposed = True
ksfile_edit.exposed = True