All of lore.kernel.org
 help / color / mirror / Atom feed
From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga luci/cluster/fence-macros luci/cluster/v ...
Date: 7 Jan 2010 18:08:41 -0000	[thread overview]
Message-ID: <20100107180841.5181.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2010-01-07 18:08:37

Modified files:
	luci/cluster   : fence-macros validate_fence.js 
	luci/homebase  : form-macros 
	luci/plone-custom: conga.js 
	luci/site/luci/Extensions: FenceHandler.py LuciValidation.py 
	                           ResourceHandler.py 
	                           homebase_adapters.py 
	luci/site/luci/Extensions/ClusterModel: FenceDeviceAttr.py 
	                                        ModelBuilder.py 
	luci/test      : CGA_0160_Add_User.py 
	                 CGA_0170_Online_Documentation_Portlet.py 
	                 CGA_0200_Create_cluster.py cleaner.py 
	                 congaDemoTests.py conga_Helpers.py 
	                 conga_suite.py loggerObject.py 
	luci/utils     : luci_admin 
	ricci/modules/cluster: Clusvcadm.cpp 
	ricci/ricci    : Ricci.cpp 

Log message:
	Sync with RHEL5.5 tree

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.12&r2=1.2.2.13
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_fence.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.11&r2=1.1.2.12
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.44.2.14&r2=1.44.2.15
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/plone-custom/conga.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.7&r2=1.3.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.17&r2=1.4.2.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciValidation.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.6.2.12&r2=1.6.2.13
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ResourceHandler.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.8&r2=1.1.4.9
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.34.2.17&r2=1.34.2.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.2&r2=1.5.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.12&r2=1.1.4.13
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/CGA_0160_Add_User.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.7.2.1&r2=1.7.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/CGA_0170_Online_Documentation_Portlet.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.1&r2=1.1.4.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/CGA_0200_Create_cluster.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.2&r2=1.4.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/cleaner.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.3&r2=1.1.4.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/congaDemoTests.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.11.2.2&r2=1.11.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/conga_Helpers.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.14.2.3&r2=1.14.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/conga_suite.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.11.2.2&r2=1.11.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/test/loggerObject.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.4.1&r2=1.2.4.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/utils/luci_admin.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.50.2.7&r2=1.50.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/Clusvcadm.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.7.2.7&r2=1.7.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/ricci/Ricci.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.18.2.6&r2=1.18.2.7

--- conga/luci/cluster/fence-macros	2009/05/14 21:05:58	1.2.2.12
+++ conga/luci/cluster/fence-macros	2010/01/07 18:08:34	1.2.2.13
@@ -190,6 +190,10 @@
 		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
 	</tal:block>
 
+	<tal:block tal:condition="python: cur_fence_type == 'fence_idrac'">
+		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-idrac" />
+	</tal:block>
+
 	<tal:block tal:condition="python: cur_fence_type == 'fence_rsa'">
 		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsa" />
 	</tal:block>
@@ -354,6 +358,7 @@
 	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
 	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
 	<option name="fence_drac" value="fence_drac">Dell DRAC</option>
+	<option name="fence_idrac" value="fence_idrac">Dell iDRAC</option>
 	<option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
 	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
 	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
@@ -725,6 +730,79 @@
 	</div>
 </div>
 
+<div metal:define-macro="fence-form-idrac"
+	tal:attributes="id cur_fencedev/name | nothing">
+
+	<div id="fence_idrac" class="fencedev">
+		<table>
+			<tr>
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Dell iDrac</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td>
+					<input name="ipaddr" type="text"
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>Login</td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="value cur_fencedev/login | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="passwd" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<span title="Full path to a script to generate fence password">Password Script (optional)</span>
+				</td>
+				<td>
+					<input type="text" name="passwd_script"
+						tal:attributes="
+							disabled cur_fencedev/isShared | nothing;
+							value cur_fencedev/passwd_script | nothing" />
+				</td>
+			</tr>
+			<tr tal:condition="exists:clusterinfo/has_fence_ssh">
+				<td>
+					<span title="Enable SSH operation">Use SSH</span>
+				</td>
+				<td>
+					<input tal:condition="exists:cur_fencedev"
+						type="checkbox" name="secure"
+						tal:attributes="
+							checked python:(cur_fencedev and cur_fencedev.has_key('secure') and (cur_fencedev['secure'] == '1' or cur_fencedev['secure'].lower() == 'true')) and 'checked' or ''" />
+					<input tal:condition="not:exists:cur_fencedev"
+						type="checkbox" name="secure" />
+				</td>
+			</tr>
+		</table>
+
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="orig_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+
+		<input type="hidden" name="fence_type" value="fence_idrac" />
+	</div>
+</div>
+
 <div metal:define-macro="fence-form-rsa"
 	tal:attributes="id cur_fencedev/name | nothing">
 
