From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 25 Feb 2011 15:54:37 -0000 Subject: [Cluster-devel] conga/luci cluster/cluster_svc-macros cluster/ ... Message-ID: <20110225155437.18261.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 Branch: RHEL5 Changes by: rmccabe at sourceware.org 2011-02-25 15:54:34 Modified files: luci/cluster : cluster_svc-macros fence-macros resource-form-macros resource_form_handlers.js validate_fence.js luci/site/luci/Extensions: FenceHandler.py LuciClusterInfo.py ResourceHandler.py luci/site/luci/Extensions/ClusterModel: FenceDeviceAttr.py ModelBuilder.py Added files: luci/site/luci/Extensions/ClusterModel: OracleInstance.py OracleListener.py Log message: Sync up with upstream Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/cluster_svc-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.12&r2=1.3.2.13 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.18&r2=1.2.2.19 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.18&r2=1.21.2.19 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.20.2.19&r2=1.20.2.20 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_fence.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.14&r2=1.1.2.15 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.23&r2=1.4.2.24 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciClusterInfo.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.20&r2=1.1.4.21 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.10&r2=1.1.4.11 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/OracleInstance.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/OracleListener.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1 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.5&r2=1.5.2.6 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.16&r2=1.1.4.17 --- conga/luci/cluster/cluster_svc-macros 2009/05/21 13:32:04 1.3.2.12 +++ conga/luci/cluster/cluster_svc-macros 2011/02/25 15:54:33 1.3.2.13 @@ -554,6 +554,12 @@
+ +
+ + +
+
--- conga/luci/cluster/fence-macros 2010/09/29 17:08:24 1.2.2.18 +++ conga/luci/cluster/fence-macros 2011/02/25 15:54:33 1.2.2.19 @@ -266,8 +266,12 @@ - - + + + + + + @@ -356,7 +360,8 @@ - + +
@@ -384,7 +389,8 @@ - + +
@@ -1844,10 +1850,98 @@
-
-
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fence TypeRHEV-M
Name + +
IP Address + +
IP port (optional) + +
Login + +
Password + +
+ Password Script (optional) + + +
Use SSL connections + + +
Power wait (seconds) + +
+ + + + + + + + +
+
+ +
+ +
@@ -1927,7 +2021,7 @@ tal:attributes="value cur_fencedev/name | nothing" /> - + @@ -2362,7 +2456,8 @@ - + + @@ -2383,7 +2478,8 @@ - + +
@@ -2995,9 +3091,47 @@
-
+
+
Fence Type
+ + + + + +
Port + +
+
+ + + + + + +
+
+ + + + + + +
+
+ +
-
@@ -3024,7 +3158,7 @@ - + @@ -3144,7 +3278,9 @@ metal:use-macro="here/fence-macros/macros/fence-instance-form-ifmib" /> + metal:use-macro="here/fence-macros/macros/fence-instance-form-cisco_ucs" /> +
- + + + + + + metal:use-macro="here/fence-macros/macros/fence-instance-form-rhevm" />
--- conga/luci/cluster/resource-form-macros 2010/09/29 17:08:24 1.21.2.18 +++ conga/luci/cluster/resource-form-macros 2011/02/25 15:54:33 1.21.2.19 @@ -173,6 +173,10 @@
+ + + + @@ -196,6 +200,8 @@
+
+
@@ -230,6 +236,10 @@ + + + + @@ -277,6 +287,8 @@
+
+
@@ -1559,6 +1571,168 @@
+
+

Oracle 10g Failover Instance

+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
Instance name (SID) of Oracle instance + +
Oracle user name + +
Oracle application home directory + +
List of Oracle listeners (optional, separated by spaces) + +
Path to lock file (optional) + +
+ +
+ +
+ +
+

Oracle 10g Listener Instance

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Listener Name + +
Oracle user name + +
Oracle application home directory + +
+ +
+ +
+

Sybase ASE Failover Instance Configuration

