diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2008-10-20 15:24:21 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2008-10-20 15:24:21 -0400 |
commit | 88eaace10ed681bedd54d45ba0d66c417bed0f64 (patch) | |
tree | 2e7ffb3ba11cddb78824acf3f112b40a43558074 /cobbler/webui/CobblerWeb.py | |
parent | 16e62549c266269a6be4ed0bb90f8ecdda974d20 (diff) | |
download | cobbler-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.py | 115 |
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 |