Index: luci/cluster/fence-macros =================================================================== RCS file: /cvs/cluster/conga/luci/cluster/fence-macros,v retrieving revision 1.2.2.15 diff -u -r1.2.2.15 fence-macros --- a/luci/cluster/fence-macros 5 Aug 2010 19:14:10 -0000 1.2.2.15 +++ b/luci/cluster/fence-macros 6 Aug 2010 18:58:25 -0000 @@ -1213,34 +1213,36 @@ value cur_fencedev/passwd_script | nothing" /> </td> </tr> - - <tr> - <td>VMware ESX Management Login</td> - <td> - <input name="vmlogin" type="text" - tal:attributes=" - disabled cur_fencedev/isShared | nothing; - value cur_fencedev/vmlogin | nothing" /> - </td> - </tr> - <tr> - <td>VMware ESX Management Password</td> - <td> - <input name="vmpasswd" type="password" autocomplete="off" - tal:attributes=" - disabled cur_fencedev/isShared | nothing; - value cur_fencedev/passwd | nothing" /> + <tr class="systemsTable"> + <td class="systemsTable">VMware Type</td> + <td class="systemsTable"> + <select name="vmware_type" + tal:define="vmware_type cur_fencedev/vmware_type | string:default" + tal:attributes="disabled cur_fencedev/isShared | nothing"> + <option name="default" value="default" + tal:content="string:Default" + tal:attributes="selected python: vmware_type == 'default' and 'selected'"/> + <option name="esx" value="esx" + tal:content="string:VMware ESX" + tal:attributes="selected python: vmware_type == 'esx' and 'selected'" /> + <option name="server2" value="server2" + tal:content="string:VMware Server v2" + tal:attributes="selected python: vmware_type == 'server2' and 'selected'" /> + <option name="server1" value="server1" + tal:content="string:VMware Server v1" + tal:attributes="selected python: vmware_type == 'server1' and 'selected'" /> + </select> </td> </tr> <tr> <td> - <span title="Full path to a script to generate VMware ESX Management password">VMware ESX Management Password Script (optional)</span> + VMware Datacenter (ESX only) </td> <td> - <input type="text" name="vmpasswd_script" + <input type="text" name="vmware_datacenter" tal:attributes=" disabled cur_fencedev/isShared | nothing; - value cur_fencedev/vmpasswd_script | nothing" /> + value cur_fencedev/vmware_datacenter | nothing" /> </td> </tr> </table> Index: luci/site/luci/Extensions/FenceHandler.py =================================================================== RCS file: /cvs/cluster/conga/luci/site/luci/Extensions/FenceHandler.py,v retrieving revision 1.4.2.20 diff -u -r1.4.2.20 FenceHandler.py --- a/luci/site/luci/Extensions/FenceHandler.py 5 Aug 2010 19:06:35 -0000 1.4.2.20 +++ b/luci/site/luci/Extensions/FenceHandler.py 6 Aug 2010 18:58:25 -0000 @@ -650,45 +650,34 @@ fencedev.removeAttribute('secure') try: - vmlogin = form['vmlogin'].strip() - if not vmlogin: + vmware_type = form['vmware_type'].strip() + if not vmware_type in ('esx', 'server1', 'server2'): + vmware_type = None raise Exception, 'blank' - fencedev.addAttribute('vmlogin', vmlogin) - except Exception, e: - errors.append(FD_PROVIDE_VMLOGIN) - - has_vmpasswd = False - try: - vmpwd = form['vmpasswd'].strip() - if not vmpwd: - # Allow passwords that consist of only spaces. - if not form.has_key('vmpasswd') or form['vmpasswd'] == '': - raise Exception, 'blank' - else: - vmpwd = form['vmpasswd'] - fencedev.addAttribute('vmpasswd', vmpwd) - has_vmpasswd = True + fencedev.addAttribute('vmware_type', vmware_type) except Exception, e: try: - fencedev.removeAttribute('vmpasswd') + fencedev.removeAttribute('vmware_type') except: pass - try: - vmpwd_script = form['vmpasswd_script'].strip() - if not vmpwd_script: - raise Exception, 'blank' - fencedev.addAttribute('vmpasswd_script', vmpwd_script) - has_vmpasswd = True - except Exception, e: + if not vmware_type in ('server1', 'server2'): try: - fencedev.removeAttribute('vmpasswd_script') + vmware_dc = form['vmware_datacenter'].strip() + if not vmware_dc: + raise Exception, 'blank' + fencedev.addAttribute('vmware_datacenter', vmware_dc) + except Exception, e: + try: + fencedev.removeAttribute('vmware_datacenter') + except: + pass + else: + try: + fencedev.removeAttribute('vmware_datacenter') except: pass - if not has_vmpasswd: - errors.append(FD_PROVIDE_VMPASSWD) - return errors def val_noop_fd(dummy, _dummy):