From: jparsons@sourceware.org <jparsons@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/cluster form-chooser resource_form_ ...
Date: 27 Jul 2006 16:32:47 -0000 [thread overview]
Message-ID: <20060727163247.9887.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Changes by: jparsons at sourceware.org 2006-07-27 16:32:46
Modified files:
luci/cluster : form-chooser
Added files:
luci/cluster : resource_form_handlers.js resource-form-macros
Log message:
Support for cluster resources
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-chooser.diff?cvsroot=cluster&r1=1.3&r2=1.4
/cvs/cluster/conga/luci/cluster/resource_form_handlers.js,v --> standard output
revision 1.1
--- conga/luci/cluster/resource_form_handlers.js
+++ - 2006-07-27 16:32:47.350404000 +0000
@@ -0,0 +1,163 @@
+/*swap_div switches between types of forms
+ * based on a chooser within the document */
+function swap_div(container_id, element_id){
+ container_element = document.getElementById(container_id);
+ if (!container_element) {
+ alert('Can\'t find element with id = ' + container_id);
+ return (-1)
+ }
+ child_element = document.getElementById(element_id);
+ if (!child_element) {
+ alert('Can\'t find element with id = ' + element_id);
+ return (-1)
+ }
+ for(child in child_element.children){
+ alert(child);
+ }
+ temp = container_element.firstChild;
+ container_element.replaceChild(child_element, container_element.firstChild);
+
+ invisible_div = document.getElementById('invisible');
+ if (!invisible_div) {
+ alert('No invisible div');
+ return (-1)
+ }
+
+ invisible_div.appendChild(temp);
+}
+
+/*In order to val a new resource type,
+ *create a form within the resource-form-macros
+ *with 'resource-name'_form as the 'name'
+ *attribute, and use:
+ * onSubmit="valResource('resource-name'_form)"
+ *val handler functions here and further
+ *down within actual cluster code.*/
+
+function validate(form){
+ if(form.resourceName.value.length == 0){
+ alert("Please enter a name for this resource. \n");
+ return;
+ }
+ name = form.getAttribute("name");
+ /*Get the type of form from the first
+ *part of the name string*/
+ type = name.split("_")[0];
+ /*use eval to access proper resource
+ *valer function as defined below*/
+ eval("val"+(type.toUpperCase())+"(form);");
+ /*TODO: val error checking!!!*/
+}
+
+/*Val an IP Resource*/
+function valIP(form){
+ /*first, check to make sure all input
+ *fields have values*/
+ if (isNaN(parseInt(form.ip1.value)) ||
+ isNaN(parseInt(form.ip2.value)) ||
+ isNaN(parseInt(form.ip3.value)) ||
+ isNaN(parseInt(form.ip4.value)) ) {
+ error = "The IP Address contains illegal characters. \n";
+ alert(error);
+ }
+ else{
+ form.submit();
+ }
+}
+
+/*Val an NFS Mount Resource*/
+function valNFSM(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.mountpoint.value == "")
+ error += "Please enter a mount point.\n";
+ if(form.host.value == "")
+ error += "Please enter a host.\n";
+ if(form.exportpath.value == "")
+ error += "Please enter an export path.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
+
+/*Validate an NFS Export Resource*/
+function valNFSX(form){
+ form.submit();
+}
+
+/*Validate an NFS Client Resource*/
+function valNFSC(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.target.value == "")
+ error += "Please enter a target.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
+
+/*Validate an FS Resource*/
+function valFS(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.fsTypeSelect.value == "")
+ error += "Please Select a file system type.\n";
+ if(form.mountpoint.value == "")
+ error += "Please enter a mount point.\n";
+ if(form.device.value == "")
+ error += "Please enter a device.\n";
+ if(form.fsid.value == "")
+ error += "Please enter a file system id.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
+
+/*Validate a GFS Resource*/
+function valGFS(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.mountpoint.value == "")
+ error += "Please enter a mount point.\n";
+ if(form.device.value == "")
+ error += "Please enter a device.\n";
+ if(form.fsid.value == "")
+ error += "Please enter a file system id.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
+
+/*Validate a Script Resource*/
+function valSCR(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.file.value == "")
+ error += "Please enter a filename.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
+
+/*Validate a Samba Resource*/
+function valSMB(form){
+ error = ""
+ /*check to make sure all input
+ *fields have values*/
+ if(form.workgroup.value == "")
+ error += "Please enter a workgroup.\n";
+ if(error != "")
+ alert(error);
+ else
+ form.submit();
+}
/cvs/cluster/conga/luci/cluster/resource-form-macros,v --> standard output
revision 1.1
--- conga/luci/cluster/resource-form-macros
+++ - 2006-07-27 16:32:47.448257000 +0000
@@ -0,0 +1,647 @@
+<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)"/>
+ <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>
+ </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>
+ </tr>
+ </span>
+ </table>
+ </div>
+ <div metal:define-macro="resourceslist-form">
+ <h2>Resources List Form</h2>
+ </div>
+ <div metal:define-macro="resourceadd-form">
+ <script type="text/javascript" src="luci/cluster/resource_form_handlers.js" />
+ <span tal:define="msg python:here.appendModel(request, modelb)"/>
+ <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 edited request/edit|nothing" />
+ <h2 tal:condition="not: edited">Resource Added Form</h2>
+ <h2 tal:condition="edited">Resource Edited Form</h2>
+ <span tal:define="global msg python:here.addResource(request)" />
+ <strong>Errors:</strong>
+ <div tal:condition="msg" tal:content="msg">Something returned from addResource.</div>
+ <hr/>
+ These are the request vars <em tal:replace="structure request">template id</em>.
+ </div>
+
+ <div metal:define-macro="resourceconfig-form">
+ <script type="text/javascript" src="luci/cluster/resource_form_handlers.js" />
+ <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 == 'src'">
+ <div metal:use-macro="here/resource-form-macros/macros/scr_macro" />
+ </span>
+ </div>
+
+ <div id="IP" metal:define-macro="ip_macro">
+ <span tal:condition="python:ptype == '33'">
+ <span tal:define="
+ 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 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 string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>IP Address Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <input name="type" type="hidden" value="ip"/>
+ <table id="ipResourceTable" border="0" cellspacing="0" width="200" style="background-color: #dee7ec">
+ <tr>
+ <div>
+ <strong>Resource Name:</strong>
+ <input type="text" id="resourceName" name="resourceName" tal:attributes="VALUE resName|nothing" />
+ </div>
+ </tr>
+ <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>
+ <input type="checkbox" name="monitorLink" tal:condition="python:ptype != '33'">
+ <input type="checkbox" name="monitorLink" checked tal:condition="python:ptype == '33'">
+ </div>
+ </tr>
+ </table>
+ </form>
+ <input type="button" value="Submit" onClick="validate(ip_form);" />
+ </div>
+ <div id="FS" metal:define-macro="fs_macro">
+ <span tal:condition="python:ptype == '33'">
+ <span tal:define="
+ global resName res/name;
+ global mountPoint res/mountpoint;
+ global device res/device;
+ global fstype res/fstype;
+ global opt res/options;
+ global fsid res/fsid;
+ global force_unmount res/force_unmount;
+ global reboot_fail res/self_fence;
+ global fscheck res/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 force_unmount string:0;
+ global reboot_fail string:0;
+ global fscheck string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>File System Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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">
+ <option name="ext2" value="ext2">ext2</option>
+ <option name="ext3" value="ext3">ext3</option>
+ </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'">
+ <span tal:define="
+ global resName res/name;
+ global mountPoint res/mountpoint;
+ global device res/device;
+ global fstype res/fstype;
+ global opt res/options;
+ global fsid res/fsid;
+ global force_unmount res/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 force_unmount string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>GFS Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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'">
+ <span tal:define="
+ global resName res/name;
+ global mountpoint res/mountpoint;
+ global opt res/options;
+ global expath res/export;
+ global nfstype res/fstype;
+ global hostname res/host;
+ global force_unmount res/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 force_unmount string:0;
+ global cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>NFS Mount Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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>
+ <input type="radio" name="nfstype" value="nfs" checked>NFS
+ <input type="radio" name="nfstype" value="nfs4">NFS4
+ </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'">
+ <span tal:define="
+ global resName res/name;
+ global target res/target;
+ global opt res/options;
+ global expath res/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 cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>NFS Client Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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>
+
+<div id="NFSX" metal:define-macro="nfsx_macro">
+ <span tal:condition="python:ptype == '33'">
+ <span tal:define="
+ 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 string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>NFS Export Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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'">
+ <span tal:define="
+ global resName res/name;
+ global filename res/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 string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>Script Resource Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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'">
+ <span tal:define="
+ global resName res/name;
+ global workgroup res/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 cluname request/clustername;
+ tmp_URL context/cluster/index_html/absolute_url;
+ global processURL string:?pagetype=35&clustername='+cluname+'&edit=0" />
+ </span>
+ <h2>Samba Server Configuration</h2>
+ <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:ptype == '33'" />
+ <input name="edit" type="hidden" value="1"
+ tal:condition="python:ptype == '33'" />
+ <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>
+</html>
--- conga/luci/cluster/form-chooser 2006/07/25 02:27:08 1.3
+++ conga/luci/cluster/form-chooser 2006/07/27 16:32:46 1.4
@@ -84,22 +84,22 @@
<div metal:use-macro="here/form-macros/macros/servicerestart"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '30'">
- <div metal:use-macro="here/form-macros/macros/resources-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resources-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '31'">
- <div metal:use-macro="here/form-macros/macros/resourceadd-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resourceadd-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '32'">
- <div metal:use-macro="here/form-macros/macros/resourcelist-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resourcelist-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '33'">
- <div metal:use-macro="here/form-macros/macros/resourceconfig-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resourceconfig-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '34'">
- <div metal:use-macro="here/form-macros/macros/resource-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resource-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '35'">
- <div metal:use-macro="here/form-macros/macros/resourceprocess-form"/>
+ <div metal:use-macro="here/resource-form-macros/macros/resourceprocess-form"/>
</span>
<span tal:omit-tag="" tal:condition="python: ptype == '40'">
<div metal:use-macro="here/form-macros/macros/fdoms-form"/>
reply other threads:[~2006-07-27 16:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060727163247.9887.qmail@sourceware.org \
--to=jparsons@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.