commit bf7737a64052eefc6295b5a822ddd56a1975fa9c Author: Jan Pokorny jpokorny@redhat.com Date: Tue Aug 3 18:31:37 2010 +0200
Fix rhbz#614130 - tomcat6 resource agent for RHEL6
luci/lib/ClusterConf/ModelBuilder.py | 4 +- luci/lib/ClusterConf/Tomcat6.py | 18 ++++++++ luci/templates/resource_list.html | 59 ++++++++++++++++++++++++-- luci/widget_validators/validate_resource.py | 12 +++++ 4 files changed, 87 insertions(+), 6 deletions(-) --- diff --git a/luci/lib/ClusterConf/ModelBuilder.py b/luci/lib/ClusterConf/ModelBuilder.py index 84daf20..e7cdbb6 100644 --- a/luci/lib/ClusterConf/ModelBuilder.py +++ b/luci/lib/ClusterConf/ModelBuilder.py @@ -34,9 +34,10 @@ from MySQL import MySQL from OpenLDAP import OpenLDAP from Postgres8 import Postgres8 from Tomcat5 import Tomcat5 +from Tomcat6 import Tomcat6 from SAPDatabase import SAPDatabase from SAPInstance import SAPInstance -from SybaseASE import SybaseASE +from SybaseASE import SybaseASE from OracleDB import OracleDB from Multicast import Multicast from FenceDaemon import FenceDaemon @@ -89,6 +90,7 @@ TAGNAMES = { 'cluster': Cluster, 'openldap': OpenLDAP, 'postgres-8': Postgres8, 'tomcat-5': Tomcat5, + 'tomcat-6': Tomcat6, 'fence_daemon': FenceDaemon, 'multicast': Multicast, 'clusterfs': Clusterfs, diff --git a/luci/lib/ClusterConf/Tomcat6.py b/luci/lib/ClusterConf/Tomcat6.py new file mode 100644 index 0000000..189759c --- /dev/null +++ b/luci/lib/ClusterConf/Tomcat6.py @@ -0,0 +1,18 @@ +# Copyright (C) 2006-2009 Red Hat, Inc. +# +# This program is free software; you can redistribute +# it and/or modify it under the terms of version 2 of the +# GNU General Public License as published by the +# Free Software Foundation. + +from BaseResource import BaseResource +from gettext import gettext as _ + +TAG_NAME = 'tomcat-6' +RESOURCE_TYPE = _('Tomcat 6 Server') + +class Tomcat6(BaseResource): + def __init__(self): + BaseResource.__init__(self) + self.TAG_NAME = TAG_NAME + self.resource_type = RESOURCE_TYPE diff --git a/luci/templates/resource_list.html b/luci/templates/resource_list.html index 75da32c..6ba06e5 100644 --- a/luci/templates/resource_list.html +++ b/luci/templates/resource_list.html @@ -784,6 +784,52 @@ </table> </div>
+<div py:def="tomcat6_resource(res, form_id, parent_id, isref)" name="TOMCAT-6" id="tomcat6_resource" class="row rescfg" + py:with="global_resource = res and isref != 0" + py:attrs="res and {'id': 'global_res_%s' % res.getName(), 'name': res.getName()}"> + <input name="global" type="hidden" value="1" py:if="global_resource"/> + <input name="parent_id" type="hidden" value="${parent_id}"/> + <input name="form_id" type="hidden" value="${form_id}"/> + <input name="oldname" type="hidden" + py:attrs="res and {'value':res.getAttribute('name')} or {}" /> + <input name="type" type="hidden" value="tomcat-6" /> + + <table class="formtable"> + <tr> + <td>Name</td> + <td> + <input type="text" class="text" name="resourcename" + py:attrs="res and {'value':res.getAttribute('name'), 'disabled':global_resource and 'disabled' or None} or {}" /> + </td> + </tr> + <tr> + <td>Config file</td> + <td> + <input type="text" class="text" name="config_file" + value="/etc/tomcat6/tomcat6.conf" + py:attrs="res and {'value':res.getAttribute('config_file'), 'disabled':global_resource and 'disabled' or None} or {}" /> + </td> + </tr> + <!--! XXX: really not supported? + <tr> + <td>Tomcat user</td> + <td> + <input type="text" class="text" name="tomcat_user" + value="tomcat" + py:attrs="res and {'value':res.getAttribute('tomcat_user'), 'disabled':global_resource and 'disabled' or None} or {}" /> + </td> + </tr> + --> + <tr> + <td>Shutdown wait (seconds)</td> + <td> + <input type="text" class="text" name="shutdown_wait" value="30" + py:attrs="res and {'value':res.getAttribute('shutdown_wait'), 'disabled':global_resource and 'disabled' or None} or {}" /> + </td> + </tr> + </table> +</div> + <div py:def="SAPInstance_resource(res, form_id, parent_id, isref)" name="SAPInstance" id="SAPInstance_resource" class="row rescfg" py:with="global_resource = res and isref != 0" py:attrs="res and {'id': 'global_res_%s' % res.getName(), 'name': res.getName()}"> @@ -1373,6 +1419,7 @@ ${lvm_resource(None,None,None,0)} ${openldap_resource(None,None,None,0)} ${postgres8_resource(None,None,None,0)} ${tomcat5_resource(None,None,None,0)} +${tomcat6_resource(None,None,None,0)} ${SAPInstance_resource(None,None,None,0)} ${SAPDatabase_resource(None,None,None,0)} ${ASEHAagent_resource(None,None,None,0)} @@ -1396,7 +1443,8 @@ ${vm_resource(None,None,None,0)} <select name="res_select" class="resource_selector" py:with=" svc_onchange_fn = 'insert_resource(this.options[this.selectedIndex].value, '%s', this.form, '%s');this.selectedIndex=0' % (dest, parentid); - res_onchange_fn = 'swap_resource_form(this.options[this.selectedIndex].value);this.selectedIndex=0'" + res_onchange_fn = 'swap_resource_form(this.options[this.selectedIndex].value);this.selectedIndex=0'; + cluster_version = tmpl_context.cluster.get_version()" py:attrs="{'onchange': model and svc_onchange_fn or res_onchange_fn, 'id': parentid and '%s_resource_selector' % parentid or 'resource_selector'}"> <py:if test="model" py:with="global_res = model.getResources()"> <py:if test="len(global_res) != 0"> @@ -1412,7 +1460,7 @@ ${vm_resource(None,None,None,0)} <option>-- Select a resource type --</option> <option name="apache_resource" value="apache_resource">Apache</option> <option name="fs_resource" value="fs_resource">Filesystem</option> - <py:choose test="tmpl_context.cluster.get_version()"> + <py:choose test="cluster_version"> <py:when test="3"> <option name="clusterfs_resource" value="clusterfs_resource">GFS2</option> </py:when> @@ -1426,7 +1474,7 @@ ${vm_resource(None,None,None,0)} <option name="netfs_resource" value="netfs_resource">NFS/CIFS Mount</option> <option name="nfsclient_resource" value="nfsclient_resource">NFS Client</option> <option name="nfsexport_resource" value="nfsexport_resource">NFS v3 Export</option> - <option py:if="tmpl_context.cluster.get_version() not in (1, 2)" name="nfsserver_resource" value="nfsserver_resource">NFS Server</option> + <option py:if="cluster_version not in (1, 2)" name="nfsserver_resource" value="nfsserver_resource">NFS Server</option> <option name="oracledb_resource" value="oracledb_resource">Oracle 10g/11g Failover Instance</option> <option name="openldap_resource" value="openldap_resource">Open LDAP</option> <option name="postgres8_resource" value="postgres8_resource">PostgreSQL 8</option> @@ -1435,7 +1483,8 @@ ${vm_resource(None,None,None,0)} <option name="smb_resource" value="smb_resource">Samba Server</option> <option name="script_resource" value="script_resource">Script</option> <option name="ASEHAagent_resource" value="ASEHAagent_resource">Sybase ASE Failover Instance</option> - <option name="tomcat5_resource" value="tomcat5_resource">Tomcat</option> + <option py:if="cluster_version < 3" name="tomcat5_resource" value="tomcat5_resource">Tomcat 5</option> + <option py:if="cluster_version >= 3" name="tomcat6_resource" value="tomcat6_resource">Tomcat 6</option> <option name="vm_resource" value="vm_resource" py:if="model">Virtual machine</option> </select> </div> @@ -1570,7 +1619,7 @@ ${vm_resource(None,None,None,0)} value="Add a child resource" onclick="${'insert_resource_dialog(this.form, 'children_%s', '%s')' % (cur_id_str, cur_id_str)}"/> </div> - </div> + </div> </td> </tr> </tbody> diff --git a/luci/widget_validators/validate_resource.py b/luci/widget_validators/validate_resource.py index ea683a2..c5ef6be 100644 --- a/luci/widget_validators/validate_resource.py +++ b/luci/widget_validators/validate_resource.py @@ -15,6 +15,7 @@ from luci.lib.ClusterConf.NFSServer import NFSServer from luci.lib.ClusterConf.Script import Script from luci.lib.ClusterConf.Samba import Samba from luci.lib.ClusterConf.Tomcat5 import Tomcat5 +from luci.lib.ClusterConf.Tomcat6 import Tomcat6 from luci.lib.ClusterConf.Postgres8 import Postgres8 from luci.lib.ClusterConf.Apache import Apache from luci.lib.ClusterConf.OpenLDAP import OpenLDAP @@ -271,6 +272,16 @@ def addTomcat5(res, rname, model, **kw): errors = config_resource(params, res, rname, **kw) return errors
+def addTomcat6(res, rname, model, **kw): + params = ( + ('config_file', _('Path to configuration file'), False, None), + # XXX really not supported? + # ('tomcat_user', '', False, None), + ('shutdown_wait', '', False, None) + ) + errors = config_resource(params, res, rname, **kw) + return errors + def addLVM(res, rname, model, **kw): params = ( ('vg_name', _('Volume group name'), True, None), @@ -389,6 +400,7 @@ resource_table = { 'script': ( addScript, Script ), 'smb': ( addSamba, Samba ), 'tomcat-5': ( addTomcat5, Tomcat5 ), + 'tomcat-6': ( addTomcat6, Tomcat6 ), 'postgres-8': ( addPostgres8, Postgres8 ), 'apache': ( addApache, Apache ), 'openldap': ( addOpenLDAP, OpenLDAP ),