Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > d536e3b2143fe88c174c968d683c0f4f > files > 33

conga-0.12.2-24.el5_6.1.src.rpm

diff -ur a/luci/cluster/fence-macros b/luci/cluster/fence-macros
--- a/luci/cluster/fence-macros	2010-08-31 15:41:22.000000000 -0400
+++ b/luci/cluster/fence-macros	2010-08-31 16:23:09.000000000 -0400
@@ -186,6 +186,10 @@
 		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo" />
 	</tal:block>
 
+	<tal:block tal:condition="python: cur_fence_type == 'fence_ilo_mp'">
+		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo_mp" />
+	</tal:block>
+
 	<tal:block tal:condition="python: cur_fence_type == 'fence_drac'">
 		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
 	</tal:block>
@@ -357,6 +361,7 @@
 	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
 	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
 	<option name="fence_ilo" value="fence_ilo">HP iLO</option>
+	<option name="fence_ilo_mp" value="fence_ilo_mp">HP iLO MP</option>
 	<option name="fence_rsa" value="fence_rsa">IBM RSA II</option>
 	<option name="fence_rsb" value="fence_rsb">Fujitsu Siemens RSB</option>
 	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
@@ -682,6 +687,100 @@
 	</div>
 </div>
 
+<div metal:define-macro="fence-form-ilo_mp"
+	tal:attributes="id cur_fencedev/name | nothing">
+
+	<div id="fence_ilo_mp" class="fencedev">
+		<table>
+			<tr>
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>HP iLO MP</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>Hostname</td>
+				<td>
+					<input name="ipaddr" type="text"
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>IP port (optional)</td>
+				<td>
+					<input name="ipport" type="text" class="text"
+						tal:attributes="value cur_fencedev/ipport | 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="
+							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>
+			<tr>
+				<td>Force command prompt</td>
+				<td>
+					<input type="text" class="text" name="cmd_prompt"
+						tal:attributes="value cur_fencedev/cmd_prompt | nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>Power wait (seconds)</td>
+				<td>
+					<input type="text" name="power_wait"
+						tal:attributes="
+							value cur_fencedev/power_wait | nothing" />
+				</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_ilo_mp" />
+	</div>
+</div>
+
 <div metal:define-macro="fence-form-drac"
 	tal:attributes="id cur_fencedev/name | nothing">
 
@@ -1941,6 +2040,7 @@
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-mcdata" />
 	<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-ilo_mp" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsa" />
 	<tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsb" />
diff -ur a/luci/cluster/validate_fence.js b/luci/cluster/validate_fence.js
--- a/luci/cluster/validate_fence.js	2010-08-31 15:41:22.000000000 -0400
+++ b/luci/cluster/validate_fence.js	2010-08-31 16:23:09.000000000 -0400
@@ -33,6 +33,7 @@
 fence_validator['egenera'] = [ 'cserver' ];
 fence_validator['gnbd'] = [ 'servers' ];
 fence_validator['ilo'] = [ 'hostname', 'login', 'passwd', 'passwd_script', 'secure' ];
