[Cluster-devel] conga/luci cluster/form-macros site/luci/Exten ...

rmccabe at sourceware.org rmccabe at sourceware.org
Thu Feb 1 20:49:09 UTC 2007


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 @@
 		<tfoot class="systemsTable">
 			<tr class="systemsTable"><td colspan="2">
 				<div class="hbSubmit">
-					<input type="submit" value="Create Virtual Machine" />
+					<input type="submit" value="Create Virtual Machine Service" />
 				</div>
 			</td></tr>
 		</tfoot>
@@ -3784,13 +3784,13 @@
 	<table class="systemsTable">
 		<thead class="systemsTable">
 			<tr class="systemsTable"><td class="systemsTable">
-				<p class="reshdr">Properties for <tal:block tal:replace="vminfo/name | string:virtual machine"/></p>
+				<p class="reshdr">Properties for <tal:block tal:replace="vminfo/name | string:virtual machine service"/></p>
 			</td></tr>
 		<tfoot class="systemsTable">
 			<tr class="systemsTable"><td colspan="2">
 				<div class="hbSubmit">
-					<input name="submit" type="submit" value="Update Virtual Machine" />
-					<input name="delete" type="submit" value="Delete Virtual Machine" />
+					<input name="submit" type="submit" value="Update Virtual Machine Service" />
+					<input name="delete" type="submit" value="Delete Virtual Machine Service" />
 				</div>
 			</td></tr>
 		</tfoot>
--- 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"




More information about the Cluster-devel mailing list