[Cluster-devel] conga/luci/cluster form-macros resource-form-m ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Tue Aug 29 23:23:00 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2006-08-29 23:23:00
Modified files:
luci/cluster : form-macros resource-form-macros
Log message:
more ui work
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.51&r2=1.52
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.4&r2=1.5
--- conga/luci/cluster/form-macros 2006/08/28 23:04:59 1.51
+++ conga/luci/cluster/form-macros 2006/08/29 23:22:59 1.52
@@ -1,9 +1,9 @@
-<html>
-
-<head>
+<html>
+
+<head>
<title tal:content="template/title">The title</title>
-</head>
-
+</head>
+
<body>
<div metal:define-macro="entry-form">
@@ -21,19 +21,16 @@
<tr><td>
<h2><span tal:content="isBusy/desc" /></h2>
</td></tr>
-
</table>
</div>
<div metal:define-macro="clusters-form">
-
<div id="cluster_list">
-
<div class="cluster" tal:repeat="clu clusystems">
<tal:block
- tal:define="ragent python:here.getRicciAgent(clu);
- global stat python:here.getClusterStatus(ragent);
- global cstatus python:here.getClustersInfo(stat,request);
+ tal:define="ragent python: here.getRicciAgent(clu);
+ global stat python: here.getClusterStatus(ragent);
+ global cstatus python: here.getClustersInfo(stat,request);
global cluster_status python: 'cluster ' + (cstatus['running'] == 'true' and 'running' or 'stopped');"
/>
@@ -51,7 +48,7 @@
<form method="post" onSubmit="return dropdown(this.gourl)">
<select name="gourl" id="cluster_action" class="cluster">
<option tal:condition="python: cstatus['running'] != 'true'" value="" class="cluster running">Start this cluster</option>
- <option tal:condition="python:cstatus['running'] == 'true'" value="" class="cluster stopped">Stop this cluster</option>
+ <option tal:condition="python: cstatus['running'] == 'true'" value="" class="cluster stopped">Stop this cluster</option>
<option value="" class="cluster">Restart this cluster</option>
</select>
<input class="cluster" type="submit" value="Go" />
@@ -86,10 +83,10 @@
</ul>
</td>
- <td class="cluster_services">
- <strong class="cluster">Services</strong>
- <ul class="cluster">
- <tal:block tal:condition="python:len(cstatus['currentservices']) < 1">
+ <td class="cluster service cluster_services">
+ <strong class="cluster service">Services</strong>
+ <ul class="cluster service">
+ <tal:block tal:condition="python: len(cstatus['currentservices']) < 1">
<li>No Services Defined</li>
</tal:block>
@@ -124,7 +121,7 @@
</script>
<tal:block tal:omit-tag=""
- tal:define="global sessionObj python:request.SESSION.get('checkRet')" />
+ tal:define="global sessionObj python: request.SESSION.get('checkRet')" />
<form name="adminform" action="" method="post">
<input name="pagetype" id="pagetype" type="hidden" value="6" />
@@ -267,11 +264,11 @@
<div metal:define-macro="clusterconfig-form">
<tal:comment tal:replace="nothing">
- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+ <span tal:define="global ricci_agent python: here.getRicciAgentForCluster(request)"/>
</tal:comment>
<tal:block
- tal:define="global clusterinfo python:here.getClusterInfo(modelb, request)" />
+ tal:define="global clusterinfo python: here.getClusterInfo(modelb, request)" />
<span tal:omit-tag="" tal:define="global configTabNum python: 'tab' in request and int(request['tab']) or 1" />
@@ -307,7 +304,7 @@
<script type="text/javascript" src="/luci/cluster/validate_config_general.js"></script>
<form name="basecluster" action="" method="post">
<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
- <thead class="systemsTable">
+ <thead class="systemsTable">
<tr class="systemsTable"><td class="systemsTable" colspan="1">
<div class="systemsTableTop">
<strong>General Properties</strong>
@@ -348,7 +345,7 @@
<script type="text/javascript" src="/luci/homebase/homebase_common.js"></script>
<script type="text/javascript" src="/luci/cluster/validate_config_fence.js"></script>
<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
- <thead class="systemsTable">
+ <thead class="systemsTable">
<tr class="systemsTable"><td class="systemsTable" colspan="1">
<div class="systemsTableTop">
<strong>Fence Daemon Properties</strong>
@@ -390,7 +387,7 @@
<form name="multicast" action="" method="post">
<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
- <thead class="systemsTable">
+ <thead class="systemsTable">
<tr class="systemsTable"><td class="systemsTable" colspan="1">
<div class="systemsTableTop">
<strong>Multicast Configuration</strong>
@@ -403,7 +400,7 @@
<td class="systemsTable">
<input type="radio" name="mcast" value="False"
onClick="disable_mcast('mcast_address');"
- tal:attributes="checked python:clusterinfo['is_mcast'] != 'True'"
+ tal:attributes="checked python: clusterinfo['is_mcast'] != 'True'"
/>
Let cluster choose the multicast address
</td>
@@ -413,8 +410,8 @@
<td class="systemsTable">
<input type="radio" name="mcast" value="True"
onClick="enable_mcast('mcast_address');"
- tal:attributes="checked python:clusterinfo['is_mcast'] == 'True'"
-
+ tal:attributes="checked python: clusterinfo['is_mcast'] == 'True'"
+
/>
Specify the multicast address manually
</td>
@@ -451,7 +448,7 @@
/>
<div class="configTabContent">
<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
- <thead class="systemsTable">
+ <thead class="systemsTable">
<tr class="systemsTable"><td class="systemsTable" colspan="1">
<div class="systemsTableTop">
<strong>Quorum Partition Configuration</strong>
@@ -463,14 +460,14 @@
<tr class="systemsTable" id="st_row"><td class="systemsTable" id="st_col">
<input type="radio" name="quorumd" value="False"
onClick="disableChildrenInput('quorumdisk');"
- tal:attributes="checked python:clusterinfo['is_quorumd'] != 'True'"/>
+ tal:attributes="checked python: clusterinfo['is_quorumd'] != 'True'"/>
Do not use a Quorum Partition
</td></tr>
<tr class="systemsTable"><td class="systemsTable">
<input type="radio" name="quorumd" value="True"
onClick="enableChildrenInput('quorumdisk');"
- tal:attributes="checked python:clusterinfo['is_quorumd'] == 'True'"/>
+ tal:attributes="checked python: clusterinfo['is_quorumd'] == 'True'"/>
Use a Quorum Partition
</td></tr>
</tbody>
@@ -534,7 +531,7 @@
<div class="configTabContent">
<table name="qdiskheur" class="systemsTable">
- <thead class="systemsTable">
+ <thead class="systemsTable">
<tr class="systemsTable"><td class="systemsTable" colspan="1">
<div class="systemsTableTop">
<strong>Heuristics</strong>
@@ -635,7 +632,7 @@
onClick="validate_form(this.form);"
>
</div>
- <script tal:condition="python:clusterinfo['is_quorumd'] != 'True'">
+ <script tal:condition="python: clusterinfo['is_quorumd'] != 'True'">
disableChildrenInput('quorumdisk');
</script>
</form>
@@ -643,8 +640,8 @@
</div>
<div metal:define-macro="clusterprocess-form">
- <span tal:define="global r_agent python:here.getRicciAgentForCluster(request)"/>
- <span tal:define="res python:here.processClusterProps(r_agent, request)"/>
+ <span tal:define="global r_agent python: here.getRicciAgentForCluster(request)"/>
+ <span tal:define="res python: here.processClusterProps(r_agent, request)"/>
</div>
<div metal:define-macro="node-form">
@@ -655,9 +652,9 @@
</tal:comment>
<tal:block tal:define="
- global ricci_agent python:here.getRicciAgentForCluster(request);
- global nodestatus python:here.getClusterStatus(ricci_agent);
- global nodeinfo python:here.getNodeInfo(modelb, nodestatus, request);
+ global ricci_agent python: here.getRicciAgentForCluster(request);
+ global nodestatus python: here.getClusterStatus(ricci_agent);
+ global nodeinfo python: here.getNodeInfo(modelb, nodestatus, request);
global status_class python: 'node_' + (nodeinfo['nodestate'] == '0' and 'active' or (nodeinfo['nodestate'] == '1' and 'inactive' or 'unknown'));
global cluster_node_status_str python: (nodeinfo['nodestate'] == '0' and 'Cluster member' or (nodeinfo['nodestate'] == '1' and 'Currently not a cluster participant' or 'This node is not responding'));"
/>
@@ -701,9 +698,10 @@
</tr>
- <tr class="cluster node info_bottom">
+ <tr class="cluster node info_bottom"
+ tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
<td class="cluster node node_log" colspan="2">
- <a class="cluster node"
+ <a class="cluster node"
tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">
Show recent log activity for this node
</a>
@@ -711,7 +709,10 @@
</tr>
</table>
- <hr/>
+ <hr/>
+
+ <tal:block
+ tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
<h3>Cluster daemons running on this node</h3>
<form name="daemon_form">
@@ -744,29 +745,28 @@
</tbody>
</table>
</form>
-
- <hr/>
+ <hr/>
+ </tal:block>
<div>
- <h3>Services on this Node:</h3>
+ <h3>Services on this Node</h3>
<ul class="cluster node">
- <tal:block tal:condition="python:len(nodeinfo['currentservices']) == 0">
+ <tal:block tal:condition="python: len(nodeinfo['currentservices']) == 0">
<li>No cluster services are currently running here</li>
</tal:block>
<li class="cluster node cluster_service" tal:repeat="svc nodeinfo/currentservices">
- <a tal:attributes="href svc/svcurl">
- <font color="green"><span tal:replace="svc/servicename"/></font>
- </a>
+ <a class="running" tal:attributes="href svc/svcurl"
+ tal:content="svc/servicename" />
</li>
</ul>
</div>
<hr/>
- <div class="fdomblock">
+ <div class="fdomblock">
<h3>Failover Domain Membership</h3>
<ul class="cluster node">
- <tal:block tal:condition="python:len(nodeinfo['fdoms']) == 0">
+ <tal:block tal:condition="python: len(nodeinfo['fdoms']) == 0">
<li>This node has no failover domain membership</li>
</tal:block>
<li class="cluster node node_fdom" tal:repeat="fdom nodeinfo/fdoms">
@@ -794,9 +794,9 @@
<div metal:define-macro="nodes-form">
<div id="node_list" tal:define="
- global ricci_agent python:here.getRicciAgentForCluster(request);
- global status python:here.getClusterStatus(ricci_agent);
- global nds python:here.getNodesInfo(modelb,status,request)">
+ global ricci_agent python: here.getRicciAgentForCluster(request);
+ global status python: here.getClusterStatus(ricci_agent);
+ global nds python: here.getNodesInfo(modelb,status,request)">
<div tal:repeat="nd nds">
<tal:block
@@ -842,7 +842,7 @@
<td class="node node_services">
<strong class="cluster node">Services on this Node:</strong>
<ul class="cluster node">
- <li tal:condition="python:len(nd['currentservices']) == 0">
+ <li tal:condition="python: len(nd['currentservices']) == 0">
No cluster services are currently running here
</li>
<li class="cluster_service cluster node"
@@ -904,9 +904,8 @@
<div metal:define-macro="nodelogs-form">
<h2>Recent Log Activity for <span tal:replace="request/nodename"/></h2>
- ---------------------------------------------------------------------------------------
- <br/>
- <span tal:replace="python:here.getLogsForNode(request)"/>
+ <hr/>
+ <span tal:replace="python: here.getLogsForNode(request)"/>
</div>
<div metal:define-macro="nodeadd-form">
@@ -974,7 +973,8 @@
</div>
<div metal:define-macro="nodeprocess-form">
- <span tal:define="result python:here.nodeTaskProcess(modelb, request)"/>
+ <tal:block
+ tal:define="result python: here.nodeTaskProcess(modelb, request)"/>
<h2>Node Process Form</h2>
</div>
@@ -985,9 +985,9 @@
<div metal:define-macro="servicelist-form">
<tal:block tal:omit-tag=""
tal:define="
- global ricci_agent python:here.getRicciAgentForCluster(request);
- global svcstatus python:here.getClusterStatus(ricci_agent);
- global svcinf python:here.getServicesInfo(svcstatus,modelb,request);
+ global ricci_agent python: here.getRicciAgentForCluster(request);
+ global svcstatus python: here.getClusterStatus(ricci_agent);
+ global svcinf python: here.getServicesInfo(svcstatus,modelb,request);
global svcs svcinf/services" />
<tal:block tal:repeat="svc svcs">
@@ -1015,7 +1015,7 @@
</tr>
<tr class="cluster service info_middle">
- <td class="cluster service service_nodename">
+ <td class="cluster service service_nodename">
<div class="cluster service service_status">
<strong class="cluster service service_name">Status:</strong>
<tal:block tal:condition="running">
@@ -1046,29 +1046,29 @@
</div>
<div metal:define-macro="servicestart">
- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
- <span tal:define="result python:here.serviceStart(ricci_agent, request)"/>
+ <span tal:define="global ricci_agent python: here.getRicciAgentForCluster(request)"/>
+ <span tal:define="result python: here.serviceStart(ricci_agent, request)"/>
<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
</div>
<div metal:define-macro="servicerestart">
- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
- <span tal:define="result python:here.serviceRestart(ricci_agent, request)"/>
+ <span tal:define="global ricci_agent python: here.getRicciAgentForCluster(request)"/>
+ <span tal:define="result python: here.serviceRestart(ricci_agent, request)"/>
<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
</div>
<div metal:define-macro="servicestop">
- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
- <span tal:define="result python:here.serviceStop(ricci_agent,request)"/>
+ <span tal:define="global ricci_agent python: here.getRicciAgentForCluster(request)"/>
+ <span tal:define="result python: here.serviceStop(ricci_agent,request)"/>
<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
</div>
<div metal:define-macro="serviceconfig-form">
<tal:block tal:define="
- global ricci_agent python:here.getRicciAgentForCluster(request);
- global sstat python:here.getClusterStatus(ricci_agent);
- global sinfo python:here.getServiceInfo(sstat, modelb,request);
+ global ricci_agent python: here.getRicciAgentForCluster(request);
+ global sstat python: here.getClusterStatus(ricci_agent);
+ global sinfo python: here.getServiceInfo(sstat, modelb,request);
global running sinfo/running | nothing;" />
<table class="cluster service" width="100%">
@@ -1115,7 +1115,7 @@
<br/>
<h2>Service Composition</h2>
<ul tal:define="global svc_rcs sinfo/resource_list">
- <li tal:repeat="res svc_rcs">
+ <li tal:repeat="res svc_rcs">
<ul tal:define="
global type res/type;
global ref res/ref_object | nothing">
@@ -1124,29 +1124,29 @@
<span tal:omit-tag="" tal:define="global shared string:true"/>
</tal:block>
- <div class="" tal:attributes="class python:'rc_indent' + str(res['indent_ctr'])">
- <span tal:omit-tag="" tal:condition="python:type == 'IP Address: '">
+ <div class="" tal:attributes="class python: 'rc_indent' + str(res['indent_ctr'])">
+ <span tal:omit-tag="" tal:condition="python: type == 'IP Address: '">
<li metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'fs'">
+ <span tal:omit-tag="" tal:condition="python: type == 'fs'">
<li metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'gfs'">
+ <span tal:omit-tag="" tal:condition="python: type == 'gfs'">
<li metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsm'">
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsm'">
<li metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsx'">
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsx'">
<li metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsc'">
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsc'">
<li metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'smb'">
+ <span tal:omit-tag="" tal:condition="python: type == 'smb'">
<li metal:use-macro="here/resource-form-macros/macros/smb_macro" />
</span>
- <span tal:omit-tag="" tal:condition="python:type == 'Script: '">
+ <span tal:omit-tag="" tal:condition="python: type == 'Script: '">
<li metal:use-macro="here/resource-form-macros/macros/scr_macro" />
</span>
</div>
@@ -1192,68 +1192,69 @@
</div>
<div metal:define-macro="fdomlist-form">
- <span tal:define="ragent python:here.getRicciAgentForCluster(request);
- global sta python:here.getClusterStatus(ragent);
- global fdominfo python:here.getFdomsInfo(modelb, request, sta);">
- <span tal:repeat="fdom fdominfo">
- <div class="fdomname">
- <img src="fDom.png"/><h2>Failover Domain Name: <font color="blue"><a href="" tal:attributes="href fdom/cfgurl"><span tal:content="fdom/name"/></a></font></h2>
- </div>
- <div class="fdomordered">
- <span tal:condition="python:fdom['ordered'] == True">
- <h4>This Failover Domain is <i>Ordered</i></h4>
- </span>
- <span tal:condition="python:fdom['ordered'] == False">
- <h4>This Failover Domain is <i>Unordered</i></h4>
- </span>
- </div>
- <div class="fdomrestricted">
- <span tal:condition="python:fdom['restricted'] == True">
- <h4>This Failover Domain is <i>Restricted</i></h4>
- </span>
- <span tal:condition="python:fdom['restricted'] == False">
- <h4>This Failover Domain is <i>Unrestricted</i></h4>
- </span>
- </div>
- <div class="fdommembers">
- <h3>Members of this Failover Domain</h3>
- <ul>
- <span tal:repeat="node fdom/nodeslist">
- <li style="list-style-image: url(small_node_active.png);" tal:condition="python:node['status'] == '0'">
- <a href="" tal:attributes="href node/nodecfgurl"><font color="green"><span tal:content="node/nodename"/></font></a>
- </li>
- <li style="list-style-image: url(small_node_inactive.png);" tal:condition="python:node['status'] == '1'">
- <a href="" tal:attributes="href node/nodecfgurl"><font color="red"><span tal:content="node/nodename"/></font></a>
- </li>
- <li style="list-style-image: url(small_node_unknown.png);" tal:condition="python:node['status'] == '2'">
- <a href="" tal:attributes="href node/nodecfgurl"><font color="gray"><span tal:content="node/nodename"/></font></a>
- </li>
- </span>
- </ul>
- </div>
- <div class="fdomservice">
- <h2>Services employing this Failover Domain: </h2>
- <ul>
- <span tal:condition="python:len(fdom['svclist']) < 1">
- <li><i>No Services Defined</i></li>
- </span>
- <span tal:repeat="svc fdom/svclist">
- <span tal:condition="python:svc['status'] == 'true'">
- <li style="list-style-image:url(small_svc.png);">
- <a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:content="svc/name"/></font></a> Running On Node <span tal:content="svc/location"/>
- </li>
- </span>
- <span tal:condition="python:svc['status'] != 'true'">
- <li style="list-style-image:url(small_svc_stopped.png);">
- <a href="" tal:attributes="href svc/svcurl"><font color="red"><span tal:content="svc/name"/></font></a> Not Running
- </li>
- </span>
- </span>
- </ul>
- </div>
- </span>
- <hr/>
- </span>
+ <tal:block
+ tal:define="
+ global ragent python: here.getRicciAgentForCluster(request);
+ global sta python: here.getClusterStatus(ragent);
+ global fdominfo python: here.getFdomsInfo(modelb, request, sta);" />
+
+ <div class="cluster fdom" tal:repeat="fdom fdominfo">
+ <div class="cluster fdom fdomname">
+ <img src="fDom.png"/>
+ <strong class="cluster fdom">Failover Domain Name<strong>:
+ <a class="cluster fdom_link"
+ tal:attributes="href fdom/cfgurl"
+ tal:content="fdom/name" />
+ </div>
+
+ <div class="fdomordered">
+ <h4>This Failover Domain is
+ <strong>
+ <span tal:replace="python: fdom['ordered'] == True and 'Ordered' or 'Unordered'" />
+ </strong>
+ </div>
+
+ <div class="fdomrestricted">
+ <h4>This Failover Domain is <span tal:replace="python: fdom['restricted'] == True and 'Restricted' or 'Unrestricted'"/></h4>
+ </div>
+
+ <div class="fdommembers">
+ <h3>Members of this Failover Domain</h3>
+ <ul class="cluster node">
+ <tal:block tal:repeat="node fdom/nodeslist">
+ <tal:block
+ tal:define="global nodeclass python: 'cluster ' + (node['status'] == '0' and 'node_active' or (node['status'] == '1' and 'node_inactive' or 'node_unknown'));" />
+ <li tal:attributes="class python: nodeclass">
+ <a tal:content="node/nodename"
+ tal:attributes="
+ href node/configurl;
+ class python: nodeclass;" />
+ </li>
+ </tal:block>
+ </ul>
+ </div>
+
+ <div class="fdomservice">
+ <h2>Services employing this Failover Domain: </h2>
+ <ul>
+ <tal:block tal:condition="python: len(fdom['svclist']) < 1">
+ <li>No Services Defined</li>
+ </tal:block>
+ <tal:block tal:repeat="svc fdom/svclist">
+ <tal:block
+ tal:define="global svcclass python: svc['status'] == 'true' and 'running' or 'stopped'" />
+
+ <li tal:attributes="class python: 'cluster cluster_service ' + svcclass">
+ <a tal:content="python: svc['name'] + ' ' + (svcclass == 'running' and ('Running on node ' + svc['location']) or 'Not running')"
+ tal:attributes="href svc/svcurl;
+ class python: 'cluster cluster_service ' + svcclass" />
+ </li>
+ </tal:block>
+ </ul>
+ <hr/>
+ </div>
+
+ </div>
</div>
<div metal:define-macro="fdomadd-form">
--- conga/luci/cluster/resource-form-macros 2006/08/10 23:06:20 1.4
+++ conga/luci/cluster/resource-form-macros 2006/08/29 23:22:59 1.5
@@ -1,692 +1,909 @@
<html>
- <head>
- <title tal:content="template/title">The title</title>
- </head>
- <body>
- <div metal:define-macro="resources-form">
- <h2>
- Resources for <span tal:content="request/clustername" />
- </h2>
- <span tal:define="global rescInf python:here.getResourcesInfo(modelb, request)"/>
- <span tal:define="msg python:here.appendModel(request, modelb)"/>
- <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
- <thead>
- <tr border="0" cellspacing="5" align="left">
- <th width="100">Resource Name</th>
- <th width="100">Type</th>
- <th width="75">Link</th>
- <th width="75">Configure</th>
- <th width="75">Delete</th>
- </tr>
- </thead>
- <span tal:repeat="rs rescInf">
- <tr border="0" cellspacing="5">
- <td tal:content="rs/name" />
- <td tal:content="rs/type" />
- <td>
- <a href="" tal:attributes="HREF rs/url" />
- details
- </td>
- <td>
- <a href="" tal:attributes="HREF rs/cfgurl" />
- configure
- </td>
- <td>
- <a href="" tal:attributes="HREF rs/delurl" />
- delete
- </td>
- </tr>
- </span>
- </table>
- </div>
- <div metal:define-macro="resourceslist-form">
- <h2>Resources List Form</h2>
- </div>
- <div metal:define-macro="resourceremove-form">
- <h2>Resources Remove Form</h2>
- <span tal:define="global cluname request/clustername;
- global ragent python:here.getRicciAgentForCluster(request);"/>
- <span tal:define="global edited request/edit|nothing" />
- <span tal:define="global msg python:here.delResource(request, ragent)" />
- <div tal:condition="msg" tal:content="msg">Something returned from delResource().</div>
- </div>
- <div metal:define-macro="resourceadd-form">
- <script type="text/javascript" src="luci/cluster/resource_form_handlers.js" />
- <h2>Add a Resource</h2>
- <strong>Select Resource Type:</strong><br/>
- <form name="filler">
- <select name="select_div" onChange="swap_div('container', filler.select_div.options[filler.select_div.selectedIndex].value);">
- <option name="blank" value="blank">Select a resource type</option>
- <option name="IP" value="IP">IP Resource</option>
- <option name="FS" value="FS">FS Resource</option>
- <option name="GFS" value="GFS">GFS Resource</option>
- <option name="NFSM" value="NFSM">NFS Mount Resource</option>
- <option name="NFSC" value="NFSC">NFS Client Resource</option>
- <option name="NFSX" value="NFSX">NFS Export Resource</option>
- <option name="SCR" value="SCR">Script Resource</option>
- <option name="SMB" value="SMB">Samba Resource</option>
+<head>
+ <title tal:content="template/title">The title</title>
+</head>
+<body>
+
+
+<div metal:define-macro="resources-form">
+ <h2>Resources for <span tal:replace="request/clustername" /></h2>
+
+ <tal:block
+ tal:define="
+ global rescInf python: here.getResourcesInfo(modelb, request);
+ global msg python: here.appendModel(request, modelb)" />
+
+ <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+ <thead class="systemsTable">
+ <tr class="systemsTable">
+ <th class="systemsTable" width="100">Resource Name</th>
+ <th class="systemsTable" width="100">Type</th>
+ <th class="systemsTable" width="75">Link</th>
+ <th class="systemsTable" width="75">Configure</th>
+ <th class="systemsTable" width="75">Delete</th>
+ </tr>
+ </thead>
+
+ <tr class="systemsTable" tal:repeat="rs rescInf">
+ <td class="systemsTable" tal:content="rs/name" />
+ <td class="systemsTable" tal:content="rs/type" />
+ <td class="systemsTable">
+ <a class="cluster resource"
+ tal:content="string: details"
+ tal:attributes="href rs/url" />
+ </td>
+ <td class="systemsTable">
+ <a class="cluster resource"
+ tal:content="string: configure"
+ tal:attributes="href rs/cfgurl" />
+ </td>
+ <td class="systemsTable">
+ <a class="cluster resource"
+ tal:content="string: delete"
+ tal:attributes="href rs/delurl" />
+ </td>
+ </tr>
+ </table>
+</div>
+
+
+<div metal:define-macro="resourceslist-form">
+ <h2>Resources List Form</h2>
+</div>
+
+
+<div metal:define-macro="resourceremove-form">
+ <h2>Resources Remove Form</h2>
+
+ <tal:block
+ tal:define="
+ global cluname request/clustername;
+ global ragent python: here.getRicciAgentForCluster(request);
+ global edited request/edit | nothing;
+ global msg python: here.delResource(request, ragent)" />
+
+ <div tal:condition="msg" tal:content="msg" />
+</div>
+
+<div metal:define-macro="resourceadd-form">
+ <script type="text/javascript"
+ src="/luci/cluster/resource_form_handlers.js">
+ </script>
+
+ <h2>Add a Resource</h2>
+ <strong>Select Resource Type</strong><br/>
+
+ <form name="filler">
+ <select name="select_div"
+ onChange="swap_div('container', filler.select_div.options[filler.select_div.selectedIndex].value);">
+
+ <option name="blank" value="blank">Select a resource type</option>
+ <option name="IP" value="IP">IP Resource</option>
+ <option name="FS" value="FS">FS Resource</option>
+ <option name="GFS" value="GFS">GFS Resource</option>
+ <option name="NFSM" value="NFSM">NFS Mount Resource</option>
+ <option name="NFSC" value="NFSC">NFS Client Resource</option>
+ <option name="NFSX" value="NFSX">NFS Export Resource</option>
+ <option name="SCR" value="SCR">Script Resource</option>
+ <option name="SMB" value="SMB">Samba Resource</option>
</select>
- </form>
- <table class="systemsTable" border="0" cellspacing="1">
- <tr><td id="container" width="400">
-  
- </td></tr>
- </table>
- <div id="invisible" style="display: none">
- <div id="blank"> </div>
- <div metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/smb_macro"/>
- <div metal:use-macro="here/resource-form-macros/macros/scr_macro"/>
- </div>
- </div>
-
- <div metal:define-macro="resource-form">
- <span tal:define="global res python:here.getResourceInfo(modelb, request)"/>
- <h2>Resource details for <span tal:content="res/name" /></h2>
- <table class="systemsTable" border="0" cellspacing="5">
- <thead align="left">
- <th width="100">Name</th>
- <th width="100">Type</th>
- <th width="75">Configure</th>
- </thead>
- <tr align="left">
- <td tal:content="res/name" />
- <td tal:content="res/tag_name" />
- <td>
- <a href="" tal:attributes="HREF res/cfgurl" />
- configure
- </td>
- </tr>
- </table>
- </div>
-
-
- <div metal:define-macro="resourceprocess-form">
- <span tal:define="global cluname request/clustername;
- global ragent python:here.getRicciAgentForCluster(request);"/>
- <span tal:define="global edited request/edit|nothing" />
- <h2 tal:condition="not: edited">Resource Added</h2>
- <h2 tal:condition="edited">Resource Edited</h2>
- <span tal:define="global msg python:here.addResource(request, ragent)" />
- <div tal:condition="msg" tal:content="msg">Something returned from addResource.</div>
- </div>
-
- <div metal:define-macro="resourceconfig-form">
- <script type="text/javascript" src="luci/cluster/resource_form_handlers.js" />
- <span tal:define="msg python:here.appendModel(request, modelb)"/>
- <span tal:define="global restoedit request/resourcename|nothing"/>
- <span tal:condition="restoedit">
- <span tal:define="global res python:here.getResourceInfo(modelb, request)" />
- <span tal:define="global type res/tag_name" />
- <h2>Configure <span tal:content="res/name" /></h2>
- <span tal:omit-tag="" tal:condition="python:type == 'ip'">
- <div metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'fs'">
- <div metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'gfs'">
- <div metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsm'">
- <div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsx'">
- <div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'nfsc'">
- <div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'smb'">
- <div metal:use-macro="here/resource-form-macros/macros/smb_macro" />
- </span>
- <span tal:omit-tag="" tal:condition="python:type == 'script'">
- <div metal:use-macro="here/resource-form-macros/macros/scr_macro" />
- </span>
- </span>
- </div>
-
- <div id="IP" metal:define-macro="ip_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global address python:resName.split('.');
- global ip1 python:address[0];
- global ip2 python:address[1];
- global ip3 python:address[2];
- global ip4 python:address[3];
- global monitor_link res/attrs/monitor_link|nothing;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
-
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:False;
- global monitor_link string:1;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>IP Address Resource Configuration</strong>
- <form name="ip_form" id="ip_form" method="get" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="ip"/>
- <table id="ipResourceTable" border="0" cellspacing="0" width="200" style="background-color: #dee7ec">
- <tr>
- <div>
- <strong>IP:</strong>
- <input size="3" name="ip1" type="text" maxlength="3" tal:attributes="VALUE ip1|nothing"/>.
- <input size="3" name="ip2" type="text" maxlength="3" tal:attributes="VALUE ip2|nothing"/>.
- <input size="3" name="ip3" type="text" maxlength="3" tal:attributes="VALUE ip3|nothing"/>.
- <input size="3" name="ip4" type="text" maxlength="3" tal:attributes="VALUE ip4|nothing"/>
- </div>
- <div>
- <strong>Monitor Link</strong>
- <span tal:condition="python: monitor_link == '1'">
- <input type="checkbox" name="monitorLink" checked >
- </span>
- <span tal:condition="python: monitor_link == '0'">
- <input type="checkbox" name="monitorLink">
- </span>
- </div>
- </tr>
- </table>
- </form>
- <input name="submitButton" type="button" value="Submit" onClick="validate(ip_form);" />
- </div>
- <div id="FS" metal:define-macro="fs_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global mountPoint res/attrs/mountpoint;
- global device res/attrs/device;
- global fstype res/attrs/fstype;
- global opt res/attrs/options;
- global fsid res/attrs/fsid;
- global force_unmount res/attrs/force_unmount;
- global reboot_fail res/attrs/self_fence;
- global fscheck res/attrs/force_fsck;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:False;
- global force_unmount string:0;
- global reboot_fail string:0;
- global fstype string:0;
- global fscheck string:0;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>File System Resource Configuration</strong>
- <form name="fs_form" action="" method="get" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="fs"/>
- <table id="fileSystemTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Resource Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName" tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>File System Type:</strong>
- <select id="fstype" name="fstype">
- <span tal:condition="python: edit == nothing or fstype == 'ext2'">
- <option name="ext2" value="ext2">ext2</option>
- <option name="ext3" value="ext3" selected>ext3</option>
- </span>
- <span tal:condition="python: edit == True and fstype != 'ext3'">
- <option name="ext2" value="ext2" selected>ext2</option>
- <option name="ext3" value="ext3">ext3</option>
- </span>
- </select>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Mount Point:</strong>
- <input type="text" size="20" id="mountpoint" name="mountpoint" tal:attributes="value mountPoint|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Device:</strong>
- <input type="text" size="20" id="device" name="device" tal:attributes="value device|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Options:</strong>
- <input type="text" size="20" id="options" name="options" tal:attributes="value opt|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>File System ID:</strong>
- <input type="text" size="20" id="fsid" name="fsid" tal:attributes="value fsid|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <input type="checkbox" id="forceunmount" name="forceunmount" checked
- tal:condition="python:force_unmount == '1'"/>
- <input type="checkbox" id="forceunmount" name="forceunmount"
- tal:condition="python:force_unmount != '1'"/>
- <strong>Force unmount</strong>
- </div>
- </tr>
- <tr>
- <div>
- <input type="checkbox" id="selffence" name="selffence"
- tal:condition="not: reboot_fail| python:reboot_fail == '1'"/>
- <input type="checkbox" id="selffence" name="selffence"
- tal:condition="python:reboot_fail != '1'"/>
- <strong>Reboot host node if unmount fails</strong>
- </div>
- </tr>
- <tr>
- <div>
- <input type="checkbox" id="checkfs" name="checkfs" checked
- tal:condition="python:fscheck == '1'"/>
- <input type="checkbox" id="checkfs" name="checkfs"
- tal:condition="python:fscheck != '1'"/>
- <strong>Check file system before mounting</strong>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onClick="validate(fs_form);"/>
- </div>
- <div id="GFS" metal:define-macro="gfs_macro">
- <span tal:condition="python:ptype == '33' or ptype =='24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global mountPoint res/attrs/mountpoint;
- global device res/attrs/device;
- global fstype res/attrs/fstype;
- global opt res/attrs/options;
- global fsid res/attrs/fsid;
- global force_unmount res/attrs/force_unmount;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:False;
- global force_unmount string:0;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>GFS Resource Configuration</strong>
- <form name="gfs_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="gfs"/>
- <table id="gfsTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Resource Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Mount Point:</strong>
- <input type="text" size="20" id="mountPoint" name="mountpoint"
- tal:attributes="value mountpoint|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Device:</strong>
- <input type="text" size="20" id="device" name="device"
- tal:attributes="value device|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Options:</strong>
- <input type="text" size="20" id="options" name="options"
- tal:attributes="value opt|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>File System ID:</strong>
- <input type="text" size="20" id="fsid" name="fsid"
- tal:attributes="value fsid|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <input type="checkbox" id="forceunmount" name="forceunmount" checked
- tal:condition="python:force_unmount == '1'"/>
- <input type="checkbox" id="forceunmount" name="forceunmount"
- tal:condition="python:force_unmount != '1'"/>
- <strong>Force unmount</strong>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(gfs_form);"/>
- </div>
-
- <div id="NFSM" metal:define-macro="nfsm_macro">
- <span tal:condition="python:ptype == '33' or ptype =='24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global mountpoint res/attrs/mountpoint;
- global opt res/attrs/options;
- global expath res/attrs/export;
- global nfstype res/attrs/fstype;
- global hostname res/attrs/host;
- global force_unmount res/attrs/force_unmount;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:False;
- global force_unmount string:0;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>NFS Mount Resource Configuration</strong>
- <form name="nfsm_form" action="" method="post">
- <form name="gfs_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="nfsm"/>
- <table id="nfsMountTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Resource Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Mount Point:</strong>
- <input type="text" size="20" id="mountpoint" name="mountpoint"
- tal:attributes="value mountpoint|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Host:</strong>
- <input type="text" size="20" id="host" name="host"
- tal:attributes="value hostname|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Export Path:</strong>
- <input type="text" size="20" id="exportpath" name="exportpath"
- tal:attributes="value expath|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <span tal:condition="python: edit == nothing or nfstype == 'nfs'">
- <input type="radio" name="nfstype" value="nfs" checked>NFS
- <input type="radio" name="nfstype" value="nfs4">NFS4
- </span>
- <span tal:condition="python: edit == True and nfstype != 'nfs4'">
- <input type="radio" name="nfstype" value="nfs">NFS
- <input type="radio" name="nfstype" value="nfs4" checked>NFS4
- </span>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Options:</strong>
- <input type="text" size="20" id="options" name="options"
- tal:attributes="value opt|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <input type="checkbox" id="forceunmount" name="forceunmount" checked
- tal:condition="python:force_unmount == '1'"/>
- <input type="checkbox" id="forceunmount" name="forceunmount"
- tal:condition="python:force_unmount != '1'"/>
- <strong>Force unmount</strong>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(nfsm_form);"/>
- </div>
-
- <div id="NFSC" metal:define-macro="nfsc_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global target res/attrs/target;
- global opt res/attrs/options;
- global expath res/attrs/readOnly|nothing;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:False;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>NFS Client Resource Configuration</strong>
- <form name="nfsc_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="nfsc"/>
- <table id="nfsClientTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Resource Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Target:</strong>
- <input type="text" size="20" id="target" name="target"
- tal:attributes="value target|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Options:</strong>
- <input type="text" size="20" id="options" name="options"
- tal:attributes="value opt|nothing"/>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(nfsc_form);"/>
- </div>
+ </form>
+
+ <table class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable" id="container" width="400">
+  
+ </td></tr>
+ </table>
+
+ <div id="invisible" style="display: none">
+ <div id="blank"> </div>
+ <div metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/smb_macro"/>
+ <div metal:use-macro="here/resource-form-macros/macros/scr_macro"/>
+ </div>
+</div>
+
+<div metal:define-macro="resource-form">
+ <tal:block
+ tal:define="global res python: here.getResourceInfo(modelb, request)" />
+
+ <h2>Resource details for <span tal:replace="res/name" /></h2>
+
+ <table class="systemsTable">
+ <thead class="systemsTable">
+ <th class="systemsTable" width="100">Name</th>
+ <th class="systemsTable" width="100">Type</th>
+ <th class="systemsTable" width="75">Configure</th>
+ </thead>
+ <tr class="systemsTable">
+ <td class="systemsTable" tal:content="res/name" />
+ <td class="systemsTable" tal:content="res/tag_name" />
+ <td>
+ <a class="cluster resource"
+ tal:content="string: configure"
+ tal:attributes="href res/cfgurl" />
+ </td>
+ </tr>
+ </table>
+</div>
+
+
+<div metal:define-macro="resourceprocess-form">
+ <tal:block
+ tal:define="
+ global cluname request/clustername;
+ global edited request/edit | nothing;
+ global ragent python: here.getRicciAgentForCluster(request)" />
+
+ <h2>Resource <span tal:replace="python: request['edit'] and 'Edited' or 'Added'" /></h2>
+
+ <tal:block
+ tal:define="global msg python: here.addResource(request, ragent)" />
+ <div tal:condition="msg" tal:content="msg" />
+</div>
+
+<div metal:define-macro="resourceconfig-form">
+ <script type="text/javascript"
+ src="luci/cluster/resource_form_handlers.js">
+ </script>
+
+ <tal:block tal:define="
+ global msg python: here.appendModel(request, modelb);
+ global restoedit request/resourcename | nothing" />
+
+ <tal:block tal:condition="restoedit">
+ tal:define="
+ global res python: here.getResourceInfo(modelb, request);
+ global type res/tag_name">
+
+ <h2>Configure <span tal:replace="res/name"/></h2>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'ip'">
+ <div metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'fs'">
+ <div metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'gfs'">
+ <div metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsm'">
+ <div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsx'">
+ <div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'nfsc'">
+ <div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'smb'">
+ <div metal:use-macro="here/resource-form-macros/macros/smb_macro" />
+ </span>
+
+ <span tal:omit-tag="" tal:condition="python: type == 'script'">
+ <div metal:use-macro="here/resource-form-macros/macros/scr_macro" />
+ </span>
+ </tal:block>
+</div>
+
+<div id="IP" metal:define-macro="ip_macro">
+
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global address python: resName.split('.');
+ global ip1 python: address[0];
+ global ip2 python: address[1];
+ global ip3 python: address[2];
+ global ip4 python: address[3];
+ global monitor_link res/attrs/monitor_link | nothing;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block
+ tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: False;
+ global monitor_link string:1;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>IP Address Resource Configuration</strong>
+
+ <form name="ip_form" id="ip_form" method="get"
+ tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35"/>
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname"/>
+
+ <input name="oldname" type="hidden"
+ tal:attributes="value res/name"
+ tal:condition="python: edit == True" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="ip"/>
+
+ <table id="ipResourceTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>IP</strong>
+ </td>
+ <td class="systemsTable">
+ <input size="3" name="ip1" type="text" maxlength="3" tal:attributes="value ip1 | nothing"/>.
+ <input size="3" name="ip2" type="text" maxlength="3" tal:attributes="value ip2 | nothing"/>.
+ <input size="3" name="ip3" type="text" maxlength="3" tal:attributes="value ip3 | nothing"/>.
+ <input size="3" name="ip4" type="text" maxlength="3" tal:attributes="value ip4 | nothing"/>
+ </td>
+
+ <td class="systemsTable">
+ <strong>Monitor Link</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" name="monitorLink"
+ tal:attributes="
+ checked python: monitor_link == '1' and 'checked'" />
+ </td>
+ </tr>
+ </table>
+
+ <input class="hbSubmit" name="submit" type="button" value="Submit"
+ onClick="validate(this.form);" />
+ </form>
+</div>
+
+<div id="FS" metal:define-macro="fs_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global mountPoint res/attrs/mountpoint;
+ global device res/attrs/device;
+ global fstype res/attrs/fstype;
+ global opt res/attrs/options;
+ global fsid res/attrs/fsid;
+ global force_unmount res/attrs/force_unmount;
+ global reboot_fail res/attrs/self_fence;
+ global fscheck res/attrs/force_fsck;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: False;
+ global force_unmount string:0;
+ global reboot_fail string:0;
+ global fstype string:0;
+ global fscheck string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>File System Resource Configuration</strong>
+
+ <form name="fs_form" method="get" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="fs" />
+
+ <table id="fileSystemTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Resource Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>File System Type</strong>
+ </td>
+ <td class="systemsTable">
+ <select id="fstype" name="fstype">
+ <option name="ext3" value="ext3"
+ tal:content="string: ext3"
+ tal:attributes="checked python: (edit == nothing or fstype == 'ext3') and 'checked'" />
+ <option name="ext2" value="ext2"
+ tal:content="string: ext2"
+ tal:attributes="checked python: (edit == True and fstype == 'ext2') and 'checked'" />
+ </select>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Mount Point</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="mountpoint" name="mountpoint"
+ tal:attributes="value mountPoint | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Device</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="device" name="device"
+ tal:attributes="value device | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Options</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="options" name="options"
+ tal:attributes="value opt | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>File System ID</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="fsid" name="fsid"
+ tal:attributes="value fsid | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Force unmount</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" id="forceunmount" name="forceunmount"
+ tal:attributes="checked python: force_unmount == '1' and 'checked'" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Reboot host node if unmount fails</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" id="selffence" name="selffence"
+ tal:attributes="
+ checked python: reboot_fail == '1' and 'checked'" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Check file system before mounting</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" id="checkfs" name="checkfs"
+ tal:attributes="
+ checked python: fscheck == '1' and 'checked'" />
+ </td>
+ </tr>
+ </table>
+
+ <input class="hbSubmit" type="button" value="Submit"
+ onClick="validate(this.form);" />
+
+ </form>
+</div>
+
+<div id="GFS" metal:define-macro="gfs_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype =='24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global mountPoint res/attrs/mountpoint;
+ global device res/attrs/device;
+ global fstype res/attrs/fstype;
+ global opt res/attrs/options;
+ global fsid res/attrs/fsid;
+ global force_unmount res/attrs/force_unmount;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: False;
+ global force_unmount string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>GFS Resource Configuration</strong>
+ <form name="gfs_form" method="get" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden"
+ tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="gfs" />
+
+ <table id="gfsTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Resource Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Mount Point</strong>
+ </td>
+
+ <td class="systemsTable">
+ <input type="text" size="20" id="mountPoint" name="mountpoint"
+ tal:attributes="value mountpoint | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Device</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="device" name="device"
+ tal:attributes="value device | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Options</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="options" name="options"
+ tal:attributes="value opt | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>File System ID</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="fsid" name="fsid"
+ tal:attributes="value fsid | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Force unmount</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" id="forceunmount" name="forceunmount"
+ tal:attributes="
+ checked python: force_unmount == '1' and 'checked'" />
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onclick="validate(gfs_form);" />
+
+ </form>
+</div>
+
+<div id="NFSM" metal:define-macro="nfsm_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype =='24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global mountpoint res/attrs/mountpoint;
+ global opt res/attrs/options;
+ global expath res/attrs/export;
+ global nfstype res/attrs/fstype;
+ global hostname res/attrs/host;
+ global force_unmount res/attrs/force_unmount;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: False;
+ global force_unmount string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+ <form name="nfsm_form" method="get" tal:attributes="action processURL">
+
+ <strong>NFS Mount Resource Configuration</strong>
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname"/>
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="nfsm" />
+
+ <table id="nfsMountTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Resource Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Mount Point</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="mountpoint" name="mountpoint"
+ tal:attributes="value mountpoint | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Host</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="host" name="host"
+ tal:attributes="value hostname | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Export Path</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="exportpath" name="exportpath"
+ tal:attributes="value expath | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>NFS Type</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="radio" name="nfstype" value="nfs"
+ tal:attributes="checked python: (edit == nothing or nfstype == 'nfs') and 'checked'" />
+ NFS (version 3)
+ <br/>
+ <input type="radio" name="nfstype" value="nfs4"
+ tal:attributes="checked python: (edit == True and nfstype == 'nfs4') and 'checked'">
+ NFS4
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Options</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="options" name="options"
+ tal:attributes="value opt | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Force unmount</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="checkbox" id="forceunmount" name="forceunmount"
+ tal:attributes="
+ checked python: force_unmount == '1' and 'checked'" />
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onclick="validate(this.form);"/>
+
+ </form>
+</div>
+
+<div id="NFSC" metal:define-macro="nfsc_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global target res/attrs/target;
+ global opt res/attrs/options;
+ global expath res/attrs/readOnly | nothing;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: False;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>NFS Client Resource Configuration</strong>
+
+ <form name="nfsc_form" method="post" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="nfsc"/>
+
+ <table id="nfsClientTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Resource Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Target</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="target" name="target"
+ tal:attributes="value target | nothing"/>
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Options</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="options" name="options"
+ tal:attributes="value opt | nothing"/>
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onclick="validate(this.form);" />
+
+ </form>
+</div>
<div id="NFSX" metal:define-macro="nfsx_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname" />
- </span>
- <strong>NFS Export Resource Configuration</strong>
- <form name="nfsx_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="nfsx"/>
- <table id="nfsExportTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(nfsx_form);"/>
- </div>
-
- <div id="SCR" metal:define-macro="scr_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit string:true;
- global resName res/name;
- global filename res/attrs/file;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname"/>
- </span>
- <strong>Script Resource Configuration</strong>
- <form name="scr_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == 'true'" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == 'true'" />
- <input name="type" type="hidden" value="scr"/>
- <table id="scriptTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>File</strong> (with path):
- <input type="text" size="20" id="file" name="file"
- tal:attributes="value filename|nothing"/>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(scr_form);"/>
- </div>
-
- <div id="SMB" metal:define-macro="smb_macro">
- <span tal:condition="python:ptype == '33' or ptype == '24'">
- <span tal:define="
- global edit python:True;
- global resName res/name;
- global workgroup res/attrs/workgroup;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'"/>
- </span>
- <span tal:condition="python:ptype != '33'">
- <span tal:define="
- global edit python:false;
- global cluname request/clustername;
- tmp_URL context/cluster/index_html/absolute_url;
- global processURL python:tmp_URL+'?pagetype=35&clustername='+cluname"/>
- </span>
- <strong tal:condition="python:edit != 'true'">Samba Server Configuration</strong>
- <form name="smb_form" action="" method="post" tal:attributes="action processURL">
- <input name="pagetype" type="hidden" value="35"/>
- <input name="clustername" type="hidden" tal:attributes="value cluname"/>
- <input name="oldname" type="hidden"
- tal:attributes="value res/name"
- tal:condition="python:edit == True" />
- <input name="edit" type="hidden" value="1"
- tal:condition="python:edit == True" />
- <input name="type" type="hidden" value="smb"/>
- <table id="sambaTable" border="0" cellspacing="0">
- <tr>
- <div>
- <strong>Name:</strong>
- <input type="text" size="20" id="resourceName" name="resourceName"
- tal:attributes="value resName|nothing"/>
- </div>
- </tr>
- <tr>
- <div>
- <strong>Workgroup:</strong>
- <input type="text" size="20" id="workgroup" name="workgroup"
- tal:attributes="value workgroup|nothing"/>
- </div>
- </tr>
- </table>
- </form>
- <input type="button" value="Submit" onclick="validate(smb_form);"/>
- </div>
- </body>
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>NFS Export Resource Configuration</strong>
+ <form name="nfsx_form" method="post" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="nfsx" />
+
+ <table id="nfsExportTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onClick="validate(this.form);" />
+
+ </form>
+</div>
+
+<div id="SCR" metal:define-macro="scr_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit string:true;
+ global resName res/name;
+ global filename res/attrs/file;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong>Script Resource Configuration</strong>
+ <form name="scr_form" method="post" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == 'true'"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == 'true'" />
+
+ <input name="type" type="hidden" value="scr" />
+
+ <table id="scriptTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Full path to script file</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="file" name="file"
+ tal:attributes="value filename | nothing" />
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onClick="validate(scr_form);" />
+
+ </form>
+</div>
+
+<div id="SMB" metal:define-macro="smb_macro">
+<tal:block tal:condition="python: ptype == '33' or ptype == '24'"
+ tal:define="
+ global edit python: True;
+ global resName res/name;
+ global workgroup res/attrs/workgroup;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
+
+<tal:block tal:condition="python: ptype != '33'"
+ tal:define="
+ global edit python: false;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
+
+ <strong tal:condition="python: edit != 'true'">Samba Server Configuration</strong>
+
+ <form name="smb_form" method="post" tal:attributes="action processURL">
+
+ <input name="pagetype" type="hidden" value="35" />
+
+ <input name="clustername" type="hidden" tal:attributes="value cluname" />
+
+ <input name="oldname" type="hidden"
+ tal:condition="python: edit == True"
+ tal:attributes="value res/name" />
+
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python: edit == True" />
+
+ <input name="type" type="hidden" value="smb" />
+
+ <table id="sambaTable" class="systemsTable">
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Name</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20"
+ id="resourceName" name="resourceName"
+ tal:attributes="value resName | nothing" />
+ </td>
+ </tr>
+
+ <tr class="systemsTable">
+ <td class="systemsTable">
+ <strong>Workgroup</strong>
+ </td>
+ <td class="systemsTable">
+ <input type="text" size="20" id="workgroup" name="workgroup"
+ tal:attributes="value workgroup | nothing"/>
+ </td>
+ </tr>
+ </table>
+
+ <input type="button" value="Submit" class="hbSubmit"
+ onClick="validate(smb_form);" />
+
+ </form>
+</div>
+
+</body>
</html>
More information about the Cluster-devel
mailing list