+fence_validator['ilo_mp'] = [ 'hostname', 'login', 'passwd', 'passwd_script', 'secure', 'ipport', 'secure', 'cmd_prompt' ];
 fence_validator['ipmilan'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'lanplus', 'auth' ];
 fence_validator['manual'] = [];
 fence_validator['mcdata'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
diff -ur a/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py b/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py
--- a/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py	2010-08-31 16:00:31.000000000 -0400
+++ b/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py	2010-08-31 16:23:09.000000000 -0400
@@ -25,6 +25,7 @@
 	'fence_xvm':			'Virtual Machine Fencing',
 	'fence_scsi':			'SCSI Reservation',
 	'fence_ilo':			'HP iLO Device',
+	'fence_ilo_mp':			'HP iLO MP',
 	'fence_ipmilan':		'IPMI Lan',
 	'fence_drac':			'Dell DRAC',
 	'fence_rsa':			'IBM RSA II Device',
@@ -52,6 +53,7 @@
 	'fence_vmware':			True,
 	'fence_cisco_mds':		True,
 	'fence_ilo':			False,
+	'fence_ilo_mp':			False,
 	'fence_ipmilan':		False,
 	'fence_drac':			False,
 	'fence_rsa':			False,
@@ -136,6 +138,8 @@
 		( 'name' ),
 	'fence_ilo':
 		( 'name', 'hostname', 'login', 'passwd' ),
+	'fence_ilo_mp':
+		( 'name', 'ipaddr', 'login', 'passwd', 'ipport', 'secure', 'cmd_prompt' ),
 	'fence_ipmilan':
 		( 'name', 'ipaddr', 'login', 'passwd', 'lanplus', 'auth' ),
 	'fence_drac':
diff -ur a/luci/site/luci/Extensions/FenceHandler.py b/luci/site/luci/Extensions/FenceHandler.py
--- a/luci/site/luci/Extensions/FenceHandler.py	2010-08-31 16:00:51.000000000 -0400
+++ b/luci/site/luci/Extensions/FenceHandler.py	2010-08-31 16:23:09.000000000 -0400
@@ -1273,6 +1273,106 @@
 
 	return errors
 
+def val_ilo_mp_fd(form, fencedev):
+	errors = list()
+
+	try:
+		hostname = form['ipaddr'].strip()
+		if not hostname:
+			raise Exception, 'blank'
+		fencedev.addAttribute('ipaddr', hostname)
+	except Exception, e:
+		errors.append(FD_PROVIDE_HOSTNAME)
+
+	try:
+		log = form['login'].strip()
+		if not log:
+			raise Exception, 'blank'
+		fencedev.addAttribute('login', log)
+	except Exception, e:
+		errors.append(FD_PROVIDE_LOGIN)
+
+	try:
+		power_wait = form['power_wait'].strip()
+		if power_wait:
+			power_wait = int(power_wait)
+			if power_wait < 0:
+				raise ValueError
+	except (KeyError, AttributeError), e:
+		power_wait = None
+	except Exception, e:
+		power_wait = None
+		errors.append('An invalid value for power_wait was given: "%s"' % form['power_wait'])
+	if power_wait:
+		fencedev.addAttribute('power_wait', str(power_wait))
+	else:
+		fencedev.removeAttribute('power_wait')
+
+	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:
+		fencedev.removeAttribute('secure')
+
+	try:
+		ipport = form['ipport'].strip()
+		if ipport:
+			ipport = int(ipport)
+			if ipport < 1 or ipport & 0xffff != ipport:
+				raise ValueError
+	except (KeyError, AttributeError), e:
+		ipport = None
+	except Exception, e:
+		ipport = None
+		errors.append('An invalid value for ipport was given: "%s"' % form['ipport'])
+	if ipport:
+		fencedev.addAttribute('ipport', str(ipport))
+	else:
+		fencedev.removeAttribute('ipport')
+
+	try:
+		cmd_prompt = form['cmd_prompt'].strip()
+	except Exception, e:
+		cmd_prompt = None
+	if cmd_prompt:
+		fencedev.addAttribute('cmd_prompt', cmd_prompt)
+	else:
+		fencedev.removeAttribute('cmd_prompt')
+
+	return errors
+
 FD_VALIDATE = {
 	'fence_apc':			val_apc_fd,
 	'fence_wti':			val_wti_fd,
@@ -1290,6 +1390,7 @@
 	'fence_xvm':			val_noop_fd,
 	'fence_scsi':			val_noop_fd,
 	'fence_ilo':			val_ilo_fd,
+	'fence_ilo_mp':			val_ilo_mp_fd,
 	'fence_ipmilan':		val_ipmilan_fd,
 	'fence_drac':			val_drac_fd,
 	'fence_drac5':			val_drac_fd,
@@ -1628,6 +1729,7 @@
 	'fence_cisco_mds':		val_cisco_mds_fi,
 	'fence_vmware':			val_vmware_fi,
 	'fence_ilo':			val_noop_fi,
+	'fence_ilo_mp':			val_noop_fi,
 	'fence_ipmilan':		val_noop_fi,
 	'fence_drac':			val_noop_fi,
 	'fence_drac5':			val_noop_fi,