--- conga/luci/cluster/resource_form_handlers.js 2010/08/07 02:39:59 1.20.2.19 +++ conga/luci/cluster/resource_form_handlers.js 2011/02/25 15:54:33 1.20.2.20 @@ -307,6 +307,8 @@ form_validators['SAPDatabase'] = validate_sapdatabase; form_validators['ASEHAagent'] = validate_sybase; form_validators['oracledb'] = validate_oracle; +form_validators['orainstance'] = validate_oracle; +form_validators['oralistener'] = validate_oracle; function check_form(form) { var valfn = form_validators[form.type.value]; --- conga/luci/cluster/validate_fence.js 2010/09/29 17:08:24 1.1.2.14 +++ conga/luci/cluster/validate_fence.js 2011/02/25 15:54:33 1.1.2.15 @@ -24,7 +24,8 @@ fence_inst_validator['vmware'] = [ 'port' ]; fence_inst_validator['cisco_mds'] = [ 'port' ]; fence_inst_validator['ifmib'] = [ 'port' ]; -fence_inst_validator['ucs'] = [ 'port' ]; +fence_inst_validator['cisco_ucs'] = [ 'port' ]; +fence_inst_validator['rhevm'] = [ 'port' ]; var fence_validator = []; fence_validator['apc'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; @@ -50,7 +51,8 @@ fence_validator['lpar'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; fence_validator['cisco_mds'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; fence_validator['ifmib'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; -fence_validator['ucs'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; +fence_validator['cisco_ucs'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; +fence_validator['rhevm'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ]; fence_validator['vmware'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'vmlogin' ]; fence_validator['xvm'] = []; --- conga/luci/site/luci/Extensions/FenceHandler.py 2010/09/29 17:08:25 1.4.2.23 +++ conga/luci/site/luci/Extensions/FenceHandler.py 2011/02/25 15:54:33 1.4.2.24 @@ -776,7 +776,98 @@ return errors -def val_ucs_fd(form, fencedev): +def val_cisco_ucs_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) + + 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') + + 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') + + use_ssl = form.has_key('ssl') and form['ssl'].lower() in ('1', 'on', 'true') + if use_ssl: + fencedev.addAttribute('ssl', '1') + else: + fencedev.removeAttribute('ssl') + + 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) + + return errors + +def val_rhevm_fd(form, fencedev): errors = list() try: @@ -1476,7 +1567,8 @@ 'fence_egenera': val_egenera_fd, 'fence_bullpap': val_bullpap_fd, 'fence_lpar': val_lpar_fd, - 'fence_ucs': val_ucs_fd, + 'fence_rhevm': val_rhevm_fd, + 'fence_cisco_ucs': val_cisco_ucs_fd, 'fence_cisco_mds': val_cisco_mds_fd, 'fence_ifmib': val_cisco_mds_fd, 'fence_vmware': val_vmware_fd, @@ -1795,7 +1887,20 @@ return errors -def val_ucs_fi(form, fenceinst): +def val_cisco_ucs_fi(form, fenceinst): + errors = list() + + try: + port = form['port'].strip() + if not port: + raise Exception, 'blank' + fenceinst.addAttribute('port', port) + except Exception, e: + errors.append(FI_PROVIDE_PORT) + + return errors + +def val_rhevm_fi(form, fenceinst): errors = list() try: @@ -1832,7 +1937,8 @@ 'fence_xvm': val_xvm_fi, 'fence_scsi': val_scsi_fi, 'fence_lpar': val_lpar_fi, - 'fence_ucs': val_ucs_fi, + 'fence_rhevm': val_rhevm_fi, + 'fence_cisco_ucs': val_cisco_ucs_fi, 'fence_cisco_mds': val_cisco_mds_fi, 'fence_ifmib': val_cisco_mds_fi, 'fence_vmware': val_vmware_fi, --- conga/luci/site/luci/Extensions/LuciClusterInfo.py 2010/09/29 17:08:25 1.1.4.20 +++ conga/luci/site/luci/Extensions/LuciClusterInfo.py 2011/02/25 15:54:33 1.1.4.21 @@ -606,6 +606,7 @@ clumap['sap_agent_v19'] = False clumap['has_qemu'] = False clumap['has_sybase_agent'] = False + clumap['has_split_oracle_agents'] = False try: cluster_os = model.getClusterOS() if cluster_os.find('Tikanga') != -1: @@ -622,6 +623,8 @@ if os_minor > 3: clumap['sap_agent_v19'] = True clumap['has_qemu'] = True + if os_minor > 5: + clumap['has_split_oracle_agents'] = True elif cluster_os.find('Nahant') != -1: clumap['os_major'] = 4 os_minor = int(cluster_os[cluster_os.find('Update ') + 7]) --- conga/luci/site/luci/Extensions/ResourceHandler.py 2010/08/07 03:16:02 1.1.4.10 +++ conga/luci/site/luci/Extensions/ResourceHandler.py 2011/02/25 15:54:33 1.1.4.11 @@ -22,6 +22,8 @@ from ClusterModel.SAPDatabase import SAPDatabase from ClusterModel.SAPInstance import SAPInstance from ClusterModel.OracleDB import OracleDB +from ClusterModel.OracleInstance import OracleInstance +from ClusterModel.OracleListener import OracleListener from ClusterModel.SybaseASE import SybaseASE from LuciZope import GetFormVars @@ -817,25 +819,45 @@ res.addAttribute('type', dbtype) return errors +def addOracleInstance(res, rname, form, model): + params = ( + ('user', 'Oracle User Name', True, None), + ('home', 'Oracle Home Directory', True, None), + ('listeners', 'Oracle listeners', False, None), + ('lockfile', 'Path to lock file', False, None), + ) + errors = config_resource(params, res, rname, form) + return errors + +def addOracleListener(res, rname, form, model): + params = ( + ('user', 'Oracle User Name', True, None), + ('home', 'Oracle Home Directory', True, None), + ) + errors = config_resource(params, res, rname, form) + return errors + resource_table = { - 'ip': ( addIp, Ip ), - 'fs': ( addFs, Fs ), - 'gfs': ( addClusterfs, Clusterfs ), - 'nfsm': ( addNetfs, Netfs ), - 'nfsx': ( addNFSExport, NFSExport ), - 'nfsc': ( addNFSClient, NFSClient ), - 'scr': ( addScript, Script ), - 'smb': ( addSamba, Samba ), - 'tomcat-5': ( addTomcat5, Tomcat5 ), - 'postgres-8': ( addPostgres8, Postgres8 ), - 'apache': ( addApache, Apache ), - 'openldap': ( addOpenLDAP, OpenLDAP ), - 'lvm': ( addLVM, LVM ), - 'mysql': ( addMySQL, MySQL ), - 'SAPDatabase': ( addSAPDatabase, SAPDatabase ), - 'SAPInstance': ( addSAPInstance, SAPInstance ), - 'oracledb': ( addOracleDB, OracleDB ), - 'ASEHAagent': ( addSybaseASE, SybaseASE ) + 'ip': ( addIp, Ip ), + 'fs': ( addFs, Fs ), + 'gfs': ( addClusterfs, Clusterfs ), + 'nfsm': ( addNetfs, Netfs ), + 'nfsx': ( addNFSExport, NFSExport ), + 'nfsc': ( addNFSClient, NFSClient ), + 'scr': ( addScript, Script ), + 'smb': ( addSamba, Samba ), + 'tomcat-5': ( addTomcat5, Tomcat5 ), + 'postgres-8': ( addPostgres8, Postgres8 ), + 'apache': ( addApache, Apache ), + 'openldap': ( addOpenLDAP, OpenLDAP ), + 'lvm': ( addLVM, LVM ), + 'mysql': ( addMySQL, MySQL ), + 'SAPDatabase': ( addSAPDatabase, SAPDatabase ), + 'SAPInstance': ( addSAPInstance, SAPInstance ), + 'oracledb': ( addOracleDB, OracleDB ), + 'orainstance': ( addOracleInstance, OracleInstance ), + 'oralistener': ( addOracleListener, OracleListener ), + 'ASEHAagent': ( addSybaseASE, SybaseASE ) } def create_resource(res_type, form, model): --- conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py 2010/09/29 17:08:25 1.5.2.5 +++ conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py 2011/02/25 15:54:33 1.5.2.6 @@ -32,8 +32,9 @@ 'fence_rps10': 'RPS10 Serial Switch', 'fence_lpar': 'LPAR Fencing', 'fence_vmware': 'VMware Fencing', + 'fence_rhevm': 'RHEV-M Fencing', 'fence_cisco_mds': 'Cisco MDS', - 'fence_ucs': 'Cisco UCS', + 'fence_cisco_ucs': 'Cisco UCS', 'fence_ifmib': 'IF MIB', 'fence_manual': 'Manual Fencing' } @@ -53,8 +54,9 @@ 'fence_scsi': True, 'fence_lpar': True, 'fence_vmware': True, + 'fence_rhevm': True, 'fence_cisco_mds': True, - 'fence_ucs': True, + 'fence_cisco_ucs': True, 'fence_ifmib': True, 'fence_ilo': False, 'fence_ilo_mp': False, @@ -100,8 +102,9 @@ 'fence_scsi': ( 'node' ), 'fence_lpar': ( 'partition' ), 'fence_vmware': ( 'port' ), + 'fence_rhevm': ( 'port' ), 'fence_cisco_mds': ( 'port' ), - 'fence_ucs': ( 'port' ), + 'fence_cisco_ucs': ( 'port' ), 'fence_ifmib': ( 'port' ), 'fence_ilo': ( ), 'fence_ipmilan': ( ), @@ -138,9 +141,11 @@ ( 'name', 'ipaddr', 'login', 'passwd' ), 'fence_vmware': ( 'name', 'ipaddr', 'login', 'passwd', 'vmlogin', 'vmpasswd' ), + 'fence_rhevm': + ( 'name', 'ipaddr', 'login', 'passwd' ), 'fence_cisco_mds': ( 'name', 'ipaddr', 'login', 'passwd' ), - 'fence_ucs': + 'fence_cisco_ucs': ( 'name', 'ipaddr', 'login', 'passwd' ), 'fence_ifmib': ( 'name', 'ipaddr', 'login', 'passwd' ), --- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2010/09/29 17:08:25 1.1.4.16 +++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2011/02/25 15:54:33 1.1.4.17 @@ -35,6 +35,8 @@ from SAPInstance import SAPInstance from SybaseASE import SybaseASE from OracleDB import OracleDB +from OracleInstance import OracleInstance +from OracleListener import OracleListener from Multicast import Multicast from FenceDaemon import FenceDaemon from FenceXVMd import FenceXVMd @@ -97,6 +99,8 @@ 'SAPInstance': SAPInstance, 'ASEHAagent': SybaseASE, 'oracledb': OracleDB, + 'orainstance': OracleInstance, + 'oralistener': OracleListener, 'device': Device }