@@ -1646,6 +1724,7 @@
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-wti" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
+	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-idrac" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsa" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsb" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-brocade" />
@@ -1762,6 +1841,15 @@
 				</td>
 			</tr>
 
+			<tr>
+				<td>Managed System</td>
+				<td>
+					<input name="managed" type="text"
+						tal:attributes="
+							value cur_instance/managed | nothing" />
+				</td>
+			</tr>
+
 			<tr><td colspan="2">
 				<div class="hbSubmit">
 					<tal:block tal:condition="exists:cur_fence_instance_id">
--- conga/luci/cluster/validate_fence.js	2009/04/23 20:38:51	1.1.2.11
+++ conga/luci/cluster/validate_fence.js	2010/01/07 18:08:34	1.1.2.12
@@ -20,7 +20,7 @@
 fence_inst_validator['vixel'] = [ 'port' ];
 fence_inst_validator['wti'] = [ 'port', 'secure' ];
 fence_inst_validator['xvm'] = [ 'domain' ];
-fence_inst_validator['lpar'] = [ 'partition' ];
+fence_inst_validator['lpar'] = [ 'partition', 'managed' ];
 fence_inst_validator['vmware'] = [ 'port' ];
 
 var fence_validator = [];
@@ -29,6 +29,7 @@
 fence_validator['brocade'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['bullpap'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['drac'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'secure' ];
+fence_validator['idrac'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'secure' ];
 fence_validator['egenera'] = [ 'cserver' ];
 fence_validator['gnbd'] = [ 'servers' ];
 fence_validator['ilo'] = [ 'hostname', 'login', 'passwd', 'passwd_script', 'secure' ];
@@ -150,6 +151,7 @@
 field_validator['pserver'] = validate_field_str;
 field_validator['domain'] = validate_field_str;
 field_validator['partition'] = validate_field_str;
+field_validator['managed'] = validate_field_str;
 
 function validate_fence(form) {
 	var errors = [];
--- conga/luci/homebase/form-macros	2008/02/08 21:56:33	1.44.2.14
+++ conga/luci/homebase/form-macros	2010/01/07 18:08:34	1.44.2.15
@@ -210,6 +210,17 @@
 			</tal:block>
 		</select>
 
+		<table class="homebase">
+			<tr class="homebase">
+				<td>
+					Set user password
+				</td>
+				<td>
+					<input type="password" name="newpasswd" checked="0" />
+				</td>
+			</tr>
+		</table>
+
 		<h3 class="homebase" tal:condition="python:systems[0] and len(systems[0]) > 0">
 			Clusters
 		</h3>
--- conga/luci/plone-custom/conga.js	2008/07/14 21:52:30	1.3.2.7
+++ conga/luci/plone-custom/conga.js	2010/01/07 18:08:35	1.3.2.8
@@ -202,8 +202,6 @@
 	if (i.length === 1) {
 		if (iponly) {
 			return ('You must enter an IP address in quad-dot notation.');
-		} else {
-			return ('Hostnames must be fully qualified.');
 		}
 	}
 
--- conga/luci/site/luci/Extensions/FenceHandler.py	2009/04/23 20:38:52	1.4.2.17
+++ conga/luci/site/luci/Extensions/FenceHandler.py	2010/01/07 18:08:35	1.4.2.18
@@ -43,6 +43,7 @@
 FI_PROVIDE_EPSERVER = 'A PServer value must be provided for this Egenera Fence'
 FI_PROVIDE_NODENAME = 'A Node Name value must be provided for this SCSI Fence'
 FI_PROVIDE_PARTITION = 'A partition name must be provided for this LPAR Fence'
+FI_PROVIDE_MANAGED = 'A managed system name must be provided for this LPAR Fence'
 
 ILLEGAL_CHARS_REPLACED = 'Illegal characters were replaced by underscores. Feel free to set a new value.'
 
@@ -820,6 +821,68 @@
 
 	return errors
 
+def val_idrac_fd(form, fencedev):
+	errors = list()
+
+	try:
+		ip = form['ipaddr'].strip()
+		if not ip:
+			raise Exception, 'blank'
+		fencedev.addAttribute('ipaddr', ip)
+	except Exception, e:
+		errors.append(FD_PROVIDE_IP)
+
+	try:
+		log = form['login'].strip()
+		if not log:
+			raise Exception, 'blank'
+		fencedev.addAttribute('login', log)
+	except Exception, e:
+		errors.append(FD_PROVIDE_LOGIN)
+
+	has_passwd = False
+	try:
+		pwd = form['passwd'].strip()
+		if not pwd:
+			# Allow passwords that consist of only spaces.
+			if not form.has_key('passwd') or form['passwd'] == '':
+				raise Exception, 'blank'
+			else:
+				pwd = form['passwd']
+		fencedev.addAttribute('passwd', pwd)
+		has_passwd = True
+	except Exception, e:
+		try:
+			fencedev.removeAttribute('passwd')
+		except:
+			pass
+
+	try:
+		pwd_script = form['passwd_script'].strip()
+		if not pwd_script:
+			raise Exception, 'blank'
+		fencedev.addAttribute('passwd_script', pwd_script)
+		has_passwd = True
+	except Exception, e:
+		try:
+			fencedev.removeAttribute('passwd_script')
+		except:
+			pass
+
+	if not has_passwd:
+		errors.append(FD_PROVIDE_PASSWD)
+
+	use_ssh = form.has_key('secure') and (form['secure'] == '1' or form['secure'].lower() == 'true')
+	if use_ssh:
+		fencedev.addAttribute('secure', '1')
+	else:
+		try:
+			fencedev.removeAttribute('secure')
+		except:
+			pass
+
+	return errors
+
 def val_rps10_fd(form, fencedev):
 	errors = list()
 
@@ -988,6 +1051,7 @@
 	'fence_ipmilan':		val_ipmilan_fd,
 	'fence_drac':			val_drac_fd,
 	'fence_drac5':			val_drac_fd,
+	'fence_idrac':			val_idrac_fd,
 	'fence_rsa':			val_rsa_fd,
 	'fence_rsb':			val_rsa_fd, # same params as rsa
 	'fence_rps10':			val_rps10_fd,
@@ -1252,6 +1316,14 @@
 	except Exception, e:
 		errors.append(FI_PROVIDE_PARTITION)
 
+	try:
+		managed = form['managed'].strip()
+		if not managed:
+			raise Exception, 'blank'
+		fenceinst.addAttribute('managed', managed)
+	except Exception, e:
+		errors.append(FI_PROVIDE_MANAGED)
+
 	fenceinst.addAttribute('secure', '1')
 
 	return errors
@@ -1304,6 +1376,7 @@
 	'fence_ipmilan':		val_noop_fi,
 	'fence_drac':			val_noop_fi,
 	'fence_drac5':			val_noop_fi,
+	'fence_idrac':			val_noop_fi,
 	'fence_rsa':			val_noop_fi,
 	'fence_rsb':			val_noop_fi,
 	'fence_rps10':			val_noop_fi
--- conga/luci/site/luci/Extensions/LuciValidation.py	2009/05/21 13:32:04	1.6.2.12
+++ conga/luci/site/luci/Extensions/LuciValidation.py	2010/01/07 18:08:35	1.6.2.13
@@ -288,6 +288,37 @@
 				luci_log.debug_verbose('vSA1: error: %r %s: %r' % (e, str(e), form_xml))
 			return (False, { 'errors': [ 'The resource data submitted for this service is not properly formed' ]})
 
+	service_name = fvar['svc_name']
+	if service_name is None:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('vSA5: no service name')
+		errors.append('No service name was given')
+
+	try:
+		cur_service = model.retrieveServiceByName(service_name)
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('vSA5c: no service named %s found: %r %s' \
+				% (service_name, e, str(e)))
+		cur_service = None
+
+	action = fvar['action']
+	if action is None:
+		return (False, {'errors': [ 'No action was given for service %s' % service_name ] })
+
+	if action == 'edit':
+		if cur_service is None:
+			return (False, {'errors': [ 'The service %s could not be found for editing' % service_name ]})
+		model.deleteService(service_name)
+	elif action == 'add':
+		if cur_service is not None:
+			return (False, {'errors': [ 'A service with the name %s already exists' % service_name ]})
+	else:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('vSA4a: unknown action %s' \
+				% request.form['action'])
+		return (False, {'errors': [ 'An unknown action was specified' ]})
+
 	form_hash = {}
 	form_hash['toplevel'] = { 'form': None, 'kids': [] }
 	for i in forms:
@@ -391,13 +422,6 @@
 				errors.append('Restart expire time must be a number greater than or equal to 0')
 				restart_expire_time = None
 
-
-	service_name = fvar['svc_name']
-	if service_name is None:
-		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('vSA5: no service name')
-		errors.append('No service name was given')
-
 	nfslock = '0'
 	try:
 		if not request.form.has_key('nfslock') or request.form['nfslock'] != '1':
@@ -429,31 +453,6 @@
 	except Exception, e:
 		exclusive = '0'
 
-	try:
-		cur_service = model.retrieveServiceByName(service_name)
-	except Exception, e:
-		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('vSA5c: no service named %s found: %r %s' \
-				% (service_name, e, str(e)))
-		cur_service = None
-
-	action = fvar['action']
-	if action is None:
-		return (False, {'errors': [ 'No action was given for service %s' % service_name ] })
-
-	if action == 'edit':
-		if cur_service is None:
-			return (False, {'errors': [ 'The service %s could not be found for editing' % service_name ]})
-		model.deleteService(service_name)
-	elif action == 'add':
-		if cur_service is not None:
-			return (False, {'errors': [ 'A service with the name %s already exists' % service_name ]})
-	else:
-		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('vSA4a: unknown action %s' \
-				% request.form['action'])
-		return (False, {'errors': [ 'An unknown action was specified' ]})
-
 	def buildSvcTree(parent, child_id_list):
 		for i in child_id_list:
 			try:
--- conga/luci/site/luci/Extensions/ResourceHandler.py	2009/05/21 13:32:04	1.1.4.8
+++ conga/luci/site/luci/Extensions/ResourceHandler.py	2010/01/07 18:08:35	1.1.4.9
@@ -675,10 +675,7 @@
 			raise KeyError, 'No volume group name was given for "%s"' % rname
 		res.addAttribute('vg_name', vg_name)
 	except Exception, e:
-		err = str(e)
-		errors.append(err)
-		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('addLVM5: %s' % err)
+		vg_name = None
 
 	try:
 		lv_name = form['lv_name'].strip()
@@ -686,10 +683,12 @@
 			raise KeyError, 'No logical volume name was given for "%s"' % rname
 		res.addAttribute('lv_name', lv_name)
 	except Exception, e:
-		err = str(e)
-		errors.append(err)
+		lv_name = None
+
+	if not lv_name and not vg_name:
+		errors.append('Neither lv_name nor vg_name given for resource "%s"' % rname)
 		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('addLVM6: %s' % err)
+			luci_log.debug_verbose('addLVM6: no vg_name or lv_name for "%s"' % rname)
 
 	return errors
 
--- conga/luci/site/luci/Extensions/homebase_adapters.py	2008/04/23 17:27:10	1.34.2.17
+++ conga/luci/site/luci/Extensions/homebase_adapters.py	2010/01/07 18:08:35	1.34.2.18
@@ -139,6 +139,12 @@
 	if passwd != pwconfirm:
 		return (False, { 'errors': [ 'The passwords given do not match' ]})
 
+	if ":" in passwd:
+		return (False, { 'errors': [ 'The passwords cannot contain semicolons' ]})
+
+	if " " in passwd:
+		return (False, { 'errors': [ 'The passwords cannot contain spaces' ]})
+
 	user_props = {
 		'username': user,
 		'password': passwd,
@@ -763,6 +769,18 @@
 	if len(errors) > 0:
 		return (False, { 'errors': errors })
 
+	new_passwd = request.form.get('newpasswd')
+	if new_passwd:
+		new_passwd = new_passwd.strip()
+	if new_passwd:
+		try:
+			user.userSetPassword(user_id, new_passwd)
+			messages.append('Set password for user "%s"' % username)
+		except Exception, e:
+			errors.append('An error occurred while setting the password for user "%s"' % username)
+	if len(errors) > 0:
+		return (False, { 'errors': errors })
+
 	clusters = self.restrictedTraverse('%s/systems/cluster/objectItems' % PLONE_ROOT)('Folder')
 	if not request.form.has_key('__CLUSTER'):
 		for i in clusters:
--- conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py	2009/02/18 19:13:30	1.5.2.2
+++ conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py	2010/01/07 18:08:35	1.5.2.3
@@ -27,6 +27,7 @@
 	'fence_ilo':			'HP iLO Device',
 	'fence_ipmilan':		'IPMI Lan',
 	'fence_drac':			'Dell DRAC',
+	'fence_idrac':			'Dell iDRAC',
 	'fence_rsa':			'IBM RSA II Device',
 	'fence_rps10':			'RPS10 Serial Switch',
 	'fence_lpar':			'LPAR Fencing',
@@ -52,6 +53,7 @@
 	'fence_ilo':			False,
 	'fence_ipmilan':		False,
 	'fence_drac':			False,
+	'fence_idrac':			False,
 	'fence_rsa':			False,
 	'fence_rps10':			False,
 	'fence_manual':			False
@@ -95,6 +97,7 @@
 	'fence_ilo':			( ),
 	'fence_ipmilan':		( ),
 	'fence_drac':			( ),
+	'fence_idrac':			( ),
 	'fence_rsa':			( ),
 	'fence_rps10':			( ),
 	'fence_manual':			( )
@@ -135,6 +138,8 @@
 		( 'name', 'ipaddr', 'login', 'passwd', 'lanplus', 'auth' ),
 	'fence_drac':
 		( 'name', 'ipaddr', 'login', 'passwd' ),
+	'fence_idrac':
+		( 'name', 'ipaddr', 'login', 'passwd' ),
 	'fence_rsa':
 		( 'name', 'hostname', 'login', 'passwd' ),
 	'fence_rps10':
--- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py	2009/01/23 19:33:29	1.1.4.12
+++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py	2010/01/07 18:08:35	1.1.4.13
@@ -1008,7 +1008,6 @@
     self.mcast_address = mcast_addr
     self.mcast_interface = mcast_if
     self.usesMulticast = True
-    self.set_nodes_multicast(mcast_addr, mcast_if=mcast_if)
     self.isModified = True
 
   def del_nodes_multicast(self):
--- conga/luci/test/CGA_0160_Add_User.py	2007/03/01 00:31:19	1.7.2.1
+++ conga/luci/test/CGA_0160_Add_User.py	2010/01/07 18:08:36	1.7.2.2
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/test/CGA_0170_Online_Documentation_Portlet.py	2007/03/01 00:31:19	1.1.4.1
+++ conga/luci/test/CGA_0170_Online_Documentation_Portlet.py	2010/01/07 18:08:36	1.1.4.2
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/test/CGA_0200_Create_cluster.py	2007/06/18 18:39:49	1.4.2.2
+++ conga/luci/test/CGA_0200_Create_cluster.py	2010/01/07 18:08:36	1.4.2.3
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/test/cleaner.py	2008/01/23 04:44:56	1.1.4.3
+++ conga/luci/test/cleaner.py	2010/01/07 18:08:36	1.1.4.4
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 #  Copyright (C) Red Hat, Inc. 2007-2008
 #
--- conga/luci/test/congaDemoTests.py	2007/06/25 16:17:27	1.11.2.2
+++ conga/luci/test/congaDemoTests.py	2010/01/07 18:08:36	1.11.2.3
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/test/conga_Helpers.py	2008/01/23 04:44:57	1.14.2.3
+++ conga/luci/test/conga_Helpers.py	2010/01/07 18:08:36	1.14.2.4
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 #  Copyright (C) Red Hat, Inc. 2006-2008
 #
--- conga/luci/test/conga_suite.py	2007/06/25 16:17:27	1.11.2.2
+++ conga/luci/test/conga_suite.py	2010/01/07 18:08:36	1.11.2.3
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/test/loggerObject.py	2007/03/01 00:31:19	1.2.4.1
+++ conga/luci/test/loggerObject.py	2010/01/07 18:08:36	1.2.4.2
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#!/usr/bin/python
 
 # Copyright Red Hat, Inc. 2006
 #
--- conga/luci/utils/luci_admin	2008/04/11 06:50:33	1.50.2.7
+++ conga/luci/utils/luci_admin	2010/01/07 18:08:36	1.50.2.8
@@ -181,6 +181,10 @@
 			err.write('Spaces are not allowed in passwords\n')
 			continue
 
+		elif ':' in s1:
+			err.write('Semicolons are not allowed in passwords\n')
+			continue
+
 		s2 = getpass(confirm_prompt)
 		if s1 != s2:
 			err.write('Password mismatch, try again\n')
@@ -1022,7 +1026,7 @@
 	try:
 		(pid, status) = os.waitpid(childpid, 0)
 	except OSError, (errno, msg):
-		err.write('%s waitpid: %s\n' % (__name__,  msg))
+		err.write('%s waitpid: %s\n' % (__name__, msg))
 
 	if os.WIFEXITED(status):
 		status = os.WEXITSTATUS(status)
--- conga/ricci/modules/cluster/Clusvcadm.cpp	2008/01/17 17:38:37	1.7.2.7
+++ conga/ricci/modules/cluster/Clusvcadm.cpp	2010/01/07 18:08:36	1.7.2.8
@@ -101,6 +101,8 @@
 			continue;
 		String flag;
 
+		if (iter->status == ServiceStatus::RG_STATE_RECOVER)
+			throw String(servicename + " is in the process of being recovered");
 		if (iter->status == ServiceStatus::RG_STATE_MIGRATE)
 			throw String(servicename + " is in the process of being migrated");
 
@@ -199,6 +201,8 @@
 			continue;
 
 		String flag;
+		if (iter->status == ServiceStatus::RG_STATE_RECOVER)
+			throw String(servicename + " is in the process of being recovered");
 		if (iter->status == ServiceStatus::RG_STATE_MIGRATE)
 			throw String(servicename +
 					" is already in the process of being migrated");
@@ -273,6 +277,7 @@
 
 		if (iter->status == ServiceStatus::RG_STATE_STARTING ||
 			iter->status == ServiceStatus::RG_STATE_FAILED ||
+			iter->status == ServiceStatus::RG_STATE_RECOVER ||
 			iter->status == ServiceStatus::RG_STATE_STARTED)
 		{
 			String out, err;
--- conga/ricci/ricci/Ricci.cpp	2008/01/17 17:38:39	1.18.2.6
+++ conga/ricci/ricci/Ricci.cpp	2010/01/07 18:08:37	1.18.2.7
@@ -483,6 +483,7 @@
 		int status;
 		vector<String> args;
 
+		args.push_back("--readonly");
 		args.push_back("nodeinfo");
 		if (utils::execute("/usr/bin/virsh", args, out, err, status, false))
 			throw command_not_found_error_msg("/usr/bin/virsh");



             reply	other threads:[~2010-01-07 18:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-07 18:08 rmccabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2010-08-05 17:33 [Cluster-devel] conga luci/cluster/fence-macros luci/cluster/v rmccabe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100107180841.5181.qmail@sourceware.org \
    --to=rmccabe@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.