[Cluster-devel] conga/luci cluster/form-macros cluster/index_h ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Tue Feb 20 23:07:01 UTC 2007
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-02-20 23:07:00
Modified files:
luci/cluster : form-macros index_html resource-form-macros
luci/site/luci/Extensions: cluster_adapters.py ricci_bridge.py
Log message:
- Only allow resources using the new application resource agents to be added and configured if the 'rgmanager-app-agents' package is installed.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.191&r2=1.192
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/index_html.diff?cvsroot=cluster&r1=1.30&r2=1.31
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.33&r2=1.34
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.241&r2=1.242
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_bridge.py.diff?cvsroot=cluster&r1=1.56&r2=1.57
--- conga/luci/cluster/form-macros 2007/02/16 05:26:18 1.191
+++ conga/luci/cluster/form-macros 2007/02/20 23:06:59 1.192
@@ -4117,6 +4117,8 @@
<tal:block metal:use-macro="here/form-macros/macros/service-config-head-macro" />
<h2>Add a Service</h2>
+ <tal:block tal:define="
+ global clusterinfo python: here.getClusterInfo(modelb, request)" />
<div id="resskel" class="invisible">
<tal:block metal:use-macro="here/resource-form-macros/macros/service-compose-macro" />
@@ -4178,8 +4180,6 @@
<div class="service_comp_list">
<form name="master" method="post">
- <tal:block
- tal:define="global clusterinfo python: here.getClusterInfo(modelb, request)" />
<input type="button" value="Add a resource to this service"
onclick="add_child_resource(this.form);" />
<input type="hidden" name="pagetype"
@@ -4395,6 +4395,8 @@
<br/>
<h2>Service Composition</h2>
+ <tal:block tal:define="
+ global clusterinfo python: here.getClusterInfo(modelb, request)" />
<div id="resskel" class="invisible">
<tal:block metal:use-macro="here/resource-form-macros/macros/service-compose-macro" />
@@ -4474,8 +4476,6 @@
</form>
<form name="master" method="post">
- <tal:block
- tal:define="global clusterinfo python: here.getClusterInfo(modelb, request)" />
<input type="hidden" name="pagetype"
tal:attributes="
value request/pagetype | request/form/pagetype | nothing" />
--- conga/luci/cluster/index_html 2006/12/21 05:08:48 1.30
+++ conga/luci/cluster/index_html 2007/02/20 23:06:59 1.31
@@ -32,10 +32,6 @@
global ri_agent nothing;
global busywaiting python:None" />
- <tal:block tal:condition="not: hascluster">
- <meta googaa="ooo"/>
- </tal:block>
-
<tal:block tal:condition="hascluster">
<tal:block tal:define="
global ri_agent python:here.getRicciAgentForCluster(request);
@@ -45,6 +41,10 @@
global isBusy python:here.isClusterBusy(request);
global firsttime request/busyfirst |nothing" />
+ <tal:block tal:condition="ri_agent">
+ <tal:block tal:define="dummy python:request.SESSION.set('ricci', ri_agent)" />
+ </tal:block>
+
<tal:block tal:condition="firsttime">
<tal:block tal:define="global busywaiting python:True" />
<meta http-equiv="refresh"
--- conga/luci/cluster/resource-form-macros 2007/02/16 02:06:08 1.33
+++ conga/luci/cluster/resource-form-macros 2007/02/20 23:06:59 1.34
@@ -120,7 +120,7 @@
<option name="SMB" value="SMB">Samba</option>
<tal:block
- tal:condition="python: os_version and os_version == 'rhel4'">
+ tal:condition="python:clusterinfo and 'has_rgmanager_app_agents' in clusterinfo and clusterinfo['has_rgmanager_app_agents'] is True">
<option name="APACHE" value="APACHE">Apache</option>
<option name="LVM" value="LVM">LVM</option>
<option name="MYSQL" value="MYSQL">MySQL</option>
@@ -170,7 +170,7 @@
<option name="SMB" value="SMB">Samba</option>
<tal:block
- tal:condition="python: os_version and os_version == 'rhel4'">
+ tal:condition="python:clusterinfo and 'has_rgmanager_app_agents' in clusterinfo and clusterinfo['has_rgmanager_app_agents'] is True">
<option name="APACHE" value="APACHE">Apache</option>
<option name="LVM" value="LVM">LVM</option>
<option name="MYSQL" value="MYSQL">MySQL</option>
@@ -238,7 +238,10 @@
</script>
<tal:block tal:define="
- global res python: here.getResourceInfo(modelb, request);" />
+ global res python: here.getResourceInfo(modelb, request)" />
+
+ <tal:block tal:define="
+ global clusterinfo python: here.getClusterInfo(modelb, request)" />
<h2>Add a Resource</h2>
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2007/02/16 05:26:18 1.241
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2007/02/20 23:07:00 1.242
@@ -3895,7 +3895,18 @@
luci_log.debug_verbose('GCI0: unable to determine cluster name')
return {}
+ has_app_agents = False
+ try:
+ ricci = req.SESSION.get('ricci')
+ if not ricci:
+ raise Exception, 'blank'
+ has_app_agents = has_rgmanager_app_agents(ricci)
+ except Exception, e:
+ luci_log.debug_verbose('GCI0a: %s' % str(e))
+ has_app_agents = False
+
clumap = {}
+ clumap['has_rgmanager_app_agents'] = has_app_agents
if model is None:
try:
model = getModelForCluster(self, cluname)
--- conga/luci/site/luci/Extensions/ricci_bridge.py 2007/01/31 19:28:08 1.56
+++ conga/luci/site/luci/Extensions/ricci_bridge.py 2007/02/20 23:07:00 1.57
@@ -486,6 +486,43 @@
ricci_xml = rc.batch_run(batch_str)
return batchAttemptResult(ricci_xml)
+def has_rgmanager_app_agents(rc):
+ batch_str = '<module name="rpm"><request API_version="1.0"><function_call name="query"><var mutable="false" name="search" type="list_xml"><rpm name="rgmanager-app-agents"/></var></function_call></request></module>'
+
+ ricci_xml = rc.batch_run(batch_str, async=False)
+ if not ricci_xml or not ricci_xml.firstChild:
+ luci_log.debug_verbose('HRAA0: None returned')
+ return None
+
+ rpm_tags = ricci_xml.getElementsByTagName('rpm')
+ if not rpm_tags or len(rpm_tags) < 1:
+ luci_log.debug_verbose('HRAA: unexpected response %s' \
+ % ricci_xml.toxml())
+ return None
+
+ has_agents = False
+ for i in rpm_tags:
+ try:
+ name = i.getAttribute('name')
+ if not name:
+ raise Exception, 'blank'
+ except Exception, e:
+ luci_log.debug_verbose('HRAA2: %s' % str(e))
+ continue
+
+ if name.strip().lower() != 'rgmanager-app-agents':
+ continue
+
+ try:
+ version = i.getAttribute('version').strip()
+ if version:
+ has_agents = True
+ except Exception, e:
+ luci_log.debug_verbose('HRAA3: %s' % str(e))
+ break
+
+ return has_agents
+
def nodeIsVirtual(rc):
batch_str = '<module name="cluster"><request API_version="1.0"><function_call name="virt_guest"/></request></module>'
More information about the Cluster-devel
mailing list