From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 1 Feb 2007 20:49:09 -0000 Subject: [Cluster-devel] conga/luci cluster/form-macros site/luci/Exten ... Message-ID: <20070201204909.11450.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: rmccabe at sourceware.org 2007-02-01 20:49:08 Modified files: luci/cluster : form-macros luci/site/luci/Extensions: ModelBuilder.py cluster_adapters.py conga_constants.py Log message: - implement deletion of a virtual machine service - don't increment the cluster configuration number needlessly Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.170&r2=1.171 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ModelBuilder.py.diff?cvsroot=cluster&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.223&r2=1.224 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_constants.py.diff?cvsroot=cluster&r1=1.35&r2=1.36 --- conga/luci/cluster/form-macros 2007/02/01 20:27:33 1.170 +++ conga/luci/cluster/form-macros 2007/02/01 20:49:08 1.171 @@ -3748,7 +3748,7 @@
- +
@@ -3784,13 +3784,13 @@ --- conga/luci/site/luci/Extensions/ModelBuilder.py 2007/01/24 19:45:44 1.18 +++ conga/luci/site/luci/Extensions/ModelBuilder.py 2007/02/01 20:49:08 1.19 @@ -585,13 +585,13 @@ raise GeneralError('FATAL',"Couldn't find service name in current list") - def retrieveXenVMsByName(self, name): - vms = self.getXENVMs() + def retrieveVMsByName(self, name): + vms = self.getVMs() for v in vms: if v.getName() == name: return v - raise GeneralError('FATAL',"Couldn't find xen vm name %s in current node list" % name) + raise GeneralError('FATAL',"Couldn't find VM name %s in current list" % name) def getFenceDevices(self): if self.fencedevices_ptr == None: @@ -724,7 +724,7 @@ return None - def getXENVMs(self): + def getVMs(self): rg_list = list() if self.resourcemanager_ptr != None: kids = self.resourcemanager_ptr.getChildren() --- conga/luci/site/luci/Extensions/cluster_adapters.py 2007/01/31 23:45:09 1.223 +++ conga/luci/site/luci/Extensions/cluster_adapters.py 2007/02/01 20:49:08 1.224 @@ -590,8 +590,6 @@ request.SESSION.set('add_node', add_cluster) return (False, { 'errors': errors, 'messages': messages }) - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf_str = str(model.exportModelAsString()) if not conf_str: @@ -838,8 +836,6 @@ return (False, {'errors': [ 'Unable to determine cluster name' ]}) try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf = model.exportModelAsString() if not conf: @@ -1402,7 +1398,7 @@ else: try: set_node_flag(self, clustername, rc.hostname(), batch_id, - CLUSTER_CONFIG, 'Adding new fence device \"%s\"' % retobj) + CLUSTER_CONFIG, 'Adding new fence device \"%s\"' % retobj) except: pass @@ -1494,7 +1490,7 @@ else: try: set_node_flag(self, clustername, rc.hostname(), batch_id, - CLUSTER_CONFIG, 'Updating fence device \"%s\"' % retobj) + CLUSTER_CONFIG, 'Updating fence device \"%s\"' % retobj) except: pass @@ -1852,8 +1848,6 @@ if error_code == FD_VAL_SUCCESS: messages.append(error_string) try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf_str = model.exportModelAsString() if not conf_str: @@ -1887,7 +1881,7 @@ else: try: set_node_flag(self, clustername, rc.hostname(), batch_id, - CLUSTER_CONFIG, 'Updating cluster configuration') + CLUSTER_CONFIG, 'Removing fence device \"%s\"' % fencedev_name) except: pass @@ -2012,21 +2006,33 @@ except KeyError, e: isNew = True - if isNew is True: - xvm = Vm() - xvm.addAttribute('name', vm_name) - xvm.addAttribute('path', vm_path) - rmptr = model.getResourceManagerPtr() - rmptr.addChild(xvm) - else: + delete_vm = False + if request.form.has_key('delete'): try: - xvm = model.retrieveXenVMsByName(old_name) + xvm = model.retrieveVMsByName(old_name) if not xvm: raise Exception, 'not found' + rmptr = model.getResourceManagerPtr() + rmptr.removeChild(xvm) + delete_vm = True except: - return (False, {'errors': ['No virtual machine named \"%s\" exists.' % old_name ]}) - xvm.addAttribute('name', vm_name) - xvm.addAttribute('path', vm_path) + return (False, {'errors': ['No virtual machine service named \"%s\" exists.' % old_name ]}) + else: + if isNew is True: + xvm = Vm() + xvm.addAttribute('name', vm_name) + xvm.addAttribute('path', vm_path) + rmptr = model.getResourceManagerPtr() + rmptr.addChild(xvm) + else: + try: + xvm = model.retrieveVMsByName(old_name) + if not xvm: + raise Exception, 'not found' + except: + return (False, {'errors': ['No virtual machine service named \"%s\" exists.' % old_name ]}) + xvm.addAttribute('name', vm_name) + xvm.addAttribute('path', vm_path) try: model.setModified(True) @@ -2059,10 +2065,12 @@ return (False, {'errors': [ 'Error creating virtual machine %s.' % vm_name ]}) try: - if isNew is True: - set_node_flag(self, clustername, rc.hostname(), str(batch_number), XENVM_ADD, "Creating virtual machine \'%s\'" % vm_name) + if delete_vm is True: + set_node_flag(self, clustername, rc.hostname(), str(batch_number), VM_CONFIG, "Deleting virtual machine service \'%s\'" % vm_name) + elif isNew is True: + set_node_flag(self, clustername, rc.hostname(), str(batch_number), VM_ADD, "Creating virtual machine service \'%s\'" % vm_name) else: - set_node_flag(self, clustername, rc.hostname(), str(batch_number), XENVM_CONFIG, "Configuring virtual machine \'%s\'" % vm_name) + set_node_flag(self, clustername, rc.hostname(), str(batch_number), VM_CONFIG, "Configuring virtual machine service \'%s\'" % vm_name) except Exception, e: luci_log.debug_verbose('validateVM6: failed to set flags: %s' % str(e)) @@ -2337,10 +2345,10 @@ if model.getIsVirtualized() == True: vmadd = {} vmadd['Title'] = "Add a Virtual Service" - vmadd['cfg_type'] = "xenvmadd" - vmadd['absolute_url'] = url + "?pagetype=" + XENVM_ADD + "&clustername=" + cluname + vmadd['cfg_type'] = "vmadd" + vmadd['absolute_url'] = url + "?pagetype=" + VM_ADD + "&clustername=" + cluname vmadd['Description'] = "Add a Virtual Service to this cluster" - if pagetype == XENVM_ADD: + if pagetype == VM_ADD: vmadd['currentItem'] = True else: vmadd['currentItem'] = False @@ -2360,7 +2368,7 @@ svcfg['currentItem'] = False services = model.getServices() - xenvms = model.getXENVMs() + vms = model.getVMs() serviceable = list() for service in services: servicename = service.getName() @@ -2383,19 +2391,19 @@ serviceable.append(svc) - for xenvm in xenvms: - xenname = xenvm.getName() + for vm in vms: + name = vm.getName() svc = {} - svc['Title'] = xenname - svc['cfg_type'] = "xenvm" - svc['absolute_url'] = url + "?pagetype=" + XENVM_CONFIG + "&servicename=" + xenname + "&clustername=" + cluname + svc['Title'] = name + svc['cfg_type'] = "vm" + svc['absolute_url'] = url + "?pagetype=" + VM_CONFIG + "&servicename=" + name + "&clustername=" + cluname svc['Description'] = "Configure this Virtual Service" - if pagetype == XENVM_CONFIG: + if pagetype == VM_CONFIG: try: xname = request['servicename'] except KeyError, e: xname = "" - if xenname == xname: + if name == xname: svc['currentItem'] = True else: svc['currentItem'] = False @@ -3996,8 +4004,6 @@ % (delete_target.getName(), str(e))) try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) str_buf = model.exportModelAsString() if not str_buf: @@ -4823,14 +4829,12 @@ return getNodeLogs(rc) -def processXenVM(self, req): - pass - -def getXenVMInfo(self, model, request): +def getVMInfo(self, model, request): map = {} baseurl = request['URL'] clustername = request['clustername'] svcname = None + try: svcname = request['servicename'] except KeyError, e: @@ -4842,22 +4846,22 @@ map['formurl'] = urlstring try: - xenvmname = request['servicename'] + vmname = request['servicename'] except: try: - xenvmname = request.form['servicename'] + vmname = request.form['servicename'] except: luci_log.debug_verbose('servicename is missing from request') return map try: - xenvm = model.retrieveXenVMsByName(xenvmname) + vm = model.retrieveVMsByName(vmname) except: luci_log.debug('An error occurred while attempting to get VM %s' \ - % xenvmname) + % vmname) return map - attrs= xenvm.getAttributes() + attrs= vm.getAttributes() keys = attrs.keys() for key in keys: map[key] = attrs[key] @@ -5305,8 +5309,6 @@ return (False, {'errors': [ '%s: error removing service %s.' % (errstr, name) ]}) try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf = model.exportModelAsString() if not conf: @@ -5387,8 +5389,6 @@ return errstr + ': the specified resource was not found.' try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf = model.exportModelAsString() if not conf: @@ -6702,8 +6702,6 @@ return 'Unable to add the new resource' try: - cp = model.getClusterPtr() - cp.incrementConfigVersion() model.setModified(True) conf = model.exportModelAsString() if not conf: --- conga/luci/site/luci/Extensions/conga_constants.py 2007/01/23 13:53:36 1.35 +++ conga/luci/site/luci/Extensions/conga_constants.py 2007/02/01 20:49:08 1.36 @@ -13,8 +13,8 @@ NODE_ADD="15" NODE_PROCESS="16" NODE_LOGS="17" -XENVM_ADD="18" -XENVM_CONFIG="19" +VM_ADD="18" +VM_CONFIG="19" SERVICES="20" SERVICE_ADD="21" SERVICE_LIST="22" @@ -24,7 +24,7 @@ SERVICE_START="26" SERVICE_STOP="27" SERVICE_RESTART="28" -XENVM_PROCESS="29" +VM_PROCESS="29" RESOURCES="30" RESOURCE_ADD="31" RESOURCE_LIST="32"
-

Properties for

+

Properties for

- - + +